29-11-2011 : Remettre dans le débat politique les principes du Conseil National de la Résistance
17-02-2012 : Pétition pour une protection de l’apiculture et des consommateurs face au lobby des OGM
Logo de mon site
Logo de mon site
Faire un don

Luxpopuli / eZ Publish / eZ Publish: Documentation technique / eZ Publish : Les templates / Information extraction -- Extraction d'informations / Outputting node and object data -- Extraire les données des noeuds et objets





Right menu

Logo du site ez.no  Logo XHTML 1.O du W3C  Logo XHTML 1.O du W3C  Site francophone officiel de Firefox
zero papier grâce aux catalogues et promos en ligne de bonial

Information extraction -- Extraction d'informations

Table des matières

  1. Information extraction -- Extraction d'informations
  2. Outputting node and object data -- Extraire les données des noeuds et objets

Outputting node and object data -- Extraire les données des noeuds et objets

Date de publication: le mardi 29 mars 2011 à 22h24
Dernière modification: par Pascal BOYER le lundi 4 avril 2011 à 18h39

28/09/2010 02:06

versions 3.9, 3.10, 4.x

Once an "ezcontentobjecttreenode" object representing a node is available in a template variable, it can be used to output information about the node and the contents of the object that the node encapsulates. The following text demonstrates the extraction of the most common elements.
Une fois qu'un objet ezcontentobjecttreenode représentant un nœud est disponible dans une variable d'un template, il peut être utilisé afin de fournir des informations sur le nœud et sur le contenu de l'objet encapsulé par le nœud. Le texte qui suit présente l'extraction des éléments les plus courants.

General information / Information générale

The name of the object / Le nom de l'objet

{$node.name|wash}

The name of the object is directly available through the node (in other words it is possible to reach it by $node.name instead of $node.object.name). The "wash" operator is used for making sure that the output doesn't contain any bogus characters and/or sequences that may mess up the HTML.
Le nom de l'objet est directement disponible par le biais du nœud (c'est à dire que le nom est accessible directement par le biais de la synatxe $node.name en lieu et place de la syntaxe $node.object.name). L'opérateur wash est utilisé afin de s'assurer que le code renvoyé ne contienne aucun code ni caractères suspects susceptibles de mettre la pagaille dans le code HTML.

The date/time when the object was first published / Date/heure de première publication d'un objet

{$node.object.published|l10n( 'shortdatetime' )}

Since the publishing value is stored as a UNIX time-stamp, it must be properly formatted for output. This can be done by using the "l10n" operator, which makes it possible to format different types of values according to the current locale settings.
Puisque la date et/ou l'heure de publication sont stockées au format timestamp UNIX, il est nécessaire de les reformater proprement grâce à l'opérateur l10n . Ce dernier  permet de formater différents types de valeurs tout en respectant les paramètres de localisation du système.

The date/time when the object was last modified / Date/heure de dernière modification

{$node.object.modified|l10n( 'shortdatetime' )}

Since the modification value is stored as a UNIX time-stamp, it must be properly formatted for output. This can be done by using the "l10n" operator, which makes it possible to format different types of values according to the current locale settings.
Puisque la date et/ou l'heure de modification sont stockées au format timestamp UNIX, il est nécessaire de les reformater proprement grâce à l'opérateur l10n . Ce dernier  permet de formater différents types de valeurs tout en respectant les paramètres de localisation du système.

The name of the user who initially created the object / Nom de l'utilisateur qui a créé l'objet

{$node.object.owner.name|wash}

The name of the user who last modified the object / Nom de l'utilisateur qui a modifié l'objet

{$node.object.current.creator.name|wash()}

The name of the class which the object is an instance of / Nom de la classe dont l'objet est une instance

{$node.object.class_name|wash()}

Object attributes / Attributs des objets

The attributes of the object can be reached by the way of the "data_map" method. This method returns an associative array of "ezcontentobjectattribute" objects where each object represents one of the attributes. The keys of the array are the class attribute identifiers. The following example demonstrates how an attribute called "first_name" can be reached using the object's data map.
Les attributs des objets sont recherchés grâce à la méthode data_map qui retourne un tableau associatif d'objets ezcontentobjectattribute où chaque objet représente un des attributs et où les clefs du tableaux sont les identifiants des attributs de classe. L'exemple suivant illustre cette méthode pour la recherche de l'attribut first_name:

