1.7 vers 1.8
Elgg 1.8 est le plus grand bond en avant dans le développement de Elgg depuis la version 1.0. Pour cette raison, cela demande plus de travail pour mettre à jour le noyau et les plugins qu’avec les mises à niveau précédentes. Il y a eu un petit nombre de changements d’API et, suivant notre pratique standard, les méthodes que nous avons dépréciées ont été mises à jour pour travailler avec la nouvelle API. Les plus grands changements sont dans la normalisation des plugins et dans le système de vues.
Mettre à niveau le cœur
Supprimez les répertoires du noyau suivants (même niveau que _graphics et engine) :
_css
account
admin
dashboard
entités
friends
search
settings
simplecache
views
Avertissement
Si vous ne supprimez pas ces répertoires avant une mise à niveau, vous allez avoir des ennuis !
Mettre à jour les plugins
Utilisez le routage standard avec vos gestionnaires de pages
Tout : /page_handler/all
Publications de l’utilisateur : /page_handler/owner/:username
Publications des contacts de l’utilisateur : /page_handler/friends/:username
Entité seule : /page_handler/view/:guid/:title
Ajout : /page_handler/add/:container_guid
Modification : /page_handler/edit/:guid
Liste des groupes : /page_handler/group/:guid/all
Incluez les scripts des gestionnaires de page à partir du gestionnaire de page
Presque tous les gestionnaires de page doivent avoir un script de gestionnaire de page. (Exemple : bookmarks/all => mod/bookmarks/pages/bookmarks/all.php
)
Appelez
set_input()
pour les guids d’entité dans le gestionnaire de page et utilisezget_input()
dans les scripts du gestionnaire de page.Appelez
gatekeeper()
etadmin_gatekeeper()
dans la fonction du gestionnaire de page si nécessaire.L’URL d’un groupe doit utiliser le script
pages/:handler/owner.php
.Les gestionnaires de pages ne devraient pas contenir de HTML.
Mettez à jour les URLs dans tout le plugin. (N’oubliez pas d’enlever
/pg/
!)
Utilisez les gestionnaires de pages standardisés et les scripts
Stockez les scripts du gestionnaire de page dans
mod/:plugin/pages/:page_handler/:page_name.php
Utilisez la disposition de page de contenu - content - dans les scripts du gestionnaire de pages :
$content = elgg_view_layout('content', $options);
Les scripts des gestionnaires de pages ne devraient pas contenir de HTML.
Appelez
elgg_push_breadcrumb()
dans les scripts du gestionnaire de pages.Inutile de définir le propriétaire de la page si les URLs sont au format standard.
Pour le contenu du groupe, vérifiez le conteneur container_guid en utilisant elgg_get_page_owner_entity().
La vue object/:subtype
Assurez-vous qu’il existe bien des vues pour
$vars['full_view'] == true
et$vars['full_view'] == false
.$vars['full_view']
a remplacé$vars['full]
.Vérifiez l’objet dans
$vars['entity']
. Utilisezelgg_instance_of()
pour vous assurer qu’il s’agit du type d’entité que vous voulez.Renvoyez
true
pour court-circuiter la vue si l’entité est manquante ou erronée.Utilisez
elgg_view('object/elements/summary', array('entity' => $entity));
etelgg_view_menu('entity', array('entity' => $entity));
pour faciliter le formatage. Vous devriez utiliser très peu de balisage dans ces vues.
Mettez à jour la structure de l’action
Fichiers d’action et noms d’action de l’espace de noms (exemple :
mod/blog/actions/blog/save.php
=>action/blog/save
)Utilisez les URLs d’action suivantes :
Ajoutez :
action/:plugin/save
Modifiez :
action/:plugin/save
Supprimez :
action/:plugin/delete
Faites que l’action de suppression accepte
action/:handler/delete?guid=:guid
de sorte que le menu des métadonnées de l’entité ait la bonne URL par défaut.
Mettez à jour les fonctions obsolètes
Les fonctions dépréciées en 1.7 produiront des erreurs visibles en 1.8.
Vous pouvez également mettre à jour les fonctions dépréciées dans 1.8.
De nombreuses fonctions d’enregistrement ont simplement ajouté un préfixe
elgg_
pour la cohérence, et devraient être faciles à mettre à jour.Voyez
/engine/lib/deprecated-1.8.php
pour la liste complète.Vous pouvez définir le niveau de débogage sur “warning” pour obtenir des rappels visuels des fonctions obsolètes.
Mettez à jour les vues widget
Voyez les widgets des plugins blog ou file pour des exemples.
Mettez à jour le module de profil de groupe
Utilisez les plugins blog ou file pour des exemples. Cela vous aidera à pouvoir appliquer un thème à votre plugin avec le nouveau framework CSS.
Mettez à jour les formulaires
Déplacez les corps de formulaire vers la vue
forms/:action
pour utiliser le nouveauelgg_view_form
d’Evan.Utilisez les vues d’entrée dans les corps de formulaire plutôt que du html. Cela aide à utiliser des thèmes et permet de préparer l’avenir.
Ajoutez une fonction qui prépare le formulaire (voyez
mod/file/lib/file.php
pour un exemple)Rendez vos formulaires persistants (voir l’action de téléchargement du plugin file et la fonction de préparation du formulaire).
L’API des formulaires est discutée plus en détail dans Formulaires + Actions.
Nettoyez le CSS/HTML
Nous avons ajouté de nombreux modèles CSS au fichier CSS du noyau (modules, bloc avec une image, primitives d’espacement). Nous vous encourageons à utiliser ces modèles et ces classes dans la mesure du possible. Faire cela devrait :
Réduire les coûts de maintenance, car vous pouvez supprimer la plupart des CSS personnalisés.
Rendre votre plugin mieux compatible avec les thèmes de la communauté.
Recherchez des motifs qui peuvent être déplacés dans le noyau si vous avez besoin de CSS significatif.
Nous utilisons des traits d’union plutôt que des soulignements dans les classes/ids et vous encourageons à faire de même pour maintenir la cohérence globale.
Si vous avez besoin de votre propre CSS, vous devez utiliser votre propre espace de noms, plutôt que elgg-
.
Mettez à jour manifest.xml
Utilisez http://el.gg/manifest17to18 pour automatiser cette étape.
N’utilisez pas la catégorie
bundled
avec vos plugins. Elle est réservée aux plugins distribués avec Elgg.
Mettez à jour les paramètres et les vues des paramètres utilisateur
La vue pour les paramètres est maintenant
plugins/:plugin/settings
(auparavantsettings/:plugin/edit
).La vue pour les paramètres utilisateur est maintenant
plugins/:plugin/usersettings
(auparavantusersettings/:plugin/edit
).