[questions diverses] WebDesigner Frontend voulant passer de Wordpress à 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 travail avec Wordpress depuis 2ans pour la gestion de mes contenus en ligne.
Or, utiliser Wordpress en guise de CMS n'a pas vraiment été une expérience bénéfique, dans la mesure où les possibilités offertes ne sont pas aussi étendues que pour un vrai CMS.

Avant de migrer complétement sous Drupal, j'ai quelques questions d'ordre technique à vous poser, je vais essayer de formater un minimum mon billet pour rendre sa consultation plus agréable.

NAVIGATION :

Mes compétences

  • XHTML ♥♥♥♥
  • CSS ♥♥♥♥
  • Framework Javascript (Mootools). ♥♥♥
  • PHP5 ♥♥

Je suis un WebDesigner comme on en fait beaucoup : J'applique une couche graphique à du contenu généré via un CMS.
Pour l'affichage des données, il m'arrive aussi de faire appel à un Framework JAVASCRIPT (mootools dans mon cas) pour les afficher de façon dynamique dans la page (carrousel d'images et/ou de texte, incrustation d'un lecteur flash, résultats immédiat pour un champ de recherche, tableau dynamique, etc...)

Je lis le code PHP mais je n'ai pas les compétences nécessaire pour le pratiquer comme pourrait le faire un programmeur. je peux néanmoins coder rapidement des petites fonctions, mais rien de spectaculaire.

J'ai une formation de concepteur graphique.

Drupal versus Wordpress

Hiérarchisation du contenu

Je me suis amusé avec Drupal pour voir ce qu'il avait dans le ventre.
J'ai ajouter AutoPath pour que les Url's soient généré automatiquement selon le schéma suivant (Content Type/Titre de la page)
En ce sens, j'ai aussi installer le module Views pour générer à la main les pages relative au Content Types (listing des pages associés pour un contenu en particulier), c'est bien pratique et efficace rien à redire là dessus.

Navigation

