Example #1
0
 public static function url_translation($lang, $id_default_page)
 {
     $icon_url = "/Webroot/icons/" . $lang . ".png";
     $url_arr = array();
     // скрывает язык установленный по умолчанию
     if ($lang != Config::get('default_language')) {
         $url_arr[] = $lang;
     }
     require LIB_DIR . 'alias.php';
     require LIB_DIR . 'patterns.php';
     if (Router::getRout()) {
         $rout_pattern = $url_patterns[Router::getRout()]['pattern_' . $lang];
         if (strpos($rout_pattern, '/.*')) {
             $rout_part = str_replace('/.*', '', $rout_pattern);
             $url_arr[] = $rout_part;
         } else {
             $url_arr[] = $rout_pattern;
             $url_translation = '/' . implode('/', $url_arr);
             self::$url_translation = $url_translation;
             return Controller::render_lang_icon($url_translation, $icon_url);
         }
     }
     if ($url_alias[Router::getId()]['alias_' . $lang]) {
         $url_arr[] = $url_alias[Router::getId()]['alias_' . $lang];
     } else {
         $url_arr[] = Router::get_alis_by_id($id_default_page, $lang);
     }
     $url_translation = '/' . implode('/', $url_arr);
     self::$url_translation = $url_translation;
     return Controller::render_lang_icon($url_translation, $icon_url);
     //$url_translation;
 }
 public function index($material_type)
 {
     $indexModel = new IndexModel();
     $data = $indexModel->getPage(Router::getId(), Router::getLanguage(), $material_type);
     if (!$data) {
         throw new Exception(" Page is not exist", 404);
     } elseif ($data[0]['status'] == 0) {
         throw new Exception(" Page not publish", 2);
     }
     if (!$indexModel->existTranslationPage(Router::getId(), Router::getLanguage(), $material_type)) {
         throw new Exception(" Page has no translation", 204);
     }
     $args = $data[0];
     return $args;
 }
 public function translateAction()
 {
     if (Session::hasUser('admin')) {
         $indexModel = new IndexModel();
         $data_page = array();
         foreach (Config::get('languages') as $v) {
             $data_page[$v] = $indexModel->getPage(Router::getId(), $v, $this->material_type);
         }
         $request = new Request();
         $addModel = new AddEditModel($request, $this->material_type);
         //    $menuModel = new MenuModel();
         //  $data = $menuModel->getMainMenu('en');
         //  $menuController = new MenuController();
         //  $main_menu_array = $menuController->menuArray($data);
         if ($request->isPost()) {
             if ($addModel->isValid()) {
                 if ($addModel->isAliasExist()) {
                     $addModel->translate($data_page['en'][0]['id'], 'en');
                 } else {
                     Session::setFlash('Документ с таким псевдонимом уже существует!');
                 }
             } else {
                 Session::setFlash('Поле "Заголовок" обязательно для заполнения');
             }
         }
         $this->rewrite_file_alias();
         $args = array('data_page' => $data_page, 'addModel' => $addModel, 'redirect' => $request->post('redirect'));
         $tpl = 'translate' . str_replace(' ', '', ucwords(str_replace('_', ' ', $this->material_type)));
         return $this->render_admin($args, $tpl);
     } else {
         throw new Exception('Access  denied', 403);
     }
 }
 public function getBlockMainMenuAction()
 {
     $block_menu_array = array();
     $page_with_menu_block = array();
     $block_menu = array();
     foreach (self::getMainMenuArray() as $k => $v) {
         self::getById(self::getMainMenuArray(), $k);
         if (isset($v['child'])) {
             $block_menu_array[$k] = self::getMainMenuPart();
             $array_for_id = self::getMainMenuPart()['child'];
             self::$idArray = array();
             self::idArray($array_for_id);
             $page_with_menu_block[$k] = self::getIdArray();
             $page_with_menu_block[$k][$k] = $k;
         }
     }
     foreach ($page_with_menu_block as $k => $v) {
         $id_page = Router::getId();
         if (isset($v[$id_page])) {
             $block_menu[] = $block_menu_array[$k];
         }
     }
     $args = array('block_menu' => $block_menu, 'pages' => $page_with_menu_block);
     return $this->render_menu_block($args);
 }