В предният пост видяхме как да включим един дисплей на views в темплейта на нод. Тук ще разгледам как да направим това в темплейта на друго views. Точно така - едно вю, което да импортнем в друго вю.
Предполагам, че няма да се изненадате - става по същия начин и със същия код:
Сигурно забелязвате разликата с предния код - името на дисплея. В предния код беше block_1, докато тук е page_1. Да, точно така - това са дори различни типове дисплеи - първият прави блок, а вторият страница. Както виждаме, това няма никакво значение, когато използваме views_embed_view. Може да пре-използваме вече създадени компоненти от сайта като блокове или страници на views където и колкото пъти е необходимо, като освен тове те са на разположение за ползване И по стандартния за тях начин - блока като блок със съответните му настройки от конфигуриране на блокове, страницата (page) като страница с нейния път - за включване в меню или каквото може да измислим още за нея.
За да довършим реализацията на идеята за включване на реклама като трета позиция (от първия етап, когато разгледахме views с филтри) ще направим нов темплейт за views Articles. В него добавяме следният код:
<?php if ($id == 2): ?> <div class="advertising"> <?php print render(views_embed_view('articles', 'page_1')); ?> </div> <?php endif; ?>
Така целият код на темплейта придобива вида
<?php /** * @file views-view-unformatted.tpl.php * Default simple view template to display a list of rows. * * @ingroup views_templates */ ?> <?php if (!empty($title)): ?> <h3><?php print $title; ?></h3> <?php endif; ?> <?php foreach ($rows as $id => $row): ?> <?php if ($id == 2): ?> <div class="advertising"> <?php print render(views_embed_view('articles', 'page_1')); ?> </div> <?php endif; ?> <div class="<?php print $classes_array[$id]; ?>"> <?php print $row; ?> </div> <?php endforeach; ?>