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