Si en alguna ocasión, mientras estás en modo development, se te queda un campo rezagado y no hay manera de eliminarlo manualmente sin que ello implique una pantalla blanca . No te preocupes. Aquí te doy la solución.
Continuar leyendo «Remove a custom field programmatically»Applying a patch
Como seguramente te habrá pasado en más de una ocasión, sobre todo si instalas módulos no validados por el equipo oficial, habrás sufrido con la temida «pantalla blanca» en tu página Drupal o errores que no te echan abajo el sitio entero, pero que no te dejan hacer uso de una funcionalidad. Esto ocurre cuando tienes módulos del estilo:
Continuar leyendo «Applying a patch»¿$form_state[‘date’]?
Cuando estamos trabajando con la validación, por ejemplo, de un formulario necesitamos recuperar el valor de un campo. Puede ser trivial, pero no lo es. Sobre todo cuando este campo es de tipo fecha. Si el error tipo que te aparece es este:
TypeError: DateTime::__construct() expects parameter 1 to be string, array given in DateTime->__construct()
Este es tu post 😉
Continuar leyendo «¿$form_state[‘date’]?»Routing.yml y links.[menu|action|action|contextual].yml
Cuando estamos implementando un módulo personalizado de Drupal tenemos que lidiar con algunos ficheros en formato YAML. Estos tienen ciertos cometidos bastantes confusos para los newbies, así que voy a poner un poco de orden y aclaración. Los ficheros son:
- mimodulo.routing.yml
- Define las URL y controladores que van a gestionar una página*.
- mimodulo.links.menu.yml
- Inserta en las barra de menús accesos a funciones de nuestro módulo, páginas externas, …
- mimodulo.links.task.yml
- Inserta en las pestañas (tabs) accesos a funciones de nuestro módulo.
- mimodulo.links.action.yml
- Inserta botones con acceso a las funciones de nuestro módulo.
- mibloque.links.contextual.yml
- Crea menú contextuales en los bloques.
Custom Entity, referencia a una taxonomía
Cuando estamos definiendo los campos de una entidad personalizada (Custom Entity), puede surgirnos la necesidad de definir un campo que sea una referencia a una taxonomía. Esto, a priori, parece sencillo si lo hacemos a través de la UI, pero a nivel de código no lo es.
Continuar leyendo «Custom Entity, referencia a una taxonomía»Gestión de rutas según PHP
Este post surge de la necesidad de resolver una «pantalla blanca de la muerte» que me apareció con Drupal. Cuando pude ver de dónde venía el error, y tras días, sí, días de consultas descubrí que el problema no era yo, eras tú, pedazo de… perdón, me he desviado del tema y me vino a la cabeza un recuerdo negativo del pasado. ¡Qué jodida es la traición y la mentira, eh! jeje.
Continuar leyendo «Gestión de rutas según PHP»The website encountered an unexpected error. Please try again later
¡Mierda, qué he hecho para que todo se me haya jodido! Pues todo y nada. La verdad que al igual que sucedía con la «pantalla azul de la muerte» de Microsoft Windows, en Drupal tenemos su homónimo, pero con pantalla en blanco y con el título de este post.
Aquí voy a explicar cómo obtener más información y qué fue lo que me sucedió.
Continuar leyendo «The website encountered an unexpected error. Please try again later»MYSQL_ATTR_SSL_CA
Si estamos trabajando con Drupal y, en particular, con Drush, puede que nos encontremos con un error, muy incómodo, que viene a indicarnos que hay un problema con MySQL.
Realmente lo que está ocurriendo es que en la instancia de PHP que estamos utilizando para el funcionamiento de Drush, no tiene cargado el módulo pdo_mysql. Esto se habilita en el fichero php.ini.
Custom Entities y cómo asignar un tipo de widget en setDisplayOptions
Cuando estamos definiendo una entidad personalizada nos encontramos con que, en el método baseFieldDefinitions
, tenemos que definir el cuerpo (campos) que compone la entidad. He tratado de buscar en la documentación el listado de los tipos, que fácilmente podemos seleccionar desde la UI, pero a nivel de código, yo al menos, era incapaz de localizarlo entre las miles de páginas que componen la API de Drupal. Como siempre hago en mis posts, no cuento mis penas sino mis soluciones.
Este código ha sido probado y verificado para Drupal 9.1.0.
Continuar leyendo «Custom Entities y cómo asignar un tipo de widget en setDisplayOptions»Twig Debug Mode On
Algo, extremadamente, útil y recomendable cuando se crea un website en Drupal es, primero, montarlo en una zona segura o DMS; y segundo, habilitar el modo depuración para plantillas si eres diseñador. Esto no es necesario para los desarrolladores. Es otro cantar.
Continuar leyendo «Twig Debug Mode On»