4. La version 4.6¶
4.1. Les nouveautés de la version 4.6¶
- Ajout du support de la version PHP 7.0.
- Intégration dans om-tests du serveur de mail local maildump.
- Mise à jour de la librairie PHPMailer en version 5.2.23.
- Mise à jour de la librairie DB PEAR en version 1.9.2.
- Amélioration de l’ajout de widgets de type “file”.
- Ajout du paramètre tinymce_load dans la méthode app_initialize_content.
- Suppression des anciens paramètres ‘ico’ et ‘help’.
- Suppression des anciennes actions de tableau ($href).
- Suppression des scripts
scr/dashboard_composer.php
etscr/directory.php
. - Suppression du répertoire
pdf/
.
Sommaire
- La version 4.6
- Les nouveautés de la version 4.6
- Mettre à niveau depuis openMairie 4.5 vers 4.6
- Mettre à jour la base de données
- Lancer une regénération complète
- Gestion de la suppression des scripts
pdf/pdf*.php
- Corriger les prototypes des méthodes surchargées s’ils diffèrent de leurs parents
- Suppression du script
scr/directory.php
- Suppression du script
scr/dashboard_composer.php
- Remplacer les anciennes actions de tableau
$href
par les nouvelles$tab_actions
- Modifier les appels et éventuelles surcharges du prototype du constructeur de la classe
om_application
- Supprimer les déclarations de la variable
$ico
- Vérifier d’éventuelles surcharges de la méthode
om_application:sendMail()
- Vérifier d’eventuelle surcharge de la méthode app_initialize_content dans js/layout_jqueryui_after.js
- Vérifier l’utilisation du mot-clé robotframework
Submenu In Menu Should Be Selected
4.2. Mettre à niveau depuis openMairie 4.5 vers 4.6¶
4.2.1. Mettre à jour la base de données¶
La structure de la base de données d’openMairie a changée depuis la version 4.5.0. Pour mettre à jour la base de données depuis cette version il faudra exécuter le script SQL data/pgsql/v4.6.0.sql
.
4.2.2. Lancer une regénération complète¶
Cette nouvelle version comprend des modifications du générateur. Une regénération complète est nécessaire pour le bon fonctionnement de la nouvelle version.
4.2.3. Gestion de la suppression des scripts pdf/pdf*.php
¶
Le répertoire pdf/
a été supprimé du framework. Il est nécessaire de vérifier dans l’applicatif à mettre à niveau tous les appels existants aux scripts présents dans ce répertoire. Si des appels existent, deux méthodes sont disponibles pour obtenir un fonctionnement identique au fonctionnement de la version 4.5 :
4.2.3.1. Méthode n°1 (non conseillée)¶
Plus simple mais ne permet pas de profiter des bénéfices de la suppression du répertoire pdf/
.
- Récupérer les scripts actuels présents dans le répertoire
pdf/
du tag 4.5.0 https://adullact.net/scm/viewvc.php/openmairie/openmairie_exemple/tags/4.5.0/pdf/ - Déposer les scripts nécessaires dans le répertoire
app/
de l’applicatif. - Remplacer le chemin vers ces scripts dans tous les appels existants dans l’applicatif.
4.2.3.2. Méthode n°2 (conseillée)¶
Moins simple mais permet de profiter des bénéfices de la suppression du répertoire pdf/
.
Identifier les cas d’utilisation qui génèrent des éditions.
Intégrer dans une vue/action sur l’objet concerné par l’édition.
<?php ... function init_class_actions() { ... $this->class_actions[201] = array( "identifier" => "edition-pdf", "view" => "view_edition", "portlet" => array( "type" => "action-blank", "libelle" => _("Édition PDF"), ), "permission_suffix" => "edition", ); ... } function view_edition() { $this->checkAccessibility(); $pdfedition = $this->compute_pdf_output( "lettretype", "objet_de_ma_lettre_type" ); $this->expose_pdf_output( $pdfedition["pdf_output"], "mon-fichier-".date('YmdHis').".pdf" ); } ... ?>
4.2.4. Corriger les prototypes des méthodes surchargées s’ils diffèrent de leurs parents¶
Afin d’assurer la compatibilité du code avec la version 7 de PHP, il est nécessaire d’effectuer cette modification.
4.2.5. Suppression du script scr/directory.php
¶
Depuis la version 4.5.0 du framework la vue permettant de synchroniser les utilisateurs avec un annuaire a été déplacée dans une vue de la classe om_utilisateur
, du coup elle est accessible directement depuis l’URL scr/form.php?obj=om_utilisateur&idx=0&action=11
. La mise à niveau consiste au remplacement des appels au script scr/directory.php
par cette URL.
4.2.6. Suppression du script scr/dashboard_composer.php
¶
Depuis la version 4.5.0 du framework la vue permettant de composer le tableau de bord de chaque profil a été déplacée dans une vue de la classe om_dashboard
, du coup elle est accessible directement depuis l’URL scr/form.php?obj=om_dashboard&idx=0&action=4
. La mise à niveau consiste au remplacement des appels au script scr/dashboard_composer.php
par cette URL.
4.2.7. Remplacer les anciennes actions de tableau $href
par les nouvelles $tab_actions
¶
Supprimer la définition des variables $href
en la remplaçant par la définition d’une action selon les paramètres : Actions des tableaux.
4.2.8. Modifier les appels et éventuelles surcharges du prototype du constructeur de la classe om_application
¶
Les paramètres 4 et 5 du constructeur de la classe ont été supprimés dans la version 4.6.0 car dépréciés et plus utilisés depuis la version 4.0.0 du framework.:
- function __construct($flag = NULL, $right = NULL, $title = NULL, $icon = NULL, $help = NULL) {
+ function __construct($flag = NULL, $right = NULL, $title = NULL) {
Il est nécessaire de vérifier les instanciations de la classe utils
.:
require_once "../obj/utils.class.php";
- $f = new utils(NULL, "permission", "Mon titre", "icon.png", "objet_de_mon_aide");
+ $f = new utils(NULL, "permission", "Mon titre");
4.2.9. Supprimer les déclarations de la variable $ico
¶
La variable $ico
permettant d’afficher une image dédiée dan le titre de la page pour afficher un lien vers une aide contextuelle est dépréciée et plus utilisée depuis la version 4.0.0 du framework. Dans la version 4.6.0, cette variable a été complètement supprimée. Pour une meilleure maintenabilité de l’applicatif, il est préférable de supprimer ces déclarations inutiles.
4.2.10. Vérifier d’éventuelles surcharges de la méthode om_application:sendMail()
¶
La nouvelle version de PHPMailer oblige l’inclusion de la classe smtp en plus de la classe phpmailer. Voici le diff à répliquer dans d’éventuelles surcharges
- @include_once "class.phpmailer.php";
+ @require_once "class.smtp.php";
+ @require_once "class.phpmailer.php";
4.2.11. Vérifier d’eventuelle surcharge de la méthode app_initialize_content dans js/layout_jqueryui_after.js¶
En effet il a été rajouté le paramètre tinymce_load dans cette méthode.