Une fois le contenu créé, il faut pouvoir afficher sur les pages un menu (sous forme de liste ou d'onglet), j'ai quelques questions à ce sujet :

Question#1 Drupal gère-t-il l'affichage des menus avec les pages parentes, les enfants et les sous-enfants?
Je pose cette question car le thème par défaut ne semble pas le prendre en charge. Quand pour les primary links, j'ajoute des pages enfants, drupal ne les affiche pas. Y-a-t-il des modification à faire dans le thème?

Question#2 Peut-on attribuer à un type de contenu un menu par défaut?
Pour que le client n'aient pas à le faire.

 

Breadcrumb (fil d'Ariane)

Question#3 Peut-on forcer le breadcrumb à afficher Accueil>Type de contenu>Titre du contenu ?
Car quand je créé un page et que je l'affiche, le breadcrumb affiche simplement accueil, non l'endroit où l'on se trouve dans le site.

Templating

Sous Wordpress, les templates s'organisent à peu de choses près de cette façon :

  • header.php
  • footer.php
  • comments.php
  • archives.php
  • index.php
  • single.php
  • functions.php
  • style.css
  • page.php
  • une_page_personnalise.php
  • img/*

Drupal ne semble pas prendre le templating sous cet angle.

Question#4 Comment fonctionne (dans les grandes lignes) le templating sous Drupal?

Question#5 Peut-on attribuer un template (layout+blocs) à un type de contenu en particulier et si oui comment?

Question#6 Existe-t-il un tutoriel qui explique via une étude cas le templating sous Drupal?

Question#7 Puis-je injecter dans le header mootools et mes fonctions javascript et si oui comment?

Question#8 Peut-on choisir ses classes et ses ID pour les blocs générés par Drupal?

Question#9Peut-on appeler des fonctions perso (en PHP) directement dans le dossier template pour, par exemple, récupérer la première image insérées dans une page (via un preg_match) pour ensuite la retailler en miniature et l'afficher dans un bloc de navogation?

QuestionBonus Drupalfr organise-t-il des conférences Drupal en région parisienne?

Merci pour votre aide! J'espère être comblé par Drupal, les possibilités semblent plus étendues que pour Wordpress, et ça, ça va surement me permettre de passer plus de temps sur l'aspect du site que sur son code!

Bonnes questions...

Après avoir mis en place quelques sites (dont un intranet, avec une gestion complexe de rôles), je me suis retrouvé à faire un site internet sous wordpress, qui n'est pas tout à fait adapté à ça (à mon avis).

Pour le templating, Drupal utilise php-template (http://drupal.org/phptemplate) , propre à chaque thème.
On trouve pour un thème différents fichiers php, les css, etc. On peut avoir un template par type de contenu ou même par contenu, cf. http://drupal.org/node/17565
(Theming nodes by content type)

La grosse différence que j'y vois par rapport à Wordpress c'est que les modules s'intègrent de manière native sans devoir aller "bidouiller" dans le code php, en utilisant les mécanismes de blocks.

Il y a plusieurs sites qui expliquent cela, notamment http://www.ineation.com

Pour les menus, tu peux créer différents menus manuellement, ou utiliser des modules tels que taxonomy_menu qui créent automatiquement le menu en fonction de la taxonomie.

L'écosystème Drupal est riche, et il faut pas mal de temps pour découvrir les possibilités natives ou celles des modules.

Merci Vincent pour avoir partagé ton expérience.

Donc, si je comprends bien le fichier template.php permet de supplanter les fonctions de templating existantes pour pondre soi même les sienne. Très intéressant!

Où trouve-t-on la liste complète de ces fonctions?

Sinon J'ai testé Views pour créé des listing de contenu en fonction des content type :

Pour une url du type monsite.com/pages/ma-page, monsite.com/pages abouti sur un 404.
Sous views, je créé donc cette fameuse page et je me rends compte que le breadcrumb n'affiche pas Accueil>Pages.

Certaines personnes disent pouvoir le faire avec l'option argument, mais j'ai tout essayé mais rien ne semble fonctionner.

La solution "bricollage" consiste à éditer le fichier template.php pour définir des règles de ré-écriture pour le breadcrumb en fonction de la page sur lequel on se trouve. Ça marche,mais c'est parfaitement impensable quand le site est destiné à des clients qui ne comprennent rien à la programmation.

Pour les templates, le mieux est de rechercher dans les API drupal, ou sur le net (http://arnumeral.fr/articles/la-gestion-des-themes-drupal par ex;)
pour le breadcrumb, il y a des modules qui font ça, en fonction de la taxonomie, des menus, etc... La gestion de la "structure" dans Drupal est plus riche que les autres CMS, et assez différente (il n'y a pas de structure rigide)

Question#1 Drupal gère-t-il l'affichage des menus avec les pages parentes, les enfants et les sous-enfants? -> oui, avec http://drupal.org/project/nice_menus et tu ensuite peux styliser ton menu avec css .

Au niveau des templates, drupal n'est pas très compliqué en réalité, en gros, tu as un fichier .info qui va contenir les differentes infos pour ton template (nom des zones, fichiers css, fichiers js à inclure...).

Et tu as le fichier "page.tpl.php" qui est en sorte la base de ton template. A l'interieur tu as le "index.html" de ton template avec quelques appels à drupal, par exemple dans la balise head tu auras

<title><?php print $head_title; ?></title>
<?php print $head; ?>
<?php print $styles; ?>
<?php print $scripts; ?>

dans partie de ton template ou tu veux afficher ta barre de gauche tu auras <?php print $left; ?>, à l'endroit ou tu veux afficher ton contenu tu auras <?php print $content; ?>. etc...

Après tu as le choix de créér d'autres fichiers pour rendre ton template encore plus riche, par exemple block.tpl.php te permettra de définir comment vont s'afficher les blocs, etc...

Je te recommande ces deux liens : http://drupal.org/node/313510 http://tips.webdesign10.com/how-to-make-a-drupal-theme

Bonjour,

venant aussi de l'univers WordPress, j'ai une question sur les alias d'url.
J'ai installé PathAuto avec [language]/[menupath-raw]/[title-raw]

mais je trouve que cela me génère des urls trop longues. Je voudrais pouvoir entrer dans un champ spécifique un "résumé" pour le title, et avoir le reste du chemin généré automatiquement (le site va être alimenté par des non informaticiens, je ne peux pas leur rendre les choses trop compliquée).

En gros l'équivalent du "slug" sous wordpress.

Y a t il moyen de faire cela ?