Source of file SlickNavPageControllerExtension.php
Size: 1,323 Bytes - Last Modified: 2021-12-23T11:00:23+00:00
/var/www/docs.ssmods.com/process/src/src/SlickNavPageControllerExtension.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | <?php namespace Zazama; use SilverStripe\View\Requirements; use SilverStripe\Core\Config\Configurable; use SilverStripe\Core\Extension; class SlickNavPageControllerExtension extends Extension { use Configurable; /** * @config */ private static $display_at_width = '992px'; /** * @config */ private static $navigationIdentifier = '#menu'; /** * @config */ private static $options = [ 'label' => 'Menu' ]; /** * @config */ private static $include_jquery = true; public function onAfterInit() { Requirements::css('zazama/silverstripe-slicknav:css/slicknav.min.css'); if($this->config()->get('include_jquery')) { Requirements::javascript('zazama/silverstripe-slicknav:javascript/jquery-3.3.1.min.js'); } Requirements::javascript('zazama/silverstripe-slicknav:javascript/jquery.slicknav.min.js'); $optionsString = json_encode($this->config()->get('options'), JSON_FORCE_OBJECT); Requirements::customCSS(" .slicknav_menu { display: none; } @media only screen and (max-width: " . $this->config()->get('display_at_width') . ") { .slicknav_menu { display: block; } } "); Requirements::customScript(" jQuery('" . $this->config()->get('navigationIdentifier') . "').slicknav(" . $optionsString . ");" ); } } |