Примеры

    Ditto: Примеры

    Примеры вызова сниппета Ditto.

    Простой вызов

    [!Ditto? &tpl=`news_tpl` &parents=`2`!] // некэшируемый вызов
    [[Ditto? &tpl=`news_tpl` &parents=`2`]] // кэшируемый вызов

    где:

    &tpl=`news_tpl` - шаблон вывода документов

    &parents=`2` - ID папки в которой находятся обрабатываемые документы

    Сортировка документов

    [!Ditto? &tpl=`news_tpl` &parents=`2` &orderBy=`pagetitle ASC`!]

    где:

    &orderBy=`ASC pagetitle` - сортировать по возрастанию по полю заголовка документов

    Пагинация

    [!Ditto? &tpl=`news_tpl` &parents=`2` &id=`news` &paginate=`1` &display=`10`!]
    <div class="pagination">
    Страница [+news_currentPage+] из [+news_totalPages+] [+news_previous+][+news_pages+][+news_next+]
    </div> 

    где:

    &id=`news` - идентификатор Ditto. Должен быть уникальным для каждого из вызовов Ditto с постраничным разбиением. Необходим для корректной работы постраничных плэйсхолдеров, если на странице используются и другие вызовы сниппета Ditto

    &paginate=`1` - включаем постраничное разбиение

    &display=`10` - количество отображаемых документов на каждой странице

    При использовании идентификатора при постраничном разбиении, идентификатор должен быть добавлен в качестве суффикса к плэйсхолдерам пагинации, т.е. в данном случае плэйсхолдер [+pages+] должен превратиться в [+news_pages+].

    Вывод даты

    [!Ditto? &tpl=`news_tpl` &parents=`2` &dateSource=`pub_date` &dateFormat=`%d.%m.%Y`!]

    где:

    &dateSource=`pub_date` - источник, определяющий значение плейсхолдера [+date+], использующегося в шаблоне news_tpl

    &dateFormat=`%d.%m.%Y` - определяет формат времени, которое выводится с помощью плейсхолдера [+date+] согласно правилам функции PHP - strftime.

    Фильтрация документов

    [!Ditto? &tpl=`news_tpl` &parents=`2` &filter=`id,10,2|id,20,2`!]

    где:

    &filter=`id,10,2|id,20,2` - исключает документы с id 10 и 20

    Вызов в сниппете

    $modx->runSnippet(
        'Ditto', 
        array(
            'startID' => 34,33,37,35,36,
            'summarize' => 9,
            'tpl' => 'portfolioTpl',
            'dateFormat' => '%d.%m.%Y',
            'dateSource' => 'pub_date',
            'display' => 9,
            'paginate' => 1,
            'paginateAlwaysShowLinks' => 1,
            'filter' => 'year,'.$_GET['year'].',1'
        )
    );