Example #1
0
 protected function registerAssets()
 {
     $widgets = [];
     $config = $this->getConfig();
     foreach ((array) $config['widgets'] as $name => $widget) {
         // Skip disabled extensions.
         if (isset($widget['enabled']) && $widget['enabled'] === false) {
             continue;
         }
         if (empty($widget['zone']) || $widget['zone'] !== 'backend') {
             $widget['zone'] = 'frontend';
         }
         $widgetObj = new Widget();
         $widgetObj->setZone($widget['zone'])->setLocation($widget['location'])->setCallback([$this, 'widget'])->setCallbackArguments(['widget' => $widget]);
         if (!empty($widget['class'])) {
             $widgetObj->setClass($widget['class']);
         }
         if (!empty($widget['defer'])) {
             $widgetObj->setDefer($widget['defer']);
         }
         if (!empty($widget['cacheduration'])) {
             $widgetObj->setCacheDuration($widget['cacheduration']);
         } else {
             $widgetObj->setCacheDuration(-1);
         }
         if (!empty($widget['withcontext']) && $widget['withcontext'] === true) {
             $widgetObj->setCacheDuration(-1);
             $widgetObj->setDefer(false);
         }
         $widgets[] = $widgetObj;
     }
     return $widgets;
 }
Example #2
0
 public function testWidgetBasicSetup()
 {
     $widget = new Widget();
     $widget->setCacheDuration(42)->setCallback([$this, 'widgetCallback'])->setCallbackArguments(['first' => 'clippy', 'second' => 'koala'])->setClass('bourgeoisie')->setContent('Some test content')->setDefer(true)->setLocation('somewhere')->setPostfix('after')->setPrefix('before')->setPriority(0)->setZone('frontend');
     $this->assertSame(42, $widget->getCacheDuration());
     $this->assertSame([$this, 'widgetCallback'], $widget->getCallback());
     $this->assertSame(['first' => 'clippy', 'second' => 'koala'], $widget->getCallbackArguments());
     $this->assertSame(['widget-bourgeoisie'], $widget->getClass());
     $this->assertSame('Some test content', $widget->getContent());
     $this->assertTrue($widget->isDeferred());
     $this->assertSame('somewhere', $widget->getLocation());
     $this->assertSame('after', $widget->getPostfix());
     $this->assertSame('before', $widget->getPrefix());
     $this->assertSame(0, $widget->getPriority());
     $this->assertSame('frontend', $widget->getZone());
 }