public static function getMainItemsTransliterated($activeId = null) { $key = md5($activeId . __METHOD__ . 'mainItems'); $generate = function () use($activeId) { $items = self::getMainItems(); foreach ($items as $key => &$item) { $item = ['active' => !is_null($activeId) && $activeId == $key ? true : false, 'id' => $key, 'name' => $item, 'text' => $item, 'href' => ORM::factory('MainItem', $key)->getHREF(), 'translit' => \Zver\StringHelper::load($item)->slugify()->get()]; } return $items; }; return \Zver\FileCache::retrieve($key, $generate); }
*/ $years = \Zver\FileCache::retrieve('newsYears', function () { return array_values(DB::select([DB::expr('YEAR(_datetime)'), 'year'])->from('news')->distinct(true)->where('visible', '=', 1)->order_by(DB::expr('YEAR(_datetime)'), 'desc')->execute()->as_array('year', 'year')); }); if (!empty($years)) { /** * By default get last year */ if (empty($currentYear) || !in_array($currentYear, $years) || !is_numeric($currentYear)) { $currentYear = $years[0]; } /** * Available months in defined year */ $months = \Zver\FileCache::retrieve('newsMonths' . $currentYear, function () use($currentYear) { return array_values(DB::select([DB::expr('MONTH(_datetime)'), 'month'])->from('news')->distinct(true)->where('visible', '=', 1)->where(DB::expr('YEAR(_datetime)'), '=', $currentYear)->order_by(DB::expr('MONTH(_datetime)'), 'desc')->execute()->as_array('month', 'month')); }); /** * Last month by default */ if (empty($currentMonth) || !in_array($currentMonth, $months) || !is_numeric($currentMonth)) { $currentMonth = $months[0]; } ?> <div class="container"> <?php if (count($years) > 1) { ?> <ul class="nav nav-pills">