articulos

Copia de seguridad automatica en linux VPS

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

¿Cuanto vale para ti, tu sitio web?, te has preguntado que perderías si de pronto tu sitio web deja de funcionar, las causas puede ser muchas: Hiciste una actualización y ahora todo da error, borraste algún archivo importante, fuiste hackeado, etc.

Cualquiera de estas cosas pueden arruinar tu sitio web, pero ninguna importa si cuentas con un backup o copia de seguridad reciente, con la que puedas devolver la vida a tu sitio web.

Puedes delegar esta tarea tan importante a otra persona o a una empresa, pero puedes confiar 100% en esa persona, o que pasa si esa empresa cierra sin aviso. La buena noticia es que puedes automatizar todo este proceso de backup, así no perderás tu valioso tiempo y tampoco correrás riesgos.

Tu sitio web debe estar alojado en un servidor Linux al cual tengas acceso para ejecutar comandos (indispensable).

Estructura de archivos

Primero vamos a crear una estructura para poder tener organizadas todas las copias de seguridad, vamos a crear una carpeta llamada backups y dentro de ella dos carpetas más una (scripts) para guardar el código que usaremos para hacer las copias de seguridad y otra (files) para guardar las copias de seguridad. Deberás tener una estructura de archivos como la imagen que se muestra a continuación.

Estructura de archivos para nuestro script de backup automaticos

Programa para realizar los backups automáticos.

 

Ahora vamos a crear un script para hacer las copias de seguridad, primero crea un archivo nuevo en la ruta /var/backups/scripts/tusitio.sh, puedes cambiar el nombre tusitio por el que tú quieras. Luego en el archivo copias este código:

#!/bin/sh

sitioweb="codigonaranja.com"
bd="my_database_name"
usuario_bd="my_database_user"
clave_bd="my_database_password"
ruta_web="/var/www/yyy"

fecha=`date +%d%m%y%H%M`
mkdir -p /var/backups/files/$sitioweb

mysqldump -u $usuario_bd -p${clave_bd} $bd | gzip > /var/backups/files/$sitioweb/dbbackup_${bd}_${fecha}.bak.gz

tar -zcf /var/backups/files/$sitioweb/sitebackup_${sitioweb}_${fecha}.tar $ruta_web

Para que funcione tendrás que modificar los valores entre comillas de algunas estas variables:

  • sitioweb: Coloca el nombre de tu sitio web, puede ser el dominio si lo deseas.
  • db: Coloca el nombre de la base de datos que usa tu sitio web.
  • usuario_bd: Un usuario para poder conectarse a tu base de datos
  • clave_bd: La clave del usuario para conectarse a la base de datos.
  • ruta_web: La ruta completa hacia tu sitio web, no es la dirección web, sino la del sistema operativo

Ahora que guardes el archivo, tienes que hacerlo ejecutable, esto lo logras con este comando (recuerda cambiarlo según el nombre de archivo que elegiste):

chmod +x /var/backups/scripts/tusitio.sh

Ahora puedes probar si el script funciona con solo ejecutar este comando: (recuerda cambiar el nombre del archivo)

/var/backups/scripts/tusitio.sh

Para saber si funcionó, puedes revisar la carpeta /var/backups/files/ ahí debe haber un carpeta con los archivos de backup uno de la base de datos y otro de los archivos de tu sitio web.

Programar un Cron, para que tu sitio se actualice automáticamente.

Ya esta todo casi listo, solo debemos definir la frecuencia de las copias de seguridad, lo más común es hacerlo cada día, por lo general en la noche. Si no actualizas tu sitio muy seguido, entonces podrías hacer tus copias de seguridad cada semana o cada mes.

En Linux el Cron es una tarea programada, que ejecuta un comando cada cierto tiempo, para crear o editar un cron vamos a usar el comando crontab -e, si es la primera vez que lo ejecutas, es posible que te pida elegir que editor deseas usar, entonces debes elegir una opción presionando el numero del editor que prefieras.

Ahora verás que se abre un archivo de texto, aquí se agrega cada tarea en una línea, entonces vamos hasta la ultima línea y agregamos esto:

0 0 * * * /var/backups/scripts/tusitio.sh

