drupal 7 – Cambiar el formato de entrada para más de 3000 nodos

Pregunta:

Tengo muchos nodos que necesitan cambiar su formato de entrada; podría hacerlo a mano, pero no terminaré antes de la Navidad de 2014.

¿Dónde almacena Drupal esa información? ¿Cómo puedo cambiar el formato de entrada en una fracción de segundo, con una consulta SQL?

Respuesta:

Hacer esto en masa podría presentar un riesgo de seguridad potencial, especialmente si está cambiando el formato a un conjunto de filtros más indulgente. Los formatos de texto modifican la salida del campo durante la visualización, no durante el guardado. Por ejemplo, cualquier HTML o PHP que se haya escapado previamente enviado a un campo se procesará / ejecutará directamente si, accidental o intencionalmente, configura el filtro en código HTML completo o PHP.

Por esta razón, Drupal no actualiza automáticamente todos los nodos existentes cuando cambia un formato de texto. El comportamiento de los formatos de texto en escenarios similares sigue siendo un tema abierto. (Consulte Los formatos de texto deben arrojar un error y negarse a procesar si falta un complemento , que aún está abierto el 31 de mayo de 2021).

Dicho esto, cada campo almacena el texto field_machine_name_format , donde field_machine_name es el nombre de la máquina de campo. Esa columna debe actualizarse en las tablas field_revision_field_machine_name y field_data_field_machine_name .

El valor de la columna es un nombre de máquina definido como la columna de formato en la tabla filter_format . Actualizar todos los campos sería una cuestión de ejecutar una consulta como la siguiente, para cada campo que necesita cambiar.

UPDATE field_revision_foo SET field_foo_format = 'new_format';
UPDATE field_data_foo SET field_foo_format = 'new_format';

Puede determinar el valor del valor new_format desde / admin / config / content / Format, desde el enlace Configurar .

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım