Exemple #1
0
 public function activate(Plugin $plugin)
 {
     $data = $plugin->getData();
     if ($data === null) {
         $data = array();
     }
     if (isset($data['id_site_module']) && is_numeric($data['id_site_module'])) {
         // не должно быть такого
         return;
     }
     if (SiteModule::model()->exists('id_module=:id', array(':id' => 112))) {
         // на сайте изначально был установлен данный плагин.
         // записываем данные по умолчанию
         $data['id_site_module'] = 112;
     } else {
         $siteModule = $this->prepareSiteModule('Витрина', $data['id_php_script_type_module']);
         $siteModule->save();
         if (!empty($data['site_module_place'])) {
             $this->restoreSiteModulePlace($siteModule->id_module, $data['site_module_place']);
             unset($data['site_module_place']);
         }
         $this->createPermission($data['id_object'], 'Просмотр списка данных объекта Витрина');
         $this->updateMenu = true;
         $data['id_site_module'] = $siteModule->id_module;
     }
     $plugin->setData($data);
 }
Exemple #2
0
 public function run()
 {
     $moduleModel = SiteModule::model()->findByPk(4);
     if (!empty($moduleModel)) {
         $root = CatalogRubrics::getRoot();
         $categories = $root->descendants()->findAll($root->id);
         $tree = '';
         $level = 0;
         foreach ($categories as $n => $category) {
             if ($category->status == 1) {
                 if ($category->level == $level) {
                     $tree .= CHtml::closeTag('li') . "\r\n";
                 } else {
                     if ($category->level > $level) {
                         $tree .= CHtml::openTag('ul') . "\r\n";
                     } else {
                         $tree .= CHtml::closeTag('li') . "\r\n";
                         for ($i = $level - $category->level; $i; $i--) {
                             $tree .= CHtml::closeTag('ul') . "\r\n";
                             $tree .= CHtml::closeTag('li') . "\r\n";
                         }
                     }
                 }
                 $tree .= CHtml::openTag('li');
                 $tree .= CHtml::link($category->name, Yii::app()->urlManager->createUrl($moduleModel->url_to_controller . '/element', array('param' => $category->url)));
                 $level = $category->level;
             }
         }
         $tree .= CHtml::closeTag('li') . "\r\n";
         $tree .= CHtml::closeTag('ul') . "\r\n";
         $data['tree'] = $tree;
         $this->render('view_Categories', $data);
     }
 }
Exemple #3
0
 public function activate(Plugin $plugin)
 {
     $data = $plugin->getData();
     if ($data === null) {
         $data = array();
     }
     if (isset($data['id_site_module']) && is_numeric($data['id_site_module'])) {
         // не должно быть такого
         return;
     }
     if (SiteModule::model()->exists('id_module=:id', array(':id' => 107))) {
         // на сайте изначально был установлен данный плагин.
         // записываем данные по умолчанию
         $data['id_site_module'] = 107;
         $data['id_event_type'] = 105;
     } else {
         $eventType = $this->prepareEventType('Новое сообщение с формы обратной связи');
         $eventType->save();
         $data['id_event_type'] = $eventType->id_event_type;
         // модуль ещё не установлен на сайте
         $siteModule = $this->prepareSiteModule('Кнопка обратной связи', $data['id_php_script_type_module']);
         $siteModule->save();
         $data['id_site_module'] = $siteModule->id_module;
         if (!empty($data['site_module_place'])) {
             $this->restoreSiteModulePlace($siteModule->id_module, $data['site_module_place']);
             unset($data['site_module_place']);
         }
         $this->createPermission($data['id_object'], 'Просмотр списка данных объекта Обратная связь');
         $this->updateMenu = true;
     }
     $plugin->setData($data);
     $plugin->setConfig($this->getConfigByParamsValue($plugin->getParamsValue(), $data));
 }
Exemple #4
0
 public function init()
 {
     if (Yii::app()->user->isGuest) {
         $this->redirect('/');
     }
     $modleRole = UserRole::model()->find('name LIKE "' . Yii::app()->user->role . '"')->id;
     $modelSiteModel = SiteModule::model()->find('templates LIKE "' . $this->module_template_name . '"');
     if ($modleRole && $modelSiteModel) {
         $modelRule = UserGroupRule::model()->find('user_role_id = ' . $modleRole . ' AND module_id=' . $modelSiteModel->id);
         if ($modelRule) {
             $this->rule = $modelRule->access_type;
         }
     }
 }
