backend

Contenidos de Prueba | Generados con el módulo Devel

Video de Youtube
URL de Video remoto
Texto

      Cuando estamos empezando con el desarrollo o implementación de cualquier proyecto, en la mayoría de los casos nos resultará necesario la creación de contenidos con los que podamos realizar pruebas de todo tipo.

     Para realizar esta tarea, en Drupal contamos con el módulo Devel Generate, integrado dentro de las dependencias del módulo Devel. Por lo que, una vez instalado y activado en nuestro Drupal, sólo tendremos que dirigirnos a la url "/admin/config/development/generate/content", y allí veremos el listado de todos los tipos de contenidos que tengamos creados en nuestro proyecto.

CÓMO INSTALAR Y CONFIGURAR EL MÓDULO:

Paso 1 Descargar el módulo:

     Lo primero que tendrás que hacer es descargarlo, para ello, a partir de Drupal 8 se recomienda que utilices el gestor de paquetes Composer, ya que te facilitará tanto la instalación como futuras actualizaciones del tus proyectos. No obstante también podrías descargarlo desde la Página oficial del módulo y una vez descargado, tendrás que colocarlo en la carpeta "modules" o "modules/contrib", dependiendo de tu instalación y asegurarte de descargar todas sus dependencias o el módulo no funcionará, esta es una de las ventajas con las que cuentas al hacer la instalación usando Composer.

Paso 2 Activación del módulo :

     Para activar el módulo Devel, al igual que todos los demás módulos contribuidos de Drupal, tendrás la posibilidad de hacerlo, mediante el uso de la herramienta Drush, con el comando "drush en devel -y", que sirve para activar cualquier módulos y todas sus dependencias, o desde la interfaz de Drupal.    

Devel Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony

Devel Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony

     Además de poder generar automáticamente nuestros contenidos, podremos configurar algunas opciones adicionales como, especificar su fecha de publicación, comentarios relacionados, títulos para los contenidos con un límite de caracteres específico, el idioma o incluso los usuarios que los crearon, esta última opción nos facilitará el testeo de los permisos de usuario.

     Para generar nuestro contenidos, sólo tendremos que marcar las opciones con las que deseamos trabajar, es recomendable intentarlo la primera vez como poco contenido para estar seguros de obtener lo que pensábamos o si hará falta modificar algún campo.

     Si no estás conforme con el contenido generado o simplemente quieres volver a generar contenidos otra vez, puedes seleccionar la opción de eliminar todos los contenidos previamente creados antes de ejecutarlo.

Devel Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony

     Una vez que hayamos revisado todos los campos que nos interesan, haremos clic en el botón que aparece en la parte inferior de la pantalla y comenzará el proceso inmediatamente.

Devel Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony

     Cuando se haya realizado el proceso de generación de nuestros contenidos, veremos un mensaje de confirmación en la parte superior de la pantalla, con la cantidad y el tipo de contenido que decidimos utilizar.

Devel Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony

     Para comprobarlo, sólo tendremos que dirigirnos al listado de contenidos en la url "/admin/content" y veremos el listado de contenidos generados por el módulo con las configuraciones adicionales, si es que hemos seleccionado alguna.

Devel Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony

Módulo personalizado | Creación de plantilla

Video de Youtube
URL de Video remoto
Texto

Si no ves el video, puedes refrescar el navegador, presionando (Ctrl+Shift+R | Ctrl+F5 o Shift+F5), o abrirlo directamente desde el Canal de Youtube... HAZ CLIC AQUI

     Hoy hemos decidido que estamos dispuestos a seguir aprendiendo Drupal, porque nos apasiona obtener nuevos conocimientos, que solucionarán posibles retos en nuestro futuro próximo, o porque nos encanta ampliar nuestras posibilidades, tanto a nivel laboral como personal. Ya que la puesta en marcha de proyectos web, podrían representar el inicio hacia una carrera prometedora.

     Ahora que ya tenemos claro Cómo crear un módulo en Drupal 9, en esta ocasión nos vamos a concentrar, en la creación de una plantilla personalizada, con el objetivo de tomar el control sobre la presentación de los datos relacionados con el mismo. Para lograr nuestro propósito, tendremos que implementar uno de los "hooks" o funciones prefabricadas de Drupal que nos permitirán lograr toda clase de objetivos, en este caso será function hook_theme, la que se encargará registrar las implementaciones de un tema o "theme", dentro de nuestro tema o módulo personalizado.

     En este capítulo vamos a crear un módulo personalizado, al que añadiremos un controlador, que nos imprimirá en pantalla una página y posteriormente, también añadiremos mediante la function hook_theme en el archivo ( MIMODULO.module ) los datos y configuraciones que nos permitirán pasar por parámetros el título y otros contenidos que mostraremos en ella. 

     Finalmente, añadiremos el archivo routing ( MIMODULO.routing.yml ), para poder acceder a esta página una vez haya sido activado nuestro módulo personalizado. Este ejemplo te permitirá conocer la manera en que podrás implementar plantillas personalizadas en tus módulos.  

