當前位置: 首頁>>代碼示例>>PHP>>正文


PHP cmsConfig::getControllersMapping方法代碼示例

本文整理匯總了PHP中cmsConfig::getControllersMapping方法的典型用法代碼示例。如果您正苦於以下問題:PHP cmsConfig::getControllersMapping方法的具體用法?PHP cmsConfig::getControllersMapping怎麽用?PHP cmsConfig::getControllersMapping使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在cmsConfig的用法示例。


在下文中一共展示了cmsConfig::getControllersMapping方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: getCtypeByAlias

 private function getCtypeByAlias($ctype_name)
 {
     $mapping = cmsConfig::getControllersMapping();
     if ($mapping) {
         foreach ($mapping as $name => $alias) {
             if ($alias == $ctype_name) {
                 return $name;
             }
         }
     }
     return false;
 }
開發者ID:Val-Git,項目名稱:icms2,代碼行數:12,代碼來源:category_view.php

示例2: getControllerAliasByName

 public static function getControllerAliasByName($controller_name)
 {
     $mapping = cmsConfig::getControllersMapping();
     if (!$mapping || !isset($mapping[$controller_name])) {
         return false;
     }
     return $mapping[$controller_name];
 }
開發者ID:asphix,項目名稱:icms2,代碼行數:8,代碼來源:core.php

示例3: run

 public function run()
 {
     $props = $props_values = false;
     // Получаем название типа контента и сам тип
     $ctype = $this->model->getContentTypeByName($this->request->get('ctype_name', ''));
     // Получаем SLUG записи
     $slug = $this->request->get('slug', '');
     if (!$ctype) {
         if ($this->cms_config->ctype_default) {
             $ctype = $this->model->getContentTypeByName($this->cms_config->ctype_default);
             if (!$ctype) {
                 cmsCore::error404();
             }
             $slug = $ctype['name'] . '/' . $slug;
         } else {
             cmsCore::error404();
         }
     } else {
         if ($this->cms_config->ctype_default && $this->cms_config->ctype_default == $this->cms_core->uri_action) {
             $this->redirect(href_to($slug . '.html'), 301);
         }
         // если название переопределено, то редиректим со старого на новый
         $mapping = cmsConfig::getControllersMapping();
         if ($mapping) {
             foreach ($mapping as $name => $alias) {
                 if ($name == $ctype['name'] && !$this->cms_core->uri_controller_before_remap) {
                     $this->redirect(href_to($alias . '/' . $slug . '.html'), 301);
                 }
             }
         }
     }
     // чтобы привязки виджетов к записям работали
     if ($this->cms_config->ctype_default && $this->cms_config->ctype_default == $ctype['name']) {
         $this->cms_core->uri = $this->cms_config->ctype_default . '/' . $this->cms_core->uri;
     }
     if (!$ctype['options']['item_on']) {
         cmsCore::error404();
     }
     // Получаем запись
     $item = $this->model->getContentItemBySLUG($ctype['name'], $slug);
     if (!$item) {
         cmsCore::error404();
     }
     // Проверяем прохождение модерации
     $is_moderator = $this->cms_user->is_admin || $this->model->userIsContentTypeModerator($ctype['name'], $this->cms_user->id);
     if (!$item['is_approved']) {
         if (!$is_moderator && $this->cms_user->id != $item['user_id']) {
             cmsCore::error404();
         }
     }
     // Проверяем публикацию
     if (!$item['is_pub']) {
         if (!$is_moderator && $this->cms_user->id != $item['user_id']) {
             cmsCore::error404();
         }
     }
     // Проверяем приватность
     if ($item['is_private'] == 1) {
         // доступ только друзьям
         $is_friend = $this->cms_user->isFriend($item['user_id']);
         $is_can_view_private = cmsUser::isAllowed($ctype['name'], 'view_all');
         if (!$is_friend && !$is_can_view_private && !$is_moderator) {
             // если в настройках указано скрывать, 404
             if (empty($ctype['options']['privacy_type']) || $ctype['options']['privacy_type'] == 'hide') {
                 cmsCore::error404();
             }
             // иначе пишем, к кому в друзья нужно проситься
             cmsUser::addSessionMessage(sprintf(LANG_CONTENT_PRIVATE_FRIEND_INFO, !empty($ctype['labels']['one']) ? $ctype['labels']['one'] : LANG_PAGE, href_to('users', $item['user_id']), htmlspecialchars($item['user']['nickname'])), 'info');
             $this->redirect(href_to($ctype['name']));
         }
     }
     // Проверяем ограничения доступа из других контроллеров
     if ($item['is_parent_hidden']) {
         $is_parent_viewable_result = cmsEventsManager::hook('content_view_hidden', array('viewable' => true, 'item' => $item, 'is_moderator' => $is_moderator));
         if (!$is_parent_viewable_result['viewable']) {
             if (isset($is_parent_viewable_result['access_text'])) {
                 cmsUser::addSessionMessage($is_parent_viewable_result['access_text'], 'error');
                 if (isset($is_parent_viewable_result['access_redirect_url'])) {
                     $this->redirect($is_parent_viewable_result['access_redirect_url']);
                 } else {
                     $this->redirect(href_to($ctype['name']));
                 }
             }
             cmsUser::goLogin();
         }
     }
     $item['ctype_name'] = $ctype['name'];
     if ($ctype['is_cats'] && $item['category_id'] > 1) {
         $item['category'] = $this->model->getCategory($ctype['name'], $item['category_id']);
     }
     // Получаем поля для данного типа контента
     $fields = $this->model->getContentFields($ctype['name']);
     // Парсим значения полей
     foreach ($fields as $name => $field) {
         $fields[$name]['html'] = $field['handler']->setItem($item)->parse($item[$name]);
     }
     // Получаем поля-свойства
     if ($ctype['is_cats'] && $item['category_id'] > 1) {
         $props = $this->model->getContentProps($ctype['name'], $item['category_id']);
         $props_values = $this->model->getPropsValues($ctype['name'], $item['id']);
//.........這裏部分代碼省略.........
開發者ID:Val-Git,項目名稱:icms2,代碼行數:101,代碼來源:item_view.php


注:本文中的cmsConfig::getControllersMapping方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。