Exemple #5
0
 public function run()
 {
     if ($this->place === null) {
         throw new ErrorException("Не задано место блока (BlockWidget).");
     }
     $modules = null;
     if (Yii::app()->controller->idSiteModuleTemplate == null) {
         // если у контроллера не установлен свой набор виджетов
         if (Yii::app()->menu->current != null) {
             // иначе берем набор модулей меню
             $modules = Yii::app()->menu->current->getModulesByPlace($this->place);
         } else {
             // иначе пытаемся найти набор по умолчанию
             Yii::app()->controller->idSiteModuleTemplate = SiteModuleTemplate::getIdDefaultTemplate();
         }
     }
     if ($modules === null && Yii::app()->controller->idSiteModuleTemplate != null) {
         if (self::$_modules == null) {
             self::$_modules = SiteModule::model()->with(array('place' => array('condition' => 'place.id_module_template=:id_template', 'params' => array('id_template' => Yii::app()->controller->idSiteModuleTemplate)), 'phpScriptInstance.phpScript'))->findAll();
         }
         $modules = array();
         foreach (self::$_modules as $module) {
             if ($module->place->place == $this->place) {
                 $modules[] = $module;
             }
         }
     } else {
         if ($modules === null) {
             return;
         }
     }
     foreach ($modules as $module) {
         if ($module->id_php_script != null) {
             // динамический модуль
             // формируем массив с параметрами
             $params = array();
             $moduleParams = $module->phpScriptInstance->phpScript->getParametersConfig();
             foreach ($moduleParams as $paramName => $config) {
                 $params[$paramName] = $module->phpScriptInstance->getParameterValue($paramName);
             }
             $className = $module->phpScriptInstance->phpScript->import();
             $this->controller->widget($className, $params);
         } else {
             // статика
             echo $module->content;
             echo $module->html;
         }
     }
 }
 public function deactivate(Plugin $plugin)
 {
     $data = $plugin->getData();
     if ($data === null || !isset($data['id_site_module'])) {
         throw new ErrorException('Плагин установлен неверно.');
     }
     $siteModule = SiteModule::model()->findByPk($data['id_site_module']);
     $idBannerPlace = $siteModule->phpScriptInstance->getParameterValue('idBannerPlace');
     if (is_numeric($idBannerPlace) && ($bp = BannerPlace::model()->findByPk($idBannerPlace)) != null) {
         if (count($bp->banners) == 0) {
             $bp->delete();
         }
     }
     $data = $this->deleteSiteModule($data['id_site_module'], $data, 'site_module_place');
     unset($data['id_site_module']);
     $plugin->setData($data);
 }
