On commence aujourd’hui avec une petite mise en bouche, la variable $core, et son équivalent $GLOBALS[‘core’].
Depuis la 2.23 on peut, et même il est vivement recommandé d’utiliser à la place dcCore::app()
qui est disponible partout, tout le temps et qui permet au passage d’ignorer superbement la variable $core fournie dans certaines méthodes et fonctions de votre code.
En résumé, faites une recherche avec l’expression régulière :
(\\?\$core|\\?\$GLOBALS\['core'\]|\\?\$this->core)
Ou si vous ne savez pas comment faire, les expressions suivantes1 :
\$core
$core
\$GLOBALS['core']
$GLOBALS['core']
\$this->core
$this->core
Et remplacez les correspondances2 trouvées par :
dcCore::app()
.
Attention : ne touchez à rien dans les paramètres des fonctions/méthodes, ça n’est pas utile et ça provoquerait des erreurs.
Un exemple, $core est présent lignes 1 (paramètre de fonction) et 8 :
public static function adminDashboardFavorites($core, $favs)
{
$favs->register('Typo', [
'title' => __('Typographic replacements'),
'url' => 'plugin.php?p=typo',
'small-icon' => [urldecode(dcPage::getPF('typo/icon.svg')), urldecode(dcPage::getPF('typo/icon-dark.svg'))],
'large-icon' => [urldecode(dcPage::getPF('typo/icon.svg')), urldecode(dcPage::getPF('typo/icon-dark.svg'))],
'permissions' => $core->auth->makePermissions([
dcAuth::PERMISSION_CONTENT_ADMIN,
]),
]);
}
Je ne touche à rien ligne 1, par contre je remplace ligne 8 :
public static function adminDashboardFavorites($core, $favs)
{
$favs->register('Typo', [
'title' => __('Typographic replacements'),
'url' => 'plugin.php?p=typo',
'small-icon' => [urldecode(dcPage::getPF('typo/icon.svg')), urldecode(dcPage::getPF('typo/icon-dark.svg'))],
'large-icon' => [urldecode(dcPage::getPF('typo/icon.svg')), urldecode(dcPage::getPF('typo/icon-dark.svg'))],
'permissions' => dcCore::app()->auth->makePermissions([
dcAuth::PERMISSION_CONTENT_ADMIN,
]),
]);
}
Si jamais vous aviez des :
global $core;
Voire, si vous avez remplacé aussi ces lignes en :
global dcCore::app();
Alors vous pouvez les supprimer.
Vous pouvez d’ailleurs le faire dès maintenant — si vous testez avec une version 2.23.? — et indiquer que votre plugin (ou votre thème) nécessite3 a minima la version 2.23, avec un :
'requires' => [['core', '2.23']],
Mais si vous allez poursuivre avec moi — ou si vous testez avec une version 2.24-dev — alors autant mettre immédiatement ceci :
'requires' => [['core', '2.24']],
Ça vous évitera d’avoir à le faire plus tard.
Notez que si vous voulez tester vos modifications de ce jour en situation réelle, avec une 2.23.1 par exemple, alors conservez 2.23 pour la dépendance, vous ferez la modification une fois que vos tests seront concluants.
Et c’est là que vous vous dites : Ah mais si le $core que j’ai en paramètre de mes fonctions ne sert plus à rien, on pourrait l’enlever ?
.
Deux réflexions :
Si c’est du code interne chez vous, alors vous pouvez faire le nécessaire, à savoir virer ce paramètre de la fonction et le virer partout où la fonction est appelée. N’oubliez pas de tester tout de même ;-)
Si c’est du code externe, comme par exemple une fonction de rappel d’un behavior, alors on en causera plus tard, c’est un peu prématuré d’y toucher à ce stade.
N’hésitez pas à commenter et critiquer — il se peut que je sois passé sur des trucs qui me paraissent évidents alors que ce n’est pas le cas pour tout le monde —, j’amenderai ce billet si nécessaire en fonction de vos retours !
1 De Bernard -
J’ai tout compris ;-)
Mais, si j’ai bien compris, les plugs ainsi modifiés ne fonctionneront qu’avec
2.23
ou2.24
=> quid des versons précédentes (sauf, peut être, à mettre dans la description un lien vers une version précédente du plug - en principe conservée(s) sur dotaddict )…D’où, question: existera-t-il un moyen permettant d’indiquer avant la mise à jour du plug un message permettant de choisir soit de conserver la version “ancienne” du plug, soit de mettre à jour Dotclear?
2 De Franck -
Non pas de moyen de ce genre.
Par contre une version de Dotclear ne proposera à la mise à jour que les plugins qui tournent avec celle-ci (ou une version supérieure de Dotclear).
Et oui ça concerne les versions 2.23 et supérieures, pour l’instant. J’indiquerai le moment quand il s’agira uniquement de la version 2.24.
3 De Strindberg -
Bonjour,
cette fois-ci, je ne suis toujours pas passé à la nouvelle màj, la 2.24, surtout, quand je lis tous ces très nombreux threads du forum, commentaires dans ces threads, et même de votre équipe qui se trouvent devant tellement de problèmes et en découvrent de nouveaux. Et tous les jours ne nouveaux threads. La très grande majorité des utilisateurs de Dotclear n’y comprends rien à ce qui est cette fois exigé de nous pour réussir cette màj.
Comme mon thème Aorakit-3B est la seule chose que j’ai modifiée en ces bientôt 17 années online, je vais tenter de suivre vos conseils pour préparer mon thème à cette màj.
Mais vous nous invitez à modifier le php du thème, mais ne donnez pas le nom du fichier à modifier.
J’ai bien peur que l’année 2023 marquera la mort de mes deux blogs en ligne depuis le 06 VI 06, et des centaines et des centaines d’heures de travail, de rédaction et de lectures documentaire pour concevoir mes analyses mises en lignes, etc.
Je vois que même les vrais geek, utilisateurs de Dotclear, sont désemparés
Bien à vous et merci pour vos efforts
www.renovezmaintenant67.eu, /www.hotchkiss.eu/travelblog/