Snippets

Snippets

¿Cómo reviso una rama remota de Git? | How do I check out a remote Git branch?

Cuando trabajamos con Repositorios GIT, es posible que tengamos que conectarnos a ramas ya existentes en el servidor y comenzar a trabajar a partir de ellas en nuestro entorno local.

¿Cómo imprimir el logo de drupal en una plantilla twig?

Este código te permitirá imprimir el logo y el nombre del sitio utilizando en cualquier página de Drupal 8 y 9, recuerda que si necesitas utilizarlo en otro contenido que no sea una página, entonces la preprocess_function() deberá corresponderse con ese tipo de contenido.

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.

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.

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

Symfony Postgree | Datatype mismatch: 7 ERROR:  column "xxx" cannot be cast automatically to type boolean

Cuando trabajas con Symfony y Postgree, es posible que al intentar cambiar el tipo de valor para una tabla o para una columna, te encuentres con este error, que no te permitirá realizar la actualización al ejecutar el comando doctrine:migrations:migrate.

SQLSTATE[42804]: Datatype mismatch: 7 ERROR:  column "xxx" cannot be cast automatically to type boolean   HINT:  You might need to specify "USING xxx::boolean".

Symfony 6 User Deprecated: Method

User Deprecated: Method "Symfony\Component\Console\Command\Command::execute()" might add "int" as a native return type declaration in the future. Do the same in child class "App\Command\UpdateInfoCommand" now to avoid errors or add an explicit @return annotation to suppress this message

Symfony 2 | Solucionar problemas de instalación/actualización

   Cuando trabajamos con Symfony 2 y superiores, es posible que nos encontremos con algunos fallos, aquí te he puesto los comandos que solucionan los problemás más frecuentes:

Redirects to external URLs are not allowed

Redirects to external URLs are not allowed by default, use \Drupal\Core\Routing\TrustedRedirectResponse for it.

Es posible que al realizar el despliegue en producción de uno de nuestros sitios Drupal, nos encontremos con este error, para solucionarlo sigue los pasos que te cuento a continuación:

Radix | Generar un Subtheme para Drupal

Radix es un theme base muy potente, que integrar Bootstrap, además de permitirte trabajar con Sass.

Preprocess function views_fields

Las funciones de preproceso son la manera "tradicional" en que podremos pasar valores dentro de cualquier contenido de drupal, aunque hoy en día ya se utilizan módulos como Twig Tweak, para realizar esta clase de procedimientos.

PHPStan and Doctrine: $id is never written, only read

Cuando trabajamos con PhpStand en Symfony, es posible que nos encontremos con una alerta que nos advierte sobre propiedades o campos como el $id, que nunca se han utilizado o leído, pero en realidad, en este caso, el $id, sólo se crea para la interacción entre Symfony y Doctrine, por lo que no hace falta Leerlo ni Usarlo más allá.

Así que para evitar esta alerta, que nos saltará siempre que ejecutemos la revisión con PhpStand, sigue los siguientes pasos:

Obtener IDs usando preprocess function Drupal 7/8/9

A partir de Drupal 8, con la orientación a objetos se efectuaron grandes cambios...

Debido a que las propiedades del objeto de nodo están protegidas, no podremos acceder a ellas directamente de la forma en que lo hizo en el código de Drupal 7.

Por esta razón, si deseas usarlas en funciones de preproceso, deberás usar las funciones de obtención relevantes para acceder a ellas.

A continuación, se muestran algunos ejemplos en los que deberá cambiar la forma en que accede a las propiedades:

Mostrar bloque vista usando Preprocess Function Drupal 8/9

Este código te permitirá mostrar una vista tipo bloque en un nodo o paragraphs

Para Nodos:
/** * Implements hook_preprocess_node() for node.html.twig. */
function TUSUBTHEME_preprocess_node(array &$variables) {
  $variables['nombre_variable_para_mostrar'] = views_embed_view('nombre_maquina', 'nombre_vista_dentro');

}

Para Paragraphs

/* Implement hook_preprocess_paragraph() */
function wct_oct2020_preprocess_paragraph(&$variables) {
  $variables['nombre_variable_para_mostrar'] = views_embed_view('nombre_maquina', 'nombre_vista_dentro');

}

Modificar formularios Drupal 8

Este código te permitirá modificar tus formularios personalizados, utilizando el módulo Devel.

Modelo CSS para varios dispositivos

Crea una hoja de estilos css, específica para dispositivos te permite corregir errores más rápidamente.

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

Snippet | www.drupaladicto.com - Consultor especializado en Drupal y Symfony

     Esto ocurre, porque al actuailzar los paquetes del sistema (tu distribución de Linux, dentro del WSL2), lando es desinstalado, relacionado con alguna incompatiblidad, para corregir el error, no hace falta instalar docker-ce dentro de tu wsl2, ya que el Docker for windows se encarga de esa parte.

     Lo que sí tendrás que hacer es actualizar a la versión de Lando más reciente.

   Una vez hayas actualizado tu distribución de Linux con apt update y apt upgrade, tendrás que ejecutar los siguientes comandos:

   El código que comparto aquí es para un WSL2 con Ubuntu 20.04, para más información sobre tu sistema operativo y Lando vista Página Oficial de Lando

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

Imprimir imagen de fondo en un template usando variables Twig

Este código te imprimirá el valor del campo imagen dentro de la plantilla.

Imprimir errores en pantalla Drupal 8/9

Muestra errores en la pantalla de Drupal, recomendado en el caso de Pantalla Blanca.