PluginProbe
Responsive Menu – Create Mobile-Friendly Menu / 3.1.14
Responsive Menu – Create Mobile-Friendly Menu v3.1.14
4.7.3 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.10 4.1.11 4.1.12 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.2.0 All 90 releases
responsive-menu / app / Tasks / UpdateOptionsTask.php

UpdateOptionsTask.php in Responsive Menu – Create Mobile-Friendly Menu 3.1.14, at app/Tasks/UpdateOptionsTask.php

68 lines 2.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace ResponsiveMenu\Tasks;
4 use ResponsiveMenu\Collections\OptionsCollection;
5 use ResponsiveMenu\Formatters\Minifier;
6 use ResponsiveMenu\View\View;
7
8 class UpdateOptionsTask {
9
10 private $translatables = [
11 'menu_to_use',
12 'button_title',
13 'menu_title',
14 'menu_title_link',
15 'menu_additional_content',
16 'menu_search_box_text'
17 ];
18
19 public function run(OptionsCollection $options, View $view) {
20 /*
21 * Build CSS and Js files
22 *
23 */
24 if($options['external_files'] == 'on'):
25
26 $base_dir = wp_upload_dir()['basedir'] . '/responsive-menu';
27
28 if(!wp_mkdir_p($base_dir . '/css'))
29 throw new \Exception('You don\'t have permissions to create CSS data folder - please check permissions.');
30
31 if(!wp_mkdir_p($base_dir . '/js'))
32 throw new \Exception('You don\'t have permissions to create JS data folder - please check permissions.');
33
34 $css_file = $base_dir . '/css/responsive-menu-' . get_current_blog_id() . '.css';
35 $css_data = $view->render('css/app.css.twig', ['options' => $options]);
36
37 if($options['minify_scripts'] == 'on')
38 $css_data = Minifier::minify($css_data);
39
40 if(!file_put_contents($css_file, $css_data))
41 throw new \Exception('You don\'t have permissions to write external CSS file - please check permissions.');
42
43 $js_file = $base_dir . '/js/responsive-menu-' . get_current_blog_id() . '.js';
44 $js_data = $view->render('js/app.js.twig', ['options' => $options]);
45
46 if($options['minify_scripts'] == 'on')
47 $js_data = Minifier::minify($js_data);
48
49 if(!file_put_contents($js_file, $js_data)):
50 throw new \Exception('You don\'t have permissions to write external JS file - please check permissions.');
51 endif;
52
53 else:
54 /*
55 * TODO: Do some tidy up like removing external files if this option is not set - be a good citizen!
56 */
57 endif;
58
59 /*
60 * Update translations for WPML
61 */
62 foreach($this->translatables as $option_name)
63 if(isset($options[$option_name]))
64 do_action('wpml_register_single_string', 'Responsive Menu', $option_name, $options[$option_name]);
65
66 }
67
68 }