Page 1 of 1

Как из кода шаблона узнать страницу-родит

Posted: Mon Aug 17, 2009 7:30 am
by m1st
Сабж возник, когда решил привинтить к сайту на CMSMS графическое меню (пункты меню - cms_selflink с imageonly=1). В коде шаблона картинки динамически подменяются, дабы показывать пользователю, на какой странице он находится. Меню двухуровневое, однако картинками обозначается только верхний уровень. Собсна, на дочерних страницах картинка должна быть та же, что и у родителя.
Подскажите, плз! Весь русский форум перерыл, аналогичных ситуаций у народа не возникало, видимо.

Re: Как из кода шаблона узнать страницу-родит

Posted: Mon Aug 17, 2009 8:26 am
by von-hamster
Если я правильно понял:

Я выкладывал тэг для поиска родителя текущего элемента... Там можно просто заменить возврат альяса возвратом картинки. Ну или вообще объект, из которого можно получить все, что нужно... Соответственно - правишь тэг таким образом, чтобы по альясу можно было получить код картинки родительского элемента, для второго уровня меню...

Ссылка на топик:
http://forum.cmsmadesimple.org/index.ph ... 209.0.html

Re: Как из кода шаблона узнать страницу-родит

Posted: Mon Aug 17, 2009 10:17 am
by m1st
von-hamster wrote: Если я правильно понял:

Я выкладывал тэг для поиска родителя текущего элемента... Там можно просто заменить возврат альяса возвратом картинки. Ну или вообще объект, из которого можно получить все, что нужно... Соответственно - правишь тэг таким образом, чтобы по альясу можно было получить код картинки родительского элемента, для второго уровня меню...
Все так, тока не картинка, а все-таки альяс родителя нужен. Взял за основу твой тег, переделал под свои нужды. Выкладываю.

Код для получения алиаса непосредственного родителя.

Code: Select all

global $gCms;
$self = ContentOperations::LoadContentFromId($gCms->variables['content_id']);
if ($self->ParentId() != -1) 
	$parent_alias = ContentOperations::LoadContentFromId($self->ParentId()) -> Alias();
else
	$parent_alias = "none";


$smarty = &$gCms->GetSmarty();
$smarty->assign('parent_alias', $parent_alias);
Спасибо:)