Сабж возник, когда решил привинтить к сайту на CMSMS графическое меню (пункты меню - cms_selflink с imageonly=1). В коде шаблона картинки динамически подменяются, дабы показывать пользователю, на какой странице он находится. Меню двухуровневое, однако картинками обозначается только верхний уровень. Собсна, на дочерних страницах картинка должна быть та же, что и у родителя.
Подскажите, плз! Весь русский форум перерыл, аналогичных ситуаций у народа не возникало, видимо.
Как из кода шаблона узнать страницу-родит
-
- Power Poster
- Posts: 339
- Joined: Thu Nov 01, 2007 3:11 pm
Re: Как из кода шаблона узнать страницу-родит
Если я правильно понял:
Я выкладывал тэг для поиска родителя текущего элемента... Там можно просто заменить возврат альяса возвратом картинки. Ну или вообще объект, из которого можно получить все, что нужно... Соответственно - правишь тэг таким образом, чтобы по альясу можно было получить код картинки родительского элемента, для второго уровня меню...
Ссылка на топик:
http://forum.cmsmadesimple.org/index.ph ... 209.0.html
Я выкладывал тэг для поиска родителя текущего элемента... Там можно просто заменить возврат альяса возвратом картинки. Ну или вообще объект, из которого можно получить все, что нужно... Соответственно - правишь тэг таким образом, чтобы по альясу можно было получить код картинки родительского элемента, для второго уровня меню...
Ссылка на топик:
http://forum.cmsmadesimple.org/index.ph ... 209.0.html
Re: Как из кода шаблона узнать страницу-родит
Все так, тока не картинка, а все-таки альяс родителя нужен. Взял за основу твой тег, переделал под свои нужды. Выкладываю.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);