Requisitos

Cómo crear un módulo en Drupal 9

Cómo crear módulos con su Controlador y Plantilla en Drupal 9  

     Paso 1 Creación de tu módulo:

          Lo primero que deberías saber es cómo crear un módulo personalizado. Esencialmente para este ejemplo, lo que necesitarás será una carpeta con el nombre de tu módulo y dentro el archivo con el nombre del módulo y la extensión, eje.: "mimodulo.info.yml"

     Paso 2 Creación del archivo .module para implementar la function_hook_theme():

          En el archivo MIMODULO.module es donde podremos implementar los hooks o funciones de php en Drupal, en este ejemplo utilizaremos la function hook_theme, que se encarga de registrar las implementaciones del tema dentro de un módulo o tema personalizado, esto quiere decir, que las implementaciones declaradas por este hook o función especifican cómo un arreglo o array de renderización particular debe ser renderizada como HTML.

     Los párametros que utilizaremos en este ejercicio, estarán dentro de un array que nos devolverá la función y son, el nombre de la función y dentro de de ella, las variables que pasaremos posteriormente al controlador, para crear la página que imprimiremos una vez activado el módulo.

     Dentro de las variables, a su vez, tendremos un array de items, donde colocaremos todos las noticias que queremos presentar en la página una vez renderizada y el título de la página que será del tipo String.

<?php

/**
 * Implement hook_theme().
 */
function listado_noticias_theme($existing, $type, $theme, $path) {
    return [
      'listado_noticias' => [
        'variables' => ['items' => [], 'title' => '' ]
      ]
    ];
}

     Paso 3 Creación del Controlador o Controller:

          El Controlador o Controller es quien nos permitirá crear la página que se mostrará, una vez activado nuestro módulo, al renderizar los datos que hemos definido previamente en nuestra  function hook_theme.

          Para que pueda generarse nuestra página, vamos a añadir a nuestra clase controlador, un método al que llamaremos "page()", y dentro tendremos dos arrays, uno que contendrá el listado de noticias que vamos a recorrer usando nuestra function hook_theme, y otro con los datos que obtendremos al conectar con la información recibida desde la function hook_theme.

Custom Module Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony

          Una vez creada nuestra clase controller con el nombre ListadoNoticiasController.php, dentro tendremos la siguiente estructura de código.

<?php

namespace Drupal\listado_noticias\Controller;

use Drupal\Core\Controller\ControllerBase;

class ListadoNoticiasController extends ControllerBase {

  public function page(){

    $items = [
      ['title' => 'Noticia 1'],
      ['title' => 'Noticia 2'],
      ['title' => 'Noticia 3'],
      ['title' => 'Noticia 4'],
    ];

    return [
      '#theme' => 'listado_noticias',
      '#items' => $items,
      '#title' => 'Listado de noticias'
    ];

  }

}

          El primer array, es un array de objetos, ya que cada noticia podrá tener tantos elementos como queramos especificar, para este ejemplo, sólo añadiremos el título, pero puedes añadir tantos como necesites, siempre tomando en cuenta la estructura ( "clave" => "valor" ), ya que los objetos, en realidad también son arrays.

$items = [
  ['title' => 'Noticia 1'],
  ['title' => 'Noticia 2'],
  ['title' => 'Noticia 3'],
  ['title' => 'Noticia 4'],
];

          El segundo array, que tendremos dentro de nuestro método "page()", es el que nos devolverá nuestro método al llamarlo, contendrá los parámetros necesarios para renderizar los datos recibidos desde la function hook_theme, y que harán posible la impresión en pantalla, de nuestros contenidos en formato de una página, al activar el módulo.

          En el primer parámetro del array, estamos llamando a nuestra función tema, que configuramos usando la function hook_theme, el segundo parámetro son los items, que hemos definido como una de las variables que pasamos y el último, será el título de la página, que también definimos mediante la función.

          Esto hará posible, que posteriormente podamos recorrer el primer array de items y mostrarlos en la plantilla correspondiente, que todavía no hemos creado. 

