On continue avec la variable globale $_menu (ou son équivalent $GLOBALS['_menu']
) qui est à remplacer par dcCore::app()->menu
, partout dans votre code.
Exemple pris dans le code du plugin Tags1.
Avant :
$_menu['Blog']->addItem(
__('Tags'),
dcCore::app()->adminurl->get('admin.plugin.tags', ['m' => 'tags']),
[dcPage::getPF('tags/icon.svg'), dcPage::getPF('tags/icon-dark.svg')],
…
Après :
dcCore::app()->menu['Blog']->addItem(
__('Tags'),
dcCore::app()->adminurl->get('admin.plugin.tags', ['m' => 'tags']),
[dcPage::getPF('tags/icon.svg'), dcPage::getPF('tags/icon-dark.svg')],
…
L’expression régulière de recherche à utiliser étant :
((\\*?)\$_menu|\$GLOBALS\['_menu'\])
Si vous n’aimez pas les expressions régulières, alors cherchez ceci :
$GLOBALS['_menu']
$_menu
\$GLOBALS['_menu']
\$_menu
Et à remplacer par :
dcCore::app()->menu
Par ailleurs n’oubliez pas de supprimer les lignes contenant :
global $_menu;
Elles ne serviront plus.
On reviendra sur la gestion des menus un peu plus tard, quand on abordera les constantes à utiliser avec la 2.24, et uniquement cette dernière.
Comme pour la variable $core (voir à ce sujet le billet correspondant), 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 de la version 2.23 ont déjà été modifiés en conséquence, vous pouvez un œil à leur code si nécessaire. ↩︎
1 De Da Scritch -
Est-ce que tu penses qu’il serait possible de faire, par exemple un script en bash à faire tourner sur la base d’un site, afin de signaler les variables obsolètes ?
Je suis près à donner un coup de main sur le sujet, car j’ai des plugins persos assez vieux.
2 De Franck -
Bah tant qu’il s’agit de faire des remplacements à base d’expressions régulières, rien ne s’y oppose. En tout cas pour ces premières adaptations ; d’autres suivent qui seront peut-être plus velues à scripter.
3 De Da Scritch -
J’éviterais de faire du remplacement. Je proposerais seulement de faire des suggestions. En plus, y’a les cas un peu tricky d’échappement de quotes simples et doubles pour les templates.
Après, rien n’empêche de refaire les déclarations des variables devenues obsolètes, (excepté en templates), non ?
4 De Franck -
, en effet, tant que ces variables sont déclarées dans le cœur… :-D