Dernière mise à jour : 14/03/2016 à 11h23
Table des matières
Cette documentation permet de rendre votre module compatible avec la version 5.0 de PHPBoost sans trop de modifications dans le code. Elle n'a pas pour but de le convertir en utilisant le modèle MVC et d'utiliser les nouvelles fonctionnalités. Effectuez les différentes étapes suivantes (peu importe l'ordre) pour mettre à jour votre module.
Le fichier de configuration
Le seul changement à effectuer dans le fichier /module/config.ini pour rendre votre module compatible avec la nouvelle version est le paramètre "compatibility". Remplacez la valeur par 5.0.
Pensez également à mettre à jour le numéro de version de votre module pour plus de cohérence.
Code TEXT :
compatibility="5.0"
Changements dans l'API
Requêtes SQL
L'ancien système utilisé pour les requêtes Sql (PersistenceContext::get_sql(), variable $Sql, requêtes se terminant par
__LINE__, __FILE__) a été complètement supprimé.
Référez-vous à cette documentation pour convertir vos requêtes Sql : Exécuter des requêtes SQL.
Suppression de certaines variables globales
Les variables globales suivantes ont été supprimées :
$Sql, $Session, $User, $Template, $Cache.
Equivalents :
Remplacer
$Sql
par PersistenceContext::get_querier().
Remplacer
$Session
par AppContext::get_session().
Remplacer
$User
par AppContext::get_current_user().
La variable
$Template
est dépréciée depuis la 4.1. Utilisez la documentation pour déclarer les templates en PHP.La variable
$Cache
est dépréciée et a été supprimée. Si vous avez vraiment besoin d'un cache pour votre module (pour affichage d'éléments dans un mini module par exemple), prenez exemple sur celui du module Téléchargements par exemple.Fonctions relatives aux utilisateurs
Pensez à remplacer
loginpar
display_namedans vos requêtes faisant appel à la table member.
Remplacer
get_utheme()par
AppContext::get_current_user()->get_theme().
Remplacer
get_ulang()par
AppContext::get_current_user()->get_locale().
classe Date
La fonction
gmdate()a été supprimée.
Proccédez de la manière suivante pour récupérer une date à partir d'un timestamp stocké en base de données (pour afficher la date au format JJ/MM/AAAA par exemple) :
Code PHP :
Consultez la documentation sur le traitement des dates pour obtenir les autres formats d'affichage.
Configuration du module
L'utilisation des paramètres de configuration serialisés dans le fichier desc.ini a été supprimée.
Utilisez la documentation créer une configuration pour votre module pour convertir les paramètres de configuration du module.
Système de catégories
L'ancien système de catégories a été complètement supprimé.
Pour utiliser le nouveau système de catégories, consultez cette documentation.
Mini-modules
Si vous utilisez un mini-module, ajoutez les fonctions suivantes dans la classe NomDeVotreModuleModuleMiniMenu.class.php :
Code PHP :
public function get_menu_id() { return 'module-mini-nomdumodule'; } public function get_menu_title() { return 'Module title'; } public function is_displayed() { //Vérifiez ici les autorisations d'affichage si besoin return true; }
Remplacez la fonction
display()par
get_menu_content().
Au niveau du template lié au mini-module, supprimez les div
module-mini-container,
module-mini-top,
module-mini-contentset
module-mini-bottompour ne garder que le contenu.
Remplacez :
Code TPL :
Par :
Code TPL :
Contenu
Javascript
Remplacez les fonctions spécifiques javascript scriptaculous par leur équivalent jQuery dans tous vox fichiers de templates si vous utilisiez des fonctions spécifiques comme Effect par exemple.
Constantes pour les messages d'erreur
Les anciennes constantes pour les messages d'erreur ont été supprimées.
Effectuez les remplacement suivants :
- [font= courier new]E_USER_SUCCESS[/font] à remplacer par [font= courier new]MessageHelper::SUCCESS[/font]
- [font= courier new]E_USER_NOTICE[/font] à remplacer par [font= courier new]MessageHelper::NOTICE[/font]
- [font= courier new]E_USER_WARNING[/font] à remplacer par [font= courier new]MessageHelper::WARNING[/font]
- [font= courier new]E_USER_ERROR[/font] à remplacer par [font= courier new]MessageHelper::ERROR[/font]
Sécurité
La sécurité de l'ensemble de PHPBoost a été renforcée dans cette nouvelle version.
Assurez-vous d'avoir l'input token dans tous vos formulaires :
Code TPL :
<input type="hidden" name="token" value="{TOKEN}">
Supprimez tous les accès directs aux variables
$_GET
et $_POST
.Utilisez la fonction
retrieve($var_type, $var_name, $default_value, $force_type = NULL, $flags = 0)à la place.
Exemple :
Code PHP :
$id = retrieve(POST, 'id', 0, TINTEGER);
Templates d'administration
Les liens dans les templates d'administration doivent être mis à jour pour être affichés correctement dans le nouveau design de l'administration.
Remplacez :
Code TPL :
<div id="admin-quick-menu"> <ul> <li class="title-menu">{TITLE}</li> <li> <a href="admin_menu_1.php"><img src="icone.png" alt="{L_MENU_1}" /></a> <a href="admin_menu_1.php" class="quick-link">{L_MENU_1}</a> </li> <li> <a href="admin_menu_2.php"><img src="icone.png" alt="{L_MENU_2}" /></a> <a href="admin_menu_2.php" class="quick-link">{L_MENU_2}</a> </li> </ul> </div>
Par :
Code TPL :
<nav id="admin-quick-menu"> <a href="" class="js-menu-button" onclick="open_submenu('admin-quick-menu');return false;" title="{L_MANAGEMENT}"> <i class="fa fa-bars"></i> {L_MANAGEMENT} </a> <ul> <li> <a href="admin_menu_1.php" class="quick-link">{L_MENU_1}</a> </li> <li> <a href="admin_menu_2.php" class="quick-link">{L_MENU_2}</a> </li> </ul> </nav>