Nginx para Drupal | Archivo de configuración para el dominio.
Si estás instalando Drupal, en un servidor VPS con Nginx, este es el archivo completo que deberías utilizar, para Drupal 10
Si estás instalando Drupal, en un servidor VPS con Nginx, este es el archivo completo que deberías utilizar, para Drupal 10
Este es un ejemplo práctico de cómo probar una llamada REST con Moodle, usando CURL, en un entorno Local utilizando Ddev.
Para cumplir con algunos requerimientos de SEO, es necesario que podamos extraer los valores de texto alternativo "alt" y el título de la imagen, cuando el campo con el que estamos trabajando en Drupal, es de tipo Media, cambiar la estructura, con respecto al tradicional campo tipo imagen.
Si todavía no haz instalado composer en tu ordenador visita la página oficial de composer
Es posible que en algunas ocasiones, nos encontremos con fallos cuando utilizamos Composer, para que se encargue de descargar las dependencias en nuestros proyecto PHP.
En estos casos, puedes comprobar si el error está relacionado con la ejecución del composer o con el resto de tu código, ejecutando el siguiente comando:
Para crear un formulario personalizado...
Para añadir el archivo .gitignore a Drupal sigue estos pasos:
Este código te peritirá crear un enlace tipo ancla, para acceder a zonas específicas sin recargar la página.
Estos enlaces engloban todo lo necesario para que puedas configurar tu servidor en Ubuntu
Es muy recomendable utilizar los repositorios, para mantener controlada la evolución de nuestro código, a medida que avanzamos en cualquier proyecto. Bitbucket te permite crear, de forma gratuita, una cuenta en la que podrás alojar tu proyecto.
Este código te permitirá modificar el texto que aparece por defecto en el botón de Añadir al carrito o Add to Cart de Drupal 8 Commerce, utilizando tu propio módulo personalizado.
Con el hook_form_alter podremos modificar cualquier formulario existente en Drupal, en esta ocasión añadiremos una clase a nuestro formulario.
Visita la página oficial para más información: https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Form%21form.api.php/function/hook_form_alter/8.2.x
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:
Para algunos de tus proyectos, es posible que necesites ejecutar comandos de automatización, que permitan la creación de algunos nodos, por ejemplo. A continuación te dejo el código que podría ayudarte con esa tarea.
Si estás utilizando en tu proyecto Drupal, el módulo Blazy, es posible que al actualizar estos días, ejecutando drush cr, te encuentres con un error como el siguiente:
Failed to unlink file 'assets://css/css_bJuR0RV2z_DaejZa9C4pOx_HkDoRBGXRXK6
U9yZ6e9I.css'.
La primera vez que ejecutas Docker Desktop, es posible que te encuentres con este error, relacionado con los permisos de Docker.
File "docker/transport/unixconn.py", line 43, in connect PermissionError: [Errno 13] Permission denied
Cuando estamos trabajando con Docker o con DDEV, es posible encontrarnos con un error de permisos al intentar ejecutar los comandos de docker con nuestro usuario normal NO_ROOT o incluso con el usuario ROOT.
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:
Este código imprime en una plantilla paragraphs.html.twig el campo "field_section_hero_image", configurado con el módulo media para subir las imágenes, en lugar de un campo imagen normal de Drupal 8.
Para extraer url de archivo en una plantilla tipo Node.twig.html ...
Cannot assign Doctrine\ORM\PersistentCollection to property App\Entity\Xxx::$Xxx of type Doctrine\Common\Collections\ArrayCollection
Cuando estamos desarrollando, el uso de alias para ejecutar algunos comandos en nuestra consola, nos puede ahorrar tiempo y esfuerzo. Aquí tienes el código que te ayudará a añadir un alias si estás utilizando Cywin
Para utilizar Drupal 8 en tu servidor local, se recomienda modificar los siguientes valores de configuración en tus archivos de apache y mysql
Este código te permitirá descargar la plantilla Drupal 8 estable que haya en este momento para que puedas continuar gestionando tu sitio web utilizando Composer.
Si todavía no haz instalado composer en tu ordenador visita la página oficial de composer
Algunas veces, instalamos php con sus librerías, 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
Para cambiar el formato por defecto de un campo fecha en una plantilla twig ...
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:
Si estás acostumbrado a trabajar con Boostrap, es posible, que algunas ocasiones, tengas que ajustar el tamaño de las imágenes, para que se adapten al contenedor dentro de una tarjeta .card, de bootstrap.
¿Sabes que puedes averigurar la versión instalada de Drupal, además de otros datos, utilizando un comando de Drush?
En algunas ocasiones necesitarás instalar NPM y Gulp, sobretodo cuando trabajas con el frontend de Drupal, en estos casos, si estás utilizando Docker4Drupal, es bastante sencillo...
Al intentar realizar la instalación de Symfony 6.1 con Docker, siguiendo las instrucciones desde su página oficial HAZ CLIC AQUI PARA VERLA
me encontré con este error al intentar entrar a los contenedores
OCI runtime exec failed: exec failed: unable to start container process: exec: "bash": executable file not found in $PATH: unknown
Este código te permitirá añadir Google Fonts en tu tema personalizado o "Subtheme" Drupal 8/9.
Puedes consultar la Página oficial de Drupal
Para elegir otra fuente desde la página de google fonts:
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');
}
Este código te permitirá utilizar una imagen desde un campo TIPO IMAGEN como fondo de un div que podrás añadir a cualquier plantilla.
Para comprobar el o los roles asignados a un usuario logueado....
Cuando estamos trabajando con Docker y Composer, es posible que nos encontremos con un error producido por la falta de memoria de nuestro contenedor de PHP, durante el proceso, para solucionarlo sigue las siguientes instrucciones:
Con esta instalación podrás crear un theme personalizado, usando como base Bootstrap Barrio, con todas las opciones responsive necesarias para hacer rápidamente un diseño rápido y efectivo.
Este código te ayudará en tus configuraciones de conexión Rest con Drupal.
La Preprocess Function sirve para modificar los comportamientos por defecto de Drupal, en este caso vamos a acceder al formulario por defecto y lo haremos disponible para colocarlo dentro de un nodo y posteriormente dentro de un paragarphs, así podremos imprimirlo en cualquier lugar y posición dentro de la web.
Si quieres aprender más sobre las preprocess functions
Algunas veces, instalamos mysql o mariadb 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
Al instalar nuestro sitio multi-idioma en Drupal, en algunos casos nos encontraremos con la necesidad de que el selector de idiomas (Language Switcher), que viene con Drupal, muestre los nombres abreviados para cada indioma, ya que por defecto mostrará su nombre completo. En principio, para cambiarlo sólo deberíamos acceder a la url de configuración del módulo Language, previamente activado, accediendo a "/admin/config/regional/language" y allí seleccionar EDITAR y cambiar el nombre del idioma Ej. English a EN, pero esto no funciona correctamente y sólo te cambia el resto de los idiomas.
Para solucionarlo, tendremos que añadir en nuestro archivo TUTEMA.theme, la siguiente función, cambiando sólamente en nombre equivalente a tu tema.
Con estas instrucciones podrás personalizar las plantillas y formularios para crear, editar tus tipos de contenido
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".
Cuando trabajas con Colorbox, necesitarás instalar la librería DOMPurify, como uno de sus requisitos, en algunas ocasiones, aunque trabajes con Composer, puede que no se descargue en el lugar correcto y por eso no la encuentre, para solucionarlo, puedes utilizar el comando de Drush que te pongo debajo.
Para extraer la url de un campo media e imprimirlo en tu plantilla Twig, tanto si el campo está en el primer nivel del Paragraphs o dentro de un Paragraphs, que está anidado en otro.
Los ejemplos se puedes aplicara contenidos, productos o paragraphs en Drupal.
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)
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.
En algunos casos, puede que necesites crear una copia de seguridad mysql o restaurar, utilizando tus contenedores de Docker, te dejo ambas opciones.
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
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.
Este código te permitirá modificar tus formularios personalizados, utilizando el módulo Devel.
Cuando trabajamos con campos de múltiples valores, podremos acceder a cada valor por separado y así crear estructuras a medida.
Corrige el icono hamburguesa de bootstrap si usas Bootstrap Barrio
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
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í
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.
$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')]));}
}
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
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.
Puede que necesites para algún proyecto, añadir en tu menú, opciones sin enlace. En este caso tienes varias opciones disponibles
route:<nolink>
Link::fromTextAndUrl(t('Title'), Url::fromUri('route:<nolink>'));