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




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

Content management -- Gestion de contenu

Table des matières

  1. Content management -- Gestion de contenu
  2. Datatypes -- Types de données
  3. The content class -- La classe de contenu
  4. Class attributes -- Attributs de classe
  5. The content object -- L'objet de contenu
  6. Object versioning -- Gestion des versions des objets
  7. Multiple languages -- Plusieurs langues
  8. The content node -- Le noeud de contenu
  9. The content node tree -- L'arbre de noeuds de contenu
  10. Top level nodes -- Noeuds de niveau supérieur
  11. Node visibility -- Visibilité des noeuds
  12. Object relations -- Relations entre objets
  13. Sections -- Les sections
  14. URL storage -- Stockage d'URL
  15. Information collection -- Collecte d'informations

The content class -- La classe de contenu

Date de publication: le mardi 22 mars 2011 à 18h00
Dernière modification: par Pascal BOYER le vendredi 25 mars 2011 à 23h32

27/09/2010 11:45

versions 3.9, 3.10, 4.x

A content class is a definition of an arbitrary data structure. It does not store any actual data. A content class is made up of attributes. The characteristics of an attribute are determined by the datatype that is chosen for that specific attribute. By combining different datatypes, it is possible to represent complex data structures. The following illustration shows the anatomy of a content class called "Article", which defines a data structure for storing news articles. It consists of attributes dedicated for storing the title, an introduction text and the actual body of an article. 
Une classe de contenu, constituée d'attributs, est une définition d'une structure de données arbitraire et ne stocke aucune donnée. Les caractéristiques d'un attribut sont déterminées par le datatype choisi pour cet attribut. En combinant différents datatypes, il est possible de construire des structures complexes de données. L'illustration ci-dessous présente l'anatomie d'une classe de contenu nommée Article définissant la structure des données permettant le stockage d'articles de news. Cette classe est composée d'attributs dédiés au stockage du titre, d'un texte d'introduction ainsi que du corps de l'article.

 

 

Example of a content class
Exemple d'une classe de contenu

An eZ Publish distribution comes with a set of general purpose classes that are designed for typical web scenarios. For example, the default image class defines a structure for storing image files. It consists of attributes for storing the name of the image, the actual image file, the caption and an alternative image text. The built-in classes can be modified in order to become more suitable for a specific case. In addition, it is possible to create completely new and custom classes. Content classes can be created, modified and removed easily using the administration interface. When a content class is removed, all instances of that class (containing actual data) will also be removed from the system. The following screenshot shows the class edit interface. 
Une distribution eZ Publish fournit par défaut un ensemble de classes d'usage général répondant aux situations les plus fréquemment rencontrées lors de la mise en œuvre d'un site. La classe image, par exemple, définit une structure dédiée au stockage de fichiers image. Cette classe est composée d'attributs permettant de stocker le nom de l'image, l'image elle-même, sa légende et un texte alternatif à l'image. Les classes proposées par défaut peuvent être modifiées pour répondre à des besoins spécifiques et il est, de plus, possible d'en créer de nouvelles de toute pièce. L'interface d'administration permet de créer, de modifier ou de supprimer très simplement des classes de contenu. Lorsque l'une d'elles est supprimée, toutes ses instances (contenant vraiment les données) sont également supprimées du système. La capture d'écran suivante présente l'interface graphique d'édition d'une classe:

The content class edit interface

The class edit interface
L'interface d'édition des classes

Class structure / Structure d'une classe

A content class consists of the following elements: 
Une classe de contenu est composée des éléments suivants:

  • Name 
    d'un nom de classe
  • Identifier 
    d'un identifiant de classe
  • Object name pattern 
    d'un motif de nom de l'objet
  • URL alias name pattern 
    d'un motif du nom de l'alias d'URI
  • Container flag 
    d'un drapeau conteneur
  • Default sorting of children 
    d'un ordre de tri par défaut des enfants
  • Default object availability flag 
    d'un drapeau de disponibilité par défaut de l'objet
  • Attributes 
    d'attributs

Name / Nom de la classe

