| 1 |
<?php |
| 2 |
|
| 3 |
namespace ResponsiveMenu\Factories; |
| 4 |
use ResponsiveMenu\Filesystem\FileCreator as FileCreator; |
| 5 |
use ResponsiveMenu\Factories\CssFactory as CssFactory; |
| 6 |
use ResponsiveMenu\Factories\JsFactory as JsFactory; |
| 7 |
use ResponsiveMenu\Collections\OptionsCollection as OptionsCollection; |
| 8 |
|
| 9 |
class AdminSaveFactory { |
| 10 |
|
| 11 |
public function build(OptionsCollection $options) { |
| 12 |
|
| 13 |
$flash = []; |
| 14 |
|
| 15 |
$css_factory = new CssFactory; |
| 16 |
$js_factory = new JsFactory; |
| 17 |
$file_creator = new FileCreator; |
| 18 |
|
| 19 |
# Create Data Folders if They don't exist |
| 20 |
$data_folder_dir = dirname(dirname(dirname(dirname(dirname(__FILE__))))) . '/responsive-menu-data'; |
| 21 |
$js_folder = $data_folder_dir . '/js'; |
| 22 |
$css_folder = $data_folder_dir . '/css'; |
| 23 |
if($options['external_files'] == 'on' && !is_dir($data_folder_dir)): |
| 24 |
if(!mkdir($data_folder_dir)) $flash['errors'][] = __('Unable to make data directory', 'responsive-menu'); |
| 25 |
if(!mkdir($css_folder)) $flass['errors'][] = __('Unable to make CSS data directory', 'responsive-menu'); |
| 26 |
if(!mkdir($js_folder)) $flash['errors'][] = __('Unable to make JS data directory', 'responsive-menu'); |
| 27 |
endif; |
| 28 |
|
| 29 |
$css = $css_factory->build($options); |
| 30 |
$js = $js_factory->build($options); |
| 31 |
|
| 32 |
if(!$file_creator->createCssFile($css_folder, 'responsive-menu-' . get_current_blog_id() . '.css', $css)) |
| 33 |
$flash['errors'][] = __('Unable to create CSS file', 'responsive-menu'); |
| 34 |
|
| 35 |
if(!$file_creator->createJsFile($js_folder, 'responsive-menu-' . get_current_blog_id() . '.js', $js)) |
| 36 |
$flash['errors'][] = __('Unable to create JS file', 'responsive-menu'); |
| 37 |
|
| 38 |
return empty($flash) ? null : $flash; |
| 39 |
|
| 40 |
} |
| 41 |
|
| 42 |
} |
| 43 |
|