Transformaciones

Nota

You need to have configured the Almacenamiento de configuración para phpMyAdmin for using transformations feature.

Introducción

Para activar las transformaciones es necesario configurar la tabla column_info y las directivas apropiadas. Podrá encontrar las instrucciones para hacerlo en Configuración.

Se pueden aplicar diferentes transformaciones a los contenidos de cada columna. La transformación obtendrá el contenido de cada columna y lo transformará según ciertas reglas definidas en la transformación seleccionada.

Supongamos, por ejemplo, si se tiene una columna ‘filename’ que contiene un nombre de archivo. Normalmente se vería ese nombre de archivo en phpMyAdmin. Utilizando transformaciones se puede transformar ese nombre de archivo a un enlace HTML en el que se puede pulsar para acceder al archivo en una nueva ventana. Utilizando las opciones de transformaciones se pueden definir cadenas a agrear al principio o al final de otra o el formato en el que almacenar la salida.

Para una visión general de todas las transformaciones disponibles y sus opciones, se puede consultar la página <www.su-dominio.com>/<su-directorio-de-instalación>/transformation_overview.php de su instalación de phpMyAdmin.

For a tutorial on how to effectively use transformations, see our Link section on the official phpMyAdmin homepage.

Utilización

Revise la página tbl_structure.php de su instalación (pulsando en el enlace «Estructura» de una tabla). Luego pulse en «Modificar» (o el ícono respectivo) y luego podrá ver tres nuevos campos al final de la línea llamados «Tipo MIME», «Transformaciones de exploración» y «Opciones de transformaciones».

  • El campo ‘Tipo MIME’ es una lista desplegable en la que se debe seleccionar el tipo MIME que corresponde a los contenidos de la columna. Porfavor note que las transformaciones no estarán disponibles hasta que se seleccione un tipo MIME.
  • El campo «Transformaciones de exploración» es una lista desplegable. Puede elegir de una, esperemos, creciente cantidad de transformaciones predefinidas. Revise más adelante la información sobre cómo crear sus propias transformaciones. Hay transformaciones globales y transformaciones que dependen del tipo MIME. Las transformaciones globales pueden ser utilizadas para cualquier tipo MIME pero lo tendrán en cuenta si es necesario. Las transformaciones que dependen del tipo MIME normalmente sólo operarán en tipos MIME determinados. Hay transformaciones que operaran sobre el tipo MIME principal (como «image»), que seguramente tienen en cuenta el subtipo y otras operaciones que sólo operan en un subtipo específico (como «image/jpeg»). Puede utilizar transformaciones en tipos MIME para los que una función no fue definida. No hay controles asegurando la correción de su elección, tenga cuidado con lo que podría ser la salida.
  • The field ‘Transformation options’ is a free-type textfield. You have to enter transform-function specific options here. Usually the transforms can operate with default options, but it is generally a good idea to look up the overview to see which options are necessary. Much like the ENUM/SET-Fields, you have to split up several options using the format ‘a’,’b’,’c’,...(NOTE THE MISSING BLANKS). This is because internally the options will be parsed as an array, leaving the first value the first element in the array, and so forth. If you want to specify a MIME character set you can define it in the transformation_options. You have to put that outside of the pre- defined options of the specific mime-transform, as the last value of the set. Use the format “’; charset=XXX’”. If you use a transform, for which you can specify 2 options and you want to append a character set, enter “‘first parameter’,’second parameter’,’charset=us-ascii’”. You can, however use the defaults for the parameters: “’‘,’‘,’charset =us-ascii’”. The default options can be configured using $cfg['DefaultTransformations']

Estructura de archivos

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.

Están almacenados en archivos para facilitar la personalización y hacer sencillo el agregar nuevas transformaciones.

Debido a que los usuarios no pueden introducir sus propios tipos MIME, es seguro que las transformaciones siempre funcionarán. No tiene sentido aplicar transformaciones a un tipo MIME que la función de transformación no sabe manejar.

Existe un archivo básico llamado «transformations.inc.php» que provee cierta funcionalidad básica y que puede ser incluído por cualquier otra función de transformación.

La convención para el nombre de archivo es [tipo_mime]_[subtipo]_[nombre_de_transformación].class.php, y la clase abstracta que extiende se llama [nombre_de_transformación]TransformationsPlugin. Los métodos que tienen que ser implementandos por una transformación son:

  1. getMIMEType() y getMIMESubtype() en la clase principal;
  2. getName(), getInfo() y applyTransformation() en la clase abstracta que extiende.

Los métodos getMIMEType(), getMIMESubtype() y getName() devuelven el nombre del tipo MIME, del sub-tipo MIME y de la transformación respectivamente. getInfo() devuelve la descripción de la transformación y las opciones que puede recibir y applyTransformation() es el método que hace el trabajo real del plugin de transformación.

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.

El método applyTransformation() siempre recibirá tres variables:

  1. $buffer - Contiene el texto de la columna. Este es el texto que se desea transformar.
  2. $options - Contiene un array con todas las opciones de la función de transformación provistas por el usuario.
  3. $meta - Contains an object with information about your column. The data is drawn from the output of the mysql_fetch_field() function. This means, all object properties described on the manual page are available in this variable and can be used to transform a column accordingly to unsigned/zerofill/not_null/... properties. The $meta->mimetype variable contains the original MIME-type of the column (i.e. ‘text/plain’, ‘image/jpeg’ etc.)