| 1 |
<?php |
| 2 |
|
| 3 |
namespace ResponsiveMenu\Factories; |
| 4 |
use ResponsiveMenu\Factories\CssFactory as CssFactory; |
| 5 |
use ResponsiveMenu\Factories\JsFactory as JsFactory; |
| 6 |
use ResponsiveMenu\Collections\OptionsCollection as OptionsCollection; |
| 7 |
|
| 8 |
class FrontDisplayFactory { |
| 9 |
|
| 10 |
public function build(OptionsCollection $options) { |
| 11 |
|
| 12 |
$css_factory = new CssFactory; |
| 13 |
$js_factory = new JsFactory; |
| 14 |
|
| 15 |
$css = $css_factory->build($options); |
| 16 |
$js = $js_factory->build($options); |
| 17 |
|
| 18 |
add_filter('body_class', function($classes) use($options) { |
| 19 |
$classes[] = 'responsive-menu-' . $options['animation_type'] . '-' . $options['menu_appear_from']; |
| 20 |
return $classes; |
| 21 |
}); |
| 22 |
|
| 23 |
wp_enqueue_script('jquery'); |
| 24 |
|
| 25 |
if($options['external_files'] == 'on') : |
| 26 |
$data_folder_dir = plugins_url(). '/responsive-menu-data'; |
| 27 |
$css_file = $data_folder_dir . '/css/responsive-menu-' . get_current_blog_id() . '.css'; |
| 28 |
$js_file = $data_folder_dir . '/js/responsive-menu-' . get_current_blog_id() . '.js'; |
| 29 |
wp_enqueue_style('responsive-menu', $css_file, null, false); |
| 30 |
wp_enqueue_script('responsive-menu', $js_file, ['jquery'], false, $options['scripts_in_footer'] == 'on' ? true : false); |
| 31 |
else : |
| 32 |
add_action('wp_head', function() use ($css) { |
| 33 |
echo '<style>' . $css . '</style>'; |
| 34 |
}, 100); |
| 35 |
add_action($options['scripts_in_footer'] == 'on' ? 'wp_footer' : 'wp_head', function() use ($js) { |
| 36 |
echo '<script>' . $js . '</script>'; |
| 37 |
}, 100); |
| 38 |
endif; |
| 39 |
|
| 40 |
} |
| 41 |
} |
| 42 |
|