Page 1 of 1
{menu} выводит страниц родителя
Posted: Fri Dec 12, 2014 5:46 pm
by sbupravi
Необходимо на дочерней странице выводить список других дочених страниц родителя. Есть тег {menu childrenof=$page_alias}, но как подставлять алиас автоматически?
Т.к. разделов много!
Re: {menu} выводит страниц родителя
Posted: Fri Dec 12, 2014 6:24 pm
by Dr.CSS
{menu start_level='2'} will show all children of the parent page even if you are on a second level child page...
Re: {menu} выводит страниц родителя
Posted: Fri Dec 12, 2014 9:09 pm
by sbupravi
Не подходит, потому как меню может быть многоуровневым и start_level будет равен 2,3 или 4...
Re: {menu} выводит страниц родителя
Posted: Sat Dec 13, 2014 1:41 pm
by guro
Создаёте тег пользователя "get_parent_alias"
Code: Select all
global $gCms;
global $smarty;
$manager =& $gCms->GetHierarchyManager();
$var = 'parent_alias';
if( isset($params['assign']) && $params['assign'] != '' ) {
$var = $params['assign'];
}
$result = "NO RESULT";
$thisPage = $gCms->variables['content_id'];
$currentNode = &$manager->sureGetNodeById($thisPage);
$currentNode =& $currentNode->getParentNode();
$currentContent =& $currentNode->getContent();
$result = $currentContent->Alias();
$smarty->assign($var,$result);
Вызываете его перед
Re: {menu} выводит страниц родителя
Posted: Sat Dec 13, 2014 5:49 pm
by chandra
These sources are very old school and maybe they will not work.
Old school
New style
Code: Select all
$gCms = cmsms();
$smarty = $template->smarty;
Additionally $gCms->variables['content_id'] is an internal variable now and should not used.
It's a lot easier to use Toolbox module and use the function {tbtools::getParentAlias()}
Re: {menu} выводит страниц родителя
Posted: Sat Dec 13, 2014 9:18 pm
by guro
Как же меня бесят вот такие комментаторы.
Казалось бы, русская ветка форума - отвечайте по русски. Какой тогда смысл в ней, если ответы будут давать на английском! Это тоже самое как если бы я писал по русски в английской ветке или еще какой-нибудь!
Re: {menu} выводит страниц родителя
Posted: Sat Dec 13, 2014 10:24 pm
by sbupravi
guro wrote:Создаёте тег пользователя "get_parent_alias"
Code: Select all
global $gCms;
global $smarty;
$manager =& $gCms->GetHierarchyManager();
$var = 'parent_alias';
if( isset($params['assign']) && $params['assign'] != '' ) {
$var = $params['assign'];
}
$result = "NO RESULT";
$thisPage = $gCms->variables['content_id'];
$currentNode = &$manager->sureGetNodeById($thisPage);
$currentNode =& $currentNode->getParentNode();
$currentContent =& $currentNode->getContent();
$result = $currentContent->Alias();
$smarty->assign($var,$result);
Вызываете его перед
Не дает сохранить шаблон, если вставляю тег пользователя:{get_parent_alias}
Re: {menu} выводит страниц родителя
Posted: Sat Dec 13, 2014 10:29 pm
by sbupravi
guro wrote:Как же меня бесят вот такие комментаторы.
Казалось бы, русская ветка форума - отвечайте по русски. Какой тогда смысл в ней, если ответы будут давать на английском! Это тоже самое как если бы я писал по русски в английской ветке или еще какой-нибудь!
Может индус хотел подсказать что-то важное? =)
Re: {menu} выводит страниц родителя
Posted: Sun Dec 14, 2014 3:56 am
by guro
sbupravi wrote:Не дает сохранить шаблон
Да, действительно. Без if-ов отказывается работать. Вот исправленный вариант
Code: Select all
global $smarty;
$manager = cmsms()->GetHierarchyManager();
$var = 'parent_alias';
if( isset($params['assign']) && $params['assign'] != '' ) {
$var = $params['assign'];
}
$result = "NO RESULT";
$thisPage = cmsms()->variables['content_id'];
$currentNode = $manager->sureGetNodeById($thisPage);
if ( isset($currentNode) ) {
if ( $currentNode->getLevel() > 0 ){
$currentNode =& $currentNode->getParentNode();
}
$currentContent =& $currentNode->getContent();
$result = $currentContent->Alias();
}
$smarty->assign($var,$result);
Re: {menu} выводит страниц родителя
Posted: Sun Dec 14, 2014 5:41 am
by chandra
sbupravi wrote:
Может индус хотел подсказать что-то важное? =)
Если ответ содержит ошибки, да

.
Кстати - как вы знаете, что я индус?
Благодаря Переводчик Google я могу читать по-русски. Только иногда смешные переводы я хотел, чтобы нанести на кого.
Re: {menu} выводит страниц родителя
Posted: Sun Dec 14, 2014 11:01 am
by sbupravi
chandra wrote:
Кстати - как вы знаете, что я индус?
Ясновидящий.
guro wrote:Да, действительно. Без if-ов отказывается работать.
Круто! Спасибо!