Con las primeras 5 letras le decimos que se ejecute todos los días a las 12 de la noche, y lo siguiente es el script que creamos. Así tu sitio web se respalda automáticamente todos los días las 12 de la noche.

Como restaurar una copia de seguridad.

Ahora ya tienes copias de seguridad de tu sitio web, si algún día tienes una emergencia y necesitas restaurar tu sitio web, solo tienes que ejecutar estos comandos:

Con este comando vas a restaurar tu base de datos, pero antes tienes que cambiar algunas partes como: archivo_mysql por el nombre del archivo de tu copia, estos inicia con dbbackup_, también cambia usuario por el usuario de tu base de datos y clave por la clave de la base de datos y finalmente nombre_basedatos por el nombre de la base de datos

tar -xzOf archivo_mysql | mysql -u usuario -p clave nombre_basedatos

Ahora par restaurar los archivos de tu sitio web, ejecuta este comando y cambia archivo_sitio_web por la copia de tu sitio web, estos archivos inician con sitebackup_ y luego cambia ruta_sitio_web por la ruta del sitio web que vas a restaurar.

tar -xvf archivo_sitio_web -C ruta_sitio_web

Notas finales

Ahora solo debes de tener unas consideraciones:

  1. Si haces las copias de seguridad cada día, algún día te quedarás sin espacio, entonces tendrás que borrar algunas de las copias de seguridad que tengas.
  2. Si tienes más de un sitio web, puedes crear varios archivos de script, uno para cada sitio web.

Agregar al menú productos y categorías woocommerce

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

¿Cómo agrego productos de WooCommerce o categorías de productos a un menú personalizado?

 

Para agregar una página de producto o página de categoría de producto a un menú personalizado, complete los siguientes pasos en su Panel de administración de WordPress:

  1. Ir a Apariencia> Menús
  2. En la esquina superior derecha, haga clic en Opciones de pantalla y asegúrese de que las casillas "Productos" y "Categorías de productos" estén marcadas
  3. Si solo tiene un menú, ¡omita este paso! Si tiene más de un menú en su sitio web, use el menú desplegable junto a " Seleccione un menú para editar:" para comenzar a editar el menú correcto.
  4. Hay una lista de secciones expandibles en el lado izquierdo de esta página para cosas como páginas, publicaciones y categorías de blog. Si completó el paso 2 correctamente,  también verá Productos y categorías de productos en esta lista. Si hace clic en ellos, se expandirán para mostrarle una lista de productos (o categorías de productos, dependiendo de en qué haga clic).
  5. Seleccione las casillas de verificación junto a los productos o categorías que desea agregar al menú, luego presione el botón Agregar al menú. Esto los insertará en la Estructura del menú que se muestra en el lado derecho de la página.
  6. Arrastre y suelte los elementos recién agregados en el posicionamiento del menú de su elección. Si desea que sean opciones de submenú, puede arrastrarlas ligeramente hacia la derecha debajo de cualquier opción de menú existente. Aparecerán sangrados.
  7. Presione el botón azul Guardar menú

Ahora debería ver el producto o las categorías de productos en el menú de su sitio web.

Extraer imágenes de diferentes carpetas con jerarquía

Ratio: 5 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado

Muchas veces en nuestras webs tenemos diferentes carpetas con diferentes niveles por fechas , tipo etc y necesitamos obtener todas las imágenes. Pues bien en linux o mac no hay ningún problema y hasta antes de windows 10 era un problema por el pésimo buscador de windows . Ahora es más fácil, es un truco fácil que hará que ganemos mucho tiempo al no tener que estar entrando de carpeta en carpeta y seleccionando todas las fotos.

El proceso es el siguiente:

 

1.-Creamos una carpeta nueva en cualquier parte de nuestro pc (ejm.:tipografías)

2.-copiar todas las carpetas que se van a extraer dentro de esta carpeta nueva

3.-Ahora solo nos dirigimos a la parte superior derecha 
y en el buscador ponemos la extensión que queremos extraer por ejemplo: *.jpg , *.mp3, en nuestro caso cómo son archivos de tipografías será *.ttf

4.- Después veremos la siguiente pantalla con el tipo de archivo buscados.

