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.

  • El campo «Opciones de transformaciones» es un campo de texto libre. En él debe introducir opciones específicas a la función de transformación. Generalmente las transformaciones funcionan con los valores predeterminados, pero generalmente es una buena idea revisarlas para saber qué opciones son necesarias. Tiene que separar las opciones entre sí en el formato «’a’,’b’,’c’,...» (SIN ESPACIOS INTERMEDIOS), de forma similar a los campos ENUM/SET. Esto es porque las opciones serán convertidas en un array, con el primer valor como primer elemento del array y así sucesivamente. Si desea especificar un conjunto de caracteres MIME, puede hacerlo en este campo. Debe hacerlo fuera de las opciones predefinidas en la transformación MIME como último valor del conjunto. Utilice el formato «’; charset=XXX’». Si utiliza una transformación para la que se pueden especificar 2 opciones y desea agregar un conjunto de caracteres debe utilizar: «’primer parámetro’,’segundo parámetro’,’charset=XXX’». También puede utilizar los valores predeterminados para los parámetros utilizando: «’‘,’‘,’charset=XXX’».

Estructura de archivos

Todas las transformaciones específicas a tipos MIME son definidas en archivos de clase en la carpeta ‘libraries/plugins/transformations/’. Cada uno extiende una clase abstracta particular de transformaciones definida en libraries/plugins/transformations/abstract.

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/plugins/transformations/TEMPLATE and libraries/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.)