本文整理汇总了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;
}
示例2: getControllerAliasByName
public static function getControllerAliasByName($controller_name)
{
$mapping = cmsConfig::getControllersMapping();
if (!$mapping || !isset($mapping[$controller_name])) {
return false;
}
return $mapping[$controller_name];
}
示例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']);
//.........这里部分代码省略.........