5.- Les seleccionamos todos (ctrl + E) y con (crtl +C) les copiamos, abrimos la carpeta donde queramos que estén todos juntos y pulsamos (ctrl + V) para pegarlos en esa carpeta.

Divi Woocommerce barra lateral arriba en el móvil

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Colocar en divi u otra plantilla la barra lateral de woocommerce arriba en el movil 

Hoy hemos tenido que realizar un pequeño código para una empresa. Su necesidad era poner en plugin de filtros, en el escritorio deberia de aparecer a la izquierda y en el movil arriba pero con la opción de ocultar o mostrar al tener muchas categorías y molestar la navegación.

Aquí os contaré como.

 

¿Cómo poner en wordpress el sidebar a la izquierda o arriba en el movil?

Antes que la opción de woocomerce pondré como se hace para wordpress ya que por ejemplo la página principal es diferente a las de la plantilla woocommerce y siempre está bien tener un filtro ahi si es que tenemos una tienda online.

Si queremos poner en la izquierda o arriba la barra lateral según sea escritorio o móvil, debemos de ir a wp-content/themes/nuestro-theme/page.php

Ahí veremos que el sidebar aparece al final del código, siendo lo último que se renderiza , lo único que tenemos que hacer es poner arriba el sidebar. Si vemos que sale mal , simplemente un control z y probamos en otro lugar.

 

<?php
/**
 * The template for displaying all pages.
 *
 * This is the template that displays all pages by default.
 * Please note that this is the WordPress construct of pages
 * and that other 'pages' on your WordPress site will use a
 * different template.
 *
 * @package storefront
 */

get_header(); 

do_action'storefront_sidebar' ); /*ESto es lo que hemos puesto arriba*/
?>
    <div id="primary" class="content-area">
        <main id="main" class="site-main" role="main">
           
            <?php
            while ( have_posts() ) :
                the_post();

                do_action'storefront_page_before' );

                get_template_part'content''page' );

                /**
                 * Functions hooked in to storefront_page_after action
                 *
                 * @hooked storefront_display_comments - 10
                 */
                do_action'storefront_page_after' );

            endwhile// End of the loop.
            ?>

        </main><!-- #main -->
    </div><!-- #primary -->
 
<?php

get_footer();

Con esto ya tendríamos el sidebar de la plantilla a la izquierda o arriba en el móvil.

¿Cómo poner en un artículo de woocommerce la barra al principio?

El sidebar que estamos probando no es el típico de wordpress, sino que es el de woocomerce, por lo que aunque nos aparezca algo de sidebar, tenemos que poner el doaction de la tienda.

Para empezar vamos a sobreescribir la plantilla. 

¿Cómo sobreescribir la plantilla de woocommerce para un producto?

Para que funcione es muy sencillo solo tienes que seguir tres pasos:

  1. Ir a wp-content/plugins/woocommerce/single-product.php y descargarlo en tu ordenador
  2. Vamos a wp-content/themes/your-theme y creamos una carpeta llamada woocommerce // your-theme se refiere al nombre de tu plantilla. 
  3. Subimos ahi el archivo single-product.php que descarmos antes. 

¿Qué hacemos una vez sobreescrita la plantilla de woocommerce?

Una vez solucionado la sobreescritura modificamos el código añadiendo el doaction('storefront_sidebar') en el lugar que queramos. Observese que en el código de abajo aparece el woocomerce sidebar al final tambien, esto lo podemos quitar o si estamos poniendo nuestros widget ahí pues ese es el que tenemos que cambiar de sitio.

 

<?php
/**
 * The Template for displaying all single products
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/single-product.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @package     WooCommerce/Templates
 * @version     1.6.4
 */

if ( ! defined'ABSPATH' ) ) {
    exit// Exit if accessed directly
}