return [
  '#theme' => 'listado_noticias',
  '#items' => $items,
  '#title' => 'Listado de noticias'
];

     Paso 4 Creación de la ruta para acceder a la página renderizada:

          Una vez terminada la configuración de los datos que vamos a presentar en nuestra página, al invocar el método "page()", necesitaremos un modo de acceso, mediante url, para que podamos acceder a esta página y ver sus datos.

          En esta tarea nos ayudará el archivo listado_noticias.routing.yml , dentro de este archivo vamos a definir la url hacia nuestra página, el namespace para que drupal pueda encontrar en nuestro controlador el método que mostrará los datos y finalmente los permisos asociados a nuestro contenido, que serán los permisos por defecto, para que cualquier usuario que entre a la web, pueda verlo sin problemas.

          Es muy importante respetar los espacios al escribir los datos dentro del archivo rounting, se recomienda evitar la tecla tab para hacerlo y en su lugar, es mejor la barra espaciadora del teclado, contando con dos espacios a cada nueva línea que vayamos añadiendo.

listado_noticias.listado:
  path: '/listado-noticias'
  defaults:
    _controller: '\Drupal\listado_noticias\Controller\ListadoNoticiasController::page'
  requirements:
    _permission: 'access content'

     Paso 5 Creación de la plantilla:

          La última fase de este desarrollo, antes de activar el módulo, será la creación de nuestra plantilla, para dar formato a la presentación de los datos, una vez activado nuestro módulo.

          Para los nombres de las plantilla, se debe utilizar el guión medio "-", en lugar del guión bajo "_", y el nombre que debemos utilizar será el mismo de nuestra función tema, que hemos declarado en el function hook_theme.

          Por lo tanto, el nombre que tendremos que utilizar en este ejemplo será "listado-noticias.html.twig", además, colocaremos nuestras plantillas dentro de una carpeta llamada templates, siguiendo con la estructura habitual de drupal para todos sus módulos.

          Ahora que ya tenemos la plantilla creada, sólo resta imprimir los valores usando las dobles llaves, ej.: {{ title }} y en el caso de las noticias, crearemos un "ciclo for", para poder recorrer el array de items y acceder a todos sus datos relacionados.

<h3>{{ title }}</h3>
   <ul>
     {% for noticia in items %}
       <li>{{ noticia.title }}</li>
     {% endfor %}
   </ul>

          Ya podemos activar nuestro módulo y luego al acceder a la url que hemos definido dentro del archivo  listado_noticias.routing.yml, veremos nuestra página con todos los datos que habíamos configurado.

Custom Module Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony

Drupal 10| Instalación en Ubuntu 20.04 con Lando y WSL2

Video de Youtube
URL de Video remoto

Si no ves el video, puedes refrescar el navegador, presionando (Ctrl+Shift+R | Ctrl+F5 o Shift+F5), o abrirlo directamente desde el Canal de Youtube... HAZ CLIC AQUI

     Como muchos de ustedes sabrán, Drupal 10 verá la luz oficialmente a mediados de este año, evolucionando una vez más hacia su objetivo, de convertirse en la herramienta para el desarrollo de aplicaciones web y móviles más versátil, robusta y confiable que existe en el mercado actual.

     En esta nueva versión, además de reestructurar su código interno, para aplicar cambios y mejoras, relacionados tanto con la nueva versión de Php 8, como con el framework Symfony, en el cual se basa desde su versión 8; Drupal 10 incluirá incluirá otros cambios notables, como por ejemplo, la sustitución de su tema por defecto, Bartik, por el nuevo tema Olivero, que ya podemos ver en Drupal 9, en su versión de desarrollo. Con el que pretende ofrecer las ventajas de una apariencia moderna, combiandad con la integración de otras funcionalidades como el Layout Builder o el uso del módulo Media para incorportar imágenes, videos y otros archivos.

     A pesar de que todavía faltan algunos meses para su lanzamiento oficial, ya podemos comenzar a explorarlo, en nuestro entorno local, gracias a la herramienta de desarrollo basada en contenedores de Docker, llamada Lando y que hemos utilizando en otras ocasiones. Para más información sobre Lando Haz clic aquí

     Así que en esta ocasión, instalaremos un proyecto Drupal 10, utilizando Lando en nuestro entorno local. Tengo la distribución Ubuntu 20.04 de Linux, ejecutándose en el subsitema de Linux para Windows WSL2, pero puedes realizar los mismos pasos si tienes un ordenador con Linux de manera nativa.

 