The name is for storing a user friendly name which describes the data structure that the class defines. A class name can consist of letters, digits, spaces and special characters. The maximum length is 255 characters. For example, if a class defines a data structure for storing information about graduate students, the name of the class would most likely be "Graduate student". This name will appear in various class lists throughout the administration interface, but it will not be used internally by the system. If a blank name is provided, eZ Publish will automatically generate a unique name when the class definition is stored. 
Le nom permet de stocker un nom (choisi par l'utilisateur) évocateur de la structure des données définie par la classe. Un nom de classe, composé de lettres, de chiffres et de caractères spéciaux, ne peut excéder 255 caractères. Si une classe définit par exemple une structure de données permettant de stocker des informations sur les étudiants diplômés, un nom évocateur de la classe pourrait être "Étudiant diplômé". Ce nom apparaîtra dans différentes listes de classes de l'interface d'administration, mais ne sera jamais utilisé en interne par le système. Si aucun nom n'est fourni par l'utilisateur (si le champ nom reste vide), eZ Publish génèrera automatiquement un nom unique lors de l'enregistrement de la classe.

Identifier / L'identifiant de la classe

The identifier is for internal use. In particular, class identifiers are used in configuration files, templates and in PHP code. A class identifier can only consist of lowercase letters, digits and underscores. The maximum length is 50 characters. For example, if a class defines a data structure for storing information about graduate students, the identifier of the class would probably be "graduate_student". If a blank identifier is provided, eZ Publish will automatically generate a unique identifier when the class definition is stored. 
L'identifiant est destiné à un usage interne. Les identifiants de classe sont utilisés en particulier par les fichiers de configuration, les templates et dans les codes PHP. Un identifiant de classe ne peut être composé que de minuscules, de chiffres et de caractères underscore ( _ ) et ne doit excéder 50 caractères. Si une classe définit par exemple une structure de données permettant de stocker des informations sur les étudiants diplômés, l'identifiant de la classe pourrait être "etudiants_diplomes". Si aucun identifiant n'est fourni par l'utilisateur (si le champ identifiant reste vide), eZ Publish génèrera automatiquement un identifiant unique lors de l'enregistrement de la classe.

Object name pattern / Motif du nom de l'objet

The object name pattern controls how the name of an actual object (an instance of a class) will be generated. A pattern usually consists of attribute identifiers (described later) that tell eZ Publish about which attributes it should use when generating the name of an object. Each attribute identifier has to be encapsulated by angle brackets. Text outside the angle brackets will be included directly. If a blank pattern is provided, eZ Publish will automatically use the identifier of the first attribute. 
Le motif du nom de l'objet contrôle la manière dont le nom d'un objet sera généré (un objet créé à partir d'une classe est aussi appelé instance de classe). Généralement, un motif est composé d'identifiants d'attributs (décrits plus bas) informant eZ Publish des attributs que ce dernier doit utiliser pour générer le nom d'un objet. Chaque identifiant d'attribut doit être noté entre chevrons (< et >) et tout texte qui ne serait pas à l'intérieur des chevrons sera traité comme s'il l'était. Si le champ du motif est laissé vide, eZ Publish utilisera automatiquement l'identifiant du premier attribut. ( Ndt: dans la version 4.10 ce champ se nomme Attribut servant de nom à l'objet).

URL alias name pattern / Motif de nom de l'alias d'URI

The URL alias name pattern controls how the virtual URLs of the nodes will be generated when the objects (instances of a class) are created. Note that only the last part of the virtual URL is affected. The pattern works in the same way as the object name pattern. Text outside the angle brackets will be converted using the selected method of URL transformation. If a blank pattern is provided, eZ Publish will automatically use the name of the object itself. 
Le motif de nom de l'alias d'URI contrôle la manière dont les URI virtuels  des noeuds sont générés lorsque les objets (les instance d'une classe) sont créés. Retenez que seule la dernière partie d'un URI virtuel est affectée. Le motif fonctionne ici de la même manière que le motif du nom de l'objet. Du texte inséré à l'extérieur des chevrons sera converti avec la méthode de transformation des URI sélectionnée. Si le champ du motif est laissé vide, alors eZ Publish utilisera automatiquement le nom de l'objet lui-même.

Container flag / Drapeau conteneur

The container flag controls whether an instance of the class should be allowed to have sub items (often called child nodes, children) or not. This setting only affects the administration interface, it was added in order to provide a more convenient environment for administrators and content authors. In other words, it doesn't control any actual low level logic, it simply controls the way the graphical user interface behaves. 
Le drapeau conteneur contrôle si l'instance d'une classe (c'est à dire un objet) est autorisée ou non à avoir un sous-élément (souvent appelé nœud enfant ou simplement enfant). Ce paramètre affecte uniquement l'interface d'administration et a été ajouté dans le but de proposer un environnement plus complet aux administrateurs et rédacteurs de contenus. En d'autres termes, ce paramètre ne contrôle aucun bas niveau logique (???) mais simplement la manière dont l'interface graphique se comporte.

Default sorting of children / Ordre de tri par défaut des enfants

From 3.9, it is possible to set the "default sorting of children" while editing the classes. When new objects are created and their corresponding nodes appear in the tree, they will use the sorting settings that were specified at the class level. In other words, if you set the "default sorting of children" to priority/ascending for the "Folder" class, the sub items of newly created folders will be sorted by their priorities, starting with the lowest priority. 
Depuis la version 3.9 de eZ Publish, il est possible de paramétrer, lors de l'édition d'une classe, l'ordre de tri par défaut des enfants. Lorsque de nouveaux objets sont créés et que leurs noeuds correspondants s'affichent dans l'arborescence, alors ils utilisent les paramètres de tri spécifiés au niveau de la classe d'objet. En d'autres termes, cela signifie que si vous assignez pour la classe Folder le couple Priorité/Croissant au paramètre Tri par défaut des enfants, alors les sous-éléments des nouveaux dossiers créés seront triés en fonction de leur priorité et en commençant par la priorité la plus faible.

Note that sorting parameters can always be changed for each individual node by using the sorting controls located in the "Sub items" window. Modifying the default sorting parameters at the class level will not affect the nodes that encapsulate existing objects of the class (only the nodes of newly created objects will be affected). Refer to "sort method" and "sort order" for more information about sorting parameters. 
Retenez que les paramètres de tri peuvent tout de même être modifiés pour chaque noeud par le biais des contrôles de tri  situés dans le cadre Sous-éléments. Modifier les paramètres de tri par défaut au niveau de la classe d'objet n'aura aucun effet sur les noeuds encapsulant les objets (instances) de cette classe (seuls les nouveaux noeuds créés seront affectés). Référez-vous aux chapitres Méthodes de tri  et Ordre de tri  pour de plus amples informations sur les paramètres de tri.

Default object availability flag / Drapeau de disponibilité par défaut de l'objet

This flag is related to the multi-language features that were added in eZ Publish 3.8. It simply dictates the default value of the "object availability" flag for new instances (objects) of the class. This flag can be further controlled (on the object level) by a check-box labelled "Use the main language if there is no prioritized translation" in the "Languages" window of the administration interface. In other words, the object availability can be modified individually for each object. When the flag is set, an object that does not exist in one of the site/prioritized languages will be shown using it's initial/main language. If the flag isn't set, the object will not be shown as long as it does not exist in one of the prioritized languages. 
Ce drapeau, lié aux fonctions de gestion du multilinguisme ajoutées à la version 3.8 de eZ Publish, contrôle simplement la valeur par défaut du drapeau Disponibilité de l'objet des nouvelles instances de la classe. Ce drapeau peut être également contrôlé (au niveau de l'objet) par une case à cocher nommée Utiliser la langue principale s'il n'y a pas de traduction prioritaire située dans le cadre Langues (ou Translations) de l'interface d'administration. En clair, la disponibilité d'un objet peut être modifiée individuellement et pour chaque objet. Lorsque le drapeau est coché, un objet n'existant pas dans l'une des langues prioritaires (ou du site) sera affiché dans la langue principale/initiale. Si le drapeau n'est pas coché, l'objet ne sera pas affiché tant qu'il n'existera pas dans l'une des langues prioritaires.

Attributes / Les attributs de la classe

As pointed out earlier, it is the structure and type of the attributes that make up the actual data structure that the class defines. A content class must at least have one attribute. On the other hand, a class can contain virtually an unlimited number of attributes. Class attributes can be added, removed and rearranged at any time using the administration interface. If an attribute is added to a class, it will be added to all current and upcoming instances of that class. If an attribute is removed, it will also be removed from all instances. 
Comme précisé précédemment, c'est la structure et le type des attributs qui conditionnent véritablement la structure de données que définit une classe. Une classe de contenu doit posséder au minimum un attribut et peut virtuellement en contenir une infinité. L'interface d'administration permet à tout moment d'ajouter, de supprimer et de réorganiser les attributs de classe. Si un attribut est ajouté à une classe, il sera ajouté à toutes les instances existantes et futures de cette classe. De même, si un attribut est supprimé d'une classe, il sera supprimé de toutes les instances existantes et futures de cette classe.

Although it is possible to remove and add attributes using the administration interface, in some cases these operations may corrupt the database. This usually happens when there are too many instances that need to be updated. If the required processing time exceeds the maximum execution time for PHP scripts, the sequence will be interrupted and thus the database will most likely be left in an inconsistent state. At the time of writing, this problem can only be solved by increasing the maximum execution time, which is defined in "php.ini" as "max_execution_time". The default value is 30 seconds, it should be increased to a couple of minutes. A more reliable solution (a PHP script that takes care of adding/removing attributes and run it from within a shell) will probably be added in the future. 
Bien qu'il soit possible de supprimer ou d'ajouter des attributs par l'intermédaire de l'interface d'administration, ces opérations peuvent, dans certains cas, entrainer une corruption de la base de données. Ceci arrive généralement lorsque trop d'instances doivent être mises à jour. Si le temps d'exécution du processus de mise à jour excède la valeur du paramètre max_execution_time du fichier de configuration php.ini alors le processus sera interrompu, laissant la base de données dans un état incohérent. Actuellement, la seule possibilité d'empécher qu'une telle mésaventure se produise est tout simplement d'augmenter à plusieurs minutes la valeur du paramètre max_execution_time fixée par défaut à 30 secondes. Une solution plus sérieuse (un script PHP prenant en charge l'ajout ou la suppression d'attributs et qui serait exécuté dans un shell) sera probablement ajoutée dans le futur.



Table des matières

  1. Content management -- Gestion de contenu
  2. Datatypes -- Types de données
  3. The content class -- La classe de contenu
  4. Class attributes -- Attributs de classe
  5. The content object -- L'objet de contenu
  6. Object versioning -- Gestion des versions des objets
  7. Multiple languages -- Plusieurs langues
  8. The content node -- Le noeud de contenu
  9. The content node tree -- L'arbre de noeuds de contenu
  10. Top level nodes -- Noeuds de niveau supérieur
  11. Node visibility -- Visibilité des noeuds
  12. Object relations -- Relations entre objets
  13. Sections -- Les sections
  14. URL storage -- Stockage d'URL
  15. Information collection -- Collecte d'informations

Commentaires