Snippets
Imprimir valores desde un Nodo dentro una Twig Paragraphs
Cómo imprimir valores de un Nodo que contiene campos del tipo Paragraphs, usando Twig.
Warning: Undefined array key "#submit_button" in Drupal\Core\Render\Element\Button::preRenderButton() (line 92 of core/lib/Drupal/Core/Render/Element/Button.php)
Warning: Undefined array key "#submit_button" in Drupal\Core\Render\Element\Button::preRenderButton() (line 92 of core/lib/Drupal/Core/Render/Element/Button.php)
Si todavía estas trabajando con Drupal 10 en tus proyectos, es posible que te encuentres con este error que no te permite ejecutar ninguna acción usando cualquiera de los botones desde la interfaz.
Backup Mysql desde contenedores Docker
En algunos casos, puede que necesites crear una copia de seguridad mysql o restaurar, utilizando tus contenedores de Docker, te dejo ambas opciones.
lando : Depends: docker-ce but it is not installable
En algunas ocasiones, cuando estamos trabajando con Lando, dentro de nuestro servidor WSL2 o en Ubuntu 20.04, es posible que al ejecutar el los comandos sudo apt update y sudo apt upgrade, nos devuelva el error siguiente:
The following packages have unmet dependencies: lando : Depends: docker-ce but it is not installable
Cómo añadir animaciones con css en tema personalizado
Para hacer tus webs más atractivas, una de las alternativas es el uso de animaciones, en Drupal puedes añadir librerías externas siguiendo los siguientes pasos.
Modificar formularios Drupal 8
Este código te permitirá modificar tus formularios personalizados, utilizando el módulo Devel.
Imprime en la plantilla del paragraph imágenes dentro de un campo con múltiples valores
Cuando trabajamos con campos de múltiples valores, podremos acceder a cada valor por separado y así crear estructuras a medida.
Error icono hamburguesa Bootstrap Barrio
Corrige el icono hamburguesa de bootstrap si usas Bootstrap Barrio
Descargar tipos de contenido programáticamente
Drupal 8 ha modificado la manera en que se trabaja con las entidades, por lo que recomendamos visitar la página oficial para entender como se hace a partir de ahora: https://www.drupal.org/docs/8/api/entity-api/working-with-the-entity-api
Crear tabla programáticamente Drupal 8
Algunas veces quieres crear tus propias tablas, dentro de tus proyectos de drupal. Para ello necesitarás la ayuda de un módulo personalizado.
Si quieres saber cómo crear un módulo personalizado
Puedes ver el video de cómo crear tablas programáticamente, haciendo clic aquí
Conectarme usando Goozle a un servidor externo a Drupal pasando variables JSON
Para los que han tenido incovenientes con la nueva manera de utilizar services de Drupal 8 y tengan que conectarse utilizando Post para enviar datos a un servidor externo de Drupal usando Guzzle, les dejo el código que utilicé en un módulo custom para un proyecto.
Como imprimir mensajes en Drupal 9
$this->messenger() te permitirá imprimir en pantalla tus mensajes al ejecutar algo de código en tus desarrollos con Drupal 8 o 9
/* Con este ejemplo, al ejecutar el método submitForm en tu formulario personalizado, podrás pasar como parámetro los campos de tu formulario formando parte del mensaje. */
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
$this->messenger()->addStatus($this->t('Su número es @number', ['@number' => $form_state->getValue('numero_telefono')]));}
}
Cómo borrar Apache2 definitivamente | Permanently removing apache2
Algunas veces, instalamos apache y por alguna razón, necesitamos borrarlo, ya sea para reinstalarlo y corregir algún error de configuración o por conflictos con otra apliación, a continuación te muestro los pasos para borrarlo, con todos sus archivos en Ubuntu
Borrar usuario programáticamente Drupal 8
En algunos desarrollos, es posible que necesites recurrir a procedimientos automáticos que ejecuten tareas como la de borrar usuarios. Aquí tienes el código que podría ayudarte.
Agregar item sin enlace al menu | No link items menu
Puede que necesites para algún proyecto, añadir en tu menú, opciones sin enlace. En este caso tienes varias opciones disponibles
- Añadir por interfaz dentro del valor para el enlace del menú (Drupal 8), lo siguiente:
route:<nolink>
- Añadir un item sin enlace al menú programáticamente (Drupal 8), con el siguiente código:
Link::fromTextAndUrl(t('Title'), Url::fromUri('route:<nolink>')); - Instalar el módulo contribuido Special menu items (Drupal 8 y superiores)
- Instalar el módulo contribuido Menu no link (Drupal 7)
Symfony, An exception has been thrown during the rendering of a template
An exception has been thrown during the rendering of a template
("Could not find the entrypoints file from Webpack: the file "./public/build/entrypoints.json" does not exist.")
Durante la instalación de un proyecto de Symfony, es posible que nos encontremos con este error cuando intentamos acceder a la plantilla correspondiente al Controller que generamos por defecto con el comando make:controller, para solucionar el fallo tendrás que eliminar el archivo ENCORE ubicado dentro de config/packages. Pero no manualmente, sino ejecutando el comando que está más abajo.
Testeado en la versión Symfony 5.4.6
Declarar parámetros opcionales php8.2
Fatal error: Uncaught TypeError: Argument 2 passed to MiClase::__construct() must be an instance of ClasePadre, null given...
Uno de los cambios incluidos en la versión 8.2 de PHP, está la declaración de parámetros opcionales dentro de los métodos:
RuntimeException: Adding non-existent permissions to a role is not allowed. The incorrect permissions are...
Si has estado trabajando con módulos personalizados, o borrado algún campo relacionado con tus contenidos, dentro de Drupal 9 o 10, es muy probable que te hayas encontrado con este error.
`let' is available in ES6 (use 'esversion: 6') or Mozilla JS extensions (use moz)
Al utilizar javascript en tus proyectos de Drupal, es posible que te muestre, dentro de tu código, un mensaje de alerta con este contenido:
`let' is available in ES6 (use 'esversion: 6') or Mozilla JS extensions (use moz)
Instalar dependencia Dragula para Layout Paragraphs
Cómo extraer los valores de un campo enlace múltiple en field.html.twig
Este código te permitirá extraer e imprimir en plantillas los valores de un campo enlace por separado "Texto del enlace" + "Enlace", directamente en la plantilla del campo para conseguir, por ejemplo una lista con iconos en un campo múltiple de enlaces.
drupal/graphql 4.4.0 requires drupal/typed_data *
Cuando realizamos una instalación de la versión 4.4 de Graphql, utilizando composer, es posible que nos econtremos con un error, debido a su dependencia con el módulo typed_data.
drupal/graphql 4.4.0 requires drupal/typed_data * -> found drupal/typed_data[dev-1.x, 1.0.0-alpha1, ..., 1.x-dev (alias of dev-1.x)] but it does not match your minimum-stability.
Apache Service detected with wrong path
Hoy en día, los usuarios de Windows, hemos estado evolucionando hacia otras maneras de implementar nuestros entornos de desarrollo, así que es posible, que si intentas instalarte un XAMPP, no puedas arrancar el apache y te encuentres con este error:
Apache Service detected with wrong path
Normalmente irías a la opción config y cambiarías el puerto en el archivo http.conf del apache, y esto debería solucionarte el problema; que generalmente es causado porque tienes el Skype instalado y entra en conflicto con el puerto 80 del Apache, pero en otros casos, se trata de que en algún momento tuviste instalado Apache2.4 directamente en tu disco C y modificaste el path desde la ventana de Services.
Así que para solucionarlo, sigue los siguientes pasos:
Modelo CSS para varios dispositivos
Crea una hoja de estilos css, específica para dispositivos te permite corregir errores más rápidamente.
Para ver la explicación en video HAZ CLIC AQUI
Error de memoria con composer
Este código te ayudará a corregir el error de memoria, en tu entorno local, cuando ejecutas composer.
Crear tabla por defecto al instalar un módulo Drupal 8
Este código te ayudará a generar una tabla, con tu módulo personalizado en Drupal.
Comprueba el valor de un campo SELECT en un TWIG
Este campo evalúa entre los valores "izquierda" o "derecha" de un SELECT y ejecuta un código según su valor
Como hacer un campo no editable en Drupal 8
Este código permitirá alterar tu formulario para que algunos campos sólo sean de lectura, para ello tendrás que utilizar el módulo Devel y hook_form_alter
Comandos Linux
Cuando estamos trabajando con Linux, hay algunos comandos más utilizados que otros, aquí te dejo alguno de ellos.
Borrar un contenido programáticamente Drupal 8
Con este código podremos borrar un contenido de forma programática, utilizando nuestro módulo personalizado.
Activar tema por defecto utilizando Consola y Drush en Drupal
Aunque puedes utilizar la interfaz de usuario de Drupal para activar y configurar tus temas, también podrás hacerlo mediante la consola, gracias a la herramienta Drush.
Webform | Hook para crear una acción cuando se ha hecho Submit
Con este hook, podrás crear una acción una vez se ha hecho submit en tu webform Drupal.
Este código imprimer en pantalla un mensaje, al hacer clic en el submit de tu webform.
Como forzar git push | How do i properly force git push
Aunque no está recomendado, es posible forzar la subida de cambios hacia nuestros repositorios de Git.
Imprimir valores traducidos en un Twig paragraphs
Es posible que te hayas encontrado con la necesidad de imprimir algún contenido, dentro de un paragraphs en un sitio multi-idioma.
En mi caso me tocó hacerlo con el witget de Turitop, para un sitio en dos idiomas, así que comparto el ejemplo por si te hace falta.
La solución es implementar una preprocess function:
Como borrar restos de un campo desde Mysql
¿Cómo puedo tener "minimum-stability": "stable" en mi composer.json e instalar la versión alfa de un módulo contribuido?
Cómo resetar la contraseña de un usuario en Drupal con Drush
Si haz perdido el acceso a tu proyecto de Drupal, y estás en un entorno dónde no puedes enviarte el correo de recuperación, puedes modificar la contraseña de un usuario, incluido el usuario con permisos de administrador, utilizando el comando de drush user:password
The metadata storage is not up to date, please run the sync-metadata-storage command to fix this issue
A partir de la versión 5 de Symfony, cuando utilizamos el motor de base de datos con MariaDB, nos encontraremos con un error de actualización de datos, generalemente después de ejecutar los comandos para generar las entidades (console make:entity / console doctrine:migrations:migrate). Para corregir el error sigue los siguientes pasos.
Instalar Drupal 9 usando Composer
Desde la página oficial podrás descargarte la estructura más reciente para instalar un proyecto Drupal utilizando el gestor de paquetes Composer
Si todavía no haz instalado Composer en tu ordenador visita la página oficial de composer
Imagen Background usando Views Template
Este código permite imprimir una imagen de fondo utilizando vistas y plantillas mediante la declaración de una variable.
Enviar json desde Drupal usando behaviors
Este texto permite enviar los valores de varios campos, en formato json a un servidor externo a Drupal 8
Descargar contenido de un nodo Drupal 8
Este código te ayudará a descargar contenidos programáticamente
Cómo habilitar la ejecución de scripts para Powershell
Si estás intentando ejecutar por primera vez algún script usando tu consola PowerShell en Windos, te encontrarás con un error parecido a este:
«No se puede cargar el archivo XXXX.ps1 porque en el sistema está deshabilitada la ejecución de scripts. Vea «get-help about_signing» para obtener más información».
Una vez cambies la configuración siguiendo los pasos que están en las instrucciones, podrás ejecutar código cada vez que lo necesites.
Comandos Docker
Aquí te dejo varios comandos útiles para trabajar con Docker