preprocess function https://drupaladicto.com/ es Preprocess function views_fields https://drupaladicto.com/snippet/preprocess-function-viewsfields <span class="field field--name-title field--type-string field--label-hidden">Preprocess function views_fields</span> <div class="clearfix text-formatted field field--name-field-snippet-descripcion field--type-text-long field--label-above"> <div class="field__label">Descripción</div> <div class="field__item"><p>Las funciones de preproceso son la manera "tradicional" en que podremos pasar valores dentro de cualquier contenido de drupal, aunque hoy en día ya se utilizan módulos como Twig Tweak, para realizar esta clase de procedimientos.</p> </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é, 01/03/2023 - 10:16</span> <div class="clearfix text-formatted field field--name-field-instrucciones field--type-text-long field--label-above"> <div class="field__label">Instrucciones</div> <div class="field__item"><p>En el archivo .theme de tu tema personalizado, añade el código sustituyendo el valor por el nombre de tu tema en la función.</p> </div> </div> <div class="clearfix text-formatted field field--name-field-codigo field--type-text-long field--label-hidden field__item"><pre> MY_CUSTOM.THEME /** * passing variables to view template * * @param $variables * * @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException * @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException */ function TUTEMA_preprocess_views_view_fields(&amp;$variables) { if (isset($variables['view'])) { $view = $variables['view']; if ($view-&gt;id() == "pending_reviews" &amp;&amp; $view-&gt;current_display == "page_1") { $result = $view-&gt;result; /** * @author or Logged detector */ // Load the current user. $user = \Drupal\user\Entity\User::load(Drupal::currentUser()-&gt;id()); $variables['gem_user'] = $user-&gt;id(); //Custom Greetings Messages // $variables['greetings_user'] = $user-&gt;get('field_custom_greetings_message'); $variables['greetings_user_0'] = $user-&gt;get('field_custom_greetings_message')[0]-&gt;value; $variables['greetings_user_1'] = $user-&gt;get('field_custom_greetings_message')[1]-&gt;value; $variables['greetings_user_2'] = $user-&gt;get('field_custom_greetings_message')[2]-&gt;value; //Custom Goodbye Messages // $variables['goodbye_user'] = $user-&gt;get('field_custom_goodby_message'); $variables['goodbye_user_0'] = $user-&gt;get('field_custom_goodby_message')[0]-&gt;value; $variables['goodbye_user_1'] = $user-&gt;get('field_custom_goodby_message')[1]-&gt;value; $variables['goodbye_user_2'] = $user-&gt;get('field_custom_goodby_message')[2]-&gt;value; //Custom Signature // $variables['signature_user'] = $user-&gt;get('field_custom_electronic_signatur'); $variables['signature_user_0'] = $user-&gt;get('field_custom_electronic_signatur')[0]-&gt;value; $variables['signature_user_1'] = $user-&gt;get('field_custom_electronic_signatur')[1]-&gt;value; //Hotel del usuario $current_user_hotel = $user -&gt;get('field_hotel_name')-&gt;first()-&gt;getValue()['target_id']; $variables['current_user_hotel'] = $user -&gt;get('field_hotel_name')-&gt;first()-&gt;getValue()['target_id']; //ksm($current_user_hotel); /** * Descarga de Reviews y filtrado para enviarlas */ // Load entities by their property values. $reviews_for_suggestions = \Drupal::entityTypeManager() -&gt;getStorage('node') -&gt;loadByProperties(['type' =&gt; 'review']); foreach ($reviews_for_suggestions as $review_for_suggestions) { for ($x = 0; $x &lt;= count($reviews_for_suggestions); $x++) { //$check_suggestions = $review_for_suggestions-&gt;get('field_hotelname')-&gt;first()-&gt;getValue()['target_id']; $hotel_review = $review_for_suggestions-&gt;get('field_hotelname')-&gt;first()-&gt;getValue()['target_id']; $variables['hotel_review'] = $review_for_suggestions-&gt;get('field_hotelname')-&gt;first()-&gt;getValue()['target_id']; //ksm($hotel_review); if($review_for_suggestions-&gt;get('field_new_proposal')[0]){ $variables['new_proposal_0'] = $review_for_suggestions-&gt;get('field_new_proposal')[0]-&gt;value; } if($review_for_suggestions-&gt;get('field_new_proposal')[1]){ $variables['new_proposal_1'] = $review_for_suggestions-&gt;get('field_new_proposal')[1]-&gt;value; } if($review_for_suggestions-&gt;get('field_new_proposal')[2]){ $variables['new_proposal_2'] = $review_for_suggestions-&gt;get('field_new_proposal')[2]-&gt;value; } if($review_for_suggestions-&gt;get('field_new_proposal')[3]){ $variables['new_proposal_3'] = $review_for_suggestions-&gt;get('field_new_proposal')[3]-&gt;value; } if($review_for_suggestions-&gt;get('field_new_proposal')[4]){ $variables['new_proposal_4'] = $review_for_suggestions-&gt;get('field_new_proposal')[4]-&gt;value; } } } } } } </pre> <p> </p> <p>VIEWS-VIEWS-FIELDS--MYVIEWNAME--PAGE.HTML.TWIG</p> <pre> {{ current_user_hotel|render|striptags|trim }} {{ fields.field_hotelname.content|render|striptags|trim }} {% if current_user_hotel|render|striptags|trim == fields.field_hotelname.content|render|striptags|trim %} &lt;article {{ attributes.addClass(classes) }}&gt; &lt;div&gt; &lt;div class="new-suggestions-global"&gt; {# Primera Respuesta #} &lt;div class="col-md-6 izq"&gt; &lt;div class="review-env-global"&gt; &lt;div class="review-top"&gt; &lt;table class="table"&gt; &lt;tr&gt; &lt;th scope="col"&gt; {% if fields.field_source.content|render|striptags|trim is not empty %} &lt;td&gt;&lt;img src="./sites/default/files/{{ fields.field_source.content|render|striptags|trim }}_icon.png"&gt;&lt;/td&gt; &lt;td&gt;&lt;span class="review-source-name"&gt;{{ fields.field_source.content }}&lt;/span&gt;&lt;/td&gt; {% endif %} &lt;/th&gt; {% if fields.field_published_date.content|render|striptags|trim is not empty %} &lt;th scope="col"&gt;{{ fields.field_published_date.content }}&lt;/th&gt; {% endif %} &lt;th scope="col"&gt; {% if fields.field_rating_scale.content|render|striptags|trim is not empty %} &lt;td&gt;{{ fields.field_rating_scale.content }}/10&lt;/td&gt; {% endif %} &lt;td&gt; {% if fields.field_classification.content|render|striptags|trim == "Positive" %} &lt;img src="./sites/default/files/ranking_optimo.png"&gt; {% else %} &lt;img src="./sites/default/files/ranking_medio.png"&gt; {% endif %} &lt;/td&gt; &lt;/th&gt; &lt;/tr&gt; &lt;/table&gt; &lt;/div&gt; &lt;div class="review-medio"&gt; {% if fields.field_reviewer.content|render|striptags|trim is not empty %} &lt;span class="reviewer"&gt;{{ fields.field_reviewer.content }}&lt;/span&gt; {% endif %} {% if fields.field_review_text.content|render|striptags|trim is not empty %} &lt;div class="review-resume"&gt; {{ fields.field_review_text.content|render|striptags|trim }} &lt;/div&gt; {% endif %} &lt;div id="sug-{{ fields.nid.content|render|striptags|trim }}" class="answers-proposal"&gt; &lt;span&gt; {% if greetings_user_1 is not empty %} {{ random([greetings_user_0, greetings_user_1, greetings_user_2]) }} {% else %} {{ greetings_user_0 }} {% endif %} &lt;/span&gt; {% if new_proposal_0 is not empty %} &lt;p&gt;{{ new_proposal_0 }}&lt;/p&gt; {% endif %} &lt;p&gt; {% if goodbye_user_1 is not empty %} {{ random([goodbye_user_0, goodbye_user_1, goodbye_user_2]) }} {% else %} {{ goodbye_user_0 }} {% endif %} &lt;/p&gt; &lt;p&gt; {% if signature_user_1 is not empty %} {{ random([signature_user_0, signature_user_1, signature_user_2]) }} {% else %} {{ signature_user_0 }} {% endif %} &lt;/p&gt; &lt;div&gt; &lt;/div&gt; &lt;/div&gt; &lt;form name="sug-{{ fields.nid.content|render|striptags|trim }}" method="post" onsubmit="return finalsugg()"&gt; &lt;input id="sug-{{ fields.nid.content|render|striptags|trim }}" type="text" name="finalsugg" value="sug-{{ fields.nid.content|render|striptags|trim }}"&gt; &lt;input type="submit" value="Submit"&gt; &lt;/form&gt; &lt;div class="btn-copiar"&gt; &lt;a id="btnSugCopy" href="{{ url('&lt;current&gt;') }}" class="btn btn-primary btn-copy" onclick="CopyToClipboard('sug-{{ fields.nid.content|render|striptags|trim }}');"&gt;Copiar&lt;/a&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; {% if new_proposal_1 is not empty %} {# Sugeridas Ocultas #} &lt;div class="col-md-6 izq ocultas"&gt; &lt;a id="ver-todas" class="btn btn-default ver-todas-suggestions"&gt;Ver todas&lt;/a&gt; &lt;a id="ocultar-todas" class="btn btn-danger ocultar-todas-suggestions"&gt;Ocultar todas&lt;/a&gt; &lt;div id="suggestions-hide" class="suggestions-hide"&gt; &lt;div class="resp-1 more-suggestions"&gt; &lt;div id="sug2-{{ fields.nid.content|render|striptags|trim }}" class="answers-proposal more-proposal"&gt; &lt;span&gt; {% if greetings_user_1 is not empty %} {{ random([greetings_user_0, greetings_user_1, greetings_user_2]) }} {% else %} {{ greetings_user_0 }} {% endif %} &lt;/span&gt; &lt;p&gt;{{ new_proposal_1 }}&lt;/p&gt; &lt;p&gt; {% if goodbye_user_2 is not empty %} {{ random([goodbye_user_0, goodbye_user_1, goodbye_user_2]) }} {% else %} {{ goodbye_user_0 }} {% endif %} &lt;/p&gt; {% if signature_user_1 is not empty %} {{ random([signature_user_0, signature_user_1]) }} {% else %} {{ signature_user_0 }} {% endif %} &lt;/div&gt; &lt;div class="btn-copiar"&gt; &lt;a id="btnSugCopy" type="submit" class="btn btn-primary btn-copy" onclick="CopyToClipboard('sug2-{{ fields.nid.content|render|striptags|trim }}')"&gt;Copiar&lt;/a&gt; &lt;/div&gt; {# Tercera Opcion#} {% if new_proposal_2 is not empty %} &lt;div class="resp-2 more-suggestions"&gt; &lt;div id="sug3-{{ fields.nid.content|render|striptags|trim }}" class="answers-proposal more-proposal"&gt; &lt;span&gt; {% if greetings_user_1 is not empty %} {{ random([greetings_user_0, greetings_user_1, greetings_user_2]) }} {% else %} {{ greetings_user_0 }} {% endif %} &lt;/span&gt; &lt;p&gt;{{ new_proposal_2 }}&lt;/p&gt; &lt;p&gt; {% if goodbye_user_2 is not empty %} {{ random([goodbye_user_0, goodbye_user_1, goodbye_user_2]) }} {% else %} {{ goodbye_user_0 }} {% endif %} &lt;/p&gt; {% if signature_user_1 is not empty %} {{ random([signature_user_0, signature_user_1]) }} {% else %} {{ signature_user_0 }} {% endif %} &lt;/div&gt; &lt;div class="btn-copiar"&gt; &lt;a id="btnSugCopy" class="btn btn-primary btn-copy" onclick="CopyToClipboard('sug3-{{ fields.nid.content|render|striptags|trim }}')"&gt;Copiar&lt;/a&gt; &lt;/div&gt; &lt;/div&gt; {% endif %} {# Cuarta Opcion#} {% if new_proposal_3 is not empty %} &lt;div class="resp-2 more-suggestions"&gt; &lt;div id="sug4-{{ fields.nid.content|render|striptags|trim }}" class="answers-proposal more-proposal"&gt; &lt;span&gt; {% if greetings_user_1 is not empty %} {{ random([greetings_user_0, greetings_user_1, greetings_user_2]) }} {% else %} {{ greetings_user_0 }} {% endif %} &lt;/span&gt; &lt;p&gt;{{ new_proposal_3 }}&lt;/p&gt; &lt;p&gt; {% if goodbye_user_3 is not empty %} {{ random([goodbye_user_0, goodbye_user_1, goodbye_user_2]) }} {% else %} {{ goodbye_user_0 }} {% endif %} &lt;/p&gt; {% if signature_user_1 is not empty %} {{ random([signature_user_0, signature_user_1]) }} {% else %} {{ signature_user_0 }} {% endif %} &lt;/div&gt; &lt;div class="btn-copiar"&gt; &lt;a id="btnSugCopy" class="btn btn-primary btn-copy" onclick="CopyToClipboard('sug4-{{ fields.nid.content|render|striptags|trim }}');"&gt;Copiar&lt;/a&gt; &lt;/div&gt; &lt;/div&gt; {% endif %} &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; {% endif %} &lt;/div&gt; &lt;/div&gt; &lt;/article&gt; {% else %} "Mensaje adicional" {% endif %}</pre> </div> <div class="field field--name-field-snippet-paginador field--type-image field--label-above"> <div class="field__label">Paginador</div> <div class="field__item"> <img src="/sites/default/files/imagenes/snippets/snippet-pager_103.png" width="100" height="100" alt="Snippet | www.drupaladicto.com - Consultores especializados en Drupal y Symfony" title="Snippet | www.drupaladicto.com - Consultores especializados en Drupal y Symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> <div class="field field--name-field-categoria-snippet field--type-entity-reference field--label-above"> <div class="field__label">Categoría</div> <div class="field__items"> <div class="field__item"><a href="/categoria/twig" hreflang="es">twig</a></div> <div class="field__item"><a href="/categoria/twig-template" hreflang="es">twig template</a></div> <div class="field__item"><a href="/categoria/template" hreflang="es">template</a></div> <div class="field__item"><a href="/categoria/code" hreflang="es">code</a></div> <div class="field__item"><a href="/categoria/codigo" hreflang="es">código</a></div> <div class="field__item"><a href="/categoria/preprocess-function" hreflang="es">preprocess function</a></div> <div class="field__item"><a href="/categoria/php" hreflang="es">php</a></div> <div class="field__item"><a href="/categoria/views" hreflang="es">views</a></div> <div class="field__item"><a href="/categoria/vistas" hreflang="es">vistas</a></div> <div class="field__item"><a href="/categoria/hook" hreflang="es">hook</a></div> <div class="field__item"><a href="/categoria/hooks" hreflang="es">hooks</a></div> </div> </div> <div class="field field--name-field-portada-snippet field--type-entity-reference field--label-above"> <div class="field__label">Portada</div> <div class="field__item"><article class="media media--type-imagen media--view-mode-default"> </article> </div> </div> Wed, 01 Mar 2023 09:16:41 +0000 webmaster 128 at https://drupaladicto.com Cómo imprimir un formulario contacto dentro de un paragraphs Drupal 9 https://drupaladicto.com/snippet/como-imprimir-un-formulario-contacto-dentro-de-un-paragraphs-drupal-9 <span class="field field--name-title field--type-string field--label-hidden">Cómo imprimir un formulario contacto dentro de un paragraphs Drupal 9</span> <div class="clearfix text-formatted field field--name-field-snippet-descripcion field--type-text-long field--label-above"> <div class="field__label">Descripción</div> <div class="field__item"><p>La Preprocess Function sirve para modificar los comportamientos por defecto de Drupal, en este caso vamos a acceder al formulario por defecto y lo haremos disponible para colocarlo dentro de un nodo y posteriormente dentro de un paragarphs, así podremos imprimirlo en cualquier lugar y posición dentro de la web.</p> <p>Si quieres aprender más sobre las preprocess functions</p> <ul><li> <p><a href="https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Render%21theme.api.php/function/hook_preprocess/8.2.x">function hook_preprocess</a></p> </li> <li> <p><a href="https://www.drupal.org/docs/theming-drupal/twig-in-drupal/twig-best-practices-preprocess-functions-and-templates">Twig best practices - preprocess functions and templates</a></p> </li> </ul></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é, 01/03/2023 - 09:13</span> <div class="clearfix text-formatted field field--name-field-instrucciones field--type-text-long field--label-above"> <div class="field__label">Instrucciones</div> <div class="field__item"><ol><li>Instalar el módulo Paragraphs y crear el Contenedor para nuestro "Formulario". Ej.: bloque_formulario.<br />  </li> <li>Añadiremos el paragraphs como campo del nodo en que deseamos colocar nuestro formulario.<br />  </li> <li>En nuestro archivo SUBTEMA.theme (que forma parte de los archivos de todos los temas y subtemas), copiaremos el código que está debajo y cambiaremos los nombres por los de nuestro contenido.<br />  </li> <li>Activamos el modo debug o depurador, para averiguar la sugerencia de la plantilla correspondiente al paragraphs.<br />  </li> <li>Creamos la plantilla y añadiremos dentro la variable que imprimirá nuestro "Formulario"</li> </ol></div> </div> <div class="clearfix text-formatted field field--name-field-codigo field--type-text-long field--label-hidden field__item"><pre> /* Implement hook_preprocess_paragraph() */ function SUBTHEME_preprocess_paragraph(&amp;$variables) {   $message = \Drupal::entityTypeManager()         -&gt;getStorage('contact_message')         -&gt;create(array(           'contact_form' =&gt; 'feedback', //ID(Machine name) of form         ));       $form = \Drupal::service('entity.form_builder')-&gt;getForm($message);       $variables['curso_practico_crea_tu_web'] = $form; } </pre> </div> <div class="field field--name-field-snippet-paginador field--type-image field--label-above"> <div class="field__label">Paginador</div> <div class="field__item"> <img src="/sites/default/files/imagenes/snippets/snippet-pager_75.png" width="100" height="100" alt="Snippet | www.drupaladicto.com - Consultores especializados en Drupal y Symfony" title="Snippet | www.drupaladicto.com - Consultores especializados en Drupal y Symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> <div class="field field--name-field-categoria-snippet field--type-entity-reference field--label-above"> <div class="field__label">Categoría</div> <div class="field__items"> <div class="field__item"><a href="/categoria/custom-form" hreflang="es">custom form</a></div> <div class="field__item"><a href="/categoria/forms" hreflang="es">forms</a></div> <div class="field__item"><a href="/categoria/formularios" hreflang="es">formularios</a></div> <div class="field__item"><a href="/categoria/paragraphs" hreflang="es">paragraphs</a></div> <div class="field__item"><a href="/categoria/preprocess-function" hreflang="es">preprocess function</a></div> <div class="field__item"><a href="/categoria/contacto" hreflang="es">contacto</a></div> <div class="field__item"><a href="/categoria/contact" hreflang="es">contact</a></div> </div> </div> <div class="field field--name-field-portada-snippet field--type-entity-reference field--label-above"> <div class="field__label">Portada</div> <div class="field__item"><article class="media media--type-imagen media--view-mode-default"> </article> </div> </div> Wed, 01 Mar 2023 08:13:45 +0000 webmaster 100 at https://drupaladicto.com hook_preprocess_node() https://drupaladicto.com/snippet/hookpreprocessnode <span class="field field--name-title field--type-string field--label-hidden">hook_preprocess_node()</span> <div class="clearfix text-formatted field field--name-field-snippet-descripcion field--type-text-long field--label-above"> <div class="field__label">Descripción</div> <div class="field__item"><p>La Preprocess Function sirve para modificar los comportamientos por defecto de Drupal, en este caso vamos a acceder al formulario por defecto y lo haremos disponible para colocarlo dentro de un nodo y posteriormente dentro de un paragarphs, así podremos imprimirlo en cualquier lugar y posición dentro de la web.</p> <p>Si quieres aprender más sobre las preprocess functions</p> <ul><li> <p><a href="https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Render%21theme.api.php/function/hook_preprocess/8.2.x">function hook_preprocess</a></p> </li> <li> <p><a href="https://www.drupal.org/docs/theming-drupal/twig-in-drupal/twig-best-practices-preprocess-functions-and-templates">Twig best practices - preprocess functions and templates</a></p> </li> </ul></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, 28/02/2023 - 20:59</span> <div class="clearfix text-formatted field field--name-field-instrucciones field--type-text-long field--label-above"> <div class="field__label">Instrucciones</div> <div class="field__item"><ol><li>Creamos un contenido con los campos que acompañarán al formulario Ej.: detalles_contacto<br />  </li> <li>En nuestro archivo SUBTEMA.theme (que forma parte de los archivos de todos los temas y subtemas), copiaremos el código que está debajo y cambiaremos los nombres por los de nuestro contenido.<br />  </li> <li>Instalar el módulo Paragraphs y crear el Contenedor para nuestro "Contenido + Formulario". Ej.: bloque_formulario.<br />  </li> <li>Activamos el modo debug o depurador, para averiguar la sugerencia de la plantilla correspondiente al paragraphs.<br />  </li> <li>Creamos la plantilla y añadiremos dentro la variable que imprimirá nuestro "Contenido + Formulario"<br />  </li> <li>Creamos la plantilla para nuestro nodo "detalles_contacto" y ponemos la variables que imprimirán sus contenidos + Formulario</li> </ol></div> </div> <div class="clearfix text-formatted field field--name-field-codigo field--type-text-long field--label-hidden field__item"><pre> /** * Implements hook_preprocess_node() for node.html.twig. */ function SUBTEMA_preprocess_node(array &amp;$variables) { if(isset($variables['node'])){ $node = $variables['node']; if(($node-&gt;getType() == 'detalles_contacto')) { $message = \Drupal::entityTypeManager() -&gt;getStorage('contact_message') -&gt;create(array( 'contact_form' =&gt; 'feedback', //ID(NOMBRE MAQUINA) del formulario )); $form = \Drupal::service('entity.form_builder')-&gt;getForm($message); $variables['feedback_form'] = $form; } } }</pre> </div> <div class="field field--name-field-snippet-paginador field--type-image field--label-above"> <div class="field__label">Paginador</div> <div class="field__item"> <img src="/sites/default/files/imagenes/snippets/snippet-pager_39.png" width="100" height="100" alt="Snippet | www.drupaladicto.com - Consultores especializados en Drupal y Symfony" title="Snippet | www.drupaladicto.com - Consultores especializados en Drupal y Symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> <div class="field field--name-field-categoria-snippet field--type-entity-reference field--label-above"> <div class="field__label">Categoría</div> <div class="field__items"> <div class="field__item"><a href="/categoria/preprocess-function" hreflang="es">preprocess function</a></div> <div class="field__item"><a href="/categoria/node" hreflang="es">node</a></div> <div class="field__item"><a href="/categoria/programacion" hreflang="es">programacion</a></div> <div class="field__item"><a href="/categoria/code" hreflang="es">code</a></div> <div class="field__item"><a href="/categoria/codigo" hreflang="es">código</a></div> <div class="field__item"><a href="/categoria/desarrollo" hreflang="es">desarrollo</a></div> <div class="field__item"><a href="/categoria/condicional" hreflang="es">condicional</a></div> <div class="field__item"><a href="/categoria/contenidos" hreflang="es">contenidos</a></div> <div class="field__item"><a href="/categoria/hook" hreflang="es">hook</a></div> <div class="field__item"><a href="/categoria/hooks" hreflang="es">hooks</a></div> <div class="field__item"><a href="/categoria/forms" hreflang="es">forms</a></div> <div class="field__item"><a href="/categoria/formularios" hreflang="es">formularios</a></div> <div class="field__item"><a href="/categoria/webform" hreflang="es">webform</a></div> </div> </div> <div class="field field--name-field-portada-snippet field--type-entity-reference field--label-above"> <div class="field__label">Portada</div> <div class="field__item"><article class="media media--type-imagen media--view-mode-default"> </article> </div> </div> Tue, 28 Feb 2023 19:59:45 +0000 webmaster 64 at https://drupaladicto.com Mostrar bloque vista usando Preprocess Function Drupal 8/9 https://drupaladicto.com/snippet/mostrar-bloque-vista-usando-preprocess-function-drupal-89 <span class="field field--name-title field--type-string field--label-hidden">Mostrar bloque vista usando Preprocess Function Drupal 8/9</span> <div class="clearfix text-formatted field field--name-field-snippet-descripcion field--type-text-long field--label-above"> <div class="field__label">Descripción</div> <div class="field__item"><p>Este código te permitirá mostrar una vista tipo bloque en un nodo o paragraphs</p> <p>Para Nodos:<br /> /** * Implements hook_preprocess_node() for node.html.twig. */<br /> function TUSUBTHEME_preprocess_node(array &amp;$variables) {<br />   $variables['nombre_variable_para_mostrar'] = views_embed_view('nombre_maquina', 'nombre_vista_dentro');</p> <p>}</p> <p>Para Paragraphs</p> <p>/* Implement hook_preprocess_paragraph() */<br /> function wct_oct2020_preprocess_paragraph(&amp;$variables) {<br />   $variables['nombre_variable_para_mostrar'] = views_embed_view('nombre_maquina', 'nombre_vista_dentro');</p> <p>}</p> </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, 28/02/2023 - 20:41</span> <div class="clearfix text-formatted field field--name-field-instrucciones field--type-text-long field--label-above"> <div class="field__label">Instrucciones</div> <div class="field__item"><p>Para mostrar una vista tipo bloque en usando Preprocess Function:</p> <ol><li>Abre el archivo TUSUBTHEME.theme para añadir las Preprocess function según necesites, copia el código que está debajo dependiendo de si la usarás para presentarla en un nodo o en un elemento Paragraphs.<br />  </li> <li>Crea una plantilla para el tipo de contenido donde quieres mostrar la vista, conoce el nombre para la plantilla activando el modo depurador.<br />  </li> <li>Añade la el nombre de la variable en la plantilla, en el lugar donde quieres imprimir la vista:<br /><br /> {{ nombre_variable_para_mostrar }}<br />  </li> <li>Refrescar cache</li> </ol></div> </div> <div class="clearfix text-formatted field field--name-field-codigo field--type-text-long field--label-hidden field__item"><pre> /** * Implements hook_preprocess_node() for node.html.twig. */ function TUSUBTHEME_preprocess_node(array &amp;$variables) { $variables['nombre_variable_para_mostrar'] = views_embed_view('nombre_maquina', 'nombre_vista_dentro'); } /* Implement hook_preprocess_paragraph() */ function wct_oct2020_preprocess_paragraph(&amp;$variables) { $variables['nombre_variable_para_mostrar'] = views_embed_view('nombre_maquina', 'nombre_vista_dentro'); }</pre> </div> <div class="field field--name-field-snippet-paginador field--type-image field--label-above"> <div class="field__label">Paginador</div> <div class="field__item"> <img src="/sites/default/files/imagenes/snippets/snippet-pager_27.png" width="100" height="100" alt="Snippet | www.drupaladicto.com - Consultores especializados en Drupal y Symfony" title="Snippet | www.drupaladicto.com - Consultores especializados en Drupal y Symfony" loading="lazy" typeof="foaf:Image" class="img-fluid" /> </div> </div> <div class="field field--name-field-categoria-snippet field--type-entity-reference field--label-above"> <div class="field__label">Categoría</div> <div class="field__items"> <div class="field__item"><a href="/categoria/block" hreflang="es">block</a></div> <div class="field__item"><a href="/categoria/custom-block" hreflang="es">custom block</a></div> <div class="field__item"><a href="/categoria/bloque-personalizado" hreflang="es">bloque personalizado</a></div> <div class="field__item"><a href="/categoria/hook" hreflang="es">hook</a></div> <div class="field__item"><a href="/categoria/preprocess-function" hreflang="es">preprocess function</a></div> <div class="field__item"><a href="/categoria/subtheme" hreflang="es">subtheme</a></div> <div class="field__item"><a href="/categoria/subtema" hreflang="es">subtema</a></div> <div class="field__item"><a href="/categoria/tema-personalizado" hreflang="es">tema personalizado</a></div> <div class="field__item"><a href="/categoria/alter" hreflang="es">alter</a></div> <div class="field__item"><a href="/categoria/hooks" hreflang="es">hooks</a></div> </div> </div> <div class="field field--name-field-portada-snippet field--type-entity-reference field--label-above"> <div class="field__label">Portada</div> <div class="field__item"><article class="media media--type-imagen media--view-mode-default"> </article> </div> </div> Tue, 28 Feb 2023 19:41:28 +0000 webmaster 52 at https://drupaladicto.com