Transformations

Note

Vous devez avoir configuré Configuration de stockage de phpMyAdmin pour utiliser la fonctionnalité de transformations.

Introduction

Pour permettre les transformations, vous devez paramétrer la table column_info et les directives appropriées. Veuillez consulter la section Configuration sur la manière de faire.

Vous pouvez appliquer différentes transformations au contenu de chaque colonne. La transformation prendra le contenu de chaque colonne et le transformera en fonction des règles définies dans la transformation sélectionnée.

Imaginons que vous ayez une colonne ‘nom_de_fichier’ qui contient un nom de fichier. Normalement, vous ne verriez dans phpMyAdmin que ce nom de fichier. En utilisant les transformations, vous pouvez transformer ce nom de fichier en lien HTML, et ainsi cliquer sur la structure de phpMyAdmin sur le lien du champ et voir le fichier affiché dans une nouvelle fenêtre de navigateur. En utilisant les options de transformation, vous pouvez également spécifier des chaînes pour préfixer ou suffixer des chaînes ou d’autres formats pour lesquels vous voulez voir le résultat avec ces transformations.

Pour un aperçu général sur les transformations et leurs options, vous pouvez consulter la page <www.votre-hote.com>/<votre-repertoire-installation>/transformations_overview.php de votre installation.

Pour un tutoriel sur la façon d’utiliser efficacement les transformations, voir notre section Liens sur la page d’accueil officielle de phpMyAdmin.

Utilisation

Consultez votre page tbl_structure.inc.php (c’est-à-dire, atteindre la page en cliquant le lien ‘Structure’ d’une table). Cliquez alors sur « Modifier » (ou l’icône Modifier) et alors vous verrez trois nouveaux champs à la fin de la ligne qui sont : ‘Type MIME’, ‘Transformation’ et ‘Options de transformation’.

  • Le champ ‘Type MIME’ est un champ déroulant. Sélectionnez le type MIME qui correspond au contenu de la colonne. Veuillez noter que les transformations sont inactives tant qu’aucun type MIME n’est sélectionné.

  • Le champ ‘Browser transformation’ est un champ à liste déroulante. Vous pouvez choisir à partir d’une liste grandissant sans cesse de transformations prédéfinies. Voir ci-dessous pour des informations sur la manière de construire vos propres transformations. Il existe des transformations globales et des transformations liées aux types MIME. Les transformations globales peuvent être utilisées pour tous les types MIME. Elles prendront si nécessaire le type MIME en considération. Les transformations liées au type MIME n’opèrent habituellement que sur un certain type MIME. Il existe des transformations qui opèrent sur le type MIME principal (comme ‘image’), et qui prendront très vraisemblablement en compte le sous-type, et celles qui n’opèrent que sur un sous-type spécifique (comme ‘image/jpeg’). Vous pouvez utiliser les transformations sur les types MIME pour lesquels la fonction n’a pas été prévue. Il n’y a pas de vérification pour s’assurer que vous avez choisi la bonne transformation, aussi, assurez-vous du résultat du traitement.

  • Le champ ‘Options de transformation’ est un champ de texte libre. Vous devez saisir des options de fonction de transformation spécifiques ici. Habituellement, les transformations peuvent opérer avec les options par défaut, mais il est conseillé de s’assurer des options nécessaires. Comme pour les champs ENUM/SET, vous devrez séparer plusieurs options en utilisant le format ‘a’,’b’,’c’,… (NOTEZ L’ABSENCE D’ESPACES). La raison est que les options seront analysées comme un tableau, la première valeur étant vue comme le premier élément du tableau, ainsi de suite. Si vous voulez spécifier un jeu de caractères MIME, vous pouvez le définir dans transformation_options. Vous devez mettre cela hors des options prédéfinies d’une transformation mime spécifique, comme dernière valeur du jeu. Utilisez le format « ’; charset=XXX’ ». Si vous utilisez une transformation, pour laquelle vous pouvez spécifier deux options et que vous voulez ajouter un jeu de caractères, entrez « ’premier paramètre’,’second paramètre’,’charset=us-ascii’ ». Vous pouvez cependant, utiliser les paramètres par défaut : « ’‘,’‘,’charset=us-ascii’ ».

Structure de fichier

All specific transformations for mimetypes are defined through class files in the directory ‘libraries/classes/Plugins/Transformations/’. Each of them extends a certain transformation abstract class declared in libraries/classes/Plugins/Transformations/Abs.

Ils sont emmagasinés dans des fichiers pour faciliter la personnalisation et l’ajout aisé de nouvelles transformations.

Parce que l’utilisateur ne peut pas mettre ses propres types mime, on garde l’assurance que les transformations fonctionnent toujours. Cela n’a pas de sens d’appliquer une transformation à un type mime, que la fonction de transformation ne sait pas manipuler.

Il y a un fichier de base appelé ‘transformations.lib.php‘ qui fournit des fonctions de base qui peuvent être incluses dans une autre fonction de transformation.

La convention de nommage de fichier est [Mimetype]_[Subtype]_[Transformation Name].class.php, alors que la classe abstraite qui l’étend prend le nom [Transformation Name]TransformationsPlugin. Toutes les méthodes qui doivent être implémentées par un plugin de transformation sont :

  1. getMIMEType() et getMIMESubtype() dans la classe principale ;

  2. getName(), getInfo() et applyTransformation() dans la classe abstraite qui l’étend.

Les méthodes getMIMEType(), getMIMESubtype() et getName() renvoient le nom du type MIME, les sous-type MIME et la transformation respectivement. getInfo() renvoie la description de la transformation et les options éventuelles qu’il peut recevoir et applyTransformation() est la méthode qui effectue en fait le travail de transformation du plugin.

Please see the libraries/classes/Plugins/Transformations/TEMPLATE and libraries/classes/Plugins/Transformations/TEMPLATE_ABSTRACT files for adding your own transformation plug-in. You can also generate a new transformation plug-in (with or without the abstract transformation class), by using scripts/transformations_generator_plugin.sh or scripts/transformations_generator_main_class.sh.

La méthode applyTransformation() a toujours besoin de trois variables :

  1. $buffer - contient le texte de la colonne. C’est le texte que vous voulez transformer.

  2. $options - contient toutes les options passées par l’utilisateur à la fonction de transformation sous forme de tableau.

  3. $meta - contient un objet avec une information sur votre colonne. L’information est tirée du résultat de la fonction mysql_fetch_field(). Cela signifie, que toutes les propriétés décrites sur la page du manuel sont disponibles dans cette variable et peuvent être utilisées pour transformer une colonne en accord avec les propriétés unsigned/zerofill/not_null/… La variable $meta->mimetype contient le type MIME original de la colonne (c-à-d. ‘text/plain’, ‘image/jpeg’ etc.)