Quelques questions sur Drupal

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

Je fais actuellement le tour des CMS afin de trouver celui qui correspond le mieux à mes besoins. Dans un premier temps, mon choix s'est arrêté sur Drupal.

Cependant, j'ai quelques questions :
- Je souhaite réaliser un menu, où lorsque l'on clique sur le menu principal cela affiche dans un bloc les sous menus correspondant au menu sélectionné (sans rafraichir la page). Est-ce que s'est envisageable avec Drupal ?

  • Au niveau des performances, j'ai vu au cours de mes recherches que Drupal nécessitait beaucoup de requêtes SQL pour afficher une page. Alors au niveau des performances, si il y a un peu de trafic comment Drupal va réagir. Je l'ai installé en local avec Wamp, et déjà pour afficher le panneau d'administration sa met un peu de temps.

  • Existe-il un guide pour la version 7 de Drupal pour la création d'un template ?

  • Enfin, le principe des modules est bien pensé, mais l'ajout de modules créer par la communauté peut-ils entrainés des failles de sécurité ?

Sinon, vous avez peut être un autre CMS à me conseillé pour mon projet : essentiellement de la publication de contenu (article, document PDF, ...) avec une bonne gestion des niveaux utilisateurs

Merci d'avance.

  • Je souhaite réaliser un menu, où lorsque l’on clique sur le menu principal cela affiche dans un bloc les sous menus correspondant au menu sélectionné (sans rafraichir la page).

Quand tu dis bloc, tu penses bien à un bloc séparé sur la page, par ex qui s'actualise en marge gauche ? A priori, c'est faisable avec un module qui va bien ou en bidouillant légèrement.
Si ça répond à ton besoin, tu peux choisir d'avoir un menu 'déplié' de toute façon avec Superfish :
http://drupal.org/project/superfish
Le module DHTML menu permet de faire des choses sympa aussi (je ne l'utilise pas)
Un screencast : http://www.youtube.com/watch?v=-FW6b1BWnsI

  • Au niveau des performances, j’ai vu au cours de mes recherches que Drupal nécessitait beaucoup de requêtes SQL pour afficher une page. alors au niveau des performances, si il y a un peu de trafic comment Drupal va réagir.

Là je vais parler pour D6 car je connais moins D7.

Il y a des erreurs à éviter, plus ou moins connues, concernant certains modules type Views, Panels, ou autre. J'imagine que comme beaucoup tu as lu les posts très instructifs de Yoran B. sur Views ;-)

De nombreuses requêtes sont en réalité très rapides. Le module Devel permet de lister les temps de requêtes en millisecondes, et aide à repérer celles qui seraient anormalement longues. Pour ma part, pour mes besoins persos dans certains cas je fais l'impasse sur Views, dans d'autres je l'utilise, ça dépend des besoins de maintenance/modifs futures.

Par ailleurs, activer les caches en production va nettement améliorer la rapidité du site. Pas mal d'outils existent (Boost en module drupal, APC sur le serveur PHP, etc.). Utiliser les fonctions de cache de bloc, CSS, javascript, etc. proposées dans l'admin ou avec des modules supplémentaires accélèrera les temps de chargement. Pour un site public assez commun ou qui n'aurait pas des fonctions aussi addictives que Facebook, considère que tu perds 10% du trafic après une seconde et peut-être les deux-tiers des visiteurs après trois secondes (si ça intéresse du monde, je peux retrouver l'étude US qui donne ces données).

Si une bonne partie du trafic du site est anonyme (non loggé), aucune inquiétude car Drupal est très performant sur ce point.

Si un module particulier mais "copieux" t'intéresse et que tu as des doutes sur la performance, regarde dans sa liste des Issues s'il y a des indications sur d'éventuelles lenteurs, bugs identifiés ou risques en termes de ralentissement.

Drupal demande une machine correcte, avec un hébergement assez souple côté paramétrage et qui propose un minimum de mémoire (le memory_limit et le temps de requête maxi sont à paramétrer généreusement au niveau serveur pour certaines situations).
Et si ton site passe au JT de 20h ;-), en natif dans Drupal le module Throttle permet de désactiver des modules en cas d'engorgement.
Pour l'optimisation, il y plusieurs posts du forum qui donnent des pistes (désactiver Database logging, ne pas reconstruire les menus, etc.)

  • Je l’ai installé en local avec Wamp, et déjà pour afficher le panneau d’administration sa met un peu de temps.

Déjà, ton système Wamp n'est pas forcément rapide. Sur un ordi portable Windows 7+Wamp bien chargé, ma page X ou Y en admin met 6 secondes, exactement la même sous mon desktop Ubuntu pourtant moins puissant se charge... en 3 secondes.

Enfin dernier point, la virtualisation de serveurs chez un nombre croissant d'hébergeurs permet de monter en RAM et CPU si besoin. Là si ton trafic grimpe, il suffit d'acheter des parts de RAM/CPU par ex.

Avec Drupal tu gagnes en souplesse ce que tu perds (éventuellement) en perfs brutes au départ, sachant que le hardware ou des optimisations peuvent combler un éventuel problème. Un site fraichement installé peut ramer lors d'une migration puis se révéler parfait après quelques réglages.

  • Enfin, le principe des modules est bien pensé, mais l’ajout de modules créer par la communauté peut-ils entrainés des failles de sécurité ?

D'abord, il y a une Security Team : http://drupal.org/security-team. Les modules les plus connus (donc surveillés) ne doivent vraiment pas t'inquiéter, par ailleurs il y a des mises à jour régulières. Pour coder, un guide d'écriture du code et pas mal de posts autour des API expliquent quels fonctions utiliser pour un code propre et sécurisé.

Lorsqu'un auteur de module publie quelque chose qui représente un risque (ex, affichage d'une chaîne potentiellement mal filtrée), il y a souvent quelqu'un pour l'alerter et suggérer une modif. Donc globalement, drupal, c'est plutôt secure.

Tout d'abord, merci pour ta réponse. Juste pour précision, sa serait pour réaliser un intranet.

Ensuite, actuellement vaut-il mieux utilisé Drupal 7 ou 6 ?

J'ai vu que l'essentiel de la documentation n'était pas encore à jour, est-ce pareil pour les modules ?

En passant, je ne trouve pas les les explications de Yoran B. sur les views, un lien serait le bienvenue ?

En clair Views est magique sur pas mal de points (constructeur de requêtes rapide, évolutif, etc.) mais il peut être parfois plus efficace (sur le plan perfs) de coder des requêtes à la main si on a les compétences. Cela dit, c'est sous réserve d'être capable de générer en php un rendu qui va bien s'intégrer, avec un pager ou autre, fonctions de tri/affichage, etc.... ce qui n'est pas toujours trivial.