get_header'shop' );
do_action('storefront_sidebar' );
?>
</div>
    </div>
    <?php

        /**
         * woocommerce_before_main_content hook.
         *
         * @hooked woocommerce_output_content_wrapper - 10 (outputs opening divs for the content)
         * @hooked woocommerce_breadcrumb - 20
         */
        do_action'woocommerce_before_main_content' );
    ?>

 

        <?php while ( have_posts() ) : the_post(); ?>

            <?php wc_get_template_part'content''single-product' ); ?>

        <?php endwhile// end of the loop. ?>

    <?php
        /**
         * woocommerce_after_main_content hook.
         *
         * @hooked woocommerce_output_content_wrapper_end - 10 (outputs closing divs for the content)
         */
        do_action'woocommerce_after_main_content' );
    ?>

    <?php
        /**
         * woocommerce_sidebar hook.
         *
         * @hooked woocommerce_get_sidebar - 10
         */
        do_action'woocommerce_sidebar' );
    ?>

<?php get_footer'shop' );

/* Omit closing PHP tag at the end of PHP files to avoid "headers already sent" issues. */

 

¿Cómo poner en la categoría de productos woocommerce la barra al principio?

Lo primero que tenemos que hacer es lo mismo que hicimos con el producto individual, pero esta vez el archivo que sobreescribiremos será archive-product.php que es donde se encuentra las categorías. Si quires que en vez de todas las categorías sea una única podrias buscar en google taxonomia_categoría y sería ese el archivo que aparece en la plantilla inicial de woocommerce. 

 

Una vez que lo tenemos hacemos exactamente lo mismo y es modificar el código para poner donde queramos el doaction('storefront_sidebar')

 

<?php
/**
 * The Template for displaying product archives, including the main shop page which is a post type archive
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/archive-product.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @package WooCommerce/Templates
 * @version 3.4.0
 */
defined'ABSPATH' ) || exit;

 

/**
 * Hook: woocommerce_sidebar.
 *
 * @hooked woocommerce_get_sidebar - 10
 */
get_header'shop' );

do_action'storefront_sidebar' );
/**
 * Hook: woocommerce_before_main_content.
 *
 * @hooked woocommerce_output_content_wrapper - 10 (outputs opening divs for the content)
 * @hooked woocommerce_breadcrumb - 20
 * @hooked WC_Structured_Data::generate_website_data() - 30
 */
do_action'woocommerce_before_main_content' );

?>

<header class="woocommerce-products-header">
    <?php if ( apply_filters'woocommerce_show_page_title'true ) ) : ?>
        <h1 class="woocommerce-products-header__title page-title"><?php woocommerce_page_title(); ?></h1>
    <?php endif; ?>
    

    <?php
    /**
     * Hook: woocommerce_archive_description.
     *
     * @hooked woocommerce_taxonomy_archive_description - 10
     * @hooked woocommerce_product_archive_description - 10
     */
    do_action'woocommerce_archive_description' );
    ?>
</header>

<?php
if ( woocommerce_product_loop() ) {

    /**
     * Hook: woocommerce_before_shop_loop.
     *
     * @hooked woocommerce_output_all_notices - 10
     * @hooked woocommerce_result_count - 20
     * @hooked woocommerce_catalog_ordering - 30
     */
    do_action'woocommerce_before_shop_loop' );

    woocommerce_product_loop_start();

    if ( wc_get_loop_prop'total' ) ) {
        while ( have_posts() ) {
            the_post();

            /**
             * Hook: woocommerce_shop_loop.
             */
            do_action'woocommerce_shop_loop' );

            wc_get_template_part'content''product' );
        }
    }

    woocommerce_product_loop_end();

    /**
     * Hook: woocommerce_after_shop_loop.
     *
     * @hooked woocommerce_pagination - 10
     */
    do_action'woocommerce_after_shop_loop' );
else {
    /**
     * Hook: woocommerce_no_products_found.
     *
     * @hooked wc_no_products_found - 10
     */
    do_action'woocommerce_no_products_found' );
}

/**
 * Hook: woocommerce_after_main_content.
 *
 * @hooked woocommerce_output_content_wrapper_end - 10 (outputs closing divs for the content)
 */
do_action'woocommerce_after_main_content' );
get_footer'shop' );

 

Pues bien, con esto ya tendriamos en la parte superior del móvil la barra lateral y en la parte izquierda del escritorio. En mi caso tenía un problema y es que el cliente lo que tenía era un filtro de categorias de productos woocommerce el cual tenía muchímas categorías anidadas de forma jerárquica, por lo que decidimos poner únicamente en la versión móvil la opción de mostrar  u ocultar el filtro o lo que es lo mismo el sidebar. Además teníamos que tener en cuenta que cuando iniciase una categoría apareciese desplegado por defecto y también que al hacer estos cambios a veces se desencuadraban los productos de la tienda online. 

 

