Date de publication: le lundi 26 mai 2008 à 21h07
Dernière modification: par Pascal BOYER le mercredi 6 octobre 2010 à 10h23
« Article précédent: Using the UserInput component for datatypes -- Utiliser le composant Userinput pour les datatypes
» Article suivant: Creating datatypes summary -- Résumé de la création de datatypes
As was previously mentioned, we have templates for the editing and viewing of both the content class and the content object. This chapter explains how you can access attribute data inside the templates and describes the interaction between the PHP code and the templates. For more information on templates in general, please refer to the eZ Publish user manual.
Comment cela a été précédemment mentionné, nous disposons de templates pour éditer et voir la classe de contenu ainsi que l'objet de contenu. Ce chapitre explique comment accéder, à partir des templates, aux données des attributs et décrit l'interaction entre le code PHP et les templates. Pour plus d'informations sur les templates en général, reportez-vous au
manuel technique
de eZ Publish.
Viewing the class attribute / Voir l'attribut de classe
Let's start with the most basic example, for viewing the class attribute in design/standard/templates/class/datatype/view/ymcdatetime.tpl. In this template we use the variable $class_attribute, which is automatically available for every class attribute template. The $class_attribute variable is an instance of eZContentClassAttribute.
Commençons par l'exemple le plus basique, voir l'attribut de classe à partir du template design/standard/templates/class/datatype/view/ymcdatetime.tpl. Dans ce template nous utilisons la variable $class_attribute, automatiquement disponible pour chaque attribut de classe. La variable $class_attribute est une instance de eZContentClassAttribute.
For our simple case we only need the value of the “data_int1” attribute of our eZContentClassAttribute instance. This is the attribute that we used in the fetchClassAttributeHTTPInput method to store whether or not the input fields should be pre-filled with the current date. We access it simply with $class_attribute.data_int1.
Dans le cadre de notre simple cas, nous n'avons besoin que de la valeur de l'attribut data_int1 de notre instance eZContentClassAttribute. Ceci est l'attribut que nous utilisons dans la méthode fetchClassAttributeHTTPInput pour stocker l'information indiquant si oui ou non les champs de saisie doivent être pré-remplis avec la date courante. Nous y accédons simplement avec $class_attribute.data_int1.
Editing the class attribute / Editer l'attribut de classe
The only additional concept in the template for editing the class attribute in design/standard/templates/class/datatype/edit/ymcdatetime.tpl is how to build the name of our input field. It is made up as previously described:
Le seul concept supplémentaire du template d'édition des attributs de classe design/standard/templates/class/datatype/edit/ymcdatetime.tpl consiste à savoir comment construire le nom de notre champ de saisie. Il est construit comme décrit précédemment:
ContentClass_ymcDateTime_default_{$class_attribute.id}
First, there is a namespace “ContentClass”, then the name of the datatype “ymcDateTime”, the name of the input field “default” and at the end an ID for the attribute.
Premièrement, il y a un espace de nom ContentClass, puis le nom du datatype ymcDateTime, le nom du champ de saisie default et en fin un ID pour l'attribut.
Viewing and editing the object attribute / Voir et éditer l'attribut d'un objet
I will skip discussing the object editing template (design/standard/templates/content/datatype/edit/ymcdatetime.tpl), since there is nothing new in it compared to the two templates already mentioned.
Je passerai sur le template d'édition de l'objet ( design/standard/templates/content/datatype/edit/ymcdatetime.tpl) puisqu'il n'y a rien de nouveau par rapport aux deux templates déjà mentionnés.
The template for viewing object attributes of our datatype is located at design/standard/templates/content/datatype/view/ymcdatetime.tpl. One thing to note is how we access each of the values that make up the DateTime object. Inside this template you see the construct {$attribute.content.day}, and equivalent constructs for the other values. Let's look at each of the elements in the construct for the “day” value.
Le template servant à voir les attributs d'objet basés sur notre datatype est design/standard/templates/content/datatype/view/ymcdatetime.tpl. Notez la façon dont nous accédons à chacune des valeurs composant l'objet DateTime. A l'intérieur de ce template vous voyez le constructeur {$attribute.content.day} et des constructeurs équivalents pour les autres valeurs. Regardons chaque élément du constructeur de la valeur day.
First, eZ Publish has predefined an instance of eZContentObjectAttribute in the variable $attribute. However, we cannot simply access the value for the day in the next level since it is stored in an object. Therefore, we must access “content”, whereby eZ Publish calls the objectAttributeContent method of our datatype. The return value of this method is directly given back as the content attribute itself. Looking in our datatype source code, you see that we return an instance of ymcDatatypeDateTime as the return value of this method. This means that the last word “day” accesses the attribute method of ymcDatatypeDateTime with the parameter “day”. The return value of this attribute method is the value that we are looking for.
Premièrement, eZ Publish a prédéfini une instance de eZContentObjectAttribute dans la variable $attribute. Cependant, nous ne pouvons accéder simplement à la valeur de day dans le niveau suivant puisqu'elle est stockée dans un objet. Donc, nous devons accéder à content, au moyen duquel eZ Publish appelle la méthode objectAttributeContent de notre datatype. La valeur de retour de cette méthode est directement renvoyée en tant que contenu de l'attribut lui-même. Si vous regardez le code source de notre datatype vous voyez que nous retournons une instance de la classe ymcDatatypeDateTime en tant que valeur de retour de cette méthode. Ce qui signifie que le dernier mot day accède la méthode des attributs de la classe ymcDatatypeDateTime avec le paramètre day. La valeur de retour de cette méthode des attributs est la valeur que nous cherchons.
Commentaires














