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

URL translation -- Traduction d'URL

Date de publication: le mardi 22 mars 2011 à 11h44
Dernière modification: par Pascal BOYER le dimanche 27 mars 2011 à 22h05

28/09/2010 11:08

versions 3.10, 4.x

This section explains the different URL types that can be used with eZ Publish and how the URL translator works. By default, eZ Publish is capable of handling two types of URLs:
Ce paragraphe détaille les différents types d'URI pouvant être utilisés avec eZ Publish et explique le fonctionnement du traducteur/convertisseur d'URI. Par défaut, eZ Publish peut gérer deux types d'URI:

  • System URLs 
    Les URL système
  • Virtual URLs 
    Les URL virtuels

System URLs / URI système

A system URL tells eZ Publish about which module that should be run and which view that should be executed. It may contain additional parameters/values that are passed to the view itself. Every system URL follows the same structure and can be broken down into the following components:
Un URI système indique à eZ Publish quel module utiliser et quelle vue exécuter. Cet URI peut également contenir d'autres paramètres/valeurs passés à la vue elle-même. Tous les URI système suivent la même structure et peuvent être décomposés en cette suite d'éléments:

  • Module name 
    Nom du module
  • View name 
    Nom de la vue
  • View parameters 
    Paramètres de vue

The view parameters are optional and may consist of ordered and/or unordered values. A comprehensive description of the view parameters can be found in the Modules and views section. The following model shows the required sequence of the different URL components:
Les paramètres de vue sont optionnels et peuvent se composer de valeurs ordonnées ou non-ordonnées. Une description complète des paramètres de vue est présentée par l'article Modules and views -- Modules et vues . L'exemple qui suit montre l'ordre requis des différents composants d'un URI:

http://www.exemple.com/index.php/<module>/<view>/[<paramètres_de_vue_ordonnés>]/[<paramètres_de_vues_non-ordonnés>] 
 
URL component
Composants de l'URL
Description
Module The name of the module that should be run. 
Le nom du module à utiliser
View
Vue
The name of the view that should be executed.
Le nom de la vue à exécuter
Ordered view parameters
Paramètres de vue ordonnés
Some views make use of ordered parameters.
Certaines vues utilisent des paramètres ordonnés.
Unordered view parameters
Paramètres de vue non-ordonnés
Some views make use of unordered parameters.
Certaines vues utilisent des paramètres non-ordonnés.

The following example shows a typical system URL:
L'exemple qui suit illustre un URL système classique:

http://www.exemple.com/index.php/content/edit/13/3

By looking at the URL, we can tell that it will instruct eZ Publish to run the "content" module and execute the "edit" view. The values "13" and "3" are parameters that will be passed to the view itself. Please note that the exact style of the URLs depend on the access method that is used and the way the web server is configured. For example, the web server can be configured to hide away the "index.php" part of the address.
En regardant cet URI, nous savons qu'il sera demandé à eZ Publish de lancer le module content et d'exécuter la vue edit. Les valeurs 13 et 3 sont des paramètres passés à la vue elle-même. Notez que la syntaxe exacte des URI dépend de la méthode d'accès  utilisée et de la configuration du serveur web. Ce dernier pouvant être configuré, par exemple, pour cacher la partie index.php de l'adresse.

Virtual URLs / URI virtuels

