1. La version 4.8

1.1. Les nouveautés de la version 4.8

  • Rationalisation de l’affichage par le système de grille en CSS [#9008]
  • Ajout d’un bouton de validation en haut des formulaires, le doublant comme le lien Retour [#9014]
  • Méthode unique unique d’instanciation de classe métier application::get_inst__om_dbform() qui rend pleinement fonctionnel le custom (i.e. même pour un objet métier dérivé) et facultatif la cascade des classes métier obj/core/gen [#9012]
  • Les scripts sql/<OM_DB_PHPTYPE>/*.form.inc.php ne sont plus générés (mais restent prioritaires), la génération positionne désormais les variables directement dans les classes métier générées [#9013]
  • Suppression de la mention de l’enregistrement de la table *<TABLE>* du libellé des boutons de validation des formulaires [#9011]
  • Refonte améliorant le traitement des paramètres d’URL
    • [#9010] Refonte et optimisation de l’autocomplete
    • [#9015] Refonte de la valorisation des paramètres GET/POST
  • Divers correctifs
    • [#8786] Tri des listes fonctionnel au delà de la 10ème colonne
    • [#8892] Correction instanciation de la classe gen dans le snippet de formulaire “combo”
    • [#9000] Conserver le menu ouvert sur une entrée spécifique d’ajout
    • [#9007] Mise à niveau de la librairie fpdf vers la version 1.81, corrigeant le PHP Deprecated [#9000]
    • [#9009] En authentification par annuaire, pas de journalisation d’erreur an cas d’identifiants incorrects

1.2. Mettre à niveau depuis openMairie 4.7 vers 4.8

1.2.1. Mettre à jour les références externes

Mettre à jour le contenu du fichier EXTERNALS.txt à la racine du projet, et activer ces nouvelles références externes comme indiqué dans le chapitre sur SVN.

1.2.2. Mettre à jour la base de données

La structure de la base de données d’openMairie n’a pas changée depuis la version 4.7.0. Le script SQL data/pgsql/v4.8.0.sql est donc vide.

1.2.3. Gestion du rétablissement d’une grille CSS

Le rétablissement provoque l’ajout d’une « marge » de quelques pixels qui peut déstabiliser un stylage. Pour revenir à la situation précédente, il suffit d’ajouter au fichier app/css/app.css

.col_1, .col_2, .col_3, .col_4, .col_5, .col_6,
.col_7, .col_8, .col_9, .col_10, .col_11, .col_12
 {display: block; float: left; margin: 0;}

Depuis OM 4.7, si vous avez gardé le style du thème open-mairie du framework, le stylage affiche avec un fond blanc les onglets et boutons de formulaire. Pour désactiver cela, le plus rapide est de commenter la ligne 48 du fichier lib/om-theme/om.css

1.2.4. Gestion de l’ajout d’un second bouton de validation en haut de formulaire

Cette fonctionnalité est active par défaut. Pour faciliter le stylage, chaque bouton est balisé par une classe CSS:

  • celui du haut: formControls-top
  • celui du bas : formControls-bottom

Il est possible de neutraliser le bouton du haut en le cachant en css.

.formControls-top input { display: none; }

1.2.5. Lancer une regénération complète

Cette nouvelle version comprend des modifications du générateur, notamment la suppression des fichiers sql/<OM_DB_PHPTYPE>/*.form.inc.php. Une regénération complète est donc nécessaire. A la suite de cette génération, les fichiers sql/<OM_DB_PHPTYPE>/*.form.inc.php qui ne contennaient pas de surcharge effective ne contiennent plus qu’un en-tête.

1.2.6. Suppression des fichiers sql/<OM_DB_PHPTYPE>/*.form.inc.php

Dans le cas d’un système de base de données unique, ou de systèmes utilisant des instructions SQL communes,la multiplicité des scripts est inutile sql/<OM_DB_PHPTYPE>/*.form.inc.php. En ce cas, pour s’aligner sur le fonctionnement du générateur et diminuer le nombre de fichiers pour un objet métier, il est conseillé de :

  • supprimer tous les fichiers générés gen/sql/<OM_DB_PHPTYPE>/*.form.inc.php pour activer l’utilisation des méthodes de remplacement get_var_sql_forminc__…()
  • pour les fichiers sql/<OM_DB_PHPTYPE>/*.form.inc.php * s’il n’est pas surchargé (il ne contient que le require), simplement supprimer le fichier * sinon déplacer le code vers le fichier obj/*.class.php et de le supprimer ensuite

Pour les seules variables censées figurer dans les fichiers sql/<OM_DB_PHPTYPE>/*.form.inc.php: $champs, $sql_ref_<table_référencée> et $sql_ref_<table_référencée>_by_id, il suffit de surcharger les méthodes suivantes qui remplace ces variables :

/**
 *
 * @return array
 */
function get_var_sql_forminc__champs() {
    return array(
        "*<matable>*",
        "*<libelle>*",
        "*<tablereference>*",
    );
}

/**
 *
 * @return string
 */
function get_var_sql_forminc__sql_ref_*<tablereference>*() {
    return "SELECT *<tablereference>*.*<tablereference>*, *<tablereference>*.libelle
            FROM ".DB_PREFIXE."*<tablereference>* ORDER BY *<tablereference>*.libelle ASC";
}

/**
 *
 * @return string
 */
function get_var_sql_forminc__sql_ref_*<tablereference>*_by_id() {
    return "SELECT *<tablereference>*.*<tablereference>*, *<tablereference>*.libelle
            FROM ".DB_PREFIXE."*<tablereference>* WHERE *<tablereference>* = <idx>";
}}