web-dev-qa-db-fra.com

Afficher le remplacement du thème dans drupal 8

Je suis nouveau sur drupal 8 et j'ai besoin de remplacer un modèle de vues. Donc, pour cela, j'ai activé le débogage de thème dans services.yml pour afficher le twig nom de suggestion de modèle.

Ceci est mon débogage de thème de vue.

<!-- THEME DEBUG -->
<!-- THEME HOOK: 'views_view_unformatted__test_content_view' -->
<!-- FILE NAME SUGGESTIONS:
   x views-view-unformatted--test-content-view.html.twig
   x views-view-unformatted--test-content-view.html.twig
   * views-view-unformatted.html.twig
-->

Ensuite, j'ai créé le fichier dans les modèles de thème drupal8 et les appels de fichiers de thème. J'ai utilisé la fonction themename_views_view_unformatted__test_content_view () pour remplacer le fichier themename.theme mais la fonction ne s'appelle pas.

Existe-t-il de toute façon de remplacer les variables provenant du modèle twig. Quelqu'un peut-il me suggérer de remplacer le modèle de vues.

Merci d'avance.

5
PraveenKumar

Dans votre cas, 'views_view_unformatted__test_content_view' est le crochet de thème dans le tableau de rendu. Dans Drupal 8 qui permettra d'utiliser les fonctions de prétraitement suivantes pour modifier les variables avant qu'elles n'atteignent le modèle:

  • themename_preprocess_views_view_unformatted__test_content_view ()
  • themename_preprocess_views_view_unformatted ()

Il y a plus d'informations sur les fonctions de prétraitement disponibles ici .

4
lauriii

Le meilleur endroit pour commencer serait d'examiner les suggestions de thèmes pour les vues, mais elles sont actuellement absentes du noyau. Il s'agit d'un bug connu dans Drupal 8 core, actuellement en cours de développement pour la version 8.6

Si vous avez besoin de la fonctionnalité pour voir les suggestions de thèmes appropriées maintenant, vous avez deux options:

  1. Essayez les correctifs du commentaire # 22 (ou plus récent) sur problème # 2923634 et les correctifs sur problème # 275244 . Lisez le fil de commentaires sur # 2923634 pour bien comprendre ce qui se passe ici.

  2. Ou utilisez le correctif bien vérifié du commentaire # 139 sur problème # 211874 qui a été reporté en faveur de l'option 1 ci-dessus.

J'utilise le patch de l'option 2 ( # 211874 ) avec succès. Veuillez noter que cela va à l'encontre des recommandations standard des principaux contributeurs. Mais la raison en est que # 2118743 a un seul correctif bien vérifié et fonctionnel pour quelque chose qui n'est activé/utilisé que pendant le développement et au lieu d'avoir à tester différentes combinaisons de deux correctifs distincts qui sont encore en cours de développement. Une fois que la meilleure solution ( # 2923634 et # 275244 ) a été corrigée dans le noyau, # 2118743 devrait être évitée et plus nécessaire.

En combinant cette solution avec l'explication de @ lauriii sur les fonctions de prétraitement des modèles, vous devriez pouvoir remplacer les variables dont vous avez besoin.

Si cela ne fonctionne pas et que vous devez creuser plus profondément, vous pouvez modifier les données de requête et/ou de résultat avec les hooks d'exécution de Views (par exemple hook_views_pre_render ou hook_views_post_execute). Placez ces fonctions dans un module_or_themename.views_execution.inc fichier dans votre Drupal 8 module ou thème personnalisé. Veuillez noter que la documentation est actuellement très fine sur ces fonctions pour Drupal 8, mais dans la plupart des cas) les Drupal 7 exemples peuvent également être utiles.

0
JamesWilson