sitebuilder https://drupaladicto.com/ es View mode, Twig y Vistas https://drupaladicto.com/curso/site-building/view-mode-twig-y-vistas <span class="field field--name-title field--type-string field--label-hidden">View mode, Twig y Vistas</span> <div class="field field--name-field-contenidos-cap-gratis field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <style>#video-only-979 .play-btn:hover::after { border-left: 15px solid #1fd7d9; transform: scale(20); border-left: 15px solid #fff; } #video-only-979 .play-btn::before { border: 5px solid #1fd7d9; } #video-only-979 .play-btn { background: radial-gradient(#1fd7d9 50%, rgba(66, 109, 202, 0.4) 52%); }</style> <div class="paragraph paragraph--type--video-only paragraph--view-mode--default" id="vol-979"> <section id="video-only-979" class="about area-padding video-block-wrapper"> <div class="col video-box"> <div class="portada"> <img src="/sites/default/files/styles/diapositiva_1200x650/public/2023-07/portada-gratuito-grande_2.jpg?itok=8dBQYXT7" class="img-fluid" alt=""> <div class="field field--name-vo-youtube-video field--type-entity-reference field--label-visually_hidden"> <div class="field__label visually-hidden">Video de Youtube</div> <div class="field__item"><article class="media media--type-remote-video media--view-mode-diapositiva-1200x650"> <div class="field field--name-field-media-oembed-video field--type-string field--label-visually_hidden"> <div class="field__label visually-hidden">URL de Video remoto</div> <div class="field__item"><div class="modal micromodal-slide" id="modal-media-700-0-field-media-oembed-video" aria-hidden="true"> <div class="modal__overlay" tabindex="-1" data-micromodal-close> <div class="modal__container" role="dialog" aria-modal="true" aria-labelledby="modal-media-700-0-field-media-oembed-video-content"> <a class="modal__btn" data-micromodal-close aria-label="Close this dialog window">X</a> <main class="modal__content" id="modal-media-700-0-field-media-oembed-video-content"> <div class="videoWrapper"><iframe src="/media/oembed?url=https%3A//youtu.be/QrPbwCvFJ6s&amp;max_width=0&amp;max_height=0&amp;hash=VUAbCjSzI1zzZ5YyX66JRt1cdFKBh8SFWR9VYNQclxg" frameborder="0" allowtransparency="" class="media-oembed-content" title="Time Value of Money"></iframe></div> </main> </div> </div> </div> <div><a class="myButton" data-micromodal-trigger="modal-media-700-0-field-media-oembed-video"><span class="btn play-btn">.</span></a></div> </div> </div> </article> </div> </div> </div> </div> </section> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p>     En Drupal, además de poder trabajar con tipos de contenido a medida, cuyos campos y comportamiento, nos permiten obtener casi cualquier tipo de estructura posible; existe la opción de mostrar esos mismos contenidos, modificando su presentación o la información expuesta; con esta alternativa podremos aplicar cambios como, por ejemplo, estilos de CSS, dependiendo de los permisos de los usuarios, o descomponer nuestro proyecto en "componentes" reutilizables, que podremos modificar individualmente, sin tener que reescribir el tipo de contenido original.</p> <p>     Esta alternativa es conocida como View Modo o "Modo de Vista" y básicamente nos permite recolocar, presentar u ocultar los campos de cualqueir tipo de contenido o entidad dentro de un proyecto de Drupal.</p> <h2>   Donde econtrar el Modo de vista en un contenido Drupal</h2> <p>     Drupal viene por defecto con dos tipos de contenido Artículo y Página básica, para ver el modo de vista de cualquiera de ellos, tendremos que acceder a la pestaña de Gestionar presentación del tipo de contenido que desamos consultar, en la url "/admin/structure/types/manage/article/display".</p> <p>     Al acceder, por defecto, en la pestaña de un artículo verás algo parecido a la siguiente imagen, con los campos que trae una instalación nueva de Drupal.</p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/view-mode-article.svg" alt="View Mode Drupal | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" title="View Mode Drupal | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><h2>   View Mode en vistas Drupal</h2> <p>     Una de las mejores formas de trabajar, utilizando View Modes, de los contenidos en Drupal, es através de las vistas. </p> <p>     Por defecto, a partir de Drupal 8, econtraremos una vista llamada Frontpage, encargada de mostrar los artículos creados, sin la necesidad de modificar nada más. </p> <p>     Para comprobarlo, sólo tenemos que añadir algunos artículos a nuestro proyecto Drupal, completando todos sus campos y a continuación, al visitar la página frontal, haciendo clic en el logo de Drupal, veremos un listado de todos nuestros artículos.</p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/frontpage.svg" alt="View Mode Drupal | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" title="View Mode Drupal | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><h2>   Cómo utilizar View Modes en una vistas Drupal</h2> <p>     Si exploramos la configuración de la vista <strong>Frontpage</strong>, a la que podremos acceder desde la url "/admin/structure/views/view/frontpage", podremos entender muy fácilmente, como se emplea un View Mode, dentro de una vista de Drupal.</p> <p>     Observando el apartado <em><strong>Formato</strong></em>, dentro de la página de configuración de la Vista Frontpage, comprobaremos que está configurada para Mostrar contenidos, con el View Mode Resumen. </p> <p>     Esto quiere decir, que si volvemos a la pestaña <strong>Gestionar Presentación,</strong> del tipo de contenido Artículo y buscamos el apartado <strong>Resumen</strong>, veremos que los campos activados corresponden a los que vemos en la página de inicio de Drupal, gracias a la vista Frontpage.</p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/configuracion-frontpage.svg" alt="View Mode Drupal | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" title="View Mode Drupal | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/resumen-article.svg" alt="View Mode Drupal | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" title="View Mode Drupal | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><h2>   Cómo cambiar el View Mode en una vista Drupal</h2> <p>     Para añadir o modificar un View Modo dentro de una vista en Drupal, solo tendremos que hacer clic en el enlace que se refiere al modo de vista utilizado, en el apartado <strong>Mostrar</strong>, de la pantalla de configuración de la vista. </p> <p>     Al hacer clic, se abre un desplegable, con todos los View Modes, disponibles para la entidad o el contenido que estemos mostrando en la misma.</p> <p>     En el caso de la vista Frontpage, por defecto está empleádose el View Mode Resumen, para asegurarnos de que entendemos como modificarlo, haremos clic sobre Resumen y a continuación seleccionaremos, cualquiera de las opciones disponibles, en mi caso, seleccionaré RSS y luego guardaré los cambios, antes de regresar a la página pricipal, para ver el resultado. </p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/cambio-modo-vista.svg" alt="View Mode Drupal | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" title="View Mode Drupal | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/vista-rss.svg" alt="View Mode Drupal | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" title="View Mode Drupal | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><h2>   Modo de vista personalizado</h2> <p>     Ahora que ya conocemos el objetivo de utilizar los Modos de vista (View Modes), podremos ir un poco más allá; vamos a crear y activar nuestro propio modo de vista, para que modifique nuestros contenidos.</p> <p>     Para crear un modo de vista personalizado, iremos a la página de configuración de los modos de vista, para ello, tenemos varias opciones:</p> <ul><li>Llendo a la pestaña <strong>Gestionar Presentación</strong>, dentro del contenido que desamos modificar y desplegarnos hasta la parte inferior izqierda, para acceder mediante el enlace que encontraremos al final.<br />  </li> <li>Accediendo a la url: "/admin/structure/display-modes/view"<br />  </li> <li>Si tienes activado el módulo admin_toolbar, mediante el menú desplegable de administración.</li> </ul></div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/gestionar-viewmodes.svg" alt="View Mode Drupal | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" title="View Mode Drupal | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p>      Una vez dentro de la página de configuración, haremos clic en el enlace <a href="http://drupaladicto.localhost:8000/admin/structure/display-modes/view/add/node">Añadir una nueva <em>modo de vista</em> de Contenido</a>, ubicado en la parte inferior de cada uno de los contenidos, bloques, paragraphs, media, etc.</p> <p>     Luego rellenaremos el campo con el nombre para nuestro View Mode, ej.: <strong>ModoVistaPersonalizado</strong> y a continuación, guardaremos los cambios y volveremos a la pestaña <strong>Gestionar Presentación</strong>, para activarlo, dentro de nuestro contenido.</p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/pantalla-configuracion-view-mode.svg" alt="View Mode Drupal | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" title="View Mode Drupal | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p>     Cuando hayamos guardado el nuevo View Mode, volveremos a la pestaña Gestionar presentación, nos desplazaremos hasta el final y a continuación, marcaremos el nuevo View Mode, que encontraremos dentro del listado.</p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/activando-viewmode.svg" alt="View Mode Drupal | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" title="View Mode Drupal | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/viewModeActivado.svg" alt="View Mode Drupal | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" title="View Mode Drupal | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><h2>   Crear plantilla Twig para View Mode</h2> <p>     Requisitos:</p> <ul><li>Instalar un Theme personalizado. Para descubrir varias opciones disponibles <a href="/curso/drupal-frontend-basicos">HAZ CLIC AQUI</a><br />  </li> <li>Activar el modo debug o depurador de Drupal. <a href="/snippet/configuracion-desarrollo-local-drupal-8">HAZ CLIC AQUÍ</a></li> </ul><p>     Cuando tengamos activado el modo Debug, seleccionaremos inspeccionar, desde el navegador, para ver las sugerencias generadas por Drupal, relacionadas con los posibles nombres para las plantillas de nuestros Modos de Vista.</p> <p>     Al igual que con cualquier otra plantilla de un nodo en Drupal, copiaremos el modelo, cambiaremos el nombre y a continuación, podremos comenzar a personalizarla.</p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/sugerencias.svg" alt="View Mode Drupal | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" title="View Mode Drupal | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/luis-alberto-mejia" typeof="schema:Person" property="schema:name" datatype="">webmaster</span></span> <span class="field field--name-created field--type-created field--label-hidden">Mar, 09/05/2023 - 15:50</span> Tue, 09 May 2023 13:50:48 +0000 webmaster 438 at https://drupaladicto.com Layout Paragraphs | Módulo Drupal https://drupaladicto.com/curso/site-building/layout-paragraphs-modulo-drupal <span class="field field--name-title field--type-string field--label-hidden">Layout Paragraphs | Módulo Drupal</span> <div class="field field--name-field-contenidos-cap-gratis field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <style>#video-only-935 .play-btn:hover::after { border-left: 15px solid #1fd7d9; transform: scale(20); border-left: 15px solid #fff; } #video-only-935 .play-btn::before { border: 5px solid #1fd7d9; } #video-only-935 .play-btn { background: radial-gradient(#1fd7d9 50%, rgba(66, 109, 202, 0.4) 52%); }</style> <div class="paragraph paragraph--type--video-only paragraph--view-mode--default" id="vol-935"> <section id="video-only-935" class="about area-padding video-block-wrapper"> <div class="col video-box"> <div class="portada"> <img src="/sites/default/files/styles/diapositiva_1200x650/public/2023-07/portada-gratuito-grande_2.jpg?itok=8dBQYXT7" class="img-fluid" alt=""> <div class="field field--name-vo-youtube-video field--type-entity-reference field--label-visually_hidden"> <div class="field__label visually-hidden">Video de Youtube</div> <div class="field__item"><article class="media media--type-remote-video media--view-mode-diapositiva-1200x650"> <div class="field field--name-field-media-oembed-video field--type-string field--label-visually_hidden"> <div class="field__label visually-hidden">URL de Video remoto</div> <div class="field__item"><div class="modal micromodal-slide" id="modal-media-656-0-field-media-oembed-video" aria-hidden="true"> <div class="modal__overlay" tabindex="-1" data-micromodal-close> <div class="modal__container" role="dialog" aria-modal="true" aria-labelledby="modal-media-656-0-field-media-oembed-video-content"> <a class="modal__btn" data-micromodal-close aria-label="Close this dialog window">X</a> <main class="modal__content" id="modal-media-656-0-field-media-oembed-video-content"> <div class="videoWrapper"><iframe src="/media/oembed?url=https%3A//youtu.be/49j55HDXCsI&amp;max_width=0&amp;max_height=0&amp;hash=_1bUXN5ZORgwtr32i6EmrcrWxT7iDrOhPOzQtw8BLog" frameborder="0" allowtransparency="" class="media-oembed-content" title="Time Value of Money"></iframe></div> </main> </div> </div> </div> <div><a class="myButton" data-micromodal-trigger="modal-media-656-0-field-media-oembed-video"><span class="btn play-btn">.</span></a></div> </div> </div> </article> </div> </div> </div> </div> </section> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p>     En el curso <a href="/curso/landing-page-creacion-y-configuracion-con-drupal-9" rel="bookmark">Landing Page | Creación y configuración con Drupal 9</a>, aprendimos a configurar desde cero, un tipo de contenido, llamado Landing Page, cuya estructura principal estaba formada paragraphs, permitiendo así una mayor flexibilidad sobre el orden de todos sus componentes.</p> <p>     También pudimos comprobar, que es posible añadir más funcionalidades, que modifiquen específicamente a cada Paragraphs, como la de permitir configurar un color, gracias al módulo <a href="https://www.drupal.org/project/color_field">Color Field</a>; o incluir un formulario dentro de un paragraphs, gracias a los campos referenciados de Drupal.</p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/curso-landing.svg" alt="Layout Paragraphs Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Layout Paragraphs Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p>     En el caso de nuestro ejemplo, resulta fácil la manipulación de los componentes Paragraphs, desde la interfaz del usuario, ya que no representan una gran cantidad; pero, ¿qué ocurre si en lugar de tener unos pocos Paragraphs, queremos ofrecer al usuario un mayor abanico de posiblidades?</p> <p>     Si exploramos el fomulario de creación de nuestra Landing Page, podremos comprobar a qué nos referimos; ya que la interfaz del usuario de Drupal, añade cada nuevo paragraphs justo debajo del anterior, y, a pesar de que podemos plegar u ocultar cada uno de los paragraphs, durante el proceso de edición, no contamos con una opción gráfica "Verdaderamente amigable", para usuarios con conocimientos básicos sobre edición de contenidos.</p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/editar.svg" alt="Layout Paragraphs Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Layout Paragraphs Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><h2 id="page-subtitle">   Layout Paragraphs</h2> <p>     Para facilitar el proceso de edición de contenidos, cuando tenemos un gran número de paragraphs, disponibles para el usuario editor, contamos con otro módulo llamado <a href="https://www.drupal.org/project/layout_paragraphs">Layout Paragraphs</a>, cuyo objetivo es, precisamente, permitirnos añadir, editar, arrastrar o eliminar los paragraphs dentro de nuestros contenidos.</p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/modulo-layout-paragraphs.svg" alt="Layout Paragraphs Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Layout Paragraphs Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p>     Para facilitar el proceso de edición de contenidos, cuando tenemos un gran número de paragraphs, disponibles para el usuario editor, contamos con otro módulo llamado <a href="https://www.drupal.org/project/layout_paragraphs">Layout Paragraphs</a>, cuyo objetivo es, precisamente, permitirnos añadir, editar, arrastrar o eliminar los paragraphs dentro de nuestros contenidos.</p> <h3>Descarga y Activación:</h3> <p>Para descargar y activar cualquier módulo de Drupal tienes varias opciones:</p> <p><strong>     Descarga:</strong><br /><br />           1.- La forma recomendada a partir de Drupal 8, es utilizando el gestor de paquetes Composer, ejecutando en tu consola el comando:</p> <pre> <code>composer require drupal/layout_paragraphs</code></pre> <p>          2.- Descargándolo manualmente el módulo desde la página oficial del <a href="https://www.drupal.org/project/layout_paragraphs">Layout Paragraphs</a> y una vez descargado y colocado en carpeta "modules/contrib", si haz descargado todos tus módulos manualmente, deberías crear la carpeta "contrib", para que puedas diferenciar entre tus módulos personalizados y los que están disponibles directamente en la Página oficial de Drupal.</p> <p>     <strong>Activación:</strong></p> <p>          1.- Utilizando la herramienta de consola Drush, la opción "-y" activará todos los sub-modulos automáticamente</p> <pre> <code>drush en layout_paragraphs -y</code></pre> <p>          2.- Desde la interfaz de usuario de Drupal, en la url "/admin/modules", y luego marcando el check junto al nombre de tu módulo y haciendo clic en el botón guardar que aparecer al final de la página.</p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/layout-paragraphs-activado.svg" alt="Layout Paragraphs Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Layout Paragraphs Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><h3>   Configuración del módulo</h3> <p>     Una vez descargado y activado el módulo, el siguiente paso será configurar el campo o los campos, del tipo paragraphs, para que podamos ver el cambio que nos ofrece este módulo, a nivel de la interfaz de usuario, facilitando la manipulación de los paragrphs. </p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p>     En nuestro ejercicio con la Landing Page, creamos un campo tipo paragraphs, en el que añadimos cada uno de los Bloques o Paragraphs que deberían estar disponibles para que el usarios los añadiera, editara o modificara, según sus necesidades.</p> <p>     Por lo tanto, tendremos que acceder a las pestañas <strong>Administrar la visualización del formulario</strong> y luego en la de <strong>Gestionar Presentación</strong>, buscar el campo al que activaremos la funcionalidad del módulo Layout Paragrarphs y la seleccionaremos dentro de las opciones disponibles. Por último guardaremos los cambios y borraremos la cache de Drupal, para ver el resultado.</p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/presentacion-campo.svg" alt="Layout Paragraphs Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Layout Paragraphs Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/campos.svg" alt="Layout Paragraphs Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Layout Paragraphs Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/gestionar-formulario.svg" alt="Layout Paragraphs Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Layout Paragraphs Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p>     Una vez guardados los cambios en la configuración de los campos, si volvemos a editar nuestro contenido, podremos apreciar un cambio considerable en la forma de gestionar los paragraphs.</p> <ul></ul></div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/layout-edicion.svg" alt="Layout Paragraphs Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Layout Paragraphs Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p>     Entre los cambios están:</p> <ul><li>Posibilidad de previsualizar el contenido de los paragraphs, tal y como se muestran en el frontend.</li> <li>Capacidad para añadir nuevos paragraphs por medio de un buscador</li> <li>Capacidad de arrastrar y cambiar de posición todos los paragraphs entre sí.</li> <li>Capacidad para duplicar Paragraphs</li> </ul></div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/nuevas-fucionalidades.svg" alt="Layout Paragraphs Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Layout Paragraphs Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><h3>   Combinando Paragraphs con Layout Builder</h3> <p>     Uno de los objetivos principales de este módulo, es ofrecer la posibilidad de combinar el uso de Pagragraphs, con el Layout Builder integrado en Drupal, a partir de Drupal 8, con esta combinación, podremos preconfigurar secciones de una o varias columnas, para poder insertar en ellas, todos los paragraphs que necesitemos.</p> <h3>   Cómo crear una sección</h3> <p>     La sección, no es más que otro componente del tipo Paragraphs, que tendremos que añadir al listado principal, si queremos que funcione.</p> <p>     La particularidad de una SECCIÓN, es que tendremos que marcar la opción de <strong>Layout Paragraphs</strong>, en la parte inferior, para que pueda ser utilizada con ese fin.</p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/secciones2.svg" alt="Layout Paragraphs Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Layout Paragraphs Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p>     Al configurar este nuevo paragraphs, al que llamaremos SECTION, o como te apetezca, nos aparecerá dentro de las opciones disponibles, cuando presionamos el icono de suma (+), que aparecer en la parte superior e inferior de nuestra nueva interfaz de usuario, para la edición de los paragraphs.</p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/secciones.svg" alt="Layout Paragraphs Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Layout Paragraphs Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/luis-alberto-mejia" typeof="schema:Person" property="schema:name" datatype="">webmaster</span></span> <span class="field field--name-created field--type-created field--label-hidden">Mié, 26/04/2023 - 10:52</span> Wed, 26 Apr 2023 08:52:06 +0000 webmaster 431 at https://drupaladicto.com Asset Injector https://drupaladicto.com/curso/site-building/asset-injector <span class="field field--name-title field--type-string field--label-hidden">Asset Injector</span> <div class="field field--name-field-contenidos-cap-gratis field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <style>#video-only-861 .play-btn:hover::after { border-left: 15px solid #1fd7d9; transform: scale(20); border-left: 15px solid #fff; } #video-only-861 .play-btn::before { border: 5px solid #1fd7d9; } #video-only-861 .play-btn { background: radial-gradient(#1fd7d9 50%, rgba(66, 109, 202, 0.4) 52%); }</style> <div class="paragraph paragraph--type--video-only paragraph--view-mode--default" id="vol-861"> <section id="video-only-861" class="about area-padding video-block-wrapper"> <div class="col video-box"> <div class="portada"> <img src="/sites/default/files/styles/diapositiva_1200x650/public/2023-07/portada-gratuito-grande_2.jpg?itok=8dBQYXT7" class="img-fluid" alt=""> <div class="field field--name-vo-youtube-video field--type-entity-reference field--label-visually_hidden"> <div class="field__label visually-hidden">Video de Youtube</div> <div class="field__item"><article class="media media--type-remote-video media--view-mode-diapositiva-1200x650"> <div class="field field--name-field-media-oembed-video field--type-string field--label-visually_hidden"> <div class="field__label visually-hidden">URL de Video remoto</div> <div class="field__item"><div class="modal micromodal-slide" id="modal-media-581-0-field-media-oembed-video" aria-hidden="true"> <div class="modal__overlay" tabindex="-1" data-micromodal-close> <div class="modal__container" role="dialog" aria-modal="true" aria-labelledby="modal-media-581-0-field-media-oembed-video-content"> <a class="modal__btn" data-micromodal-close aria-label="Close this dialog window">X</a> <main class="modal__content" id="modal-media-581-0-field-media-oembed-video-content"> <div class="videoWrapper"><iframe src="/media/oembed?url=https%3A//youtu.be/-YBYer_0DFU&amp;max_width=0&amp;max_height=0&amp;hash=TDSKcsIrk8wf8JdzUuk00fzJR9Zq0Jqrwdiaaqs1Zhw" frameborder="0" allowtransparency="" class="media-oembed-content" title="Time Value of Money"></iframe></div> </main> </div> </div> </div> <div><a class="myButton" data-micromodal-trigger="modal-media-581-0-field-media-oembed-video"><span class="btn play-btn">.</span></a></div> </div> </div> </article> </div> </div> </div> </div> </section> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--text-only paragraph--view-mode--default" id="txonly-1163" style="background-color: ;border: solid px;border-color: #096ba0;border-radius: 5px;padding: 10px;"> <div class="clearfix text-formatted field field--name-to-text field--type-text-long field--label-visually_hidden"> <div class="field__label visually-hidden">Texto</div> <div class="field__item"><p>         Este módulo te pemitirá añadir y editar CSS y/o Javascript, sin la necesidad de salir de la interfaz de usuario de administrador en Drupal. Además, podrás limitar las páginas en las que se ejecutan o aplican, solamente seleccionando el tipo de contenido en el selector dentro de la pantalla de configuración del módulo.</p> <h3> DESCARGA Y ACTIVACIÓN:</h3> <p>Para descargar y activar cualquier módulo de Drupal tienes varias opciones:</p> <p><strong>     Descarga:</strong></p> <p>          1.- La forma recomendada a partir de Drupal 8, es utilizando el gestor de paquetes Composer, ejecutando en tu consola el comando:</p> <pre> composer require drupal/asset_injector</pre> <p>          2.- Descargándolo manualmente el módulo desde la página oficial del <a href="https://www.drupal.org/project/asset_injector">Módulo Asset Injector</a> y una vez descargado y colocado en carpeta "modules/contrib", si haz descargado todos tus módulos manualmente, deberías crear la carpeta "contrib", para que puedas diferenciar entre tus módulos personalizados y los que están disponibles directamente en la Página oficial de Drupal.</p> <p>     <strong>Activación:</strong></p> <p>          1.- Utilizando la herramienta de consola Drush, la opción "-y" activará todos los sub-modulos automáticamente</p> <pre> drush en asset_injector -y</pre> <p>          2.- Desde la interfaz de usuario de Drupal, en la url "/admin/modules", y luego marcando el check junto al nombre de tu módulo y haciendo clic en el botón guardar que aparecer al final de la página.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 58%;" data-ratio="58" data-b-token="b-fbb946cf234" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img data-entity-uuid="6e4b5ed9-48be-445a-844f-488f5fcbec86" loading="lazy" alt="Asset Injector módule | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/asset_injector.png?itok=5YvpX8sk" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="377" typeof="foaf:Image" /></div></div> <p> </p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 109.24%;" data-ratio="109.24" data-b-token="b-3cddf10adce" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img data-entity-uuid="9ee14d09-68c2-4a50-82c8-3904af66a200" loading="lazy" alt="Asset Injector módule | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/acceder_asset_injector.jpg?itok=ZXnXBzC5" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="595" height="650" typeof="foaf:Image" /></div></div> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 58%;" data-ratio="58" data-b-token="b-fbb946cf234" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img data-entity-uuid="fc45ad42-8bd6-4bce-8520-fefca1300000" loading="lazy" alt="Asset Injector módule | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/asset_injector.png?itok=5YvpX8sk" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="377" typeof="foaf:Image" /></div></div> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 75.54%;" data-ratio="75.54" data-b-token="b-0fa796c9540" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img data-entity-uuid="c633ae65-bde0-47fb-a99c-bb1a28910d6a" loading="lazy" alt="Asset Injector módule | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/asset_injector_dentro.png?itok=M1Fuyc8Y" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="491" typeof="foaf:Image" /></div></div> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 57.23%;" data-ratio="57.23" data-b-token="b-e011d7395ee" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img data-entity-uuid="537ec63e-25e8-42f1-b118-79e0e3c116c5" loading="lazy" alt="Asset Injector módule | www.drupaladicto.com - Consultor especializado en Drupal y Symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/efecto_asset_injector.png?itok=vMrDgo8_" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="650" height="372" typeof="foaf:Image" /></div></div> </div> </div> </div> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/luis-alberto-mejia" typeof="schema:Person" property="schema:name" datatype="">webmaster</span></span> <span class="field field--name-created field--type-created field--label-hidden">Dom, 16/04/2023 - 17:03</span> Sun, 16 Apr 2023 15:03:17 +0000 webmaster 426 at https://drupaladicto.com Media y Media Library https://drupaladicto.com/curso/site-building/media-y-media-library <span class="field field--name-title field--type-string field--label-hidden">Media y Media Library</span> <div class="field field--name-field-contenidos-cap-gratis field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p>Añade la funcionalidad de reutilizar tus imágenes para todos tus contenidos.</p> <p>    Sabías que, aunque ya existe un campo field_image, en nuestros contenidos por defecto de Drupal 9, también existe la posibilidad de añadir otro campo mucho más potente, gracias a los módulos incluidos en el Núcleo de Drupal, llamados <strong>Media</strong> y <strong>Media Library</strong> y que al activarlos, además de permitir agregar y reutilizar imágenes, también nos ofrece la oportunidad de utilizar formatos de Video externo o local, archivos de audio y muchas otras posiblidades?</p> <p>     Es por esto que en esta ocasión, te comentaré cómo instalar y configurar un campo de imágenes, para tus contenidos, utilizando estos dos módulos, que ya te vienen por defecto en Drupal 9, pero que tendrás que activarlos si quieres comenzar a utilizarlos.</p> <h2>   CÓMO ACTIVAR MEDIA Y MEDIA LIBRARY</h2> <p>     A diferencia de otros módulos, en esta ocasión, sólo tendremos que acceder a la url "<strong>/admin/modules</strong>", y una vez allí, buscaremos en el filtro el nombre de ambos y podremos activarlos de inmediato.</p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/media-ampliar.svg" alt="Media y Media Library Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Media y Media Library Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p>     Una vez activados, podremos añadir nuevos campos de tipo Media, en todos nuestros contenidos. Pero antes, hechemos un vistazo al listado de archivos de tipo Media. Para ello, accederemos a la url "<strong>/admin/content/media</strong>", donde veremos el listado de todos los archivos cargados a través del módulo, en formato Tabla o Cuadrícula.</p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/listado-media.svg" alt="Media y Media Library Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Media y Media Library Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p>     Desde este listado, podremos ejecutar cambios en Bloque o por grupos, seleccionando ya sea por medio de filtros o marcando el check junto a cada uno de los nombres, como podemos hacer cuando estamos dentro del listado de contenidos de Drupal. Además, contamos con un buscador y un filtro que funcionan de la misma manera que en contenidos.</p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/media-grid.svg" alt="Media y Media Library Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Media y Media Library Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><h2>   AÑADIENDO UN CAMPO MEDIA</h2> <p>     El campo media, se añade igual que cualquier otro campo, seleccionaremos añadir campo y a continuación la nueva opción Media, que veremos en el desplegable. </p> <p>     Los siguientes pasos en la configuración, variarán en función de lo que esperamos añadir, por ejemplo un campo para una sola imagen, un video, un archivo de audio o varias imágenes.</p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/campo-media.svg" alt="Media y Media Library Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Media y Media Library Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/campos-media.svg" alt="Media y Media Library Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Media y Media Library Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/luis-alberto-mejia" typeof="schema:Person" property="schema:name" datatype="">webmaster</span></span> <span class="field field--name-created field--type-created field--label-hidden">Dom, 16/04/2023 - 16:09</span> Sun, 16 Apr 2023 14:09:28 +0000 webmaster 425 at https://drupaladicto.com Menús | Creación, edición y manipulación en Drupal 8 y 9 https://drupaladicto.com/curso/site-building/menus-creacion-edicion-y-manipulacion-en-drupal-8-y-9 <span class="field field--name-title field--type-string field--label-hidden">Menús | Creación, edición y manipulación en Drupal 8 y 9</span> <div class="field field--name-field-contenidos-cap-gratis field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <style>#video-only-937 .play-btn:hover::after { border-left: 15px solid #1fd7d9; transform: scale(20); border-left: 15px solid #fff; } #video-only-937 .play-btn::before { border: 5px solid #1fd7d9; } #video-only-937 .play-btn { background: radial-gradient(#1fd7d9 50%, rgba(66, 109, 202, 0.4) 52%); }</style> <div class="paragraph paragraph--type--video-only paragraph--view-mode--default" id="vol-937"> <section id="video-only-937" class="about area-padding video-block-wrapper"> <div class="col video-box"> <div class="portada"> <img src="/sites/default/files/styles/diapositiva_1200x650/public/2023-07/portada-gratuito-grande_2.jpg?itok=8dBQYXT7" class="img-fluid" alt=""> <div class="field field--name-vo-youtube-video field--type-entity-reference field--label-visually_hidden"> <div class="field__label visually-hidden">Video de Youtube</div> <div class="field__item"><article class="media media--type-remote-video media--view-mode-diapositiva-1200x650"> <div class="field field--name-field-media-oembed-video field--type-string field--label-visually_hidden"> <div class="field__label visually-hidden">URL de Video remoto</div> <div class="field__item"><div class="modal micromodal-slide" id="modal-media-658-0-field-media-oembed-video" aria-hidden="true"> <div class="modal__overlay" tabindex="-1" data-micromodal-close> <div class="modal__container" role="dialog" aria-modal="true" aria-labelledby="modal-media-658-0-field-media-oembed-video-content"> <a class="modal__btn" data-micromodal-close aria-label="Close this dialog window">X</a> <main class="modal__content" id="modal-media-658-0-field-media-oembed-video-content"> <div class="videoWrapper"><iframe src="/media/oembed?url=https%3A//youtu.be/DLnINO4i7r0&amp;max_width=0&amp;max_height=0&amp;hash=ai6ngh4WmJaWPhM_0TdpGdFFjkWfnOmdEV9ANXRGgR0" frameborder="0" allowtransparency="" class="media-oembed-content" title="Time Value of Money"></iframe></div> </main> </div> </div> </div> <div><a class="myButton" data-micromodal-trigger="modal-media-658-0-field-media-oembed-video"><span class="btn play-btn">.</span></a></div> </div> </div> </article> </div> </div> </div> </div> </section> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--text-only paragraph--view-mode--default" id="txonly-1162" style="background-color: ;border: solid px;border-color: #096ba0;border-radius: 5px;padding: 10px;"> <div class="clearfix text-formatted field field--name-to-text field--type-text-long field--label-visually_hidden"> <div class="field__label visually-hidden">Texto</div> <div class="field__item"><h2><strong>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... <a href="https://youtu.be/DLnINO4i7r0" target="_blank">HAZ CLIC AQUI</a></strong></h2> <p>     Al realizar cualquier instalación de Drupal, por defecto, una vez arrancado el sitio, podremos ver que se nos han activado algunos elementos y funcionalidades, que nos servirán de referencia para la posterior configuración y desarrollo de nuestra web.</p> <p>     Dentro de este grupo, encontraremos los Menús, parte fundamental de cualquier proyecto web, que facilita la navegación y accesos, tanto de los usuarios visitantes, como de los administradores del sitio.</p> <p>     En el caso de Drupal, veremos cinco tipos de Menús activados por defecto: el Menú Administrador, Menú principal, el Menú Usuario, el Menú herramientas y el Menú del Pie de página.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 51.47%;" data-ratio="51.47" data-b-token="b-f525a5a58ae" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630a334260735.jpg?itok=6x0rBUxm" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="645" height="332" typeof="foaf:Image" /></div></div> <p>     Todos ellos, al igual que la mayoría de elementos disponibles, a partir de Drupal 8, estarán dentro de Bloques, que podremos mover, según nuestras necesidades, además de controlar quiénes podrán acceder a los mismos, a través de la configuración de permisos de los usuarios.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 66.16%;" data-ratio="66.16" data-b-token="b-a29c154b78d" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630a33762bd65.jpg?itok=0Ok-Ve2F" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="458" height="303" typeof="foaf:Image" /></div></div> <p>     Para administrar los bloques, iremos a la página de administración de bloques ubicada en la url: "estructura/diseño de bloques". Si quieres aprender más sobre la manipulación de bloques, visita este enlace <a href="https://www.drupaladicto.com/actualidad/como-crear-un-bloque-programaticamente-en-drupal-9">Cómo crear un bloque programáticamente en Drupal 9</a>. Tan pronto como aprendas a manipular los bloques, te será más fácil administrar las posiciones donde se mostarán los diferentes Menús de tu proyecto.</p> <p>     Ahora que ya tienes claro, dónde y cómo manipular los Bloques, deberías dedicar un rato a repasar o conocer la manipulación de los permisos, para que puedas controlar los accesos, según tus necesidades, a los diferentes menús y sus respectivos enlaces, mediante la gestión de permisos y usuarios; por defecto, la instalacíon de Drupal te crea un usuario administrador, pero te recomendaría crear, tan pronto como puedas, un segundo usuario, al que le vayas dando permisos específicos y así poder comprobar, lo que puede ver o hasta dónde puede acceder; de esta manera, al entregar el proyecto o publicarlo, evitarás dar permisos innecesarios, y correr el riesgo de que te borren o cambien alguna configuración erróneamente.</p> <p>     Para conocer más sobre cómo crear usuarios y gestionar sus accesos y permisos, puedes visitar el siguiente enlace <a href="https://www.drupaladicto.com/actualidad/gestionar-usuarios-roles-y-permisos-en-drupal">Gestionar usuarios, roles y permisos en Drupal</a>.</p> <h2>     Menús activados por defecto al instalar Drupal</h2> <h3>        Menú Administrador</h3> <p>             Como su nombre lo indica, es el Menú que permite administrar todo el sitio. Para poder verlo necesitarás tener los permisos de administrador. Por esta razón es recomendable crear un segundo usuario, con los permisos limitados, para que no pueda destruir, alguna configuración, por error.</p> <p>             Este menú, aparece en la parte superior del sitio, justo debajo de la barra del navegador, por defecto ofrece una navegación limitada, por lo que se recomienda descargar y activar el módulo Admin Menu, para ofrecerte más opciones y facilidades cuando estés navegando por las diferentes secciones del sitio web. </p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 73.08%;" data-ratio="73.08" data-b-token="b-82f2d436836" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630a3398a5e3e.jpg?itok=uXFO-OXU" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="587" height="429" typeof="foaf:Image" /></div></div> <p>            Para descargar y conocer cómo utilizar el módulo visita este enlace: <a href="https://www.drupaladicto.com/curso/admin-toolbar" target="_blank">Admin Toolbar</a> </p> <h3>        Menú Principal</h3> <p>          Este es el menú creado por defecto, para que los usuarios puedan navegar a través de las diferentes secciones de tu web, podrás configurar tus tipos de contenido, para que se añadan a este menú automáticamente.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div data-b-token="b-b27934578b6" class="media media--blazy media--image media--ratio media--ratio--11 is-b-loading"><img alt="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630a33bd19855.jpg?itok=UaOpO09U" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="344" height="344" typeof="foaf:Image" /></div></div> <p>     También agregar elementos y contenidos, de forma manual desde la pantalla de administracion de los menús, ubicada en la url: "/admin/structure/menu"</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 68.12%;" data-ratio="68.12" data-b-token="b-2d364881c9d" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630a33d992385.jpg?itok=f_7MlkaS" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="458" height="312" typeof="foaf:Image" /></div></div> <h3>        Mostrar elementos del Submenú</h3> <p>           Es muy importante saber, que por defecto, el menú principal viene configurado para mostrar sólo el primer nivel de sus elementos, por esta razón, si nuestro sitio tiene Submenús, que deberían desplegarse, tendremos que habilitar esta opción desde la administración de bloques, haciendo clic en el botón configurar y posteriormente, cambiando la opción a <strong>Ilimitado</strong>, en el apartado llamado <strong>Número de niveles a mostrar, de lo contrario, sólo se mostarán aquellos elementos que se encuentren en el primer nivel.</strong></p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 53.73%;" data-ratio="53.73" data-b-token="b-667fdcfa2ec" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630a33f896550.jpg?itok=HMW6KPT6" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="616" height="331" typeof="foaf:Image" /></div></div> <p>     Otra opción que deberemos activar, siempre que nuesto menú tenga (Submenús), es la llamada <strong>Mostrar expandido</strong>, que tambíen viene desactivada por defecto. Si no activamos esta opción, no podremos ver ningún Submenú, aunque hayamos realizado el paso anterior en la administración de Bloques.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 86.92%;" data-ratio="86.92" data-b-token="b-71e609d8fac" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630a3412d97f6.jpg?itok=pzNms_xg" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="344" height="299" typeof="foaf:Image" /></div></div> <p>     La opción <strong>Mostrar expandido, deberá activarse en cualquier Menú que contenga Submenús. Puede que las configuraciones iniciales se borren cada vez que instalemos un nuevo Theme, por lo que te recomiendo dejar esta parte para cuando hayas decidido la plantilal o Theme que utilizarás en tu proyecto.</strong></p> <h3>        Menú Usuario</h3> <p>         Este menú, por defecto, ofrece las opciones de identificarse como usuario (Iniciar/Cerrar sesión) y acceder a los detalles relacionados con nuestra cuenta. Por defecto aparece en la parte superior derecha del sitio, en las versiones más actuales de Drupal, al igual que los demás Menús, podrás modificar su posición, limitar los accesos para que se pueda mostrar u ocultar, según tus necesidades, además de ampliar o quitar las opciones.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 56.97%;" data-ratio="56.97" data-b-token="b-488a3f506e2" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630a344bb705c.png?itok=GqN1U3Pz" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="244" height="139" typeof="foaf:Image" /></div></div> <h3>     Menú Herramientas</h3> <p>        Por defecto se activa en la barra izquierda de nuestro proyecto, junto al buscador de Drupal. Su contenido irá creciendo en función de los permisos del usuario, facilitando el acceso a configuraciones u opciones específicas. Al igual que los anteriores, podrás cambiar su posición, opciones de mostar/ocultar, de acuerdo con las necesidades de tu proyecto y/o limitar su acceso, mediante la configuración de los permisos correspondientes.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 81.79%;" data-ratio="81.79" data-b-token="b-b18c6fb5aaf" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630a347d65117.png?itok=NJTgr3uZ" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="313" height="256" typeof="foaf:Image" /></div></div> <h3>     Añadir enlaces manualmente</h3> <p>     Para añadir un nuevo enlace, dentro de cualquier menú, sólo tendrás que navegar a la pantalla de configuración de los menús, que mencionamos la prinicipio y, a continuación, una vez seleccionado el menú en el cual quieres añadir un nuevo enlace, presionar el botón añadir enlace y completar los campos.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 90.77%;" data-ratio="90.77" data-b-token="b-c125cc0f1ec" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630a34a9d4a0d.jpg?itok=ltPlUeoE" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="444" height="403" typeof="foaf:Image" /></div></div> <p>     En el caso de que quieras agregar un contenido existente, bastará con que escribas una letra en el campo del enlace y Drupal te mostrará el listado de contenidos disponibles para que puedas seleccionarlo. Esta es la manera recomendada, ya que si copias la url de forma manual, podrías tener fallos en el caso de que actualizaras el contenido.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 68.12%;" data-ratio="68.12" data-b-token="b-84ac8c6cbb5" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630a34cad1391.jpg?itok=i9GgvPsu" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="458" height="312" typeof="foaf:Image" /></div></div> <p>     Si lo que necesitas es añadir un enlace, como parte de un Submenú, podrás hacerlo de dos maneras distintas:</p> <p>        Opción 1 : seleccionar el elemento padre o Menú padre de tu enlace, en el momento que estés añadiendo el contenido.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 91.48%;" data-ratio="91.48" data-b-token="b-f7eacce0b3b" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630a34ea98055.jpg?itok=NrvlhvqP" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="458" height="419" typeof="foaf:Image" /></div></div> <p>     Opción 2: Una vez creado tu enlace, arrastrarlo y colocarlo debajo del elemento o Menú padre.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 73.98%;" data-ratio="73.98" data-b-token="b-9fccdfa1ae3" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Menús Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630a351e33686.png?itok=vDJsOVxM" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="415" height="307" typeof="foaf:Image" /></div></div> <p>     <strong>RECUERDA GUARDAS LOS CAMBIOS ANTES DE DEJAR LA PÁGINA DE CONFIGURACIÓN.</strong></p> <h2>     Módulos complementarios para trabajar con Menús en Drupal 9</h2> <p>        Como siempre, Drupal ofrece un listado de módulos, destinados a ampliar o modificar las opciones por defecto de cada uno de sus componentes partes, a continuación te muestro algunos de estos módulos, que podrías necesitar en tu siguiente proyecto:       </p> <h3>Menu Link Attributes</h3> <p> Este módulo compatible con la versión 8/9, te permitirá añadir, entre otras opciones, clases o IDs a tus enlaces para que puedas manipularlos a través de CSS o Javascript, según las necesidades de tu proyecto. Puedes descargarlo desde su <a href="https://www.drupal.org/project/menu_link_attributes" target="_blank">Página Oficial de Drupal</a></p> <h3>Menu Admin per Menu</h3> <p> Este módulo compatible con la versión 8/9, te permitirá otorgar permisos de administrador a roles por menú sin darles permiso de administrador completo. Puedes descargarlo desde su <a href="https://www.drupal.org/project/menu_admin_per_menu" target="_blank">Página Oficial de Drupal</a></p> <h3>Menu Item Role Access</h3> <p> Este módulo agrega un campo de rol opcional a los elementos del menú que enumera todos los roles disponibles. Un usuario que tenga acceso para editar elementos del menú podrá seleccionar los roles que tienen acceso para ver este elemento del menú. Puedes descargarlo desde su <a href="https://www.drupal.org/project/menu_item_role_access" target="_blank">Página Oficial de Drupal</a>.       </p> <h3>Simple Menu Icons</h3> <p> Este módulo compatible con la versión 8/9, te permitirá añadir iconos en lugar de simples enlaces en tus menus de drupal, desde la misma interfaz de usuario. Puedes descargarlo desde su <a href="https://www.drupal.org/project/simple_menu_icons" target="_blank">Página Oficial de Drupal</a></p> </div> </div> </div> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/luis-alberto-mejia" typeof="schema:Person" property="schema:name" datatype="">webmaster</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sáb, 15/04/2023 - 14:15</span> Sat, 15 Apr 2023 12:15:47 +0000 webmaster 423 at https://drupaladicto.com Landing Page Drupal | Plantillas Twig (Parte 2) - Bootstrap y Flexbox https://drupaladicto.com/curso/landing-page/landing-page-drupal-plantillas-twig-parte-2-bootstrap-y-flexbox <span class="field field--name-title field--type-string field--label-hidden">Landing Page Drupal | Plantillas Twig (Parte 2) - Bootstrap y Flexbox</span> <div class="field field--name-field-contenidos-cap-gratis field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <style>#video-only-933 .play-btn:hover::after { border-left: 15px solid #1fd7d9; transform: scale(20); border-left: 15px solid #fff; } #video-only-933 .play-btn::before { border: 5px solid #1fd7d9; } #video-only-933 .play-btn { background: radial-gradient(#1fd7d9 50%, rgba(66, 109, 202, 0.4) 52%); }</style> <div class="paragraph paragraph--type--video-only paragraph--view-mode--default" id="vol-933"> <section id="video-only-933" class="about area-padding video-block-wrapper"> <div class="col video-box"> <div class="portada"> <img src="/sites/default/files/styles/diapositiva_1200x650/public/2023-07/portada-gratuito-grande_2.jpg?itok=8dBQYXT7" class="img-fluid" alt=""> <div class="field field--name-vo-youtube-video field--type-entity-reference field--label-visually_hidden"> <div class="field__label visually-hidden">Video de Youtube</div> <div class="field__item"><article class="media media--type-remote-video media--view-mode-diapositiva-1200x650"> <div class="field field--name-field-media-oembed-video field--type-string field--label-visually_hidden"> <div class="field__label visually-hidden">URL de Video remoto</div> <div class="field__item"><div class="modal micromodal-slide" id="modal-media-654-0-field-media-oembed-video" aria-hidden="true"> <div class="modal__overlay" tabindex="-1" data-micromodal-close> <div class="modal__container" role="dialog" aria-modal="true" aria-labelledby="modal-media-654-0-field-media-oembed-video-content"> <a class="modal__btn" data-micromodal-close aria-label="Close this dialog window">X</a> <main class="modal__content" id="modal-media-654-0-field-media-oembed-video-content"> <div class="videoWrapper"><iframe src="/media/oembed?url=https%3A//youtu.be/c187-f5rQ-4&amp;max_width=0&amp;max_height=0&amp;hash=doq12JlM6HHnmH_6CsxsS_0NjVP7VrMwa15rURlRHIc" frameborder="0" allowtransparency="" class="media-oembed-content" title="Time Value of Money"></iframe></div> </main> </div> </div> </div> <div><a class="myButton" data-micromodal-trigger="modal-media-654-0-field-media-oembed-video"><span class="btn play-btn">.</span></a></div> </div> </div> </article> </div> </div> </div> </div> </section> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p>     Debido a que estamos trabajando con Bootstrap 5, para la creación de nuestra Landing Page personalizable en Drupal 8/9/10, hoy utilizaremos las clases de Bootstrap 5 compatibles con Flexbox; de esta manera, nuestro diseño quedará adaptado a múltiples dispositivos (Responsive), sin la necesidad de manipular nuestra hoja de estilos.</p> <p>     Si analizamos el comportamiento que esperamos obtener para la visualización de nuestra Landing Page, al acceder desde un ordenador, veremos que en la parte central, los elementos deberían presentarse dentro de tres columnas, las dos primeras para la imagen e información del producto, y la última, a todo el ancho del contenido, donde se muestra el formulario para la realización de los pedidos.</p> <p> </p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/landingPageVistaPC_Mesa%20de%20trabajo%201.svg" alt="Landing Page Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Landing Page Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p>     Al acceder a la Página Oficial de Bootstrap, en el apartado de Utilidades, dedicado a FLEX <a href="https://getbootstrap.com/docs/5.0/utilities/flex/">HAZ CLIC AQUI</a>, podremos explorar el listado de clases y sus comportamientos, para facilitarnos la aplicación de casi todas las opciones necesarias en nuestros diseños resposivos, sin demasiados cambios en las hojas de estilos css.</p> <p>     Si ya conocías Bootstrap, sabrás que, añadiendo una o varias clases dentro de cualquier contenedor o etiqueta html, obtendrás el mismo resultado que si aplicaras varias líneas de código css; esto implica un ahorro considerable dentro de las tareas de diseño, además de ofrecer una amplia documentación y varios ejemplos, que podrás encontrar, tanto dentro de la página oficial, como el muchas otras disponibles en internet.</p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/bootstrapFlexBox.svg" alt="Landing Page Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Landing Page Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p>     Ahora que ya sabemos cómo documentarnos, sobre el uso de las clases de Bootstrap y Flexbox, volvamos a explorar el archivo <strong>node--landingpage--full.html.twig</strong>, responsable de mostrar nuestra plantilla.</p> <p>     Recuerda, que hemos creado esta plantilla, gracias a que activamos el modo Debug o Depurador de Drupal, explicado en capítulos anteriores del curso.</p> <p>     Si prestamos atención en el código que forma, la parte superior de la plantilla, donde hemos añadido ya la imagen de cabera y el texto que aparece justo debajo de ella, encontraremos algunas de las clases de Bootstrap y Flexbox que acabamos de comentar.</p> <pre> {% if content.field_cabecera_landing|render is not empty %} &lt;div class="d-flex container-fluid" lc-helper="background" style="height:50vh;background:url({{ file_url(content.field_cabecera_landing[0]['#media'].field_media_image.entity.uri.value) }}) center / cover no-repeat;"&gt; {% endif %} &lt;/div&gt; &lt;div class="container p-5 bg-light" style="margin-top:-100px"&gt; &lt;div class="row"&gt; &lt;div class="col-md-4 text-center align-self-center"&gt; &lt;div class="lc-block border-end border-2 "&gt; &lt;div editable="rich"&gt; &lt;p class="display-4 text-secondary"&gt;WHY?&lt;/p&gt; &lt;/div&gt; &lt;/div&gt;&lt;!-- /lc-block --&gt; &lt;/div&gt;&lt;!-- /col --&gt; &lt;div class="col-md-8"&gt; &lt;div class="lc-block "&gt; &lt;div editable="rich"&gt; &lt;p class="display-4"&gt;{{ label.0 }}&lt;/p&gt; &lt;/div&gt; &lt;/div&gt;&lt;!-- /lc-block --&gt; &lt;/div&gt;&lt;!-- /col --&gt; &lt;/div&gt;</pre> <h2>   Explicación</h2> <p>     <strong>d-flex: </strong>Es la primera de las clases que deberíamos añadir en nuestra etiqueta HTML, para poder emplear la combinación de Flex y Boostrap; añadirla es el equivalente a escribir la propiedad <strong><em>display: flex</em></strong>, dentro de nuestra hoja de estilos.</p> <p>     <strong>container / container-fluid:</strong> tiene la misma funcionalidad que ya conoces de Boostrap, y que en este caso, añadirá la propiedad padding, configurada por defecto para Drupal, cuando utilizamos el tema basado en Boostrap.</p> <p>     <strong>p-5</strong>: Esta clase es la encargada de modificar la propiedad padding, tienes varios valores disponibles, además de la opción de utilizarla, especificando si quieres aplicar un <em>padding-top</em> <strong>pt-5</strong>, o <em>padding buttom</em> <strong>pb-5</strong>, por ejemplo.</p> <p>     <strong>align-self-center</strong>: esta clase, como su nombre lo indica, se encargará de centrar los elementos, dentro del contenedor.</p> <p>     <strong>col-md-4</strong>: esta es una de las clases que ya deberías conocer, por versiones anteriores de bootstrap, encargada de adaptar el tamaño de la columna, en los dispositivos de tamaño medio (Tablets, Ipads, etc.)</p> <p>     Si quieres profundizar más sobre las clases disponibles y su implementación, te recomiendo visitar la página oficial de Boostrap. <a href="https://getbootstrap.com/docs/5.0/utilities/flex/">HAZ CLIC AQUI</a>.</p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><h2>   Añadiendo cambios en la plantilla</h2> <p>     Es el momento de continuar con el resto de cambios necesarios, para seguir ajustando nuestra Landing Page, hasta conseguir que se parezca a nuestra propuesta de diseño.</p> <p>     En esta ocasión, vamos a sustituir en nuestra plantilla, todo el espacio que ocupa el texto central, para dejarle paso, a dos nuevas filas, donde añadiremos los campos correspondientes, encargados de mostrar las imágenes e información de los productos, además del formulario para los peidos.</p> <p>     He añadido un para de clases adicionales, sólo para que sea más fácil de entender, donde colocaremos cada uno de los elementos.</p> <p>     El resultado final, con el nuevo cambio, debería ser parecido al siguiente código:</p> <pre> &lt;div class="row contenido-central"&gt; &lt;div class="col-md-12"&gt; &lt;div class="row info-productos"&gt; LOS PRODUCTOS AQUI &lt;/div&gt; &lt;div class="row formulario-pedidos"&gt; EL FORMULARIO AQUI &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;</pre> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/Central.svg" alt="Landing Page Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Landing Page Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p>     Ahora ya tenemos claro, cuál debería ser la estructrura para conseguir el resultado esperado en mi Landing Page, el problema con el que nos encontramos, es que nuestra plantilla sólo tienes dos campos, con los que podamos jugar, <strong>field_cabecera_landing</strong> y <strong>field_contenidos_landing</strong>, ya que hemos optado, por el uso de paragraphs, para facilitar la personalización de sus contenidos.</p> <p>     Si volvemos a la parte del código donde imprimimos nuestra imagen, podremos concluir, que lo que necesitamos para obtener el resto de valores de nuestra página, es añadir la variable que imprime el campo global de los paragraphs y a continuación, añadir las plantillas correspondientes, para cada uno de los elementos contenidos dentro de éste.</p> <p>     Lo primero que deberíamos hacer será remover la parte del código donde estarán las imágenes, información y el formulario, para añadir dentro sólo el campo global de los paragraphs.</p> <p>     Por ahora, nuestra plantilla principal, <strong>node--landingpage--full.html.twig</strong>, debería quedar con el suguiente resultado:</p> <pre> &lt;div class="row contenido-central"&gt; &lt;div class="col-md-12 p-5"&gt; {{ content.field_contenidos_landing }} &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;</pre> <p>     Una vez añadido el código anterior, si visitamos nuestra Landing Page, deberíamos ver en pantalla, algo parecido a la siguiente imagen:</p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/centroNueva.svg" alt="Landing Page Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Landing Page Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><p>     Si todo ha ido correctamente, y ves en pantalla un resultado parecido al anterior, es el momento de inspeccionar los elementos y crear las plantillas correspondientes a cada paragraphs, para cotinuar con el resto de modificaciones.</p> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-imagen paragraph--view-mode--default"> <div class="field field--name-field-imagen-contenido field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-full-width-column"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"> <img width="850" src="/sites/default/files/imagenes/laInspeccion.svg" alt="Landing Page Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Landing Page Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> </article> </div> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><h3>   Plantilla principal para la landing page</h3> <p>     El código final de la plantilla general para la landing (<strong>node--landingpage--full.html.twig</strong>), que incluye además, el campo de selección para el color, gracias al módulo <a href="/curso/imagenes-y-color-por-interfaz-con-paragraphs" target="_blank">Color Field</a>, será :</p> <pre> {{ attach_library('bootstrap_barrio/node') }} {% set classes = [ 'node', 'node--type-' ~ node.bundle|clean_class, node.isPromoted() ? 'node--promoted', node.isSticky() ? 'node--sticky', not node.isPublished() ? 'node--unpublished', view_mode ? 'node--view-mode-' ~ view_mode|clean_class, 'clearfix', ] %} &lt;article{{ attributes.addClass(classes) }}&gt; &lt;header&gt; {{ title_prefix }} {% if label and not page %} &lt;h2{{ title_attributes.addClass('node__title') }}&gt; &lt;a href="{{ url }}" rel="bookmark"&gt;{{ label }}&lt;/a&gt; &lt;/h2&gt; {% endif %} {{ title_suffix }} {% if display_submitted %} &lt;div class="node__meta"&gt; {{ author_picture }} {% block submitted %} &lt;em{{ author_attributes }}&gt; {% trans %}Submitted by {{ author_name }} on {{ date }}{% endtrans %} &lt;/em&gt; {% endblock %} {{ metadata }} &lt;/div&gt; {% endif %} &lt;/header&gt; &lt;div{{ content_attributes.addClass('node__content', 'clearfix') }}&gt; {% if content.field_cabecera_landing|render is not empty %} &lt;div class="d-flex container-fluid" lc-helper="background" style="height:50vh;background:url({{ file_url(content.field_cabecera_landing[0]['#media'].field_media_image.entity.uri.value) }}) center / cover no-repeat;"&gt; {% endif %} &lt;/div&gt; &lt;div class="container p-lg-5" style="margin-top:-100px; background-color: {{ content.field_color_fondo_landing.0 }}" &gt; &lt;div class="row"&gt; &lt;div class="col-md-4 text-center align-self-center"&gt; &lt;div class="lc-block border-end border-2 "&gt; &lt;div editable="rich"&gt; &lt;p class="display-4 text-secondary"&gt;WHY?&lt;/p&gt; &lt;/div&gt; &lt;/div&gt;&lt;!-- /lc-block --&gt; &lt;/div&gt;&lt;!-- /col --&gt; &lt;div class="col-md-8"&gt; &lt;div class="lc-block "&gt; &lt;div editable="rich"&gt; &lt;p class="display-4"&gt;{{ label.0 }}&lt;/p&gt; &lt;/div&gt; &lt;/div&gt;&lt;!-- /lc-block --&gt; &lt;/div&gt;&lt;!-- /col --&gt; &lt;/div&gt; &lt;div class="row contenido-central"&gt; &lt;div class="col-md-12 p-md-5"&gt; {{ content.field_contenidos_landing }} &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/article&gt; </pre> <h3>   Plantilla para la imagen y el texto del producto</h3> <p>     El código correspondiente a la parte superior, donde mostramos la imagen del producto, acompañada de un título y un párrafo, (<strong>paragraph--bloque-imagen-y-textos.html.twig</strong>) será:</p> <pre> {% set classes = [ 'paragraph', 'd-lg-flex', 'paragraph--type--' ~ paragraph.bundle|clean_class, view_mode ? 'paragraph--view-mode--' ~ view_mode|clean_class, not paragraph.isPublished() ? 'paragraph--unpublished' ] %} &lt;style&gt; @media (min-width: 992px) { .field--name-field-imagen-producto { width: 550px; } } &lt;/style&gt; {% block paragraph %} &lt;div{{ attributes.addClass(classes) }}&gt; {% block content %} &lt;div class="row no-gutters d-flex"&gt; &lt;div class="imagen-producto d-sm-column"&gt; {{ content.field_imagen_producto }} &lt;/div&gt; &lt;/div&gt; &lt;div class="row no-gutters d-flex"&gt; &lt;div class="texto-producto d-sm-column"&gt; &lt;h2&gt;{{ content.field_texto_superior.0 }}&lt;/h2&gt; &lt;p&gt;{{ content.field_textos_producto.0 }}&lt;/p&gt; &lt;/div&gt; &lt;/div&gt; {% endblock %} &lt;/div&gt; {% endblock paragraph %} </pre> <h3>   Plantilla para el Bloque formulario</h3> <p>     Para la plantilla, encargada de modificar el aspecto gráfico correspondiente al formulario, que además incluye la etiqueta html <strong>&lt;hr /&gt;</strong>, con algunos estilos en línea, (<strong>paragraph--bloque-formulario.html.twig</strong>), será:</p> <pre> {% set classes = [ 'paragraph', 'd-flex flex-column', 'paragraph--type--' ~ paragraph.bundle|clean_class, view_mode ? 'paragraph--view-mode--' ~ view_mode|clean_class, not paragraph.isPublished() ? 'paragraph--unpublished' ] %} {% block paragraph %} &lt;div{{ attributes.addClass(classes) }}&gt; {% block content %} &lt;hr style="height: 5px; background-color: #333333;margin-top: 40px; margin-bottom: 40px"/&gt; &lt;div class="titular text-align-center flex-row"&gt;&lt;h2&gt;{{ content.field_titulo_formulario }}&lt;/h2&gt;&lt;/div&gt; &lt;div class="formulario"&gt; {{ content.field_formulario_bloque }} &lt;/div&gt; {% endblock %} &lt;/div&gt; {% endblock paragraph %} </pre> <p> </p> </div> </div> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/luis-alberto-mejia" typeof="schema:Person" property="schema:name" datatype="">webmaster</span></span> <span class="field field--name-created field--type-created field--label-hidden">Vie, 24/03/2023 - 09:59</span> Fri, 24 Mar 2023 08:59:37 +0000 webmaster 413 at https://drupaladicto.com Gestionar plantillas con Layout Builder https://drupaladicto.com/curso/site-building/gestionar-plantillas-con-layout-builder <span class="field field--name-title field--type-string field--label-hidden">Gestionar plantillas con Layout Builder</span> <div class="field field--name-field-contenidos-cap-gratis field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <style>#video-only-920 .play-btn:hover::after { border-left: 15px solid #1fd7d9; transform: scale(20); border-left: 15px solid #fff; } #video-only-920 .play-btn::before { border: 5px solid #1fd7d9; } #video-only-920 .play-btn { background: radial-gradient(#1fd7d9 50%, rgba(66, 109, 202, 0.4) 52%); }</style> <div class="paragraph paragraph--type--video-only paragraph--view-mode--default" id="vol-920"> <section id="video-only-920" class="about area-padding video-block-wrapper"> <div class="col video-box"> <div class="portada"> <img src="/sites/default/files/styles/diapositiva_1200x650/public/2023-07/portada-gratuito-grande_2.jpg?itok=8dBQYXT7" class="img-fluid" alt=""> <div class="field field--name-vo-youtube-video field--type-entity-reference field--label-visually_hidden"> <div class="field__label visually-hidden">Video de Youtube</div> <div class="field__item"><article class="media media--type-remote-video media--view-mode-diapositiva-1200x650"> <div class="field field--name-field-media-oembed-video field--type-string field--label-visually_hidden"> <div class="field__label visually-hidden">URL de Video remoto</div> <div class="field__item"><div class="modal micromodal-slide" id="modal-media-640-0-field-media-oembed-video" aria-hidden="true"> <div class="modal__overlay" tabindex="-1" data-micromodal-close> <div class="modal__container" role="dialog" aria-modal="true" aria-labelledby="modal-media-640-0-field-media-oembed-video-content"> <a class="modal__btn" data-micromodal-close aria-label="Close this dialog window">X</a> <main class="modal__content" id="modal-media-640-0-field-media-oembed-video-content"> <div class="videoWrapper"><iframe src="/media/oembed?url=https%3A//youtu.be/lPODMPFYgFc&amp;max_width=0&amp;max_height=0&amp;hash=ZBLPlhWzNzvVkJ2NZAxh9gm1_fKC8pSBUAiQgqdg9WE" frameborder="0" allowtransparency="" class="media-oembed-content" title="Time Value of Money"></iframe></div> </main> </div> </div> </div> <div><a class="myButton" data-micromodal-trigger="modal-media-640-0-field-media-oembed-video"><span class="btn play-btn">.</span></a></div> </div> </div> </article> </div> </div> </div> </div> </section> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--text-only paragraph--view-mode--default" id="txonly-1161" style="background-color: ;border: solid px;border-color: #096ba0;border-radius: 5px;padding: 10px;"> <div class="clearfix text-formatted field field--name-to-text field--type-text-long field--label-visually_hidden"> <div class="field__label visually-hidden">Texto</div> <div class="field__item"><h2><strong>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... <a href="https://youtu.be/lPODMPFYgFc" target="_blank">HAZ CLIC AQUI</a></strong></h2> <p>      Hoy en día, como profesionales dedicados al desarrollo de páginas web, uno de los mayores retos con los que deberemos enfrentarnos, en cada nuevo proyecto, es el asunto de nuestros puntos fuertes.</p> <p>     Esto significa, que para las empresas o clientes, en general, ya no nos vale el argumento de que "Soy solo programador" o "Yo solo sé maquetar"; y con esto no pretendo justificar en lo absoluto el famoso perfil "Full Stack", que se han sacado de la manga algunos, para pagar menos y exigir más a sus empleados, sino que, aunque seamos programadores o maquetadores, el conocimiento, al menos básico, de otras herramientas relacionadas, nos permitirán ahorrar tiempo y no depender tanto de otros perfiles, para implementar algunos cambios durante el proceso de desarrollo.</p> <p>     Una de las razones por las que tanto me gustó Drupal desde el principio, es su versatilidad, lo cual nos permite, sin importar nuestro perfil profesional, con algo de ayuda basada en documentación relacionada, crear proyectos web, tanto a nivel de backend como de frontend. </p> <p>     Por eso, en esta ocasión, hablaremos sobre la implementación del módulo "Layout Builder", integrado en Drupal a partir de la versión 8. Con este módulo podremos crear, personalizar o modificar plantillas, para la presentación de nuestros contenidos, utilizando sólo la interfaz de usuario, sin la necesidad de manipular o conocer a fondo el uso de las plantillas Twig.</p> <h2>Requisitos:</h2> <p>     - Tener una web Drupal en funcionamiento, con varios contenidos preferiblemente con taxonomías, imágenes y textos, para que puedas comprobar los cambios una vez implementados.</p> <p>     Si no tienes contenidos, o prefieres generar contenido de prueba, para realizar tus configuraciones, puedes utilizar el módulo <strong>Devel Generate</strong>, integrado en el módulo <strong><a href="https://www.drupal.org/project/devel" target="_blank">Devel</a></strong>, con el cual podrás generar todo el contenido que necesites basándote en los tipos de contenido que prefieras, haciendo únicamente un par de clics.</p> <p>     Aquí tienes la explicación de Cómo generar contenidos de prueba con el módulo Devel <a href="https://www.drupaladicto.es/curso/como-generar-contenidos-de-prueba-con-el-modulo-devel" target="_blank">Haz clic aquí</a></p> <p>     - Activar los módulos Media y Media Library, que también se incluyen el en núcleo de Drupal, a partir de la versión 8 y que nos permitirán trabajar con características adicionales relacionados con multimedia (imágenes, videos, audio).</p> <p>     - <a href="https://www.drupal.org/project/layout_builder_component_attributes">Layout Builder Component Attributes</a>: te permitirá añadir clases a tus secciones y bloques dentro de Layout Builder</p> <p>    - <a href="https://www.drupal.org/project/asset_injector" target="_blank">Asset Injector (Opcional)</a>: Te permitirá añadir CSS o JS directamente en base de datos a través de la interfaz. Es muy útil para realizar pruebas sobre aplicación de estilos, antes de añadirlos directamente en los archivos CSS o pasárselos al maquetador que se encargará de ejecutarlos.</p> <h2>Cómo gestionar plantillas con Layout Builder en Drupal 9</h2> <h3>     Paso 1 Activación de módulos Layout Builder, Media y Media Library:</h3> <p>          Con la activación y combinación de estos módulos, incluidos en el núcleo de Drupal, a partir de la versión 8, podremos comenzar a configurar nuestras plantillas, utilizando la interfaz de usuario, además de brindarnos la oportunidad de reutilizar imágenes subidas previamente o añadir otros elementos como videos o archivos de audio, gracias a la los módulos Media y Media Library.</p> <h3>     Paso 2 Descarga y activación de módulo Layout Builder Component Attributes:</h3> <p>          Debido a que el Layout Builder funciona íntegramente con la base de datos de Drupal, no contamos con la posibilidad de tener archivos físicos con los que trabajar, por esta razón, para añadir los estilos a nuestras plantillas y sus elementos relacionados, necesitaremos necesitaremos de éste, creado para ofrecer esta posibilidad. </p> <h3>    Paso 3 Activación del Layout Builder dentro de nuestros contenidos:</h3> <p>         Después de tener activados todos los módulos necesarios, relacionados con nuestras plantillas, es el momento de activarlo dentro de nuestro contenido, para comenzar a trabajar.</p> <p>          Para ello, tendremos que dirigirnos a la url "/admin/structure/types/manage/article/display", porque en nuestro ejemplo, hemos optado por utilizar los artículos que vienen por defecto, en cualquier instalación de Drupal.</p> <p></p> <p>      Después, podremos elegir cuál o cuáles de los Modos de Vista, relacionados con nuestro contenido serán los seleccionados para trabajar con esta opción. Es posible que, en algunos casos, con modificar el Modo Default, sea suficiente para lograr nuestros objetivos.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 85.13%;" data-ratio="85.13" data-b-token="b-21cb0729a35" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Layout Builder Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Layout Builder Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630c69cd3f2fd.jpg?itok=NWdObaFb" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="538" height="458" typeof="foaf:Image" /></div></div> <p>     Tan pronto como hayamos activado el módulo para nuestro Modo de Vista, si volvemos a nuestro contenido, en el modo de vista afectado, podremos ver la pestaña "Diseño" o "Layout", que nos permitirá acceder a las opciones nuevas de edición.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 35.37%;" data-ratio="35.37" data-b-token="b-c1227b0ef9a" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Layout Builder Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Layout Builder Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630c69ebb8cd0.jpg?itok=NcfS66pv" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="393" height="139" typeof="foaf:Image" /></div></div> <h3>     Paso 4 Comenzar con la edición de la plantilla:</h3> <p>          A partir de este momento, lo siguiente será añadir "Secciones",  haciendo clic sobre "Section", y se nos abrirá una ventana en la parte derecha de la pantalla, con las diferentes secciones o Columnas, donde podremos colocar nuestros elementos. </p> <p>         Estos elementos pueden ser Bloques, Vistas, Campos, etc.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 57.54%;" data-ratio="57.54" data-b-token="b-edd22199515" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Layout Builder Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Layout Builder Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630c6c870e7ea.png?itok=x6TI0NNS" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="504" height="290" typeof="foaf:Image" /></div></div> <h3>     Paso 5 aplicar estilos temporales a la plantilla:</h3> <p>          Debido a que todos los cambios relacionados con el Layout Builder se guardan en base de datos y no en archivos físicos, si queremos añadir estilos css en nuestras plantillas, tendremos que descargar y activar el módulo Layout Builder Component Attributs <a href="https://www.drupal.org/project/layout_builder_component_attributes">Haz clic aquí</a> y una vez configurado para que nos muestre las opciones que deseamos, entonces, podremos ver una opción más disponible al hacer clic en editar la sección.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 93.31%;" data-ratio="93.31" data-b-token="b-599e65564d7" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Layout Builder Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Layout Builder Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630c6ca7489e3.jpg?itok=DKEIX1ul" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="538" height="502" typeof="foaf:Image" /></div></div> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 93.31%;" data-ratio="93.31" data-b-token="b-01524f7eea1" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Layout Builder Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Layout Builder Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630c6cbf92313.jpg?itok=DTTLxI6i" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="538" height="502" typeof="foaf:Image" /></div></div> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 39.6%;" data-ratio="39.6" data-b-token="b-801d6122cb8" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Layout Builder Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Layout Builder Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630c6cd3613fe.jpg?itok=S7QYDnzW" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="553" height="219" typeof="foaf:Image" /></div></div> <p>          Aunque esta opción nos permite añadir estilos relacionados con nuestra base de datos, en realidad lo recomendable es que se utilicen como recurso temporal, ya que todos los estilos de cualquier proyecto web deberían guardarse directamente en el archivo css.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 93.31%;" data-ratio="93.31" data-b-token="b-0a1cc575cd6" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="Layout Builder Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="Layout Builder Drupal | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/inline-images/file-630c6ceedc8c7.jpg?itok=D6Rz4IXz" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="538" height="502" typeof="foaf:Image" /></div></div> </div> </div> </div> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/luis-alberto-mejia" typeof="schema:Person" property="schema:name" datatype="">webmaster</span></span> <span class="field field--name-created field--type-created field--label-hidden">Dom, 19/03/2023 - 18:18</span> Sun, 19 Mar 2023 17:18:06 +0000 webmaster 412 at https://drupaladicto.com Básicos Sitebuider | Editor de contenidos o usuario por interfaz https://drupaladicto.com/curso/basicos-sitebuider-editor-de-contenidos-o-usuario-por-interfaz-resumen <span class="field field--name-title field--type-string field--label-hidden">Básicos Sitebuider | Editor de contenidos o usuario por interfaz</span> <div class="field field--name-field-portada-ce field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-default"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"><svg xmlns="http://www.w3.org/2000/svg" id="a" viewBox="0 0 650 650"> <rect y="0" width="650" height="650" style="fill:#054065; stroke:#1d1d1b; stroke-miterlimit:10;"></rect> <text transform="translate(183.61 309.27)" style="fill:#fff; font-family:Montserrat-Light, Montserrat; font-size:99.05px; font-weight:300;"> <tspan x="0" y="0" style="letter-spacing:-.02em;">C</tspan> <tspan x="69.04" y="0">u</tspan> <tspan x="135.3" y="0" style="letter-spacing:0em;">r</tspan> <tspan x="174.03" y="0">so</tspan> <tspan x="-58.14" y="90">G</tspan> <tspan x="18.42" y="90" style="letter-spacing:-.05em;">r</tspan> <tspan x="52.69" y="90">atui</tspan> <tspan x="241.97" y="90" style="letter-spacing:-.02em;">t</tspan> <tspan x="279.51" y="90">o</tspan> </text> </svg></div> </div> </article> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/luis-alberto-mejia" typeof="schema:Person" property="schema:name" datatype="">webmaster</span></span> <span class="field field--name-created field--type-created field--label-hidden">Dom, 19/03/2023 - 09:23</span> <div class="field field--name-field-tipo-ce field--type-list-string field--label-hidden field__item">Curso Gratuito</div> <div class="field field--name-field-suscribete-youtube field--type-link field--label-hidden field__item"><a href="https://www.youtube.com/drupaladicto">Suscríbete al canal</a></div> <div class="field field--name-field-categoria-ce field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="/categoria/sitebuilder" hreflang="es">sitebuilder</a></div> <div class="field__item"><a href="/categoria/interfaz" hreflang="es">interfaz</a></div> <div class="field__item"><a href="/categoria/editor" hreflang="es">editor</a></div> <div class="field__item"><a href="/categoria/gestor-de-contenidos" hreflang="es">gestor de contenidos</a></div> <div class="field__item"><a href="/categoria/paragraphs" hreflang="es">paragraphs</a></div> </div> <div class="field field--name-field-comenzar-curso field--type-string field--label-hidden field__item">/basicos-usuario-editor</div> Sun, 19 Mar 2023 08:23:39 +0000 webmaster 410 at https://drupaladicto.com Webform Drupal | Formularios, configuraciones y extras https://drupaladicto.com/curso/webform-drupal-formularios-configuraciones-y-extras-resumen <span class="field field--name-title field--type-string field--label-hidden">Webform Drupal | Formularios, configuraciones y extras</span> <div class="field field--name-field-portada-ce field--type-entity-reference field--label-hidden field__item"><article class="media media--type-imagen media--view-mode-default"> <div class="field field--name-field-media-image field--type-image field--label-visually_hidden"> <div class="field__label visually-hidden">Imagen</div> <div class="field__item"><svg xmlns="http://www.w3.org/2000/svg" id="a" viewBox="0 0 650 650"> <rect y="0" width="650" height="650" style="fill:#054065; stroke:#1d1d1b; stroke-miterlimit:10;"></rect> <text transform="translate(183.61 309.27)" style="fill:#fff; font-family:Montserrat-Light, Montserrat; font-size:99.05px; font-weight:300;"> <tspan x="0" y="0" style="letter-spacing:-.02em;">C</tspan> <tspan x="69.04" y="0">u</tspan> <tspan x="135.3" y="0" style="letter-spacing:0em;">r</tspan> <tspan x="174.03" y="0">so</tspan> <tspan x="-58.14" y="90">G</tspan> <tspan x="18.42" y="90" style="letter-spacing:-.05em;">r</tspan> <tspan x="52.69" y="90">atui</tspan> <tspan x="241.97" y="90" style="letter-spacing:-.02em;">t</tspan> <tspan x="279.51" y="90">o</tspan> </text> </svg></div> </div> </article> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/luis-alberto-mejia" typeof="schema:Person" property="schema:name" datatype="">webmaster</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sáb, 18/03/2023 - 18:35</span> <div class="field field--name-field-tipo-ce field--type-list-string field--label-hidden field__item">Curso Gratuito</div> <div class="field field--name-field-suscribete-youtube field--type-link field--label-hidden field__item"><a href="https://www.youtube.com/drupaladicto">Suscríbete al canal</a></div> <div class="field field--name-field-categoria-ce field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="/categoria/custom-form" hreflang="es">custom form</a></div> <div class="field__item"><a href="/categoria/webform" hreflang="es">webform</a></div> <div class="field__item"><a href="/categoria/formularios" hreflang="es">formularios</a></div> <div class="field__item"><a href="/categoria/registro" hreflang="es">registro</a></div> <div class="field__item"><a href="/categoria/form-api" hreflang="es">form api</a></div> <div class="field__item"><a href="/categoria/sitebuilder" hreflang="es">sitebuilder</a></div> </div> <div class="field field--name-field-comenzar-curso field--type-string field--label-hidden field__item">/webform-drupal-formularios-configuraciones-y-extras</div> Sat, 18 Mar 2023 17:35:57 +0000 webmaster 403 at https://drupaladicto.com Drupal 10| Instalación en Ubuntu 20.04 con Lando y WSL2 https://drupaladicto.com/curso/drupal-10/drupal-10-instalacion-en-ubuntu-2004-con-lando-y-wsl2 <span class="field field--name-title field--type-string field--label-hidden">Drupal 10| Instalación en Ubuntu 20.04 con Lando y WSL2</span> <div class="field field--name-field-contenidos-cap-gratis field--type-entity-reference-revisions field--label-hidden field__items"> <div class="field__item"> <style>#video-only-855 .play-btn:hover::after { border-left: 15px solid #1fd7d9; transform: scale(20); border-left: 15px solid #fff; } #video-only-855 .play-btn::before { border: 5px solid #1fd7d9; } #video-only-855 .play-btn { background: radial-gradient(#1fd7d9 50%, rgba(66, 109, 202, 0.4) 52%); }</style> <div class="paragraph paragraph--type--video-only paragraph--view-mode--default" id="vol-855"> <section id="video-only-855" class="about area-padding video-block-wrapper"> <div class="col video-box"> <div class="portada"> <img src="/sites/default/files/styles/diapositiva_1200x650/public/2023-07/portada-gratuito-grande_2.jpg?itok=8dBQYXT7" class="img-fluid" alt=""> <div class="field field--name-vo-youtube-video field--type-entity-reference field--label-visually_hidden"> <div class="field__label visually-hidden">Video de Youtube</div> <div class="field__item"><article class="media media--type-remote-video media--view-mode-diapositiva-1200x650"> <div class="field field--name-field-media-oembed-video field--type-string field--label-visually_hidden"> <div class="field__label visually-hidden">URL de Video remoto</div> <div class="field__item"><div class="modal micromodal-slide" id="modal-media-575-0-field-media-oembed-video" aria-hidden="true"> <div class="modal__overlay" tabindex="-1" data-micromodal-close> <div class="modal__container" role="dialog" aria-modal="true" aria-labelledby="modal-media-575-0-field-media-oembed-video-content"> <a class="modal__btn" data-micromodal-close aria-label="Close this dialog window">X</a> <main class="modal__content" id="modal-media-575-0-field-media-oembed-video-content"> <div class="videoWrapper"><iframe src="/media/oembed?url=https%3A//youtu.be/BtGfLHLnGP0&amp;max_width=0&amp;max_height=0&amp;hash=42wonkEQ8lTKmLPuO7cv6YseiWi49Y9ZzSLlFLYN434" frameborder="0" allowtransparency="" class="media-oembed-content" title="Time Value of Money"></iframe></div> </main> </div> </div> </div> <div><a class="myButton" data-micromodal-trigger="modal-media-575-0-field-media-oembed-video"><span class="btn play-btn">.</span></a></div> </div> </div> </article> </div> </div> </div> </div> </section> </div> </div> <div class="field__item"> <div class="paragraph paragraph--type--bloque-parrafo paragraph--view-mode--default"> <div class="clearfix text-formatted field field--name-field-textos-curso field--type-text-long field--label-hidden field__item"><h2><strong>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... <a href="https://youtu.be/BtGfLHLnGP0" target="_blank">HAZ CLIC AQUI</a></strong></h2> <p>     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.</p> <p>     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, <strong>Bartik</strong>, por el nuevo tema <strong>Olivero,</strong> 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.</p> <p>     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 <a href="https://docs.lando.dev/" target="_blank">Haz clic aquí</a></p> <p>     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.</p> <p> </p> <h3>Prerrequisitos:</h3> <p>- Tener instalado en tu servidor local Lando. Si todavía no lo haz hecho y quieres aprender cómo hacerlo, <a href="/actualidad/instalar-drupal-9-en-ubuntu-2004-con-lando-y-wsl2-en-windows-11" target="_blank">Haz clic aquí</a></p> <p> </p> <h2>Cómo instalar Drupal 10 en local utilizando Lando<br />  </h2> <h3>Paso 1 - Crear archivo de configuración:</h3> <p>     Para comenzar, iniciaremos sesión con nuestro usuario <strong>NOROOT_USER</strong>, para evitar cargarnos nada por error y poder ejecutar comandos <strong><em>sudo</em></strong>. luego nos moveremos hasta la ubicación que pensamos para este proyecto y crearemos un archivo de configuración con el nombre <strong>TU_PROYECTO.sh</strong>, y dentro incluiremos el siguiente código, modificando las líneas que implican el nombre de nuestro proyecto:</p> <pre> <code># Initialize a drupal10 recipe using the latest Drupal 10 version mkdir drupal10-app \ &amp;&amp; cd drupal10-app \ &amp;&amp; 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</code></pre> <p> </p> <h3>Explicación:</h3> <p>     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. </p> <p>     Deberías sustituir, si lo prefieres, todas las líneas donde ves <em><strong>drupal10-app</strong></em>, 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 <strong>.lando.yml</strong>.</p> <pre> # Initialize a drupal10 recipe using the latest Drupal 10 version mkdir <strong>drupal10-app</strong> \ &amp;&amp; cd <strong>drupal10-app</strong> \ &amp;&amp; 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 <strong>drupal10-app</strong></pre> <p>     Las siguientes líneas son las encargadas de arrancar Lando, mediante el comando <em><strong>lando start</strong></em>, esto permitirá ejecutar los comando incluido en Lando, para el resto de configuraciones.</p> <pre> # Start it up lando start</pre> <p>     Una vez arrancado Lando, en las siguiente líneas, comenzará la instalación del proyecto Drupal 10, utilizando esta vez el comando de <em><strong>drush site:install</strong></em>, que permite instalar un proyecto Drupal desde cero, con todo lo necesario para comenzar a trabajar.</p> <pre> # Install drupal lando drush site:install --db-url=mysql://drupal10:drupal10@database/drupal10 -y</pre> <p>     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.</p> <pre> # List information about this app lando info</pre> <p>     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.</p> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 41.23%;" data-ratio="41.23" data-b-token="b-720ea97da7d" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="curso drupal 10 | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="curso drupal 10 | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/imagenes/file-62fbeb9a7f08b.png?itok=pd93hZm_" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="325" height="134" typeof="foaf:Image" /></div></div> <p></p><div class="media-wrapper media-wrapper--blazy media-wrapper--image"> <div style="padding-bottom: 41.23%;" data-ratio="41.23" data-b-token="b-0c39203cdca" class="media media--blazy media--image media--ratio media--ratio--fluid is-b-loading"><img alt="curso drupal 10 | www.drupaladicto.com - Consultor especializado en drupal y symfony" title="curso drupal 10 | www.drupaladicto.com - Consultor especializado en drupal y symfony" decoding="async" class="media__element b-lazy b-filter img-fluid" loading="lazy" data-src="/sites/default/files/styles/max_1300x1300/public/imagenes/file-62fbebbb17207.png?itok=6RjU_xJt" src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%201%201'%2F%3E" width="325" height="134" typeof="foaf:Image" /></div></div> <h3> Cómo puedo comenzar a administrar mi proyecto Drupal</h3> <p>     Al instalar Drupal, utilizando el comando <em><strong>drush site: install</strong></em>, é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, <a href="https://www.drush.org/latest/commands/site_install/">haz clic aquí</a>.</p> <pre> lando drush uli</pre> <p>     Recuerda que estamos trabajando con Lando, es por esta razón, que en lugar de utilizar drush directamente, pondremos siempre delante la palabra <strong>lando</strong>. 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.</p> <p>     Si quieres explorar más información sobre este tema, antes del siguiente artículo, puedes visitar la documentación oficial de <a href="https://docs.lando.dev/drupal/#drupal-9" target="_blank">Lando para Drupal</a></p> <p> </p> </div> </div> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/luis-alberto-mejia" typeof="schema:Person" property="schema:name" datatype="">webmaster</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sáb, 18/03/2023 - 17:29</span> Sat, 18 Mar 2023 16:29:35 +0000 webmaster 391 at https://drupaladicto.com