A virtual URL (also known as URL alias or nice URL) is nothing more than an alias for an existing system URL. Virtual URLs are nicer, easier to remember and sometimes shorter than system URLs. While system URLs reveal a great deal about what eZ publish is instructed to do, virtual URLs do not reveal any system specific information at all. A virtual URL can not be broken down to components in the same way as a system URL. The following example shows a typical virtual URL:
Un URI virtuel (aussi nommé alias d'URI ou bel URI) n'est rien d'autre qu'un alias d'un URI système existant. Les URI virtuels sont plus conviviaux, plus faciles à mémoriser et parfois plus courts que les URI systèmes. Alors que ces derniers affichent clairement ce qui est demandé à eZ publish, les URI virtuels ne révèlent aucune information spécifique du système car ils ne peuvent se décomposer en une suite d'éléments comme dans le cas des URI système. L'exemple qui suit illustre un URI virtuel classique:

http://www.exemple.com/company/about

There are actually two types of virtual URLs, ones that are automatically generated and maintained by eZ Publish and ones that are created and maintained by the site administrator. However, all virtual URLs are treated equally and thus they are handled in the same way.
Il y a actuellement deux types d'URI virtuels: ceux automatiquement générés et maintenus par eZ publish et ceux créés et maintenus par l'administrateur du site. Ils sont, cependant, tous traités et gérés de la même manière.

From 3.10, multilingual virtual URLs are supported. The system keeps track of the URLs in a table which basically consists of three columns:
Depuis la version 3.10, les URI virtuels multilingues  sont supportés. A cet effet, le système conserve une trace des URI dans une table de la base de données composée de 3 colonnes:

 Virtual address
 Adresse virtuelle
Action  Language mask
 Masque de langue
company/about eznode:46 2

An actual URL using the virtual address in the table above could be the following:
Un URL utilisant l'adresse virtuelle du tableau ci-dessus ressemblerait donc à ceci:

http://www.exemple.com/company/about

According to the table above, the virtual URL will be translated internally to the following system URL:
En accord avec le tableau ci-dessus, l'URI virtuel sera traduit en interne en l'URI système suivant:

http://www.exemple.com/content/view/full/46

Both URLs are perfectly valid and will produce the exact same output, in this case a full view of node number 46. When the virtual URL is used, the redirection/mapping will be done internally and thus the user will reach the target node without any glitches in form of redirections, page reloads, etc. The language mask field is used internally by the system to identify which languages the alias is associated with (based on the same bit-field algorithm as for content objects).
Les deux URI sont tout à fait valides et produiront exactement le même résultat, à savoir, dans notre cas, l'affichage de la vue full du nœud 46. Lorsque l'URI virtuel est utilisé, la redirection/correspondance est réalisée en interne et l'utilisateur atteint donc le nœud cible sans aucun problème de redirection, de rechargement de page, etc... Le champ de masque de langue est utilisé en interne par le système pour identifier les langues auxquelles l'alias est associé (méthode identique à l' algorithm bit-field  des objets de contenu).

If the site administrator creates a virtual URL for accessing the "content/search" interface, the system will add a new entry to the table:
Si l'administrateur du site crée un URI virtuel pour accéder à l'interface content/search alors le système ajoute une nouvelle entrée à la table:

 Virtual address
 Adresse virtuel
Action  Language mask
 Masque de langue
findme module:content/search 4

An actual URL using the virtual address in the table above could be the following:
Un URI utilisant l'adresse virtuelle du tableau ci-dessus pourrait être:

http://www.example.com/findme

According to the table above, the virtual URL will be translated internally to the following system URL:
En accord avec le contenu du tableau ci-dessus, l'URL virtuel sera traduit en interne en l'URL suivant:

http://www.example.com/content/search

Automated virtual URL generation and maintenance / Génération automatique d'URL virtuel et maintenance

Every time an object is published, the system will automatically generate a virtual URL for each of the object's node assignments. If an object exists in several languages, the system will generate virtual URLs for all translations. The generated URL for a node is based on the node's location in the tree and the name of the object that the node encapsulates. The virtual URLs generated for the nodes are handled completely by the system and can not be changed using the administration interface. The following illustration shows an example of objects, nodes and corresponding URLs.
Chaque fois qu'un objet est publié, le système génère automatiquement un URI virtuel pour chacun des nœuds auquel l'objet est assigné. Si un objet existe en plusieurs langues, le système génère pour chacune d'elle un URI virtuel. L'URI généré pour un nœud se base sur l'emplacement de celui-ci dans l'arborescence et sur le nom de l'objet que le nœud encapsule. Les URI virtuels générés pour les nœuds sont entièrement gérés par le système et ne peuvent être modifiés par le biais de l'interface d'administration. L'illustration suivante est un exemple d'objets, de nœuds et des URI correspondants:

 

 

Objets, nœud et table d'URL

The example above clearly demonstrates how the virtual URLs are generated. For each node, the system generates a path of strings separated by slashes. The strings in the path are the names of the objects that are referenced by the nodes up to and including the target node.
L'exemple ci-dessus montre clairement comment sont générés les URI virtuels. Pour chaque nœud, le système génère un chemin constitué de chaînes de caractères séparées par des slash ("/"), chacune de ces chaînes représentant les noms des objets référencés par les nœuds jusqu'au nœud cible inclus.

In eZ Publish 3.9 and earlier versions, URL transformation rules were more restrictive and only supported some ASCII characters (lowercase Latin letters from "a" to "z", digits and underscores). Special symbols were converted to underscores and special characters were converted using the built in transliteration feature. For example, the Norwegian characters "Æ", "Ø" and "å" were converted to "ae", "oe" and "aa". If the system was about to generate a virtual URL that already existed, it would simply append an underscore at the end of the newly generated address and thus the risk of having duplicate URLs was eliminated.
Dans les versions 3.9 et antérieures de eZ Publish, les règles de transformation des URI étaient plus restrictives et ne supportaient que quelques caractères ASCII (les minuscules Latin de a à z, les chiffres et le symbole underscore ("_")). Les symboles spéciaux étaient convertis en underscores ("_") et les caractères spéciaux convertis en utilisant la fonction interne de translittération. Par exemple, les caractères norvégiens "Æ", "Ø" et "å" étaient convertis en "ae", "oe" et "aa". Si le système devait générer un URI virtuel déjà existant, il ajoutait simplement un underscore à la fin de la nouvelle adresse générée, supprimant ainsi le risque d'avoir des doublons d'URI.

From 3.10, it is possible to enable Unicode support for the URLs and thus no transliteration needs to be performed since most characters are allowed. If there are two nodes with identical or almost identical names within the same location, the system will generate unique URL aliases for newly introduced conflicting nodes by attaching numbers to their URL aliases (for example, "Company", "Company2", "Company3" and so on).
Depuis la version 3.10, il est possible d'activer le support de la norme Unicode  pour les URI rendant l'exécution de la fonction de translittération inutile puisque la plupart des caractères deviennent alors autorisés. Dans le cas où deux nœuds, situés au même endroit, ont le même nom ou presque, le système génère des alias d'URI uniques en leur ajoutant un chiffre (par exemple, Company, Company2, Company3 et ainsi de suite).

When the name of an object is changed, the system will take care of changing the virtual URLs for the involved nodes. In addition, an internal redirection will be created, which will make sure that the old URL still works. The old virtual URL will keep working until the exact same URL needs to be generated for a node. In this case, the old virtual URL will be deleted.
Lorsqu'un nom d'objet est modifié, le système prend soin de modifier les URI virtuels pour les nœuds impliqués. De plus, une redirection interne est créée permettant de s'assurer que l'ancien URI fonctionne encore. Il fonctionnera d'ailleurs jusqu'à ce que le même URI ait besoin d'être généré pour un nœud, auquel cas, l'ancien URL virtuel est alors supprimé.

Manual virtual URLs and translations / URI virtuels manuels et traductions

It is possible to manually add, edit and remove virtual URLs using the administration interface (both global aliases and node URL aliases). Refer to "Managing URL aliases" for more information. In addition, wildcard based URL forwarding is supported. (This feature was removed when implementing the multilingual URLs functionality for eZ Publish 3.10.0 and then re-added in later versions.)
Il est possible d'ajouter, d'éditer et de supprimer manuellement des URI virtuels en utilisant l'interface d'administration (les alias globaux et les alias des URI des nœuds). Référez-vous à la documentation sur le Support multilingue des alias d'URI  pour plus d'informations. De plus, la redirection d'URI basée sur les caractères génériques  est supportée. Cette fonctionnalité avait été supprimée lors de l'implémentation des URI multilingues dans la version 3.10.0 de eZ Publish puis réintroduite dans les versions suivantes.

Commentaires