• Home
  • Nous contacter

Le blog d'Adfab

Le blog d'Adfab

Le blog d'Adfab

Le blog d'Adfab
CMS

Changer le wording par défaut sous Drupal 7 – The Right Way

Il y a toujours plusieurs façons d’arriver à ses fins sous Drupal, ce qui en fait un de mes CMS préféré : on peut sortir l’artillerie lourde et installer 34 modules pour une fonctionnalité, implémenter tous les hooks possibles … Mais dans certains cas, la (très) mauvaise idée choisie est de hacker le Core. Voyons comment éviter ça et ne pas avoir à sacrifier de chatons !Il y a toujours plusieurs façons d’arriver à ses fins sous Drupal, ce qui en fait un de mes CMS préféré : on peut sortir l’artillerie lourde et installer 34 modules pour une fonctionnalité, implémenter tous les hooks possibles … Mais dans certains cas, la (très) mauvaise idée choisie est de hacker le Core. Voyons comment éviter ça et ne pas avoir à sacrifier de chatons !

Problématiques

Supposons que, lors de votre projet, le client vous dise :

« Euh ouiiiiii, c’est parfait, mais vous savez le bloc pour entrez un commentaire làààààà, qui dit ‘Ajouter un commentaire’, on peut remplacer par ‘Ajouter un mot’ ? »

Là vous vous dites, mais bien sûr, ça va me prendre 5 minutes ! Et après une petite recherche dans l’ensemble du projet, vous arrivez sur ça, dans le fichier comment-wrapper.tpl.php de votre thème de base :

 

<!--?php if ($content['comment_form']): ?-->
    <!--?php print t('Add new comment'); ?-->
    <!--?php print render($content['comment_form']); ?-->
<!--?php endif; ?-->

Et là bien sûr, vous repérez le petit  print t(‘Add new comment’), et vous décidez de le changer ici …

Vous venez de commettre un sacrilège : vous avez hacké le core.

THOU SHALT NOT HACK CORE

Never Hack Core. C’est un vrai motto dans la communauté Drupal et une réelle prise de risque pour votre application :

  • Vous rendez votre site quasiment impossible à mettre à jour lors d’update ou de patch de sécurité
  • Vous rendez la maintenance de votre site par vos collègues très compliquée
  • Vous ouvrez potentiellement une faille de sécurité qui pourra être exploitée

Alors bien sûr, pour un changement de wording, c’est pas flagrant. Mais partez du principe que le Core et les modules Contrib sont intouchables. Si vous découvrez une faille ou faites une correction, proposez un patch à la communauté (qui vous remerciera, les gens sont gentils chez Drupal)

Mais revenons à nos moutons, ou à notre mot qui nous gêne tant.

Ouvrez votre fichier de configuration settings.php qui se trouve dans sites/default. Repérez ce passage :

/**
 * String overrides:
 *
 * To override specific strings on your site with or without enabling locale
 * module, add an entry to this list. This functionality allows you to change
 * a small number of your site's default English language interface strings.
 *
 * Remove the leading hash signs to enable.
 */
# $conf['locale_custom_strings_en'][''] = array(
#   'forum'      => 'Discussion board',
#   '@count min' => '@count minutes',
# );

Dé-commentez en enlevant les dièses devant le $conf, et rajoutez le wording que vous souhaitez changer :

$conf['locale_custom_strings_en'][''] = array(
  'Comments' => 'Words',
  'Add new comment' => 'Add new word',
);

Localisez ensuite votre texte depuis l’administration (j’y reviendrais plus tard) .. Et voilà ! Vous venez de vous épargnez les foudres de la communauté Drupal et vous avez sauvé un chat. Bravo !

Conclusion