El siguiente código pertenece a lo que hicimos , es muy sencillito de ver ya que los cambios son mínimos en cuanto a html, javascript y css que aparecen en los casos anteriores. Decidí poner el css en cada plantilla sobreescrita ademas del javascript y no en todo el sitio por unos motivos que no vienen al caso. 

 El filtro que tiene la web para que os hagáis una idea es este:

chrome wye68bDbfP 

Realmente seria mucho más grande por lo que en el móvil, tener este filtro tan grande siempre desplegado al inicio de la página es una cosa inviable, por lo que pusimos un botón mostrar y ocultar que mediante javascript cogiese y pusiera un display:none para ocultar y un display:block para mostrar.

Quedaria visualmente algo asi, aunque el css es mejorable la funcionalidad es esquisita :)

chrome tWM9lMsEu8

 

Para que esto funcione tenemos que añadir :

  1. Los pasos de sobreescritura que dijimos al princpio para que podamos modificar el template y no se nos estropee cuando actualicemos. Recuerda que es lo que hacía que apareciese el sidebar de woocomerce a la izquierda en el escritorio o arriba en el móvil.
  2. Añadir una libreria Jquery si es que no la teníamos hasta ahora. 
  3. Añadir los botones de mostrar y ocultar con su id para poder controlarlo luego a través del Jquery
  4. Darle formato con el CSS

Tampoco me voy a poner pesado explicando, asi que os pongo directamente el código de archiv-product.php , recuerda que este seria para las categorías de woocommerce si quieres que también te aparezca como ya vimos en un producto en particular, recuerda que tienes que poner los mismos cambios (solo los jquery, css, y html), no me vayas ir copiando y pegando el código de categoría y en en articulo que la liamos jajaja.

<?php
/**
 * The Template for displaying product archives, including the main shop page which is a post type archive
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/archive-product.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @package WooCommerce/Templates
 * @version 3.4.0
 */
defined'ABSPATH' ) || exit;

 

/**
 * Hook: woocommerce_sidebar.
 *
 * @hooked woocommerce_get_sidebar - 10
 */
get_header'shop' );
?>
<div class="movil">
<div class="titulo_boton">
    Categorías productos
  <button id="show"> Mostrar</button>  /   <button id="hide"> Ocultar</button>
</div>
<?php
do_action'storefront_sidebar' );
?>
    </div>
    <?php
/**
 * Hook: woocommerce_before_main_content.
 *
 * @hooked woocommerce_output_content_wrapper - 10 (outputs opening divs for the content)
 * @hooked woocommerce_breadcrumb - 20
 * @hooked WC_Structured_Data::generate_website_data() - 30
 */
do_action'woocommerce_before_main_content' );

?>

<header class="woocommerce-products-header">
    <?php if ( apply_filters'woocommerce_show_page_title'true ) ) : ?>
        <h1 class="woocommerce-products-header__title page-title"><?php woocommerce_page_title(); ?></h1>
    <?php endif; ?>
    

    <?php
    /**
     * Hook: woocommerce_archive_description.
     *
     * @hooked woocommerce_taxonomy_archive_description - 10
     * @hooked woocommerce_product_archive_description - 10
     */
    do_action'woocommerce_archive_description' );
    ?>
</header>

<?php
if ( woocommerce_product_loop() ) {

    /**
     * Hook: woocommerce_before_shop_loop.
     *
     * @hooked woocommerce_output_all_notices - 10
     * @hooked woocommerce_result_count - 20
     * @hooked woocommerce_catalog_ordering - 30
     */
    do_action'woocommerce_before_shop_loop' );

    woocommerce_product_loop_start();

    if ( wc_get_loop_prop'total' ) ) {
        while ( have_posts() ) {
            the_post();

            /**
             * Hook: woocommerce_shop_loop.
             */
            do_action'woocommerce_shop_loop' );

            wc_get_template_part'content''product' );
        }
    }

    woocommerce_product_loop_end();

    /**
     * Hook: woocommerce_after_shop_loop.
     *
     * @hooked woocommerce_pagination - 10
     */
    do_action'woocommerce_after_shop_loop' );
