Drupal 7 – Jak obejít renderovací mechanismus views
Nejprve asi každého napadne otázka proč vlastně obcházet renderovací mechanismus Views? S novou verzí Views 3 je sice o mnoho důvodů méně, ale pořád jich několik zůstává. Jaké to jsou?
Asi nejzásadnějším důvodem je potřeba mít dokonalý kód. To se často stává při implementaci různých jquery skriptů, které zpravidla vyžadují určitou pevně danou strukturu. Druhým důvodem je samozřejmě neznalost všech možností Views 3, protože je to nástroj natolik komplexní a složitý ke kterému zatím není dostupná téměř žádná dokumentace.
Jak si vypsat výstup views v šabloně?
<?php
$view = views_get_view('last_articles');
$view->set_display('default');
//v promenne $data mame ulozeny originální vyrenderovaný výstup z view, ale my použijeme vlastní
$data = $view->preview();
?>
<?php if($view->result): ?>
<ul>
<?php foreach ($view->result as $id => $row): ?>
<li>
<?php $node = node_load($row->nid); ?>
<h3><?php print $node->title; ?></h3>
</li>
<?php endforeach; ?>
</ul>
<?php else: ?>
<p>Nejsou vloženy žádné články.</p>
<?php endif; ?>
Poznámka: Výsledný kód byl pro přehlednost zjednodušen a neodpovídá reálnému nasazení, slouží pouze jako demonstrace jak přistupovat k výsledkům. V podstatě nám Views slouží pouze k dodání vybraných NID a o zbytek už se postaráme v šabloně.
Přidej vlastní názor
Ty