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; }
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()); }