Exemple #7
0
 public function activate(Plugin $plugin)
 {
     $data = $plugin->getData();
     $data = $data === null ? array() : $data;
     $trans = Yii::app()->db->beginTransaction();
     $menuSections = array(array('label' => 'Авторизация', 'urlAlias' => 'login', 'extLink' => '/login/'), array('label' => 'Регистрация', 'urlAlias' => 'register', 'extLink' => '/register/'), array('label' => 'Восстановление пароля', 'urlAlias' => 'recover', 'extLink' => '/recover/'), array('label' => 'Профиль', 'urlAlias' => 'profile', 'extLink' => '/profile/'), array('label' => 'Пользователь', 'urlAlias' => 'user', 'extLink' => '/user/'));
     //Создаем разделы меню
     foreach ($menuSections as $menuItem) {
         $idMenuKey = 'idMenu' . ucfirst($menuItem['urlAlias']);
         $menu = $this->prepareMenu($menuItem['label'], $menuItem['label'], $menuItem['urlAlias'], $menuItem['extLink'], HArray::val($data, 'id_menu_module_template_' . $idMenuKey), false);
         $menu->save();
         $data[$idMenuKey] = $menu->primaryKey;
     }
     //создаем тип события
     $eventType = $this->prepareEventType('Восстановление пароля');
     $eventType->save();
     //и подписчика на событие
     $eventSubscriber = new NotifierEventSubscriber();
     $eventSubscriber->id_event_type = $eventType->primaryKey;
     $eventSubscriber->format = 1;
     $eventSubscriber->archive_attach = 0;
     $eventSubscriber->save();
     $data['idEventTypeRecover'] = $eventType->primaryKey;
     $data['idEventSubscriberRecover'] = $eventSubscriber->primaryKey;
     //тип события "Регистрация нового пользователя"
     $data = array_merge($data, $this->setupEventRegister());
     //если виджет уже есть
     if (SiteModule::model()->exists('id_module = :ID', array(':ID' => 108))) {
         $data['id_widget_authorize'] = 108;
     } else {
         //создаем виджет авторизации
         $siteModule = $this->prepareSiteModule('Авторизация', $data['id_php_script_type_widget_authorize']);
         $siteModule->save();
         if (!empty($data['widget_authorize_place'])) {
             $this->restoreSiteModulePlace($siteModule->id_module, $data['widget_authorize_place']);
             unset($data['widget_authorize_place']);
         }
         $data['id_widget_authorize'] = $siteModule->id_module;
     }
     //Включаем личный кабинет пользователя
     $data['cabinetEnabled'] = true;
     $plugin->setData($data);
     $trans->commit();
 }
 public function module()
 {
     if ($this->typeContent == 0 || empty($this->typeContent)) {
         exit;
     }
     $modelModule = SiteModule::model()->findByPk($this->typeContent);
     if (!$modelModule) {
         exit;
     }
     $template = mb_strtolower($modelModule->templates);
     $urlFront = dirname(Yii::app()->basePath) . "/app/apps/frontend/modules/" . $template;
     $urlTemplateFront = __DIR__ . "/ContentService/templates/" . $template . '/frontend';
     $urlBackend = dirname(Yii::app()->basePath) . "/app/apps/backend/modules/" . $template;
     $urlTemplateBackend = __DIR__ . "/ContentService/templates/" . $template . '/backend';
     /* Фронт */
     //Создание модуля
     if (!file_exists($urlFront)) {
         mkdir($urlFront);
     }
     $module = file_get_contents($urlTemplateFront . '/' . ucfirst($template) . 'Module.php');
     $fp = fopen($urlFront . '/' . ucfirst($template) . 'Module.php', "w");
     fwrite($fp, $module);
     fclose($fp);
     //Создание контроллера
     if (!file_exists($urlFront . '/controllers')) {
         mkdir($urlFront . '/controllers');
     }
     $controller = file_get_contents($urlTemplateFront . '/controllers/controller.php');
     $controller = str_replace("[%layout%]", $this->layout, $controller);
     $fp = fopen($urlFront . '/controllers/' . ucfirst($template) . 'Controller.php', "w");
     fwrite($fp, $controller);
     fclose($fp);
     //Создание вьюшек
     $urlFront .= '/views';
     if (!file_exists($urlFront)) {
         mkdir($urlFront);
     }
     $urlFront .= '/' . $template;
     if (!file_exists($urlFront)) {
         mkdir($urlFront);
     }
     $dir = opendir($urlTemplateFront . '/views');
     while ($contentViews = readdir($dir)) {
         if ($contentViews != '.' && $contentViews != '..') {
             $view = file_get_contents($urlTemplateFront . '/views' . '/' . $contentViews);
             $fp = fopen($urlFront . '/' . $contentViews, "w");
             fwrite($fp, $view);
             fclose($fp);
         }
     }
     /* Бэкенд */
     //Создание модуля
     if (!file_exists($urlBackend)) {
         mkdir($urlBackend);
     }
     $module = file_get_contents($urlTemplateBackend . '/' . ucfirst($template) . 'Module.php');
     $fp = fopen($urlBackend . '/' . ucfirst($template) . 'Module.php', "w");
     fwrite($fp, $module);
     fclose($fp);
     //Создание контроллера
     if (!file_exists($urlBackend . '/controllers')) {
         mkdir($urlBackend . '/controllers');
     }
     $controller = file_get_contents($urlTemplateBackend . '/controllers/controller.php');
     $controller = str_replace("[%layout%]", $this->layout, $controller);
     $fp = fopen($urlBackend . '/controllers/' . ucfirst($template) . 'Controller.php', "w");
     fwrite($fp, $controller);
     fclose($fp);
     //Создание вьюшек
     $urlBackend .= '/views';
     if (!file_exists($urlBackend)) {
         mkdir($urlBackend);
     }
     $urlBackend .= '/' . $template;
     if (!file_exists($urlBackend)) {
         mkdir($urlBackend);
     }
     $dir = opendir($urlTemplateBackend . '/views');
     while ($contentViews = readdir($dir)) {
         if ($contentViews != '.' && $contentViews != '..') {
             $view = file_get_contents($urlTemplateBackend . '/views' . '/' . $contentViews);
             $fp = fopen($urlBackend . '/' . $contentViews, "w");
             fwrite($fp, $view);
             fclose($fp);
         }
     }
 }
