widget_area_code])) self::$widgetAreas[$widget->widget_area_code] = ''; self::$widgetAreas[$widget->widget_area_code] .= Widget::render($widget); } } protected static function loadWidgetArea($uniqueCode) { $widgetArea = new WidgetArea(); $widgets = $widgetArea->getWidgets($uniqueCode) ->get(); WidgetArea::where('code', $uniqueCode) ->increment('viewed'); self::saveRenderedWidgetArea($widgets); } protected static function initWidgetAreas() { if (self::$initialized) return; $widgetArea = new WidgetArea(); $widgets = $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; } }