Quelle est la différence entre le gestionnaire de pages et les panneaux?

31

J'écris cette question, car je vois de la confusion dans toute la communauté Drupal à propos de "qu'est-ce que le gestionnaire de pages" et "qu'est-ce que les panneaux".

Létharion
la source

Réponses:

48

Ctools

Dans Ctools , il existe un sous-module appelé "Page manager". Ce module, à la base, est une interface utilisateur graphique pour hook_menu . Il vous permet soit de créer de nouveaux chemins dans le système, soit de reprendre certains de ceux fournis par Core.

Gestionnaire de pages

Une fois que le gestionnaire de pages gère un chemin pour vous, il peut en faire plusieurs choses différentes. Prêt à l'emploi, il peut vous fournir des redirections. Un cas d'utilisation courant pour cela est de refuser l'accès aux nœuds qui manquent de thèmes appropriés car ils ne sont pas destinés à être visualisés par eux-mêmes, tels que les "boîtes d'informations" ou les "nœuds d'image". Une autre consiste à rediriger d'une vue terminologique vers une recherche Solr du même terme.

L'un des principaux avantages du gestionnaire de pages est qu'il introduit une manière de traiter le "contexte", à ne pas confondre avec le module Contexte . Le kicker ici, c'est que les volets, qui sont des "blocs légèrement plus intelligents", peuvent déclarer leurs dépendances au système, et ils ont les arguments réels (appelés Contexts) passés dans le style d' injection de dépendance .

Pour ceux qui ne sont pas familiers avec DI, mais familiers avec Drupal, cela, par exemple, vous permet de ne plus jamais avoir besoin d'utiliser menu_get_object pour obtenir "Ce seul et unique nœud référencé à partir du chemin de menu". Et s'il y a plus d'un nœud sur le chemin? Ou si vous voulez vraiment baser le bloc sur un nœud à partir d'une référence d'entité? Cela devient un problème avec le gestionnaire de pages, ce qui rend tous les blocs (volets) beaucoup plus flexibles et réutilisables.

Panneaux

Cependant, le cas d'utilisation le plus courant consiste à remettre la disposition et le rendu du chemin aux panneaux . Panels fournit des outils pour définir des dispositions, soit en code, soit directement dans le navigateur, et vous permet de placer du contenu directement dans le navigateur.

Conclusion

Ces deux modules sont très puissants et relativement peu documentés, ce qui a frustré beaucoup de gens à leur sujet. Comprendre comment les utiliser est cependant bien la peine si vous construisez un site plus grand, d' autant plus que leur approche de traitement des « pages », ainsi que la mise en page, on dirait qu'ils vont dans Drupal 8 core, avec la permission de EclipseGC de l' initiative de SCOTCH . Projet de bac à sable pertinent

Lectures complémentaires

Exemples d'autres choses intéressantes que l'on peut faire avec ces outils:

  1. Si le contexte est utilisé comme outil de sectionnement , les panneaux peuvent fonctionner en tandem avec lui et être utilisés comme outil de présentation.
  2. Les panneaux peuvent interagir avec la suite d'affichage pour lui fournir une belle interface utilisateur par glisser-déposer.
  3. Le gestionnaire de pages et l' administration contextuelle peuvent aider à créer des menus sensibles "Contexte" et d'autres choses utiles pour les administrateurs / éditeurs de sites.
Létharion
la source
3
Je n'ai jamais vraiment compris / utilisé le gestionnaire de pages - c'est génial de savoir à quoi il sert (essentiellement). Merci pour la brève rédaction!
Chapabu
2
$page_data = page_manager_get_current_page()est là où l'argent est, en particulier$page_data['handler']
mpdonadio
1

Dans Drupal 7, Page Manager était la base du module Panels .

" Learn Page manager " est un ensemble de vidéos intéressant (et étonnant). Ils contiennent divers sujets liés au module Panels . Voici un résumé de l'ensemble des vidéos sur ce sujet (citation du lien ci-dessus):

  • Le gestionnaire de pages vous permet de collecter et de gérer des informations contextuelles de manière flexible et cohérente. C'est une partie importante de la construction d'une infrastructure sur les sites Web Drupal, et vous devez savoir comment utiliser ce module.
  • La série de screencast est destinée aux développeurs Drupal expérimentés.
  • Les épisodes 1, 2 et 3 présentent les concepts les plus élémentaires, tels que les pages personnalisées, les variantes, les règles de sélection et (dans une certaine mesure) les objets contextuels.
  • Les épisodes 4, 5, 6 et 7 parlent de panneaux, en mettant l'accent sur l'intégration des vues, mais aussi quelques mots sur la mise en cache efficace.
  • Les épisodes 8 et 9 sur le contrôle d'accès, les éléments de menu et notamment le module d'administration contextuelle peu connu mais très utile.
  • Les épisodes 10 et 11 parlent davantage de l'utilisation d'objets contextuels dans le gestionnaire de pages, y compris de l'utilisation des vues comme contexte. C'est, à mon humble avis, où se trouve le véritable pouvoir du gestionnaire de pages.
  • Les épisodes 12 et 13 collectent divers éléments, tels que la façon d'utiliser les panneaux pour réorganiser facilement le formulaire de modification de nœud, les paramètres d'importation / exportation et certains modules supplémentaires qui peuvent être utilisés avec le gestionnaire de pages.

Reportez-vous à Explaining Panels: An Overview for Drupal Developers pour une autre grande explication sur le module Panels.

L'avenir de Page Manager

Dans Drupal 8, Page Manager est devenu un module séparé, alors qu'auparavant (jusqu'à Drupal 7), il faisait partie du module CTools . Voici quelques citations supplémentaires de la page du projet (liée au D8):

Il prend en charge la création de nouvelles pages et permet de placer des blocs dans cette page.

Comme Page Manager de Drupal 7, il propose un concept de «variantes de page», chacune avec ses propres conditions de sélection.

De plus, il peut être utilisé pour reprendre une page existante, comme remplacer / node /% pour changer ce qui est affiché lors de la visualisation d'un nœud.

Il utilise le noyau Conditions, Contextet les BlocksAPI pour y parvenir.

Pierre.Vriens
la source