Alguns apunts de canvis i modificacions a les plantilles twig del meu últim projecte desenvolupat amb Drupal 8. Teniu un genial cheat sheed en format pdf ací amb varibles per a html.html.twig, node.html.twig, page.html.twig, block.html.twig, comment.html.twig i més.
Si estem a la pàgina principal i volem fer coses per codi:
{% if is_front %}
bla bla bla
{% endif %}
Si volem mostar/amagar regions segons si l'usuari està registrat a la nostra web o si és un usuari visitant anònim, farem:
{% if logged_in %}
l'usuari està dins
{% elseif status is constant('MARK_UPDATED') %}
l'usuari visitant és anònim i no està registrat
{% endif %}
{% endif %}
Si volem modificar i configurar coses segons la url actual, primer de tot, dins de la funció "function drupal8_zymphonies_theme_preprocess_page(&$variables) {" al fitxer TEMA.theme afegim:
// Vull saber el path
$variables['el_path'] = $current_path = \Drupal::request()->getRequestUri();
I ara, a continuació, ja podem afegir a les plantilles twig els condicionals:
{% if el_path == '/es/proyecto' or el_path == '/proyecto' %}
texto per a la pàgina Proyecto
{% endif %}
Modificacions i configuracions segons el path amb un else:
{% if el_path == '/es/proyecto' or el_path == '/proyecto' %}
texto per a la pàgina Proyecto
{% else %}
texto per a quan no siga la pàgina Proyecto
{% endif %}
Si volem fer servir una cadena de traducció al vol en la posició que vullguem:
{% trans %} Aquesta pàgina mola molt {% endtrans %}
Si volem fer coses a la plantilla html.html.twig segons la llengua actual de la url, modificarem el fitxer al fitxer TEMA.theme i afegirem:
/**
* Vull que em detecte la llengua al html.html.twig
*/
function drupal8_zymphonies_theme_preprocess_html(&$variables) {
$variables['lang'] = \Drupal::languageManager()->getCurrentLanguage()->getId();
}
I ara el codi és:
{% if (lang == 'ca') %}
català
{% elseif lang == 'es' %}
castellano
{% else %}
no es catalán ni castellano
{% endif %}
Si en canvi, volem fer coses a la plantilla page.html.twig segons les llengües configurades, afegirem el següent codi dins de la funció function drupal8_zymphonies_theme_preprocess_page(&$variables) { que generalmente ja la tenim creada:
function drupal8_zymphonies_theme_preprocess_page(&$variables) {
// Vull saber la llengua de la pàgina actual
$variables['lang'] = \Drupal::languageManager()->getCurrentLanguage()->getId();
}
Insertem a qualsevol lloc un block creat previament des de Views:
{{ content.field_refhero }}
{{ drupal_view('view_name', 'views_block__nombre_block_1') }}
{{ drupal_block('views_block__nombre_block_1') }}
{{ content.field_refquotes }}