Passage de smarty 2 à smarty 3/4
Un certain nombre d'avertissements peuvent apparaître, ceux-ci ne sont pas liés à la version de smarty mais à la version de php. Cette page n'est donc pas réellement liée au passage à smarty 3 mais il est intéressant de profiter de ce tutoriel pour expliquer comment enlever ces avertissements.
Pour ce genre d'avertissement :
Avertissement: Undefined array key "statut" dans le fichier /xoops_data/caches/smarty_compile/ca10e9d0_xmnews_cp_transition_default^b54d6c404c41406c1d4faddd394cf658fd4bf489_0.db.xmnewsadmincategory.tpl.php ligne 59
Avertissement: Attempt to read property "value" on null dans le fichier /xoops_data/caches/smarty_compile/ca10e9d0_xmnews_cp_transition_default^b54d6c404c41406c1d4faddd394cf658fd4bf489_0.db.xmnewsadmincategory.tpl.php ligne 59
Il est un peu plus complexe de trouver la ligne de l'erreur car l'avertissement indique un fichier de cache, nous n'aurons donc pas la ligne exacte de l'erreur qui est, dans ce cas, dans le template xmnews_admin_category.tpl
Important
Il est probable que ces avertissements deviennent des erreurs dans les futurs version de PHP, il est donc nécessaire de les corriger!
L'explication sur les templates de la page précédente s'applique également sur cette page
Corrections
Si on reprend les avertissements présentés ci-dessus, il suffit de s'occuper du premier élément "Undefined array key" :
Avertissement: Undefined array key statut dans le fichier /xoops_data/caches/smarty_compile/ca10e9d0_xmnews_cp_transition_default^b54d6c404c41406c1d4faddd394cf658fd4bf489_0.db.xmnewsadmincategory.tpl.php ligne 59
La variable "statut" ne semble pas définie !
Il suffit d'ouvrir le template xmnews_admin_category.tpl et chercher la variable "statut" avec l'outil de recherche.
Le code qui pose problème est :
<th class="txtcenter width5"><{$statut}>th>
Pour le corriger, il faut savoir si c'est une chaine de caractères qui est attendue ou une valeur logique.
- Si c'est une chaîne de caractères, on modifie le code de la façon suivante :
<th class="txtcenter width5"><{$statut|default:''}>th>
- Si c'est une valeur logique, on modifie le code de la façon suivante :
<th class="txtcenter width5"><{$statut|default: false}>th>