Meilleures pratiques pour les mises en page


19

J'essaie de comprendre quelles sont les meilleures pratiques pour les mises en page dans Drupal. De nombreuses pages ont plusieurs éléments différents comme le contenu principal, une image d'en-tête, etc. Je ne cherche pas à créer une «page de base» ou quelque chose de similaire (c'est-à-dire un nœud pour la page entière).

Est-il bon d'utiliser des panneaux pour chaque page et d'y déposer des blocs? Je pourrais supprimer des vues, éventuellement un nœud, un formulaire de contact, etc ...


"Est-il bon d'utiliser des panneaux pour chaque page" Les panneaux ont peu ou pas de charge de performance supplémentaire. Parfois, c'est encore plus rapide car les panneaux peuvent être mis en cache.
iStryker

Réponses:


11

Les panneaux sont un excellent module, mais il peut également être complexe et cela peut prendre un certain temps avant de le comprendre complètement. Si vous souhaitez utiliser des panneaux pour chaque page, le module Panels Everywhere est un projet intéressant.

Display Suite est un autre excellent projet qui offre des dispositions plus flexibles .

Bien que les gens aient tendance à utiliser des panneaux ou DS, ils ne sont pas des concurrents. Ils peuvent même être utilisés ensemble comme vous pouvez le lire sur le blog de l'auteur / mainteneur de DS: Utilisation des panneaux sur les modes d'affichage dans Drupal 7 .


5
N'oubliez pas Context et Omega (Omega Tools)

2

Les vues et les panneaux sont une bonne possibilité mais avec l'utilisation d'un grand cadre comme 960gs !


0

Oui, les panneaux vous donnent des dispositions dans lesquelles vous pouvez déposer des éléments.

Panelizer est le module de panneaux le plus simple qui ajoute simplement un panneau à vos nœuds préexistants. (Node Panels est obsolète, mais ce fait n'est pas largement souligné.)

Donc, utilisez le système de nœuds standard, mais "panélisez" les nœuds si ou quand vous en avez besoin.


0

Si vous cherchez à réutiliser la mise en page pour plus d'une page, la suite d'affichage avec un tas de champs semble être le meilleur choix.

Si vous voulez des mises en page individuelles par page, alors les panneaux peuvent être la bonne chose.


Si vous voulez ce dernier, mais avez peur des panneaux (comme moi), alors vous pouvez essayer autre chose. (depuis /drupal//a/90744/2974 )

Modules:

Comment?

  • Créez un type de noeud "frontpage".
  • Ajoutez un champ de référence de bloc à valeurs multiples avec le widget "Liste de sélections multiples".
  • Configurez certains types de beans pour autoriser différents types de boîtes fantaisie pouvant être placées en première page.
  • Utilisez la référence de bloc dans un bean pour les présentations imbriquées.
  • L'un des types de bean pourrait avoir une référence d'entité à plusieurs valeurs pour par exemple référencer un tas de produits (et les avoir triables). Je préfère généralement cela à nodequeue.
  • Utilisez Display suite pour définir la façon dont chaque bean et la page d'accueil elle-même doivent être affichés.
  • Utilisez les modèles de champs personnalisés de la suite d'affichage pour avoir des boîtes décorées autour de chaque bean / bloc dans la référence de bloc, ou chaque produit, etc. Vérifiez hook_ds_field_theme_functions_info () . Ce truc est puissant et génial!
  • Dites à l'éditeur client / contenu d'utiliser les liens contextuels pour modifier des beans individuels.
  • De plus, vous pouvez avoir des blocs Vues à utiliser dans la référence de bloc.
  • Le formulaire d'entité en ligne peut être utile, mais je ne l'ai pas essayé dans cette combinaison. Ce sont des devoirs :)

La stratégie est que tout ce qui est unique à une page doit être un bloc (ou une instance de bean). Nous pouvons nous le permettre car ces blocs ne polluent aucune région thématique.

Cela devrait vous donner du matériel pour jouer.
Des questions plus détaillées devraient être discutées dans des questions d'échange de pile dédiées, car c'est assez large.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.