Как в tpl шаблонизаторе вывести alt-name страницы — различия между версиями
Материал из Umicms
Mad grant (обсуждение | вклад) (Новая страница: «'''Актуально для версии 2.9.5''' == Задача == Если Вы столкнулись с данной задачей, то решить её …») |
Mad grant (обсуждение | вклад) |
||
Строка 18: | Строка 18: | ||
<source lang="php"> | <source lang="php"> | ||
− | public function getAltName($page_id){ | + | public function getAltName($page_id == false){ |
$current_page_id = cmsController::getInstance()->getCurrentElementId(); | $current_page_id = cmsController::getInstance()->getCurrentElementId(); | ||
Строка 24: | Строка 24: | ||
$hierarchy_col = umiHierarchy::getInstance(); | $hierarchy_col = umiHierarchy::getInstance(); | ||
− | if | + | if($page_id == false){ |
if($current_page_id == false && defined('VIA_HTTP_SCHEME')){ | if($current_page_id == false && defined('VIA_HTTP_SCHEME')){ |
Версия 09:59, 11 февраля 2014
Актуально для версии 2.9.5
Задача
Если Вы столкнулись с данной задачей, то решить её стандартными средствами нельзя. Необходимо написать кастомный макрос, пример оного дан ниже.
- Для xslt применения макроса не имеет смысла - alt-name можно получить из result'а.
Решение
%custom getAltName()% — выводит alt-name страницы
Параметры: custom getAltName([$page_id])
$page_id
Идентификатор страницы, alt-name которой требуется вывести. Если параметр не указан, то берется id текущей страницы, макрос нельзя вызывать через HTTP SCHEME MODE.
Для применения этого макроса скопируйте содержимое листинга макроса в файл /classes/modules/custom.php.
public function getAltName($page_id == false){
$current_page_id = cmsController::getInstance()->getCurrentElementId();
$hierarchy_col = umiHierarchy::getInstance();
if($page_id == false){
if($current_page_id == false && defined('VIA_HTTP_SCHEME')){
throw new publicException('cant get current element via HTTP SCHEME MODE');
}
$page_id = $current_page_id;
$page = $hierarchy_col->getElement($page_id, true, true);
return $page->getAltName();
}else{
$page_id = intval($page_id);
$page = $hierarchy_col->getElement($page_id, true, true);
if($page == false){
throw new publicException('page with id = ' . $page_id . ' not found');
}
return $page->getAltName();
}
}