widget_area_code])) { self::$widgetAreas[$widget->widget_area_code] = ''; } self::$widgetAreas[$widget->widget_area_code] .= Widget::render($widget); } } protected static function loadWidgetArea($uniqueCode) { $widgets = Cache::remember('widget-' . $uniqueCode, setting('widgetCacheLifetime', 5), function () use ($uniqueCode) { $widgetArea = new WidgetArea(); return $widgetArea->getWidgets($uniqueCode) ->get(); }); WidgetArea::where('code', $uniqueCode) ->increment('viewed'); self::saveRenderedWidgetArea($widgets); } protected static function initWidgetAreas() { if (self::$initialized) { return; } $widgets = Cache::remember('widgets', setting('widgetCacheLifetime', 5), function () { $widgetArea = new WidgetArea(); return $widgetArea->getWidgets() ->get(); }); self::saveRenderedWidgetArea($widgets); self::$initialized = true; } /** * Renderer for whole widget area. * * @param $uniqueCode * * @return mixed */ public static function render($uniqueCode) { if (!self::$initialized) { self::initWidgetAreas(); } if (!isset(self::$widgetAreas[$uniqueCode])) { self::loadWidgetArea($uniqueCode); } echo isset(self::$widgetAreas[$uniqueCode]) ? self::$widgetAreas[$uniqueCode] : null; } }