{$node.object.data_map.first_name}

The example above will not produce any valuable output because the requested data needs to be formatted. There are two ways of outputting the contents of attributes:
L'exemple ci-dessus ne produira aucune valeur car les données demandées doivent être formatées. Il y a deux façons d'afficher les contenus des attributs:

  • Raw output (the ".output" extension)
    Sortie Raw (correspondant à l'extension ".output")
  • Formatted output (the "attribute_view_gui" function)
    Sortie formatées (par le biais de la fonction "attribute_view_gui")

The main difference between raw and formatted output is that formatted output makes use of a template which in turn outputs the requested data. Raw output simply outputs the data within the same template where the request for output was issued. Output should always be presented through the "attribute_view_gui" function. The raw output method should only be used when/if necessary (for example when checking the value of an attribute using an IF statement).
La principale différence entre une sortie Raw (brute) et une sortie formatée réside dans le fait que cette dernière utilise un template qui traite les données recherchées. À l'inverse, la sortie brute  restitue simplement les données dans le même template que celui contenant la requête. Les sorties devraient toujours être présentées par le biais de la fonction attribute_view_gui . La méthode de sortie Raw ne doit être utilisée que si nécessaire (par exemple lorsqu'on recherche la valeur d'un attribut en utilisant l'état IF).

Raw output / Sortie brute

Raw output is exactly what the definition indicates: a raw dump of the contents that are stored by the attribute. The actual syntax depends on the datatype that represents the attribute. In most cases, it is possible to generate the output by appending ".output" to the identifier.
Une sortie brute correspond exactement à ce qu'indique la définition: un dump brut du contenu stocké par l'attribut. La syntaxe dépend du datatype sur lequel est basé l'attribut. Dans la plupart des cas, il est possible de générer la sortie en ajoutant .output à l'identifiant.

Generic solution / Solution générique

The following example demonstrates how to output the contents of an attribute called "my_attribute".
L'exemple suivant montre comment restituer le contenu d'un attribut nommé my_attribute:

{$node.object.data_map.my_attribute.content}

XML block / Bloc XML

The following example demonstrates how to output the contents of an XML block called "my_xml".
L'exemple suivant montre comment restituer le contenu d'un bloc XML nommé my_xml:

{$node.object.data_map.my_xml.content.output.output_text}

Image

The following example demonstrates how to output an image stored by an attribute called "my_image".
L'exemple suivant montre comment restituer une image stockée par un attribut nommé my_image:

<img src="{$node.object.data_map.my_image.content[image_size].full_path}" ... />

Formatted output / Sortie formatée

Each datatype has a set of templates which are used to display the contents in different contexts. There are at least two templates for each datatype: a view template and an edit template. While the view template is used to display information, the edit template is used when the data is being edited. The default templates for the datatypes are located within the standard design: "/design/standard/templates/content/datatype".
Chaque datatype possède un jeu de templates utilisés pour afficher les contenus dans différents contextes. Il existe au moins deux templates pour chaque datatype: un template de vue et un template d'édition. Alors que le template de vue est utilisé pour afficher les informations, le template d'édition est utilisé lorsque les données doivent être éditées. Les templates liés par défaut aux datatypes sont situés dans le design standard: design/standard/templates/content/datatype.

The "attribute_view_gui" function makes it possible to display the contents of an attribute by inserting the view template of the datatype that the attribute uses. The following example demonstrates how this function can be used.
La fonction attribute_view_gui permet d'afficher le contenu d'un attribut en insérant le template de vue du datatype sur lequel est basé l'attribut. L'exemple ci-dessous montre comment utiliser cette fonction:

{attribute_view_gui attribute=$node.object.data_map.name_of_any_attribute}

The example above will generate proper output for any attribute (regardless of the datatype).
L'exemple ci-dessus génèrera une sortie adéquate pour chaque attribut (sans tenir compte du datatype).

Commentaires