Разделы

  
 

Информация о родителе [Evo]

Порой необходимо быстро получить информацию о родителе, например вывести заголовок, id и т.п. Для этого есть getPageInfo, но в чистом виде нужную информацию мы не получим. А уж если нам понадобилось значение tv параметра, то придется вызывать getTemplateVar. Чтобы не плодить несколько снппетов набросал один. Ничего такого заумного в нем нет, но все же решил поделиться.

Называем getParentInfo
<?php
$parent=$modx->getParent($modx->documentIdentifier);
$value='';
if(isset($tv) && $tv==1){
   $parent=$modx->getTemplateVar($info,'*',$parent['id'],1);
   if($parent['value']!=''){
      $value=$parent['value'];
   }else{
      $value=$parent['defaultText'];
   }
}else{
   $parent=$modx->getPageInfo($parent['id'],'1',$info);
   $value=$parent[$info];
}
return $value;
?>


Возьмем заголовок страницы родителя
[[getParentInfo? &info=`pagetitle`]]

Узнаем значение tv параметра MyParametr
[[getParentInfo? &info=`MyParametr` &tv=`1`]]

parent из главной странице [REVO]

формирую ссылку на странице следующим путем:
[[++site_url]][[~[[*parent]]]]/[[*id]]

но когда вставляю такой код, для формирования списка, на главной, со списком статей, ничего не работает.

Пробовал создать TV — pathToPage, и туда воткнуть [[++site_url]][[~[[*parent]]]]/[[*id]]
Потом вызывать [[*pathToPage]] — ожидая там увидеть путь. Но нет.

Как правильно вызвать TV дочерней страницы, которая находится на главной?

Может есть какой то способ получить path по ID страницы?
  • -1
  • 22 февраля 2012, 17:47
  • Lexx
  • 6

[REVO] Гуру, помогите с выводом тайтла родительской страницы

Мне нужно простое решение вывода тайтла родительской страницы.

Как в запросе MySQL выбрать все документы по самому верхнему родителю?

Как в запросе MySQL выбрать все документы по самому верхнему родителю? Нужно для поиска. Родитель «Каталог (id=2)». Запрос типа:
SELECT ms.id, ms.pagetitle, ms.description, ms.isfolder, tc.value AS ImageTovar, tc2.value AS ImageTovarMin FROM $tbl ms LEFT JOIN (SELECT * FROM modx_site_tmplvar_contentvalues WHERE tmplvarid=4) tc ON tc.contentid = ms.id LEFT JOIN (SELECT * FROM modx_site_tmplvar_contentvalues WHERE tmplvarid=5) tc2 ON tc2.contentid = ms.id WHERE ms.parent=2


НЕ РАБОТАЕТ, т.к. ms.parent — это родитель ни верхнего уровня, а непосредственно текущего документа.

Подскажите как решить?

Как определить в TV параметре pagetitle родителя Evo

в идеале мне нужно заносить в ТВ параметр поле pagetitle из родительского документа.
про этом id текущего документа не известно.
это нужно для поиска потом по этому параметру.

нужна конструкция @EVAL

пробовал по разному уже

вот одна из попыток:
@EVAL return $modx->getParentIds($modx->documentIdentifier);

и ничего не выводит.
хотя бы понять как определить id текущего документа, дальше родителя получить не сложно.

подскажите кто знает пожалста

[*parent*] в Wayfinder

Не понимаю что не так.
если Wayfinder запущен обычно:
[[Wayfinder? &startId=`2`]]
все работает, меню выводиться.
Если же «динамически» с использованием [*parent*]:
[[Wayfinder? &startId=`[*parent*]`]]
то сообщает, что мол нет найденных документов, а дебаг в свою очередь дает ясно понять, что [*parent*] не заменяется на цифру и передается в Wayfinder как строка. Потому и не находит.
Вопрос в том — а схрена ли [*parent*] не заменяется парсером на цифру до парсинга сниппета?

UPD. Если это важно — сниппет записан в чанке, который в свою очередь вызывается в шаблоне.
  • 0
  • 16 августа 2010, 01:12
  • lesch
  • 4