2012-06-28 eZ Publish
Stworzenie fetch'a dla nadpisanego szablonu jest czynnością standardową – foreach "wyniki" as "wynik" itp. Co jednak jeśli naszego "wynik" jest w widoku zbyt wiele? Dopiszmy stronnicowanie i podzielmy wyniki na odpowiednie części. Wykorzystamy standardową wstawkę do stronnicowania wyników wziętą z widoku "full" pliku folder.tpl:
{include name=navigator uri='design:navigator/google.tpl' page_uri=$node.url_alias item_count=$list_count view_parameters=$view_parameters item_limit=$page_limit}
Potrzebujemy trzech zmiennych:
Zdefiniujmy te zmienne, np:
{def $page_limit = 10} {def $arts = fetch( 'content', 'tree', hash( 'parent_node_id', 84, 'sort_by', array( array( 'attribute', false(), 'article/sticky' ), array( 'attribute', false(), 'article/data') ), 'class_filter_type', 'include', 'class_filter_array', array( 'article' ), 'limit', $page_limit, 'offset', $view_parameters.offset ) ) } {def $list_count=fetch( 'content', 'tree_count', hash( 'parent_node_id', 84, 'class_filter_type', 'include', 'class_filter_array', array( 'article' ) ) ) }
Dodajmy pętle która "przetworzy" nam $arts:
{foreach $arts as $i => $art} {node_view_gui content_node=$art view=line} {/foreach}
Na koniec includujemy do szablonu wspomniane stronnicowanie:
{include name=navigator uri='design:navigator/google.tpl' page_uri=$node.url_alias item_count=$list_count view_parameters=$view_parameters item_limit=$page_limit}
Całość może wyglądać następująco:
{def $page_limit = 10} {def $arts = fetch( 'content', 'tree', hash( 'parent_node_id', 84, 'sort_by', array( array( 'attribute', false(), 'article/sticky' ), array( 'attribute', false(), 'article/data') ), 'class_filter_type', 'include', 'class_filter_array', array( 'article' ), 'limit', $page_limit, 'offset', $view_parameters.offset ) ) } {def $list_count=fetch( 'content', 'tree_count', hash( 'parent_node_id', 84, 'class_filter_type', 'include', 'class_filter_array', array( 'article' ) ) ) } {foreach $arts as $i => $art} {node_view_gui content_node=$art view=line} {/foreach} {include name=navigator uri='design:navigator/google.tpl' page_uri=$node.url_alias item_count=$list_count view_parameters=$view_parameters item_limit=$page_limit}