Как узнать id родительского документа на несколько уровней вверх(2,3 и более). А точнее какая переменная хранит в себе эту информацию?
См. код сниппета UltimateParent
UltimateParent, разобрался. Но он мне не совсем подходит. Я создаю rss ленту и использую ditto.
Документы организованы таким способом:
Ресурс1(1)
- Ресурс2(2)
- Ресурс3(3)
Ресурс4(4)
- Ресурс5(5)
- Ресурс6(6)
Код ditto находится в корне, ресурс rss.
[[Ditto? &tpl=`rss` &parents=`1,4` &display=`all` &total=`all` &depth=`3`]]
&tpl=`rss` - шаблон вывода ditto.
В этом шаблоне есть кусок кода <link>[(site_url)][~[[UltimateParent? &top=`2`]]~]</link>
При таком варианте выдает линк на документ в котором этот код, т.е линк на rss. А мне нужно линк на ресурс1 при первом вызове ditto и на ресурс4 при втором.
P.S. Если использую [+parent+] вместо UltimateParent, то работает нормально но ссылки мне нужны на уровень выше, а [+parent+] это сделать не может.
Quote from: like2live at Apr 19, 2011, 12:13 PM
... Я создаю rss ленту и использую ditto ...
А я не использую Ditto для RSS ленты вот таким способом:
<?php
define('DATE_FORMAT_RFC822','r');
$lastBuildDate=date(DATE_FORMAT_RFC822);
header("Content-type: text/xml; charset=UTF-8");
if(isset($ids)){$ids=explode(",",$ids);$cnt_ids=count($ids);}
($NameOfRssFeed) ? $NameOfRssFeed : $NameOfRssFeed="NameOfRssFeed";
($LinkOfSiteThe) ? $LinkOfSiteThe : $LinkOfSiteThe="http://vuka-vuka.ru";
($DescOfSite) ? $DescOfSite : $DescOfSite="DescOfSite";
($Lang) ? $Lang : $Lang="ru";
$xmlbox="<?xml version=\"1.0\" encoding=\"UTF-8\"?><rss version=\"2.0\">
<channel>
<title>".$NameOfRssFeed."</title>
<link>".$LinkOfSiteThe."</link>
<description>".$DescOfSite."</description>
<pubDate>".$lastBuildDate."</pubDate>
<lastBuildDate>".$lastBuildDate."</lastBuildDate>
<language>".$Lang."</language>
";
if($cnt_ids == 1){
$parents_box="`parent`=".$ids['0']." ";
}else{
$parents_box=$ids['0']." ";
for($i=1;$i<$cnt_ids;$i++)
{
$parents_box.=" OR `parent`=".$ids[$i]." ";
}
} unset($i);
$query = "SELECT `pagetitle`,`introtext`,`id`,`createdon`
FROM ".$modx->getfulltablename('site_content')."
WHERE `published`=1 AND `id`<>".$modx->documentObject['id']." AND ".$parents_box."
ORDER by `createdon` desc
LIMIT 0,10";
$res = mysql_query($query);
$row=$modx->db->getRow($res);
do
{
$title = strip_tags(trim($row['pagetitle']));
$anon = $row['introtext'];
$url = "[~".$row['id']."~]";
$pubDate = date(DATE_FORMAT_RFC822, $row['createdon']);
$xmlbox.="<item>
<title>".$title."</title>
<description><![CDATA[".$anon."]]></description>
<link>".$modx->config['site_url'].$url."</link>
<pubDate>".$pubDate."</pubDate>
</item>
";
}
while ($row=$modx->db->getRow($res));
$xmlbox.="</channel></rss>";
return $xmlbox;
?>
$ids - id парентов или парента ресурсов или ресурса для отображения в ленте
$NameOfRssFeed - имя ленты (имя сайта/блога например)
$LinkOfSiteThe - ссылка сайта/блога
$DescOfSite - описание сайта/блога
$Lang - не обязательно задавать этот параметр если у Вас RU сайт/блог