Добрый день. Столкнулся с проблемой в modx. Нашел много документации на Evo, а вот на Revo как-то не получилось. Либо совсем ничего не сказано, либо упомянуто вскользь и важные детали упущены. В связи с этим назрел такой вопрос:
Создал ресурс под названием статьи, применил стандартный шаблон и в контенте применил такой код для отображения самого контента (простите за тавтологию). В месте, где должны отображаться сами статейки прикрепил чанк [[$news]].
В результате ссылка a[href="[[~[[*id]]]]"] ссылается на саму страницу статей, т.е. на основной ресурс "Статьи". (В принципе то и логично). Ну и соответственно [[*pagetitle]] и [[*introtext]] тоже берут контекст из основного ресурса "Статьи".
То, что должно отображаться в самих статьях - это созданные вложенные документы в ресурс статьи:
Изначально я пытался сделать ч/з сниппет articles:
Но беда в том, что modx функция getDocumentChildren() на Revo не работает, нашел аналог, как писали в интернете, getChildIds(). Но она ничего не возвращает. (Точнее я пытался вызвать результат работы ф-ии ч-з echo и цикл foreach(), но он мне вывел просто 3 числа: 14, 15, 16; вместо, как мне казалось, *id, *pagetitle, *introtext).
В итоге, добрые люди, помогите сделать страницу со статьями. Как лучше и правильнее реализовать сей действие? (хотелось бы с кодом)
Ресурс-статьи:
<div class="container-fluid articles_page">
<div class="container"><center>
<h1>НОВОСТИ САЙТА</h1>
<div class="divider"> </div>
</center>
<div class="news-block masonry" data-columns="">
[[$news]]
</div>
</div>
</div>
Чанк:
<div>
<a href="[[~[[*id]]]]">
<div class="thumbnail">
<img src="http://placehold.it/1280x720" class = "img-responsive" alt=\"\">
<div class=\"caption\">
<h3>[[*pagetitle]]</h3>
<span class="date">[[*publishedon:date='%d/%b/%y']]</span>
<p>[[*introtext]]</p>
</div>
</div>
</a>
</div>
Сниппет articles:
<?php
$results = $modx->getChildIds(
$id = 13,
$active = 1,
$deleted = 0,
'id, pagetitle, published, introtext, content, menuindex, createdby, createdon, deleted, menutitle',
$where = '',
$sort='createdon',
$dir='DESC',
$limit = ''
);
foreach($results as $key => $value) {
if ($value["menutitle"] != "") {
$title = $value["menutitle"];
}
else{
$title = $value["pagetitle"];
}
$items .= "
<div>
<a href=".$value["createdon"].">
<div class=\"thumbnail\">
<img src=\"http://placehold.it/1280x720\" class = \"img-responsive\" alt=\"\">
<div class=\"caption\">
<h3>".$title."</h3>
".$value["introtext"] ."
</div>
</div>
</a>
</div>
";
}
$output = "
<div id=\"pagination\">
<a href=\"#\">< Назад</a>
<a href=\"#\">Вперед ></a>
</div>
";
return $items.$output;
P.s. Как выводить картинку - миниатюру на станице статей?
[[!getResources?
&parents=`[[*id]]`
&tvPrefix=``
&includeTVs=`1`
&tpl=`catalogItemTpl`
&depth=`1`
&showHidden=`0`
&sortbyTVType=`integer`
&sortbyTV=`price-for-m2`
&sortdirTV=`ASC`
&limit=`16`
&where=`{"isfolder:!=":1}`
]]
Это пример запроса, не конкретно в вашем случае...А вообще можете погуглить, в сети очень много примеров. Так же я вам дал документацию. И чтобы в чанке поля выводились конкретного ресурса а не родителя надо вызывать вместо [[*pagetitle]] - [[+pagetitle]] итд
<div class="container-fluid articles_page">
<div class="container"><center>
<h1>НОВОСТИ САЙТА</h1>
<div class="divider"> </div>
</center>
<div class="news-block masonry" data-columns="">
[[!getResources?
&showHidden=`1`
&tpl=`news`
&limit=`10`
&includeContent=`1`
&includeTVs=`1`
&processTVs=`1`]]
</div>
</div>
</div>
Выставляете нужный шаблон и т.д.
Галочкой указываете шаблоны, которые смогут их применять. TV нужны (в данном случае), чтобы вставлять изображение в превью на сайте. Также в параметрах ввода выставляете тип "Изображение" 1. И в заключительном пункте создаете Чанк с образцом:
<div>
<a href="[[~[[+id]]]]">
<div class="thumbnail">
<img src="[[+tv.news_img:phpthumbof='w=300&h=350&zc=1']]" class = "img-responsive" alt="">
<div class="caption">
<h3>[[+pagetitle]]</h3>
<span class="date">[[publishedon:date='%d/%b/%y]]</span>
<p>[[+introtext]]</p>
</div>
</div>
</a>
</div>
и в принципе, все. А не получалось это сделать, потому что везде инфа либо неполная, либо непонятно написано, либо написано, но не так(т.е. по тем образцам ничего не работало)
Спасибо за внимание.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Подскажите пожалуйста, что я делаю нет так и почему OG разметка на сайте Битрикс не работает? Пишу разметку для компонента newsdetail