else {
    /**
     * Hook: woocommerce_no_products_found.
     *
     * @hooked wc_no_products_found - 10
     */
    do_action'woocommerce_no_products_found' );
}

/**
 * Hook: woocommerce_after_main_content.
 *
 * @hooked woocommerce_output_content_wrapper_end - 10 (outputs closing divs for the content)
 */
do_action'woocommerce_after_main_content' );
get_footer'shop' );
?>
<style>
    .movil{

    }
@media (max-width:600px){
    div#woocommerce_product_categories-4 {
    positionrelative;
    floatleft;
    z-index9999;
}
    .product-categories .uk-slidenav-position {
    positionrelative;
    floatleft;
    positionrelative;
    width100%;
}

.header-widget-region {
    displaynone;
}
        .titulo_boton {
            display:initial ;
                margin-bottom24px;
    height80px !important;
    displayblock;

  
}

#secondary{
  float:left;
  clear:both;
  margin-top:2px;
  padding:5px;  
  overflow:auto
  displaynone;   
}
}

@media (min-width:601px){
#secondary{
    display:initial !important;
}
.titulo_boton{
    displaynone;
}
}
    </style>

    
    <script type="text/javascript">
jQuery(document).ready(function(){
     jQuery("#hide").click(function(){
 jQuery("#secondary").hide();
});

jQuery("#show").click(function(){
  jQuery("#secondary").show();
});
});

        
    </script>
<?php

 

 

 Recuerda que si tienes alguna duda me lo puedes preguntar en los comentarios, mediante el contacto, mediante el correo electrónico Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. o a través del teléfono. 

Insertar en filas un bloque o html | Drupal 8

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Me veo en la obligación dentro de un proyecto de en un bloque devuelve una lista de elementos poder insertar un html o un bloque . Este módulo te soluciona la vida.

insertar-html-bloque-en-vista-listado-drupal-8.png

Descripción

Este módulo proporciona un complemento de estilo de vista, que es capaz de insertar filas personalizadas con marcado html o bloquea el contenido en los resultados de una fila de vista después de cada enésima fila.

La fila insertada puede contener un bloque Drupal estándar creado por módulos como vistas, etc., o un bloque de contenido del usuario con contenido html personalizado. La fila puede usar los nombres de clase personalizados junto con las clases de fila predeterminadas como views-row-1 y striping estándar (impar / par), clases de primera / última fila o puede ir sin ellas.

Este módulo se puede usar para colocar Google Adsense o cualquier otro fragmento de código / contenido en la salida de elementos de sus vistas.

Instalación

Para instalar este módulo, haga lo siguiente:

1. Extraiga la bola de tar que descargó de Drupal.org.

2. Cargue todo el directorio y todos sus contenidos en su directorio de módulos.

Configuración

Para habilitar y configurar este módulo, haga lo siguiente:

1. Vaya a Admin -> Módulos y active Vistas Insertar filas.

2. Cree una vista o abra una página de configuración de visualización de vista existente y haga clic en el nombre del complemento de estilo junto a la etiqueta "Formato:" en la sección "FORMATO". Elija el complemento de estilo "Insertar filas" en la lista y haga clic en "Aplicar".

3. Elija el tipo de fila seleccionando el botón de opción "Bloquear" o "Contenido personalizado". Según su elección, seleccione un nombre de bloque de la lista o complete el campo de área de texto "Contenido personalizado". Tenga cuidado, este campo no filtra su entrada.

4. Seleccione un número de filas para omitir en "Insertar después de cada enésima fila" y también puede verificar otras configuraciones como "Comenzar con fila insertada", "Insertar fila en la parte inferior" o "Limitar la cantidad de filas insertadas".

5. Ingrese el nombre de la clase de fila, si corresponde, y configure otras configuraciones relacionadas con la clase.

Requisitos

Depende del módulo Vistas que se incluye en Drupal 8 core.

Personalización

Para anular el marcado html de salida predeterminado, puede editar el archivo de plantilla views-row-insert.html.twig ubicado dentro de la carpeta de plantillas del módulo.