Урок 6: DocLister - работа с prepare

Видео на Youtube: youtu.be/bwbTJ4hLxjs


Пример вызова DocLister из видео:
[[DocLister? &parents=`3` &display=`6` &tvList=`image` &orderBy=`menuindex ASC` 
			&prepareWrap=`home-prepare-wrap`
			&prepare=`home-prepare`
			&tpl=`@CODE:<a href="[+url+]">
                        <div class="item-img" style="background-image: url('[+image+]')"></div>
                        <div class="work-text">
                            <div class="text-inner">
                                <h3>[+pagetitle+]</h3>
                  <a name="cut"></a>                <p>[+longtitle+] [+iteration+]</p>
                            </div>
                        </div>
                    </a><!-- item !-->`
			&ownerTPL=`@CODE:
            <div class="pure-u-1 pure-u-xl-2-3 grid-item">
                <article class="work-item main-big-item">
                    [+item1+]
                </article>
            </div>
            <div class="pure-u-1 pure-u-xl-1-3 grid-item">
                <div class="pure-g">
                    <div class="pure-u-1 pure-u-md-1-2 pure-u-xl-1">
                        <article class="work-item main-small-item">
                            [+item2+]
                        </article>
                    </div>
                    <div class="pure-u-1 pure-u-md-1-2 pure-u-xl-1">
                        <article class="work-item main-small-item">
                            [+item3+]
                        </article>
                    </div>
                </div>
            </div>
            <div class="pure-u-1 pure-u-xl-1-3 grid-item tablet-order-3">
                <div class="pure-g">
                    <div class="pure-u-1 pure-u-md-1-2 pure-u-xl-1">
                        <article class="work-item main-small-item">
                            [+item4+]
                        </article>
                    </div>
                    <div class="pure-u-1 pure-u-md-1-2 pure-u-xl-1">
                        <article class="work-item main-small-item">
                            [+item5+]
                        </article>
                    </div>
                </div>
            </div>
            <div class="pure-u-1 pure-u-xl-2-3 grid-item tablet-order-2">
                <article class="work-item main-big-item">
                    [+item6+]
                </article>
            </div>
			`]]


Сниппет home-prepare-wrap:

$plh = $data['placeholders'];
$wrap = explode('<!-- item !-->',$plh['dl.wrap']);

$plh['item1'] = $wrap['0'];
$plh['item2'] = $wrap['1'];
$plh['item3'] = $wrap['2'];
$plh['item4'] = $wrap['3'];
$plh['item5'] = $wrap['4'];
$plh['item6'] = $wrap['5'];
return $plh;


Сниппет home-prepare:
<?php
if ($data['iteration'] == 1 || $data['iteration'] == 6){
	$data['image'] = $modx->runSnippet('phpthumb', array('input'=>$data['tv.image'], 'options'=>'w=714,h=470,zc=1'));
}else{
	$data['image'] = $modx->runSnippet('phpthumb', array('input'=>$data['tv.image'], 'options'=>'w=350,h=230,zc=1'));
}
return $data;


p.s.Не забываем про канал новостей по EVO в Telegram
t.me/evolutioncmsnews

И про чат по нем же
t.me/evolutioncms

11 комментариев

avatar
Так же в видео видно как можно создавать чанки снипеты тв не уходя их Шаблона:)
пока через отдельное окно правда но скоро будет по уму :)
avatar
Можно было использовать параметр contentPlaceholder и обойтись без prepareWrap.
avatar
Если б по нему еще хоть какая то дока была :)
avatar
Так он есть в документации. Делает то же самое, что твой home-prepare-wrap, результат будет в плейсхолдерах «item[1]»,«item[2]» и т.д.
avatar
Ага пасиб нашел.
docs.evolution-cms.com/Extras/Snippets/DocLister/Вывод%20данных
Ну да так проще и логичней
avatar
Отлично, может народ с помощью твоих уроков перейдет-таки на ДокЛистер :)

P.S. Используете Pure CSS? мне он нравился, но вроде ведь он помер уже.
avatar
Судя по github очень даже развивается 11 дней назад
релизнули версию 1.0
github.com/yahoo/pure/commits/master

очень удобен для фронта ибо мало весит и очень гибкая сетка.
Для Админки само собой лучше bootstrap )
avatar
Да, действительно. Я смотрел в конце 2016 здесь github.com/yahoo/pure/releases/ и подумал — «Ну, ребята, почти 2 года релизов нет, значит всё».

А оказывается живы. Надо будет вспомнить о нём, ведь он весит в 20-30 раз меньше полного Бутстрапа :)
avatar
При установке нового Вашего EVO 1.3 будут демо данные?
А то тажа сборка Дмитрия при установки демо данных не ставила ни сниппеты того же WebLogin, нифига.
avatar
Потому что WebLogin нафиг не нужен =)
avatar
Немного меняем сниппет для prepareWrap
И можно уже ставить плейсхолдеры по id, [+item.1+] [+item.22+]


<?php
$plh = $data['placeholders'];
$wrap = explode('<!-- item !-->', $plh['dl.wrap']);
$docs = array_keys($data['docs']);
foreach($docs as $k => $v) {
	$plh['item.' . $v] = $wrap[$k];
}

return $plh;
  • 64j
  • 0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.