Prerrequisitos:

- Tener instalado en tu servidor local Lando. Si todavía no lo haz hecho y quieres aprender cómo hacerlo, Haz clic aquí

 

Cómo instalar Drupal 10 en local utilizando Lando
 

Paso 1 - Crear archivo de configuración:

     Para comenzar, iniciaremos sesión con nuestro usuario NOROOT_USER, para evitar cargarnos nada por error y poder ejecutar comandos sudo. luego nos moveremos hasta la ubicación que pensamos para este proyecto y crearemos un archivo de configuración con el nombre TU_PROYECTO.sh, y dentro incluiremos el siguiente código, modificando las líneas que implican el nombre de nuestro proyecto:

# Initialize a drupal10 recipe using the latest Drupal 10 version
mkdir drupal10-app \
  && cd drupal10-app \
  && lando init \
    --source remote \
    --remote-url https://ftp.drupal.org/files/projects/drupal-10.0.x-dev.tar.gz \
    --remote-options="--strip-components 1" \
    --recipe drupal10 \
    --webroot . \
    --name drupal10-app

# Start it up
lando start

# Install a site local drush
lando composer require drush/drush

# Install drupal
lando drush site:install --db-url=mysql://drupal10:drupal10@database/drupal10 -y

# List information about this app
lando info

 

Explicación:

     En las primeras líneas, se creará la carpeta para nuestro proyecto y, a continuación, se moverá para añadir el arhivo de configuración de Lando e iniciará el proceso de la descarga desde el repositorio oficial de Drupal. 

     Deberías sustituir, si lo prefieres, todas las líneas donde ves drupal10-app, que en este caso se refiere tanto al nombre de la carpeta donde estará alojado el proyecto de Drupal, como al nombre que dará Lando una vez instalado y que podrás comprobar si abres el archivo de cofiguración .lando.yml.

# Initialize a drupal10 recipe using the latest Drupal 10 version
mkdir drupal10-app \
  && cd drupal10-app \
  && lando init \
    --source remote \
    --remote-url https://ftp.drupal.org/files/projects/drupal-10.0.x-dev.tar.gz \
    --remote-options="--strip-components 1" \
    --recipe drupal10 \
    --webroot . \
    --name drupal10-app

     Las siguientes líneas son las encargadas de arrancar Lando, mediante el comando lando start, esto permitirá ejecutar los comando incluido en Lando, para el resto de configuraciones.

# Start it up
lando start

     Una vez arrancado Lando, en las siguiente líneas, comenzará la instalación del proyecto Drupal 10, utilizando esta vez el comando de drush site:install, que permite instalar un proyecto Drupal desde cero, con todo lo necesario para comenzar a trabajar.

# Install drupal
lando drush site:install --db-url=mysql://drupal10:drupal10@database/drupal10 -y

     Al finalizar todo el proceso de descarga, instalación y configuración de tu sitio Drupal 10, el último paso será mostrarte la información de tu proyecto, para que puedas conprobar sus valores, relacionados con el usuario, puertos, base de datos, etc.

# List information about this app
lando info

     Ya podrás acceder a la url de tu proyecto, haciendo clic en el enlace que te muestra la pantalla, donde verás la bienvenida a tu proyecto, sin estar indentificado.

curso drupal 10  | www.drupaladicto.com - Consultor especializado en drupal y symfony

curso drupal 10  | www.drupaladicto.com - Consultor especializado en drupal y symfony

 Cómo puedo comenzar a administrar mi proyecto Drupal

     Al instalar Drupal, utilizando el comando drush site: install, éste genera un usuario por defecto, llamado admin, pero su contraseña asociada es un valor Ramdom, por lo tanto, para poder entrar como administradores y comenzar a trabajar en nuestro proyecto de Drupal 10, utilizaremos el comando para resetear los valores del usuario admin por defecto. Si quires más información sobre las opciones del comando drush site: install, haz clic aquí.

lando drush uli

     Recuerda que estamos trabajando con Lando, es por esta razón, que en lugar de utilizar drush directamente, pondremos siempre delante la palabra lando. Esto generará un enlace, que deberemos copiar en el navegador, a partir del dominio completo de nuestro sitio web y automáticamente, accederemos a la pantalla de configuración de Drupal, donde podremos ver y modificar todos los detalles relacionados con nuestro usuario administrador.

     Si quieres explorar más información sobre este tema, antes del siguiente artículo, puedes visitar la documentación oficial de Lando para Drupal