Gardez en tête que, jamais, ô grand jamais, vous ne devez toucher au Core. Les solutions possibles pour ce genre de problématiques sont légions, en passant de l’override de template jusqu’à l’installation d’un module spécifique (comme l’excellent String Override disponible à cette adresse : https://drupal.org/project/stringoverrides)

Problématiques

Supposons que, lors de votre projet, le client vous dit :

« Euh ouiiiiii, c’est parfait, mais vous savez le bloc pour entrez un commentaire làààààà, qui dit ‘Ajouter un commentaire’, on peut remplacer par ‘Ajouter un mot’ ? »

Là vous vous dites, mais bien sûr, ça va me prendre 5 minutes ! Et après une petite recherche dans l’ensemble du projet, vous arrivez sur ça, dans le fichier comment-wrapper.tpl.php de votre thème de base :

type != 'forum'): ?>

 

Et là bien sûr, vous repérez le petit  print t(‘Add new comment’), et vous décidez de le changer ici …

Vous venez de commettre un sacrilège pour la communauté Drupal : vous avez hacké le core.

THOU SHALT NOT HACK CORE

Never Hack Core. C’est un vrai motto dans la communauté Drupal et une réel prise de risque pour votre application :

  • Vous rendez votre site quasiment impossible à mettre à jour lors d’update ou de patch de sécurité
  • Vous rendez la maintenance de votre site par vos collègues très compliquée
  • Vous ouvrez potentiellement une faille de sécurité qui pourra être exploité

Alors bien sûr, pour un changement de wording, c’est pas flagrant. Mais partez du principe que le Core et les modules Contrib sont intouchables. Si vous découvrez une faille ou faites une correction, proposez un patch à la communauté (qui vous remerciera, les gens sont gentils chez Drupal)

Mais revenons à nos moutons, ou à notre mot qui nous gêne tant.

Ouvrez votre fichier de configuration settings.php qui se trouve dans sites/default. Repérez ce passage :

/**
 * String overrides:
 *
 * To override specific strings on your site with or without enabling locale
 * module, add an entry to this list. This functionality allows you to change
 * a small number of your site's default English language interface strings.
 *
 * Remove the leading hash signs to enable.
 */
# $conf['locale_custom_strings_en'][''] = array(
#   'forum'      => 'Discussion board',
#   '@count min' => '@count minutes',
# );

Dé-commentez en enlevant les dièses devant le $conf, et rajoutez le wording que vous souhaitez changer :

$conf['locale_custom_strings_en'][''] = array(
  'Comments' => 'Words',
  'Add new comment' => 'Add new word',
);

Localisez ensuite votre texte depuis l’administration (j’y reviendrais plus tard) .. Et voilà ! Vous venez de vous épargnez les foudres de la communauté Drupal et vous avez sauvé un chat. Bravo !

Conclusion

Gardez en tête que, jamais, ô grand jamais, vous ne devez toucher au Core. Les solutions possibles pour ce genre de problématiques sont légions, en passant de l’override de template jusqu’à l’installation d’un module spécifique (comme l’excellent String Override disponible à cette adresse : https://drupal.org/project/stringoverrides)

13/02/2014 41 MIN READ BY: Guillaume DEPLANQUE 0 COMMENT
SHARE
LIRE LA SUITE

Guillaume DEPLANQUE

Accessibilité du web : pour qui, pour quoi, comment ?

Les 10 choses à faire quand vous travaillez avec un développeur

VOUS POURRIEZ AIMER

Backend CMS Framework Ma première fois sur Pagekit !

CMS Admin WordPress sur un sous-domaine

CMS Développement DevOps Industrialiser WordPress avec WordPlate

CMS Les meilleurs modules sous Drupal 7

CMS e-Commerce Magento : Ajouter un champ dans l’onglet « Produits associés » dans l’édition d’un produit groupé du back-office

CMS WordPress à la base

A propos d’Adfab

Nous sommes un studio de production digitales et d’innovation digitales au service des agences et des annonceurs
Nous recherchons le scintillement dans les regards et le plaisir de réalisations sur-performantes
Nous sommes techno-agnostiques
Nous sommes Adfab

Le blog d'Adfab
Copyright © 2018 Adfab Connect