2009-10-28 5 views
1

J'utilise Drupal pour la première fois pour un projet au travail. Je finis par comprendre certains des concepts de base, mais quand il s'agit de personnaliser la sortie, je ne sais pas comment procéder.Quelles sont les meilleures pratiques pour déterminer si je devrais créer un nouveau module Drupal?

Je dois construire une galerie d'images assez spécialisée. J'ai réussi à bricoler quelque chose de réalisable en utilisant Views2, mais ce n'est pas tout à fait ce qu'il faut. Je voudrais l'écrire à partir de zéro, en utilisant SQL et PHP réel, plutôt que de travailler à travers cette interface web.

Je pense que je vais mettre cette fonctionnalité dans un nouveau module. Est-ce correct? Ou est-ce une abomination pour le monde Drupal?

Modifier:

Voici ce que j'ai jusqu'à présent. J'ai créé les types de contenu Galerie d'images et Image avec CCK. Les images peuvent être assignées à plusieurs galeries, via nodereference. J'ai imagecache créant deux tailles pour chaque image téléchargée - une taille de la vignette et une taille de la galerie.

Deux formats de galerie sont requis, mais supposons que je vais avoir un style de carrousel pour l'instant, avec quelques personnalisations JQuery et CSS pour correspondre au reste de l'apparence du site. En cliquant sur un pouce dans le navigateur de style carrousel, vous chargez l'image en taille réelle au-dessus.

Maintenant, en supposant qu'une telle chose n'existe pas, quelle est l'approche recommandée pour la créer? Pas comment le coder, mais où ce code vivrait-il dans le système Drupal?

Répondre

4

Il semble que les vues créeront les données dont vous avez besoin - une liste de toutes les images pour les galeries, en fonction des critères dont vous avez besoin (taxonomie, auteur ou autre) et que la partie carrousel jquery et css pourraient être faits en utilisant le système de thème de drupal pour changer la sortie. Aussi bien que «où vivrait le code» je dirais dans votre thème, plutôt que d'un module.

Le système de thème de vues est assez complet, si peut-être un peu écrasant au début. Cela ressemble à une bonne référence de départ: http://www.group42.ca/theming_views_2_the_basics

+1

Il peut s'agir d'un module personnalisé, dans le sens d'un "module de collage", qui associe une combinaison de champs CCK et de vues. Un nouveau module qui réplique la fonctionnalité structurelle d'une galerie serait redondant. – Grayside

0

Eh bien, puisque c'est un logiciel libre, vous êtes libre de faire (presque) tout ce que vous voulez avec.

Une bonne pratique de décider si vous devriez le faire est:

Est-ce que les avantages que je vais obtenir de un module personnalisé divisé par le temps je vais investir. Surpasser les avantages/au fil du temps d'une solution qui n'est pas idéal?

Ou si vous préférez regarder cette façon:

Custom Development Benefits    Not 'ideal' solution benefits 
--------------------------- > ----------------------------------- 
     Development Time      Time to install and adapt 

Depuis normalement le temps à installer et à adapter est normalement plus petit que le temps de développer quelque chose à partir de zéro, la conclusion commune est de il suffit d'utiliser ce qui est déjà là.

Mais par tous les moyens, si vous voulez développer votre propre chose et avoir assez de temps, allez-y.

1

Oui, je mettrais cela dans un module. Je finis souvent par écrire des modèles personnalisés pour des cas d'utilisation spécialisés.

2

Vous pouvez le faire. Les vues sont géniales, mais vous ne recevrez souvent que 90% de ce dont vous avez besoin hors de la boîte.

Vous pouvez faire des thèmes de vue, ce qui peut vous emmener plus loin, et vous pouvez écrire des extensions à la fonctionnalité des vues (mais ce n'est pas toujours facile).

Il n'y a rien de mal à écrire votre propre module à la place des vues, dans certains cas, il peut augmenter les performances. Un conseil si vous faites cela est que vous pouvez voir utiliser la requête que les vues créent dans votre module personnalisé, cela peut vous éviter de devoir travailler dessus et de l'écrire vous-même.

Questions connexes