/** * Method to get AssetManager. * * @param string $option The option name to get AssetManager. * * @return AssetManager The AssetManager object. */ public static function getAsset($option = 'windwalker') { if (!empty(static::$assets[$option])) { return static::$assets[$option]; } return static::$assets[$option] = AssetManager::getInstance($option); }
/** * quickadd * * @param string $selector * @param array $options * * @return void */ public static function quickadd($selector, $options = array()) { $asset = static::getAsset(); if (!static::inited(__METHOD__)) { JQueryScript::ui(array('effect')); $asset->addJS('quickadd.min.js'); } if (!static::inited(__METHOD__, func_get_args())) { $options = AssetManager::getJSObject($options); $js = <<<JS jQuery(document).ready(function(\$) { \t\$('{$selector}').quickadd({$options}); }); JS; $asset->internalJS($js); } }
/** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return Container Returns itself to support chaining. */ public function register(Container $container) { $name = $this->name; // Component $container->alias('component', ucfirst($name) . 'Component')->share(ucfirst($name) . 'Component', $this->component); // ControllerResolver $resolverClass = '\\Windwalker\\Controller\\Resolver\\ControllerResolver'; $container->alias('controller.resolver', $resolverClass)->share($resolverClass, function ($container) use($resolverClass) { return new $resolverClass($container->get('app'), $container); }); // Asset Helper $container->share('helper.asset', function ($container) use($name) { $asset = AssetManager::getInstance('com_' . strtolower($name)); $asset->setContainer($container); return $asset; }); }
/** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return Container Returns itself to support chaining. */ public function register(Container $container) { // Global Config $container->share('joomla.config', array('JFactory', 'getConfig')); // Windwalker Config $container->share('windwalker.config', array($this, 'loadConfig')); // Database $this->share($container, 'db', 'JDatabaseDriver', array('JFactory', 'getDbo')); // Session // Global Config $container->share('session', function () { return \JFactory::getSession(); }); // Language $this->share($container, 'language', 'JLanguage', array('JFactory', 'getLanguage')); // Dispatcher $this->share($container, 'event.dispatcher', 'JEventDispatcher', array('JEventDispatcher', 'getInstance')); // Mailer $this->share($container, 'mailer', 'JMail', array('JFactory', 'getMailer')); // Date $this->set($container, 'date', 'JDate', function () { return DateHelper::getDate(); }); // Global $container->set('SplPriorityQueue', function () { return new \SplPriorityQueue(); }); // Asset $container->share('helper.asset', function () { return \Windwalker\Asset\AssetManager::getInstance(); }); // Relation $container->share('relation.container', function () { return new RelationContainer(); }); // Detect deferent environment if ($this->isConsole) { $container->registerServiceProvider(new CliProvider()); } else { $container->registerServiceProvider(new WebProvider()); } }
/** * initScript * * @param string $selector * @param array $options * * @return void */ protected function initScript($selector, $options) { $options = \Windwalker\Asset\AssetManager::getJSObject($options); $asset = Container::getInstance()->get('helper.asset'); $asset->internalJS(<<<JS // Finder Field for {$selector} jQuery(document).ready(function(\$) { var finder = \$('{$selector}').finderField({$options}); window.windwalkerFinderSelect_{$this->id} = function (selected, elFinder, root) { \t\tfinder.selectFile(selected, elFinder, root); \t} }); JS ); }
/** * getAsset * * @param string $name * * @return AssetManager */ public static function getAsset($name = 'windwalker') { return AssetManager::getInstance($name); }
/** * Method to test getJSObject(). * * @return void * * @covers Windwalker\Asset\AssetManager::getJSObject */ public function testGetJSObject() { $options = array('string' => 'foo', 'int' => 123, 'float' => 1.3, 'array' => array('flower' => 'sakura'), 'object' => (object) array('flower' => 'sakura'), 'function_string' => 'function () {}', 'function' => '\\function () {}'); $expected = '{"string":"foo","int":123,"float":1.3,"array":{"flower":"sakura"},"object":{"flower":"sakura"},"function_string":"function () {}","function":function () {}}'; $this->assertEquals($expected, AssetManager::getJSObject($options)); $expected = '{string:"foo",int:123,float:1.3,array:{flower:"sakura"},object:{flower:"sakura"},function_string:"function () {}",function:function () {}}'; $this->assertEquals($expected, AssetManager::getJSObject($options, false)); }