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); }