On continue cette fois avec la variable $_ctx (ou son équivalent $GLOBALS['_ctx']
) qui est à remplacer par dcCore::app()->ctx
, partout dans votre code, y compris dans celui qui génère du code PHP pour les balises template.
Exemple pris dans le code d’une des balises du thème Ductile1.
Avant :
return '<?php if (strlen(' . sprintf($full, '$_ctx->posts->getContent(' . $urls . ')') . ') > ' .
'strlen(' . sprintf($short, '$_ctx->posts->getContent(' . $urls . ')') . ')) : ?>' .
$content .
'<?php endif; ?>';
Après :
return '<?php if (strlen(' . sprintf($full, 'dcCore::app()->ctx->posts->getContent(' . $urls . ')') . ') > ' .
'strlen(' . sprintf($short, 'dcCore::app()->ctx->posts->getContent(' . $urls . ')') . ')) : ?>' .
$content .
'<?php endif; ?>';
L’expression régulière de recherche à utiliser étant :
((\\*?)\$_ctx|\$GLOBALS\['_ctx'\])
Si vous n’aimez pas les expressions régulières, alors cherchez ceci :
$GLOBALS['_ctx']
$_ctx
\$GLOBALS['_ctx']
\$_ctx
Et à remplacer par :
dcCore::app()->ctx
Par ailleurs n’oubliez pas de supprimer les lignes contenant :
global $_ctx;
Elles ne serviront plus.
Comme pour la variable $core (voir à ce sujet le billet précédent), vous pouvez ne toucher à rien pour l’instant, la variable globale étant toujours déclarée.
Notez qu’elle sera supprimée dans le futur, donc tant que vous y êtes, sautez le pas ;-)
-
Les plugins et thèmes de la version 2.23 ont déjà été modifiés en conséquence, vous pouvez un œil à leur code si nécessaire. ↩︎