Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,075 of 9,075 pages
About the help in other languages
All help pages

Inhalte in Templates abrufen

fetch() liest Inhalte in Templates - einen Knoten, Unterknoten, einen Unterbaum, Anzahlen, Relationen, mit Klassen- und Attributfiltern, Tiefe und Sortierung. Parameter aus dem Kernel, Beispiele von der Engine…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/extension-development/part-2-builder/fetch-for-builders.md

On this page

This page is a translation. Read the English original

Inhalte in Templates abrufen

Teil 2, Kapitel 13. Templates holen Inhalte mit fetch( <module>, <function>, hash( <parameters> ) ). Jedes Modul deklariert seine Fetch-Funktionen und deren Parameter in einer function_definition.php; die des Moduls content stehen in kernel/content/function_definition.php, und jeder Parameter auf dieser Seite ist von dort übernommen. Die Beispiele wurden von der Template-Engine auf einer Installation mit Beispielinhalten dargestellt.

Die alltäglichen Funktionen

AufrufLiefert
fetch( 'content', 'node', hash( 'node_id', 2 ) )einen Knoten
fetch( 'content', 'object', hash( 'object_id', 1 ) )ein Objekt
fetch( 'content', 'list', hash( 'parent_node_id', 2 ) )die Unterknoten eines Knotens
fetch( 'content', 'list_count', hash( 'parent_node_id', 2 ) )wie viele Unterknoten
fetch( 'content', 'tree', hash( 'parent_node_id', 2 ) )den ganzen Unterbaum unter einem Knoten
fetch( 'content', 'tree_count', hash( 'parent_node_id', 2 ) )wie viele Knoten der Unterbaum hat
fetch( 'content', 'related_objects', hash( 'object_id', ... ) )verknüpfte Objekte
fetch( 'content', 'reverse_related_objects', hash( 'object_id', ... ) )Objekte, die auf dieses verweisen

Die vollständige Liste der Fetch-Funktionen aller Module steht in Eingebaute Fetch-Funktionen nach Modul.

Parameter von list und tree

ParameterBedeutungBeispiel
parent_node_idwo begonnen wird$node.node_id
limit, offsetSeitenaufteilung'limit', 10, 'offset', $view_parameters.offset
sort_bySortierung: ein Paar oder eine Liste von Paaren; true() aufsteigendarray( 'published', false() )
class_filter_type, class_filter_arraynur (include) oder nicht (exclude) diese Klassen'include', array( 'article' )
attribute_filterBedingungen für Attributesiehe unten
depth, depth_operatorwie tief in einem Baum3, 'le'
main_node_onlynur Hauptplatzierungentrue()
ignore_visibilityversteckte Knoten einschließentrue() (nur für Admin-Ansichten)
language, only_translatedÜbersetzungen'ger-DE'
load_data_mapAttribute mit den Knoten ladenfalse() für große Listen, deren Namen Sie nur ausgeben
as_objectObjekte oder Arraysfalse() für rohe Zeilen

Beispiele

Die fünf neuesten Artikel irgendwo unter dem obersten Knoten und wie viele es sind:

{def $news = fetch( 'content', 'tree', hash( 'parent_node_id', 2,
                                             'class_filter_type', 'include',
                                             'class_filter_array', array( 'article' ),
                                             'sort_by', array( 'published', false() ),
                                             'limit', 5 ) )
     $count = fetch( 'content', 'tree_count', hash( 'parent_node_id', 2,
                                                    'class_filter_type', 'include',
                                                    'class_filter_array', array( 'article' ) ) )}
<p>{$count} articles, the newest five:</p>
<ul>
{foreach $news as $item}
    <li><a href={$item.url_alias|ezurl}>{$item.name|wash}</a></li>
{/foreach}
</ul>

Inhalte des letzten Jahres, drei Ebenen tief, nach Priorität und dann nach Name sortiert:

{def $recent = fetch( 'content', 'tree', hash( 'parent_node_id', 2,
                     'attribute_filter', array( array( 'published', '>', sub( currentdate(), 31536000 ) ) ),
                     'depth', 3,
                     'limit', 3,
                     'sort_by', array( array( 'priority', true() ), array( 'name', true() ) ) ) )}

attribute_filter nimmt eine Liste von Bedingungen array( <attribute>, <operator>, <value> ). Das Attribut ist eine Eigenschaft des Knotens (published, modified, name, priority, section) oder <class>/<attribute> für ein Feld einer Klasse (article/rating). Die Operatoren sind =, !=, <, >, <=, >=, in, not_in, between, not_between, like (createAttributeFilterSQLStrings() in kernel/classes/ezcontentobjecttreenode.php). Ein erstes Element 'or' macht daraus eine Oder-Verknüpfung: array( 'or', array( ... ), array( ... ) ).

Die Unterknoten eines Ordners seitenweise:

{def $page_limit = 10
     $children = fetch( 'content', 'list', hash( 'parent_node_id', $node.node_id,
                                                 'offset', $view_parameters.offset,
                                                 'limit', $page_limit,
                                                 'sort_by', $node.sort_array ) )
     $children_count = fetch( 'content', 'list_count', hash( 'parent_node_id', $node.node_id ) )}
{include uri='design:navigator/google.tpl'
         page_uri=$node.url_alias
         item_count=$children_count
         view_parameters=$view_parameters
         item_limit=$page_limit}

$node.sort_array verwendet die Sortierung, die der Redakteur in der Administration für den Ordner gewählt hat; das ist fast immer das, was der Besucher sehen sollte.

Zugriffsrechte werden angewendet

Fetch liefert nur, was der aktuelle Benutzer lesen darf: unveröffentlichte, versteckte (außer mit ignore_visibility) und verbotene Inhalte fehlen. Eine Liste, die für anonyme Besucher kurz aussieht, ist meist richtig; prüfen Sie die Rollen, bevor Sie den Fetch verdächtigen.

Leistung

Tun SieWarum
Einmal abrufen, vor der Schleifeein Fetch in einem foreach läuft einmal je Element
limit verwendenein Baum-Fetch ohne Limit kann Tausende von Knoten laden
Für Zahlen die _count-Funktionen verwendensie laden die Knoten nicht
class_filter_array und depth verwendendie Datenbank übernimmt das Filtern
load_data_map auf false() setzen, wenn Sie nur Namen ausgebenAttribute werden nicht geladen
Ergebnisse in einem cache-block halten, wenn sie sich selten ändernsiehe Caching und Templates

Schalten Sie während der Entwicklung [DatabaseSettings] SQLOutput ein, um die Abfragen einer Seite zu sehen.

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x