/** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return void */ public function register(Container $container) { $closure = function (Container $container) { return new \S3($container->get('app')->get('amazon.access_key'), $container->get('app')->get('amazon.secret_key')); }; Ioc::getContainer()->share('s3', $closure); }
/** * createInfoBox * * @param Container $container * @param \stdClass $article * @param mixed $params * * @return string */ public static function createInfoBox(Container $container, $article, $params = null) { // Include Component Core $param = ExtensionHelper::getParams('com_userxtd'); $doc = \JFactory::getDocument(); $app = $container->get('app'); LanguageHelper::loadLanguage('com_userxtd', 'admin'); // init params $image_field = $param->get('UserInfo_ImageField', 'BASIC_AVATAR'); $website_field = $param->get('UserInfo_WebiteField', 'BASIC_WEBSITE'); $include_css = $param->get('UserInfo_IncludeCSS_Article', 1); // Image params $width = $param->get('UserInfo_ImageWidth', 150); $height = $param->get('UserInfo_ImageHeight', 150); $crop = $param->get('UserInfo_ImageCrop', 1) ? \JImage::CROP_RESIZE : false; // Include CSS if ($include_css) { /** @var $asset \Windwalker\Helper\AssetHelper */ $asset = $container->get('helper.asset'); $asset->addCss('userxtd-userinfo.css', 'com_userxtd'); } $user = \UXFactory::getUser($article->created_by); // Images $image = $user->get($image_field); $thumb = new Thumb(null, 'com_userxtd'); $image = $thumb->resize($image, $width, $height, $crop); // Link $query = array('option' => 'com_users', 'view' => 'profile', 'id' => $user->get('id')); $link = \JRoute::_('index.php?' . http_build_query($query)); //Route::_('com_userxtd.user_id', array('id' => $user->get('id'))); // Website $website_link = $user->get($website_field); // Render return with(new FileLayout('userxtd.content.userinfo', null, array('component' => 'com_userxtd')))->render(array('params' => $param, 'article' => $article, 'link' => $link, 'website_link' => $website_link, 'image' => $image, 'user' => $user)); }
/** * create * * @param string $storage * * @return ImageUploaderManager */ public function create($storage = null) { $config = $this->container->get('config'); $storage = $storage ?: $config->get('unidev.image.storage'); if (!$storage) { throw new \DomainException('No image storage provider.'); } if (is_string($storage)) { $class = __NAMESPACE__ . '\\Storage\\' . ucfirst($storage) . 'ImageStorage'; $storage = new $class($this->container->get('unidev.storage.' . strtolower($storage)), $config->extract('unidev.' . $storage)); } return new ImageUploaderManager($storage); }
/** * Add JS to head. * * @return void */ public function addFieldJs() { JHtmlBehavior::framework(true); $asset = $this->container->get('helper.asset'); $input = $this->container->get('input'); $asset->addJS('cck/fields.js', $input->get('option')); }
/** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return Container Returns itself to support chaining. * * @since 1.0 */ public function register(Container $container) { $ioClass = 'Phoenix\\IO\\IO'; $container->alias('io', $ioClass)->alias('Muse\\IO\\IO', $ioClass)->alias('Muse\\IO\\IOInterface', $ioClass)->share($ioClass, new IO($this->controller->getCommand())); $container->alias('operator.copy', 'Phoenix\\Generaotr\\FileOperator\\CopyOperator')->createObject('Phoenix\\Generaotr\\FileOperator\\CopyOperator'); $closure = function (Container $container) { return new OperatorFactory($container->get('io'), $this->controller->getTagVariables()); }; $container->share('operator.factory', $closure); }
/** * If default value exists. */ public function setFieldData() { $input = $this->container->get('input'); if (!$input->get('id')) { $app = JFactory::getApplication(); $app->setUserState('lib_windwalker.cck.fields', null); } $type = $input->get('field_type'); $this->value = $type ?: $this->value; }
/** * Prepare the template. * * @param string $template Template name. * * @return void */ protected function prepareTemplate($template) { if ($this->templatePrepared) { return; } // Load the language file for the template $lang = $this->container->get('language'); $lang->load('tpl_' . $template, JPATH_BASE, null, false, false) || $lang->load('tpl_' . $template, JPATH_THEMES . "/{$template}", null, false, false) || $lang->load('tpl_' . $template, JPATH_BASE, $lang->getDefault(), false, false) || $lang->load('tpl_' . $template, JPATH_THEMES . "/{$template}", $lang->getDefault(), false, false); $this->templatePrepared = true; }
/** * Clean the cache * * @param string $group The cache group * @param integer $client_id The ID of the client * * @return void */ protected function cleanCache($group = null, $client_id = 0) { $conf = $this->container->get('joomla.config'); $dispatcher = $this->container->get('event.dispatcher'); $input = $this->container->get('input'); $options = array('defaultgroup' => $group ? $group : (isset($this->option) ? $this->option : $input->get('option')), 'cachebase' => $client_id ? JPATH_ADMINISTRATOR . '/cache' : $conf->get('cache_path', JPATH_SITE . '/cache')); $cache = \JCache::getInstance('callback', $options); $cache->clean(); // Trigger the onContentCleanCache event. $dispatcher->trigger($this->eventCleanCache, $options); }
/** * Add JS to head. */ public function addScript($num = 0) { $script = <<<SCRIPT ;jQuery(document).ready(function(\$) { \twindow.WindwalkerCCKList.init({}); }); SCRIPT; $asset = $this->container->get('helper.asset'); $asset->addJs('cck/list.js'); $asset->internalJS($script); }
/** * createComponent * * @param array $input * * @return StubComponent */ protected function createComponent($input = array()) { if (!$input instanceof \JInput) { $input = new \JInput($input); } $container = new Container(); $container->registerServiceProvider(new SystemProvider()); $container->share('input', $input); $config = array('init' => array('path' => array('self' => __DIR__ . '/StubAdmin', 'site' => __DIR__ . '/StubSite', 'administrator' => __DIR__ . '/StubAdmin'), 'constants' => false)); $container->share('com_stub.config', new Registry($config)); \JLoader::registerPrefix('Stub', __DIR__ . '/StubAdmin'); return new StubComponent('stub', $input, $container->get('app'), $container); }
/** * testDump * * @covers \Windwalker\DI\Container::dump() */ public function testDump() { // Not shared $this->instance->set('foo', function () { return new \ArrayObject(); }, false, false); $this->instance->get('foo'); $dumpResult = $this->instance->dump(); $this->assertEquals(0, count($dumpResult['data'])); // Shared $this->instance->set('bar', function () { return new \ArrayObject(); }, true, false); $this->instance->get('bar'); $dumpResult = $this->instance->dump(); $this->assertEquals(1, count($dumpResult['data'])); }
/** * Register Bundles * * @param Container $container DI container. * * @return void */ protected function registerBundles(Container $container) { if (!is_dir(WINDWALKER_BUNDLE)) { return; } $paths = new PathCollection(array(WINDWALKER . '/bundles', WINDWALKER_BUNDLE)); $bundles = $paths->find('Bundle$'); $config = $container->get('windwalker.config'); foreach ($bundles as $bundle) { $bundleName = $bundle->getBasename(); $class = $bundleName . '\\' . $bundleName; \JLoader::registerNamespace($bundleName, dirname((string) $bundle)); if (class_exists($class) && is_subclass_of($class, 'Windwalker\\Bundle\\AbstractBundle')) { $config->set('bundle.' . $bundleName, $class); $class::registerProvider($container); } } }
/** * Method to test registerServiceProvider(). * * @return void * * @covers Windwalker\DI\Container::registerServiceProvider */ public function testRegisterServiceProvider() { $this->instance->registerServiceProvider(new StubServiceProvider()); $this->assertEquals('Bingo', $this->instance->get('bingo')); }
/** * Convert a element data to JForm XML field string. * * @param string $field_type Type of this field. * @param array $attrs Field's attributes. * @param array $option Some option. * * @return string Field XML element. */ public function buildElement($field_type = 'text', $attrs = null, $option = array()) { $node_name = !empty($option['node_name']) ? $option['node_name'] : 'field'; $field_type = $field_type ? $field_type : 'text'; $input = $this->container->get('input'); $attrs = $this->convertJsonToArray($attrs); if (!is_array($attrs)) { $attrs = $input->getVar('attrs', array()); } $this->event->trigger('onCCKEngineBeforeBuildElement', array(\JArrayHelper::getValue($option, 'context'), &$field_type, &$attrs, $option)); if (!is_array($attrs)) { return '<' . $node_name . '/>'; } // Rebuild options // ================================================================ if (isset($attrs['options'])) { $attrs['options'] = ArrayHelper::pivotBySort($attrs['options']); } $element = ''; $options = array(); // Build Field Attrs // ================================================================ // set type in attrs $attrs['type'] = $field_type; // set default if (is_array(\JArrayHelper::getValue($attrs, 'default'))) { $attrs['default'] = implode(',', $attrs['default']); } // start buliding attrs and options foreach ($attrs as $key => $attr) { if ($key == 'options' && is_array($attr)) { // Bulid options foreach ($attr as $key => $opt) { if (!trim($opt['value'])) { continue; } $value = addslashes(trim($opt['value'])); $text = htmlspecialchars(addslashes(trim($opt['text']))); $options[] = "\t<option value=\"{$value}\">{$text}</option>\n"; } } else { // Build attributes if (!trim($attr)) { continue; } $attr = trim($attr); $attr = htmlspecialchars(addslashes($attr)); $element .= "\t{$key}=\"{$attr}\"\n"; } } // Build Element // ================================================================ if (count($options) < 0) { $element = "<{$node_name}\n{$element}/>"; } else { $options = implode('', $options); $element = "<{$node_name}\n{$element}>\n{$options}</{$node_name}>"; } $this->event->trigger('onCCKEngineAfterBuildElement', array(\JArrayHelper::getValue($option, 'context'), &$field_type, &$element, $option)); return $element; }