Blog
Supprimer les messages d’erreur “Notice: Undefined index” de drupal 7
Dans drupal 7, la configuration des erreurs du php.ini est écrasée par la séquence de bootstrap. Même une modification du niveau d’error reporting dans le .htaccess ne fonctionnera pas… drupal vous force à utiliser le niveau E_ALL, qui sera le standard de php 6.
On en est pas encore là et certains modules de la communauté (et peut être votre code ?) ne définissent pas toujours les variables – c’est d’ailleurs un côté pratique de php qui n’oblige pas à déclarer une variable et permet par là un code plus condensé. Résultat, des erreurs “Notice: Undefined index” ou “Notice: Undefined variables” s’affichent dans les messages sur votre site et les logs sont saturés.
Pour en revenir à l’ancienne configuration, la solution est d’ajouter la ligne
ini_set('error_reporting', 'E_ALL ^ E_NOTICE');Configurer l’interface backend
Par défaut Drupal n’offre pas une interface facile à utiliser pour un débutant comme l’est généralement votre client. Heureusement, en installant quelques modules on peut facilement arriver à une interface agréable au niveau design et totalement configurable, en ne gardant que les éléments utiles et en enlevant les autres. Moins d’options dans une interface claire signifie que votre client va s’y retrouver plus facilement et mettra à jour son site avec moins d’appréhension…
étape 1 : installer un thème d’administration spécifique
admin module
vous pouvez installer la version 6.x.1.0 .Le thème sera activé dès installation du module mais vous aurez moins de contrôle sur celui-ci (ce n’est pas réellement un nouveau thème…). De plus, il modifie les éléments du menu admin donc attention surtout si vous comptez utiliser le module admin_menu !
la vesrion 6.x.2.0 querière l’installation de 2 (vrais…) thèmes : le rubik theme et le tao, rubik étant un enfant de tao. Vous devrez activé manuaellement ces 2 thème dans admin/build/themes/select et choisir rubik comme thème d’admin dans admin/settings/admin/theme.
Vous pouvez ajouter le module admin_theme si vous voulez que le thème soit affiché sur d’autres pages que admin/*. Vous pouvez donc cocher la case “Content editing” dans admin/settings/admin/theme.
Si vous avez besoin de plus de contrôle du thème, vous pouvez en créer un nouveau qui sera lui-même enfant de rubik (ajouter la ligne base theme = “rubik” dans le fichier .info). et donc y ajouter le template.php et d’autres fichiers .tpl tout en laissant intacts les fichiers de rubik, ce qui est toujours préférable.
N’oubliez pas de donner la permission “access admin theme” au rôle de votre client.
step 2 : better formats
this module helps you to control the input formats by settings defaults (and removing the format chooser in node, blocks and comments management)
install the module go to admin/settings/filters/defaults and choose the default input formats. Then on admin/user/permissions uncheck the boxes to remove format selection, tips and links (they are checked by default…)
step 3 : Form filter
If you have granted your user the “administer nodes” permission, the node/add and node/edit forms will show revision information, authoring information and publishing options (and other options provided by additional modules). These options are not always useful so if you want to remove it you can do it by code (hook_form_alter – btw I didn’t find an easier way than hide by css with $form['my_element'][#prefix] = ‘<div style=”display:none”>’ and $form['my_element'][#suffix] = ‘</div>’).
But you can do it also with the form filter module. Enable both formfilter module and formfilter ui. As administrator, 2 links will appear on the bottom of the node/add and edit pages.
You can click on “Filter all node forms” and check the 3 boxes “Hide Revision information“, “Hide Authoring information” and “Hide Publishing options“.
you can also choose a role with “view forms without filtering” permission.
step 4 : Menu per role
This is a quick and dirty way to hide menu elements for specific role. Be aware that this only hide the menu entry! the functionality will remain accessible by the url. So it can be a security flaw… anyway, install the extension and choose a menu entry to customize.
Useful if you want to hide some admin menu links but step 6 is a better alternative…
step 5 : create custom administration pages with views
if you want to separate some items from admin/content/node to highlight it, use a view with
– style : table (with sortable fields in the style options)
– fields node: edit and node: delete link + exposed filter(s)
– access to your specific user role.
– add page display and a menu entry
step 6 : create a specific menu for admin purposes
with a link to content/list, content/add … and all others site specific needs.
show it only for your role.
useful if you don’t want to grant the “administer nodes” permission.
configurer pathauto pour le français (et autre language “exotique”)
Pour supprimer les caractères convertis en entités html de l’url (comme actualites/grande-conf%C3%A9rence-d%C3%A9bat-les-d%C3%A9fis-pour-la-belgique-de-demain)
il faut :
- renommer i18n-ascii.exemple.txt -> i18n-ascii.txt (fichier se trouvant dans le répertoire du plugin)
– ajouter ces règles de conversion à la fin du fichier :
‘ = “-”
’ = “-”
‘ = “-”
» = “-”
« = “-”
(les 2ème et 3ème caractères sont fréquemment encodés par l’utilisateur suite à des copier – coller de word)
- cliquer la case “Transliterate prior to creating alias” dans les paramètres de pathauto (admin/build/path/pathauto)
* optionnel, vous pouvez ajouter les mots suivants qui seront supprimés de l’url afin de lui donner plus de poids pour les moteurs de recherche (dans le textarea du bas)
le,la,un,une,de,du,des,pour,ni,sur, dans,en,les,qu,s,l,qui,que,quoi,dont,ou,d, ce,n,ne,pas,ca,car,se,ces,ce,te,tes,me,mes,ma,ta,son,ses,notre,votre,leur, leurs,nos,vos,mais,donc,or,avec,au,chez,tout,tous,je, tu,il,nous,vous,ils,toutes, toute,par,parmi, entre



