Приклади

    Простий приклад без пагінації

    [!DocLister?
    &display=`20`
    &summary=`notags,len:200`
    &dateSource=`pub_date`
    &parents=`5` 
    &tvList=`img,tag` 
    &id=`lastnews` 
    &tpl=`ListSummaryPost`!]

    Вибірка останніх 20 документів батьком яких є документ з ID=5.

    Текст кожного документа буде схильний до додаткової обробки класом summary з попереднім видаленням html тегів і урізанням довжини тексту до 200 +/- 50 символів. При цьому в чанка будуть доступні плейсхолдери tv.img і tv.tag зі значенням TV параметрів img і tag.

    Для наочності чанк ListSummaryPost

    <div class="post">
    <div class="date"></div>
    <h3><a href="/[~~]"></a> </h3>
    <div class="tag"><span>Теги: </span>  </div>
    <div class="content">
        <a href="/[~~]" title=""><img src="" /></a>
        <p>...</p>
        <a href="/[~~]" title="Подробнее">Подробнее</a> 
    </div>
    </div>

    Використання конфігів

    [!DocLister? &config=`test`!]

    Після чого створюємо JSON файл test.json в папці сніпета /config/custom/ з таким вмістом:

    {
        "display" : "20",
        "summary" : "notags,len", 
        "dateSource" : "pub_date",
        "parents" : "5",
        "tvList" : "img,tag",
        "id" : "lastnews",
        "tpl" : "ListSummaryPost"
    }

    Результат роботи цього виклику буде ідентичний попередньому прикладу.

    Використання лексиконів

    [!DocLister? &tpl=`example` &customLang=`news`!]

    Після чого створюємо php файл news.php з $_lang масивом в підпапці сніпета /lang/

    <?php if (!defined('MODX_BASE_PATH')) {    die('What are you doing? Get out of here!');}
    $_lang = array();
    $_lang['newsTitle'] = 'Останні новини';
    return $_lang;

    Тепер в чанку example можно використовувати тег [%newsTitle%] і він автоматично буде замінений на повідомлення "Останні новини".

    Складний приклад з пагінацією

    [!DocLister? 
    &display=`4` 
    &depth=`2` 
    &tpl=`ListSummaryPost` 
    &summary=`notags,len:500` 
    &dateFormat=`%d.%m.%Y в %H:%M` 
    &dateSource=`pub_date` 
    &parents=`2` 
    &tvList=`img,tag`
    &renderTV=`img` 
    &id=`list` 
    &showParent=`0` 
    &addWhereList=`c.template IN (6,7)`
    &sortBy=`menuindex`
    &paginate=`pages`
    &TplNextP=`` 
    &TplPrevP=`` 
    &TplPage=`@CODE: <li><a href=""></a></li>` 
    &TplCurrentPage=`@CODE: <li class="active"><a href=""></a></li>`
    &TplWrapPaginate=`@CODE: <div class="pagination"><ul></ul></div>`
    !]
    
    

    В даному випадку відбувається вибірка всіх документів з контейнера з ID = 2 з глибиною 2 і шаблонами 6 або 7. Після чого будуть відфільтровані документи контейнери (ті документи всередині яких проводився пошук. А саме - документ з ID = 2 і все його дочірні елементи які є контейнерами).

    При виведенні буде підготовлена ​​пагінація типу page і перевизначаються шаблони для елементів пагінації на ті, що вказані в параметрах TplWrapPaginate, TplCurrentPage і TplPage. Шаблони для посилань наступна і попередня будуть порожніми (відповідно текст в цих елементах не була виводитимуться). До всіх плейсхолдерів сніпета DocLister додасться префікс list, а до кожного документ бере участь у видачі додадуться значення TV параметрів img і tag в плейсхолдери tv.img і tv.tag відповідно.

    TV параметр img буде отрендеріть відповідно до віджетом, зазначеним при створенні цього TV параметра. Всього на сторінці буде відображено по 4 документа. При цьому сортування буде проведена не за датою створення, а по menuindex (позиції в меню). Як джерело дати братиметься дата публікації документа.

    Для наочності чанк ListSummaryPost

    <div class="post">
    <div class="date"></div>
    <h3><a href="/[~~]"></a> </h3>
    <div class="tag"><span>Теги: </span>  </div>
    <div class="content">
        <a href="/[~~]" title=""></a>
        <p>...</p>
        <a href="/[~~]" title="Подробнее">Подробнее</a> 
    </div>
    </div>

    Приклад виведення інформації з таблиці, відмінною від site_content

    В даному прикладі інформація буде виводитися з таблиці site_snippets. Як колонки PrimaryKey виступає поле id. Сортування відбувається по зростанню значень в колонці name.

    [!DocLister?
    &controller=`onetable`
    &idType=`documents`
    &table=`site_snippets`
    &display=`10`
    &ignoreEmpty=`1`
    &sortBy=`name`
    &sortDir=`ASC`
    &tpl=`row_tpl`
    &showParent=`0` 
    &idField=`id`
    !]

    Чанк row_tpl

    <div class="row"><div class="span12">
        <h3 class="pagination-centered"></h3>
        <code></code><br />
        <table class="table table-striped table-bordered">
            <thead>
                <tr>
                    <td><strong>Поле</strong></td>
                    <td><strong>Значение</strong></td>
                </tr>
            </thead>
            <tbody>
                <tr><td>id</td><td></td></tr>
                <tr><td>name</td><td></td></tr>
                <tr><td>description</td><td></td></tr>
                <tr><td>editor_type</td><td></td></tr>
                <tr><td>category</td><td></td></tr>
                <tr><td>cache_type</td><td></td></tr>
                <tr><td>locked</td><td></td></tr>
                <tr><td>properties</td><td></td></tr>
                <tr><td>moduleguid</td><td></td></tr>
            </tbody>
        </table>
        </div>
    </div>