14
Апр
2017

ModX Revolution страница новостей

Добрый день. Столкнулся с проблемой в modx. Нашел много документации на Evo, а вот на Revo как-то не получилось. Либо совсем ничего не сказано, либо упомянуто вскользь и важные детали упущены. В связи с этим назрел такой вопрос: Страница ресурсов

Создал ресурс под названием статьи, применил стандартный шаблон и в контенте применил такой код для отображения самого контента (простите за тавтологию). В месте, где должны отображаться сами статейки прикрепил чанк [[$news]].

Чанк 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. Как выводить картинку - миниатюру на станице статей?

Источник: https://ru.stackoverflow.com/questions/653585/modx-revolution-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0-%D0%BD%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B5%D0%B9

Share

Тебе может это понравится...