Con Drupal no puedo editar contenido de los posts, body en blanco

En un sitio web con Drupal 7 de repente al ir a editar posts que ya tenía publicados con contenido, y que se ven correctamente, la caja de 'Body' donde tengo que editar el contenido aparece en blanco, y no puedo acceder al contenido para editarlo, ni siquiera configurando la edición como texto plano.

El único cambio que he hecho últimamente es instalar nuevos módulos, y un cambio de tema, pero me pasa con todos los temas, y he desactivado los módulos y sigue ocurriendo.

Utilizo CKEditor, y también lo he desactivado, pero sigo teniendo la ventana de edición en blanco.

Ahora voy a probar a eliminar completamente la instalación de ckeditor y luego tendré que reconfigurar todos los formatos de edición pero si alguien tiene otra sugerencia..

He desinstalado e incluso eliminado el módulo de CKEditor, y sigo teniendo el problema.

Siguiente paso: desinstalar completamente los últimos módulos, le toca el turno al módulo de Amazon..

Por fin he encontrado el problema. Parece ser que en alguna actualización de módulos o del core el idioma de las tablas que contienen los datos de los 'fields' de Drupal se ha perdido, y ha pasado de estar en lenguaje 'es', 'ca' o 'en', en mi caso, a estar en lenguaje indefinido, con valor 'und' mientras los nodos conservan correctamente el lenguaje.

Parece ser que esta incoherencia es la que hace que no se muestre el contenido de los campos de los nodos de Drupal, como el 'body', y también los campos personalizados, cuando estoy en modo edición.

Total, que lo que hay que hacer para volver a 'sincronizar' el idioma de nodos y sus campos es actualizar el idioma de las tablas de 'field_data_xxx' con el idioma de los nodos con sentencias SQL como estas:

Corrección del idioma para el 'body'

update field_data_body
       inner join node on field_data_body.entity_id=node.nid 
                       and field_data_body.revision_id=node.vid
set field_data_body.language=node.language
where field_data_body.language <> node.language

No sé si es necesario, pero por si acaso también he actualizado el idioma de las tablas de revisión:

update field_revision_body
       inner join node on field_revision_body.entity_id=node.nid 
                       and field_revision_body.revision_id=node.vid
set field_revision_body.language=node.language
where field_revision_body.language <> node.language

 

Corrección del idioma para los comentarios

update field_data_comment_body
       inner join node on field_data_comment_body.entity_id=node.nid 
                       and field_data_comment_body.revision_id=node.vid
set field_data_comment_body.language=node.language
where field_data_comment_body.language <> node.language

No sé si es necesario, pero por si acaso también he actualizado el idioma de las tablas de revisión:

update field_revision_comment_body
       inner join node on field_revision_comment_body.entity_id=node.nid 
                       and field_revision_comment_body.revision_id=node.vid
set field_revision_comment_body.language=node.language
where field_revision_comment_body.language <> node.language

 

 

Corrección de otros campos

Y también de otros campos como tags o campos personalizados, puede que no hiciera falta, pero creo que así queda todo más consistente. No pongo más updates aquí porque sólo cambia el nombre de las tablas 'field_' que tenga cada uno.

 

Sobretodo, antes de hacer estos updates o cualquier otra manipulación directa con SQL recordar que es importante hacer un backup de la base de datos por si algo sale mal y hay que volver al estado inicial..