Introduction aux concepts d'eZ Publish

Bergfrid Skaara

Cet article est une traduction de l'article rédigé par Bergfrid Skaara d'eZ Systems, il explique les concepts de base d'eZ Publish.

- Titre : Introduction aux concepts d'eZ Publish

- Auteur : Bergfrid Skaara

- Parution : 30 avril 2008

- Mise à jour : 2 décembre 2019

- Licence :

Sommaire

- I. Introduction aux concepts d'eZ Publish

- I-A. Système de gestion de contenu

- II. La séparation du contenu et du design

- II-A. Contenu

- II-B. Design

- II-C. Composants d'une page Web

- III. Siteaccesses

- III-A. Interfaces de site

- III-B. Siteaccesses

- III-C. L'interface du site Web

- III-D. L'interface d'administration

- IV. Système de template

- IV-A. Système basé sur des composants

- IV-B. Les tâches de template

- V. Modèle de contenu orienté objet

- V-A. Qu'est-ce que l'orienté objet ?

- V-B. Classe de contenu

- V-C. Objet de contenu

- V-C-1. Versions et traductions

- VI. Arbre des nœuds de contenu

- VI-A. Nœuds de contenu

- VI-B. Arbre des nœuds de contenu

- VII. Conclusion et ressources

- VII-A. Ressources

I - Introduction aux concepts d'eZ Publish

eZ Publish est un CMS (Content Management System) très flexible et configurable. Il peut être utilisé pour réaliser n'importe quel site, allant d'un site personnel au site d'une multinationale avec gestion des accès multiutilisateurs, achats en ligne, forum de discussion et d'autres fonctions avancées. Basé sur des technologies et principes open source, il peut aisément être configuré ou étendu afin d'interagir avec d'autres solutions.

Cet article est le premier d'une série dédiée aux concepts et fonctionnalités abordés dans le nouveau livre eZ Publish Content Management Basics. Cette série est destinée aux débutants, qui ont peu ou pas d'expérience avec le système. Dans cet article, nous présentons de manière simple, compréhensible et non technique les concepts clés d'eZ Publish, ceci inclut la séparation du contenu et du design, le modèle de contenu orienté objet ainsi que l'arbre des nœuds de contenu.

I-A - Système de gestion de contenu

Le rôle d'un système de gestion de contenu est d'organiser et stocker du contenu, en prenant en compte le type et la complexité. Dans eZ Publish, les éléments d'information sont définis par leur classe de contenu et leur emplacement dans la hiérarchie de contenu. Le but principal d'un tel système est de mettre à disposition une solution bien structurée, flexible et automatisée qui permet à l'information d'être facilement distribuée et mise à jour au travers de différents canaux de diffusion (tel que l'Internet, les intranets et divers systèmes de front- et back-end). En bref, un CMS collecte, gère et publie du contenu sur différents types de sites.

II - La séparation du contenu et du design

L'une des clés lors du développement d'un site qui doit être facilement géré et maintenu est de séparer clairement le contenu du design. La séparation du contenu et du design apporte les avantages suivants :

- les éditeurs de contenu et les designers peuvent travailler séparément sans conflits ;

- le contenu peut facilement être publié dans différents formats ;

- le contenu peut facilement être transféré et réutilisé ;

- les changements de design peuvent être réalisés au travers de simples modifications.

II-A - Contenu

Le contenu est de l'information organisée et stockée d'une façon structurée par eZ Publish. Par exemple, les composants d'un article (titre, introduction, corps, images) ou les propriétés d'un produit (modèle, année, couleur) sont du contenu. Toutes les informations enregistrées pour une récupération ultérieure sont appelées du « contenu ».

II-B - Design

La présentation du contenu est déterminée par le design du site. Alors que le contenu fait référence à des données structurées, le design, lui, fait référence à la façon dont ces données seront représentées visuellement. Le design comprend les éléments qui constituent une interface Web : HTML, feuilles de style (CSS), des images qui ne font pas partie du contenu, typographie, fonte et ainsi de suite.

II-C - Composants d'une page Web

Bien que le contenu s'occupe du stockage est de la structure des données, le design dicte de quelle façon le contenu doit être présenté. Ces éléments sont combinés pour former une interface - une page Web - comme illustré par le diagramme ci-dessous :

Contenu + Design = Page Web

Un site web fait référence à l'ensemble, par exemple http://www.ez.no tandis qu'une page Web fait référence à une partie spécifique, par exemple http://www.ez.no/ez_publish. Un site Web consiste en une collection de pages Web ; il encapsule et contient tout ce qui touche à un domaine particulier du Web, paramètres de configuration, une base de données contenant le contenu structuré et des éléments de contenu, des fichiers liés au contenu et des fichiers liés au design.

III - Siteaccesses

III-A - Interfaces de site

Le contenu d'un site peut être affiché (et modifié) de différentes façons. C'est possible au travers de multiples interfaces de site. Chaque site a, au minimum, deux interfaces de site : l'interface d'administration et l'interface publique (front-end) pour les visiteurs. Cette dernière peut inclure une interface Web pour la gestion du contenu.

Un exemple typique est que l'administrateur du site utilise l'interface d'administration pour mettre en place et modifier le site, alors qu'un éditeur utilise l'interface du site Web, qui est plus légère, afin de gérer le contenu.

III-B - Siteaccesses

Afin de décider quelle interface de site afficher, eZ Publish utilise une solution générique appelée siteaccess. Les siteaccesses définissent deux choses :

- la façon dont eZ Publish reconnait l'interface de site à laquelle on accède ;

- les différents paramètres de configuration qui remplacent ceux par défaut.

Les overrides de configuration les plus importants, sont les paramètres de design et la base de données utilisée.

L'une des manières pour déterminer de quelle interface de site il s'agit est l'adresse (URL) demandée par le navigateur. En d'autres termes, une interface de site agit au niveau de la représentation visuelle tandis qu'un siteaccess agit au niveau du système. L'interface d'administration correspond au siteaccess admin, et l'interface publique (contenant éventuellement l'interface du site Web) correspond au siteaccess public. Les sites eZ Publish multilingues ont couramment différentes interfaces de site pour chaque langue disponible. De plus, ils ont de multiples siteaccesses publiques, un pour chaque langue.

III-C - L'interface du site Web

Les tâches de gestion de contenu les plus basiques peuvent être réalisées via l'interface du site Web. Il y a une interface utilisateur graphique (GUI) plus simple que celle de l'interface d'administration. L'une des raisons est que l'interface du site Web est intégrée dans la partie front-end du site. Résultat, vous pouvez naviguer sur le site, à l'aide de menus et de liens qui vous sont familiers afin de localiser du contenu. La deuxième raison pour laquelle l'interface du site Web est beaucoup plus simple que l'interface d'administration est la barre d'outils du site Web. Elle permet de réaliser facilement des opérations d'édition de contenu sur la page en cours de visualisation.

III-D - L'interface d'administration

L'interface d'administration est l'interface avancée de back-end, elle met à disposition de puissants outils pour la gestion et l'édition de contenus ainsi que pour la gestion de site, la configuration, la personnalisation et le développement. Ce qui rend l'interface d'administration plus avancée n'est pas seulement ce qu'elle vous permet de faire, mais aussi l'interface elle-même. La présentation visuelle du contenu est dépouillée de tous les éléments de design, de mise en page et de style propre au siteaccess public. Ceci dit, l'interface d'administration a sa propre mise en page, mais elle est limitée à une organisation structurée du contenu, avec des menus de navigation, des accès aux opérations de gestion et des interfaces intégrées à des fins spéciales (pour gérer des versions de contenus ou créer un nouveau compte utilisateur, par exemple).

IV - Système de template

Les templates représentent l'unité fondamentale d'un design de site dans eZ Publish. Une template va par exemple, définir qu'une page doit apparaître avec le titre du site en haut et la zone principale de contenu au milieu. Lorsqu'on accède à la page, le CMS va placer le contenu (le titre actuel et le texte principal) aux endroits appropriés dans la template.

Nous avons vu précédemment que la combinaison entre le contenu et le design formait une page Web. Le siteaccess spécifie, entre autres, quel ensemble de fichiers de design utiliser (feuilles de style, images, templates). Un template eZ Publish est un fichier HTML étendu qui décrit la manière dont certains types de contenu doivent être représentés. En bref, les templates représentent les unités de transformation qui génèrent la mise en page du site, soit pour l'ensemble d'une page ou pour une partie de page.

IV-A - Système basé sur des composants

Le système de template d'eZ Publish est basé sur des composants. Ceci est dû au fait que dans la plupart des cas, une page Web est créée au travers d'une combinaison de plusieurs templates. eZ publish génère au minimum le template principal, appelé pagelayout. Le pagelayout contient les tags <html>, <head> et <body> ; à l'aide de la feuille de style (CSS), il définit l'aspect global du site. Entre autres, le pagelayout définit le titre, le logo, le menu et le pied de page qui sont présents sur toutes les pages générées par le système.

Il y a différents types de templates en plus du template principal (le pagelayout). Certains sont intégrés, tandis que d'autres sont réalisés spécifiquement. Il y a des règles qui dictent comment le contenu doit être affiché, dépendamment du contexte et indépendamment de la manière dont le contenu est structuré et stocké. Le contexte peut être un siteaccess spécifique ou le cadre dans lequel un élément de contenu se trouve. Par exemple, une image sera affichée différemment dans un article et dans une galerie d'images.

IV-B - Les tâches de template

En plus de la syntaxe HTML standard, il est possible d'utiliser dans les templates, des codes spécifiques à eZ Publish pour, par exemple, extraire et afficher du contenu provenant d'une autre partie de la hiérarchie de contenu.

V - Modèle de contenu orienté objet

V-A - Qu'est-ce que l'orienté objet ?

La structure de contenu d'eZ Publish est basée sur des principes provenant des langages de programmation orienté objet tels que Java et C++. De manière superficielle, l'orienté objet signifie, voir le « monde » en termes d'objets. Dans la vie réelle, les gens sont entourés par de nombreux objets, tels que des meubles, des voitures, des animaux, et d'autres personnes. Chacun de ces objets a des caractéristiques. C'est aussi la manière dont le contenu est décrit et géré dans eZ Publish - avec des objets et des attributs (caractéristiques).

eZ Publish supporte différents types de contenu tels que des images, des articles, des fichiers multimédias, des forums et des formulaires de commentaires. Un type de contenu est appelé une classe de contenu (ou juste « classe »), tandis qu'une partie spécifique de contenu est appelée un objet de contenu (ou juste « objet »).

Une structure de données est définie par une classe de contenu, et une classe de contenu est constituée d'attributs. Un attribut peut être perçu comme un champ. Les caractéristiques d'un attribut sont déterminées par des types de données (datatypes). L'illustration ci-dessous, résume et montre les relations entre les types de données, les attributs, les classes de contenu et les objets de contenu. Les objets de contenu sont des instances de la même classe de contenu, ce qui signifie qu'ils sont du même type, mais contiennent des données différentes.

V-B - Classe de contenu

Une classe de contenu peut être perçue comme un plan structuré pour un type particulier de contenu. Les propriétés de ce contenu sont représentées au travers d'attributs. Par exemple, la classe de contenu Article contient des attributs comme le titre, le nom de l'auteur, le texte d'introduction et le texte de l'article.

Un type de données décrit le type de la valeur qui peut être stockée dans l'attribut et représente la plus petite entité de stockage possible. Il détermine de quelle manière un type spécifique d'information doit être validé, stocké et récupéré.

Type de données, attributs, classe de contenu et objets

V-C - Objet de contenu

Il est important de comprendre qu'une classe de contenu est juste une définition d'une structure arbitraire. En d'autres termes, la classe elle-même ne stocke aucune donnée. Une fois qu'une classe de contenu a été définie, il est possible de créer des instances de cette classe. Une instance d'une classe de contenu est appelée un objet de contenu. En réalité, le contenu est stocké dans les objets (par exemple, des dossiers, des articles, des commentaires, des employés et des membres) et plus précisément dans les attributs.

V-C-1 - Versions et traductions

Un objet de contenu est composé d'au moins une version. Chaque fois que vous modifiez un objet et que vous sauvegardez les modifications, une version est sauvée. La première fois, si vous sauvez vos modifications (par rapport à l'affichage de l'objet sur le site Web), une nouvelle version est créée. Sinon, une version existante va simplement être mise à jour. Cette couche supplémentaire permet d'avoir plusieurs versions du même contenu. Chaque version se compose d'au moins une traduction. La couche de traduction permet d'afficher la même version du même contenu dans plusieurs langues. C'est cette couche finale de traduction qui détient les attributs d'un objet.

VI - Arbre des nœuds de contenu

À ce stade, eZ Publish ajoute une autre couche d'abstraction par rapport à l'orienté objet classique au travers du concept de nœud. Ici, l'abstraction se réfère à la manière dont le système vous permet de penser à un article sans savoir comment c'est géré en interne.

VI-A - Nœuds de contenu

Dans eZ Publish, les objets de contenu sont enveloppés (ou encapsulés) et structurés en utilisant des nœuds de contenu (ou juste nœud). Un nœud enveloppe un objet de contenu afin de fournir un mécanisme pour accéder aux données stockées dans l'objet et les afficher sur le site Web. Les objets n'ont aucune capacité structurelle propre. En d'autres termes, les objets de contenu ne peuvent pas se mettre en relation eux-mêmes avec d'autres objets. Envelopper un objet dans un nœud permet cela. De plus, les nœuds représentent la version publiée des objets de contenu.

L'illustration suivante montre un exemple simplifié d'un nœud et de son objet encapsulé, comme il aurait été représenté à l'intérieur du système.

Objet - relation au nœud

VI-B - Arbre des nœuds de contenu

Les nœuds sont organisés dans un arbre des nœuds. L'arbre est divisé en trois branches majeures : les branches de contenu, de médias et d'utilisateurs (et quelques autres parties qui ne sont pas souvent utilisées par les éditeurs de contenu). La plupart du temps, vous allez travailler avec la branche de contenu de l'arbre des nœuds. L'arbre des nœuds est donc considéré comme étant la hiérarchie de contenu, qui est un concept important lorsqu'on crée du nouveau contenu.

L'illustration suivante montre un exemple simplifié de la manière dont les objets sont référencés par les nœuds afin de composer un arbre de nœuds, vu du côté utilisateur.

Arbre des nœuds de contenu

Les objets de contenu peuvent être des objets individuels et en même temps des conteneurs pour le contenu se situant en dessous d'eux dans la hiérarchie de contenu. Par exemple, un ou plusieurs articles sont généralement stockés en dessous d'un dossier. Lorsque le dossier est affiché, il affiche automatiquement un résumé des articles stockés au-dessous. Chaque classe de contenu a un template différent pour afficher les objets de cette même classe. Par conséquent, alors qu'un dossier va afficher quelques attributs des objets se trouvant au-dessous dans la hiérarchie, un article ne va pas nécessairement faire la même chose.

VII - Conclusion et ressources

Cet article est le premier d'une série qui va présenter une partie de la matière contenue dans le livre eZ Publish Content Management Basics. Il décrit les concepts clés d'eZ Publish, incluant la signification de la séparation du contenu et du design, du système de template ainsi qu'un aperçu du modèle de contenu.

Ci-dessous une liste de termes clés et de définitions introduits dans cet article :

- Content Management System (CMS) : utilisé pour collecter, gérer et publier du contenu.

- Contenu : information (données) organisée et stockée dans une structure.

- Design : présentation visuelle, mise en page et balise de données.

- Siteaccess : indique au système comment reconnaitre l'interface du site Web à laquelle on accède.

- Template : un fichier HTML personnalisé qui détermine la mise en page et le design pour un type spécifique de contenu.

- Objet/Classe de contenu : un type de contenu est appelé une classe de contenu, alors qu'une partie spécifique de contenu est appelée un objet de contenu. Une classe de contenu peut être vue comme un plan de stucture pour un type de contenu particulier. Les propriétés d'une classe sont appelées « attributs ».

- Nœud de contenu : dans eZ Publish, les objets de contenu sont enveloppés (ou encapsulés) et structurés en utilisant des nœuds de contenu. Les nœuds permettent de placer les objets dans l'arbre des nœuds.

- Arbre des nœuds (de contenu) : les nœuds sont organisés dans un arbre de nœuds divisé en trois branches principales : les branches de contenu, de médias et d'utilisateurs. L'arbre des nœuds est également connu sous le nom de « hiérarchie de contenu ».

VII-A - Ressources

- Le livre eZ Publish Content Management Basics

- Le site de documentation eZ