Exemple #9
0
 /**
  * @return array
  * Возвращает массив модулей
  */
 public function getModuleSelect()
 {
     $result = array();
     foreach ($this->moduleID as $key => $val) {
         if ($data = SiteModule::model()->findByPk((int) $key)) {
             $result[$data->id] = $data->name;
         }
     }
     return $result;
 }
Exemple #10
0
<div class="container">
    <div class="top-text">
        <?php 
//Получаем содержимое страницы врачей
$module = SiteModule::model()->find('url_to_controller LIKE "/doctor/doctor"');
if (!empty($module) && ($page = Pages::model()->find('type_module=' . $module->id . ' AND `status`=2'))) {
    ?>
                <?php 
    echo $page->content;
    ?>
            <?php 
}
?>
    </div>
</div>


<?php 
foreach ($model['group'] as $data) {
    ?>

    <div class="container top-text">
        <h1 class="text-center"><?php 
    echo $data->name;
    ?>
</h1>
    </div>
    <div class="container doctor-block">
        <?php 
    foreach ($model['element'][$data->id] as $dataElements) {
        ?>
Exemple #11
0
 public function deleteSiteModule($idSiteModule, $data, $siteModulePlaceKey)
 {
     $siteModule = SiteModule::model()->with('places')->findByPk($idSiteModule);
     if ($siteModule != null) {
         if ($siteModule->id_php_script != null) {
             $phpScriptInstance = $siteModule->phpScriptInstance;
             $this->deactivatePhpScript($phpScriptInstance->id_php_script_type);
         }
         $data[$siteModulePlaceKey] = $this->createModulePlaceConfig($siteModule->places);
         $siteModule->delete();
     }
     return $data;
 }
Exemple #12
0
 public function init()
 {
     parent::init();
     $this->modules = SiteModule::model()->resetScope()->findAll();
 }
 /**
  * @param $id
  * Возвращает название папки модуля (с загружаемыми файлами) по id модуля
  */
 public function getFolderModelName($id)
 {
     $returnArray = array();
     foreach (SiteModule::model()->findAll() as $data) {
         $nameArr = explode("/", $data->url_to_controller);
         $name = array_pop($nameArr);
         $returnArray[$data->id] = $name;
     }
     return $returnArray[$id];
 }
 protected function beforeSave()
 {
     $url_pref = 'doctor/';
     $this->url = mb_strtolower($this->url);
     $module = SiteModule::model()->find('url_to_controller LIKE "/doctor/doctor"');
     if (!empty($module) && ($page = Pages::model()->find('type_module=' . $module->id . ' AND `status`=1'))) {
         $url_pref = $page->url . '/';
     }
     $this->url = $url_pref . str_replace("vrachi/", "", $this->url);
     return true;
 }
Exemple #15
0
 /**
  * Получить все модули раздела
  * @return array SiteModule
  */
 public function getModules($idTemplate = null)
 {
     if ($this->_modules !== null) {
         return $this->_modules;
     }
     $this->_modules = array();
     $idTemplate = $idTemplate != null ? $idTemplate : $this->id_module_template;
     if ($idTemplate == null) {
         // Если модулей нет, то устанавливаем родительские модули
         $parent = $this->getParent();
         if ($parent != null) {
             $this->_modules = $parent->getModules();
             return $this->_modules;
         } else {
             // получаем дефолтный шаблон модулей
             $idTemplate = SiteModuleTemplate::getIdDefaultTemplate();
             if ($idTemplate == null) {
                 return $this->_modules;
             }
         }
     }
     $this->_modules = SiteModule::model()->with(array('place' => array('condition' => 'place.id_module_template=:id_template', 'params' => array('id_template' => $idTemplate)), 'phpScriptInstance.phpScript'))->findAll();
     return $this->_modules;
 }
Exemple #16
0
 public function getTypeModule()
 {
     $name = array(0 => 'Текстовая страница');
     foreach (SiteModule::model()->findAll() as $data) {
         //Проверяю, не отлючен ли модуль
         if (SiteModuleSettings::model()->find('site_module_id = ' . $data->id . ' AND `status`=0')) {
             continue;
         }
         $name[$data->id] = $data->name;
     }
     return $name;
 }