protected function loadParam($key) { $param = SystemParameter::model()->findByAttributes(array('name' => $key), array('select' => 't.name, t.value, t.long_text_value, t.id_system_parameter, t.id_parameter_type')); if ($param === null) { return false; } $this->add($key, $param->getTypedValue()); return true; }
public function actionIndex() { $version = ''; if (Yii::app()->user->checkAccess(DaWebUser::ROLE_DEV)) { $version = Yii::app()->version . ' от ' . Yii::app()->versionDate; /*$lastMigration = DynamicActiveRecord::forTable('da_migration')->find(array('order'=>'apply_time DESC')); if (preg_match('~^.(\d{6}_\d{6}).*~', $lastMigration->version, $matches)) { $version = '20'.$matches[1]; }*/ } $showWelcome = true; $cookie = Yii::app()->request->cookies['daMainWelcome']; if ($cookie != null && $cookie->value == '1') { $showWelcome = false; } $devNotices = array(); $noticeDevCookieName = null; if (Yii::app()->user->checkAccess(DaWebUser::ROLE_DEV)) { $changeFile = Yii::getPathOfAlias('ygin') . '/change_project.txt'; $data = file_get_contents($changeFile); preg_match_all('~(\\d{8})(.*?)(?=\\d{8}|$)~s', $data, $matches); $lastDate = $matches[1][count($matches[1]) - 1]; $noticeDevCookieName = 'yginDevNotice_' . $lastDate; $showDevNotice = true; $lastDateDb = Yii::app()->params['last_change_project_date']; if ($lastDateDb == null) { $showDevNotice = false; $parameter = new SystemParameter(); $parameter->id_system_parameter = 'ygin-ext-main-lastChangeDate'; $parameter->id_group_system_parameter = SystemParameter::GROUP_SYSTEM; $parameter->name = 'last_change_project_date'; $parameter->value = $lastDate; $parameter->note = 'Последняя дата проектных обновлений'; $parameter->id_parameter_type = SystemParameter::TYPE_VARCHAR; $parameter->save(); } else { if ($lastDateDb == $lastDate) { $showDevNotice = false; } else { $cookie = Yii::app()->request->cookies[$noticeDevCookieName]; if ($cookie != null && $cookie->value == '1') { $showDevNotice = false; $parameter = SystemParameter::model()->findByPk('ygin-ext-main-lastChangeDate'); $parameter->value = $lastDate; $parameter->update(array('value')); } } } if ($showDevNotice) { $startShow = false; foreach ($matches[1] as $i => $date) { if ($startShow) { $devNotices[] = trim($matches[2][$i]); } if ($date == $lastDateDb) { $startShow = true; } } } } // важные сообщения о работе системы $alertError = array(); if (YII_DEBUG) { $alertError[] = 'Включен debug-режим. При запуске сайта на production-сервере необходимо его выключить.'; } if (Yii::app()->cache instanceof CDummyCache) { $alertError[] = 'Отключено кэширование. При запуске сайта на production-сервере необходимо настроить кэширование.'; } /** * @var $logRouter CLogRouter * @var $emailRoute DaEmailLogRoute */ $logRouter = Yii::app()->getComponent('log'); $routes = $logRouter->getRoutes(); $emailRoute = $routes['email_error']; if ($emailRoute->getHost() == null) { $alertError[] = 'Не настроена отправка уведомлений об ошибках на электронную почту.'; } // черновая версия TODO $mainElements = array(); if (Yii::app()->authManager->checkObject(DaDbAuthManager::OPERATION_LIST, Yii::app()->user->id, 528)) { $arrayItem = array('name' => '<i class="glyphicon glyphicon-wrench"></i> Плагины', 'desc' => 'Дополнения к системе, позволяющие значительно расширить функционал сайта', 'link-list' => '/admin/page/528/'); $mainElements[] = $arrayItem; } if (Yii::app()->authManager->checkObject(DaDbAuthManager::OPERATION_LIST, Yii::app()->user->id, Menu::ID_OBJECT)) { $arrayItem = array('name' => '<i class="glyphicon glyphicon-list-alt"></i> Меню', 'desc' => 'Пункты меню сайта являются основными страницами с постоянным содержимым.', 'link-list' => '/admin/page/' . Menu::ID_OBJECT . '/'); if (Yii::app()->authManager->checkObject(DaDbAuthManager::OPERATION_CREATE, Yii::app()->user->id, Menu::ID_OBJECT)) { $arrayItem['link-add'] = '/admin/page/' . Menu::ID_OBJECT . '/-1/'; } $mainElements[] = $arrayItem; } if (Yii::app()->hasModule('news') && Yii::app()->authManager->checkObject(DaDbAuthManager::OPERATION_LIST, Yii::app()->user->id, News::ID_OBJECT)) { $arrayItem = array('name' => '<i class="glyphicon glyphicon-bullhorn"></i> Новости', 'desc' => 'Модуль для написания периодической информации. Позволяет вести новостную ленту, размещая различные медиа-данные.', 'link-list' => '/admin/page/' . News::ID_OBJECT . '/'); if (Yii::app()->authManager->checkObject(DaDbAuthManager::OPERATION_CREATE, Yii::app()->user->id, News::ID_OBJECT)) { $arrayItem['link-add'] = '/admin/page/' . News::ID_OBJECT . '/-1/'; } $mainElements[] = $arrayItem; } if (Yii::app()->hasModule('photogallery') && Yii::app()->authManager->checkObject(DaDbAuthManager::OPERATION_LIST, Yii::app()->user->id, Photogallery::ID_OBJECT)) { $arrayItem = array('name' => '<i class="glyphicon glyphicon-picture"></i> Фотогалереи', 'desc' => 'Инструмент для массовой загрузки и удобного просмотра фотографий на сайте.', 'link-list' => '/admin/page/' . Photogallery::ID_OBJECT . '/'); if (Yii::app()->authManager->checkObject(DaDbAuthManager::OPERATION_CREATE, Yii::app()->user->id, Photogallery::ID_OBJECT)) { $arrayItem['link-add'] = '/admin/page/' . Photogallery::ID_OBJECT . '/-1/'; } $mainElements[] = $arrayItem; } if (Yii::app()->hasModule('faq') && Yii::app()->authManager->checkObject(DaDbAuthManager::OPERATION_LIST, Yii::app()->user->id, Question::ID_OBJECT)) { $mainElements[] = array('name' => '<i class="glyphicon glyphicon-retweet"></i> Вопрос-ответ', 'desc' => 'Раздел, создержащий форму для приёма вопросов от посетителей сайта с возможностью написания ответов.', 'link-list' => '/admin/page/' . Question::ID_OBJECT . '/'); } if (Yii::app()->hasModule('feedback') && Yii::app()->authManager->checkObject(DaDbAuthManager::OPERATION_LIST, Yii::app()->user->id, Feedback::ID_OBJECT)) { $mainElements[] = array('name' => '<i class="glyphicon glyphicon-share-alt"></i> Обратная связь', 'desc' => 'Механизм получения сообщений или заказов от посетителей сайта.', 'link-list' => '/admin/page/' . Feedback::ID_OBJECT . '/'); } $this->raiseEvent(self::EVENT_ON_BEFORE_MAIN_RENDER, new CEvent($this, array('elements' => &$mainElements))); $this->render('backend.extensions.main.view', array('version' => $version, 'showWelcome' => $showWelcome, 'noticeDevCookieName' => $noticeDevCookieName, 'devNotices' => $devNotices, 'alertError' => $alertError, 'mainElements' => $mainElements)); }