Mise à jour 2.4.1 -> 3.0.0
Cette mise à jour majeure apporte de nombreuses nouveautés auxquelles il est important de prêter attention. Cette section ne parlera pas particulièrement de ces nouveautés, mais vous pouvez consulter le fichier debian/ldapsaisie.NEWS pour cela. Cette section listera en outre les points de vigilances à avoir et les adaptations à apporter sur votre configuration et votre code personnalisé.
Fichier config.inc.php
- ajout du paramètre
ConsoleTable
avec pour valeur par défaut sous Debian/usr/share/php/Console/Table.php
- ajout du paramètre
public_root_url
avec pour valeur par défaut sous Debian/ldapsaisie
- paramètre
$GLOBALS['defaultCSSfiles']
: il est nécessaire de modifier les URLs des fichiers listés : seul le nom du fichier doit rester, sa localisation sera détectée automatiquement. Par exemple,$GLOBALS['defaultCSSfiles'] = array('../light-blue.css');
devient$GLOBALS['defaultCSSfiles'] = array('light-blue.css');
.
-
les paramètres
authObjectType
,authObjectFilter
etauthObjectTypeAttrPwd
sont remplacés par le tablauLSobjects
dans le paramètreLSauth
.Par exemple:
'authObjectType' => 'LSpeople', 'authObjectFilter' => '(|(uid=%{user})(mail=%{user}))', 'authObjectTypeAttrPwd' => 'userPassword',
Devient:
- Une erreur de frappe historique a été corrigé dans le nom de la variable
$GLOBALS['defaultJSscripts']
, à savoir un "R" manquant.
- Les fichiers Javascript utilisés par défaut par l'application ne sont désormais plus listés dans
la variable
$GLOBALS['defaultJSscripts']
. Seul doit y demeurer vos propres fichiers. Voici la liste des fichiers concernés et qui n'ont plus à être inclus via ce paramètre :-
mootools-core.js
-mootools-more.js
-functions.js
-LSdefault.js
-LSinfosBox.js
Fichiers CSS
Note
Les fichiers light-*.css
ont été retravaillés pour tous hériter du fichier light-blue.css
qui défini les couleurs de l'interface au travers des variables. Ainsi, il est très simple
d'ajuster ce thème à vos couleurs. Si cela vous intéresse, vous pouvez prendre exemple sur les
autres fichiers light-*.css
.
Au passage, ce thème a été retravaillé pour prendre en compte la mise en forme d'un maximum de
composants de l'application tout en profitant du côté responsive de l'interface apporter par
cette mise à jour. Si vous avez un thème personnalisé, il est conseillé de regarder si celui-ci
ne pourrait pas tirer partie du fichier light-blue.css
en le surchargeant. À minima, vous
pouvez analyser les évolutions de ce fichier pour identifier les modifications intéressantes à
reporter sur votre thème personnel.
- Si vous utilisez un des fichiers
light-*.css
autre que le fichierlight-blue.css
, vous devez désormais également charger ce dernier en premier.
-
corriger les URL des images :
url(../../images/default/find.png)
devienturl(../image/find)
. Pour identifier les fichiers CSS concernés, vous pouvez utiliser les commandes suivantes :
- modification CSS page
fatal_error
(fichierbase.css
) :#fatal_error
devient#error
Fichiers PHP
-
LSsession :: redirect()
devientLSurl :: redirect()
. Pour identifier les fichiers CSS concernés, vous pouvez utiliser la commande suivante :
-
Les méthodes de gestion des Javascript et CSS additionels ont été migrées de la classe
LSsession
vers la classeLStemplate
:-
LSsession :: addJSscript()
devientLStemplate :: addJSscript()
.Par ailleurs le paramètre
$path
disparait et la méthodeaddLibJSscript
a été ajoutée pour permettre spécifiquement l'inclusion des fichiers Javascript des librairies. Voici quelques exemples d'utilisation et leur équivalent à présent:LSsession :: addJSscript('../../local/includes/js/LSformElement_eetelephone.js');
devientLStemplate :: addJSscript('LSformElement_eetelephone.js');
LSsession :: addJSscript('../../local/includes/js/LSformElement_eetelephone.js');
devientLStemplate :: addJSscript('LSformElement_eetelephone.js');
LSsession :: addJSscript('click-to-dial_view.js', 'local/includes/js/');
devientLStemplate :: addJSscript('click-to-dial_view.js');
LSsession :: addJSscript('Picker.js',LS_LIB_DIR.'arian-mootools-datepicker/');
devientLStemplate :: addLibJSscript('arian-mootools-datepicker/Picker.js');
LSsession :: addJSconfigParam()
devientLStemplate :: addJSconfigParam()
.
LSsession :: addHelpInfos()
devientLStemplate :: addHelpInfo()
.
-
LSsession :: addCssFile()
devientLStemplate :: addCssFile()
.Par ailleurs le paramètre
$path
disparait et la méthodeaddLibCssFile
à été ajoutée pour permettre spécifiquement l'inclusion des fichiers CSS des librairies. Voici quelques exemples d'utilisation et leur équivalent à présent:LSsession :: addCssFile('test.css', '../../local/css/');
devientLStemplate :: addCssFile('test.css');
. Doit donc être conservé, que le nom du fichier CSS, pas de chemin vers celui-ci.
LSsession :: addCssFile('datepicker_vista.css',LS_LIB_DIR.'arian-mootools-datepicker/datepicker_vista/');
devientLStemplate :: addLibCssFile('arian-mootools-datepicker/datepicker_vista/datepicker_vista.css');
Pour identifier les fichiers concernés, vous pouvez utiliser les commandes suivantes :
grep -Er 'LSsession *:: *(addJSscript|addLibJSscript|addJSconfigParam|addHelpInfos|addCssFile|addLibCssFile) *\(' /etc/ldapsaisie/local/ grep -Er '(LSsession|LStemplate) *:: *addJSscript\(.*local' /etc/ldapsaisie/local/ grep -Er '(LSsession|LStemplate) *:: *addJSscript\(.*\.\.\/' /etc/ldapsaisie/local/ grep -Er '(LSsession|LStemplate) *:: *addCssFile\(.*local' /etc/ldapsaisie/local/ grep -Er '(LSsession|LStemplate) *:: *addCssFile\(.*\.\.\/' /etc/ldapsaisie/local/
-
-
LSlog
vsLSdebug
: L’utilisation deLSdebug
est dépriorisée en faveur deLSlog
. Ce dernier ajoute désormais la notion de logger, permettant d’identifier la source des logs. Ce mécanisme permet la configuration d’un niveau de log spécifique pour un logger donné, ainsi que la mise en place de filtres au niveau des handers pour ne logger par exemple que certains loggers, ou à l’inverse en exclure d’autres.- Pour vos classes personnalisées : si celles-ci héritent d’une classe standard, il est fort
probable qu’il soit possible d’utiliser des méthodes fournies par cette classe pour logguer
au travers un logger dédié (voir les méthodes
log_debug
,log_info
, …). À défaut, il est possible d’utiliser la classeLSlog_staticLoggerClass
qui facilite l’implémentation.
-
Pour vos LSaddons : il est conseillé d’utiliser un logger
LSaddon_[addon]
dédié. Le logger peut facilement être récupéré de la manière suivante :Cette méthode retourne une référence au logger et il est possible d’appeler directement une méthode de log, par exemple :
- Pour vos classes personnalisées : si celles-ci héritent d’une classe standard, il est fort
probable qu’il soit possible d’utiliser des méthodes fournies par cette classe pour logguer
au travers un logger dédié (voir les méthodes
Fichiers templates :
Changement de l’inclusion des templates
-
Le cas des fichiers
top.tpl
etbottom.tpl
devient :
Note
Pages à l’état connecté uniquement (incluant le menu, l’entête…).
-
Fichiers avec entête HTML :
devient :
Au besoin, si vous avez besoin :
-
de remplacer les fichiers CSS chargés par défaut (
base.css
par exemple) : ajouter le blockcss
:{block name="css"} <link rel="stylesheet" type="text/css" href="{css name='custom.css'}" media="screen" title="Normal" /> {include file='ls:css.tpl'} {/block}
Note
Ce block contient tous les CSS, y compris ceux gérés par
LSsession :: addCssFile()
. Pensez à ajouter{include file='ls:css.tpl'}
pour conserver ces derniers.
-
d’ajouter des infos dans
<head>
: ajouter le blockhead
(vide par défaut) :
-
d’ajouter des fichiers Javascript personnalisés : ajouter le block
js
(vide par défaut):Note
Ce block sera ajouté APRÈS les autres fichiers Javascript chargés (ceux par défaut et ceux ajoutés via
LSsession :: addJSscript()
.
-
-
Autres fichiers remplacés :
blank.tpl
remplacé parbase.tpl
empty.tpl
remplacé parbase_connected.tpl
accueil.tpl
remplacé parhomepage.tpl
Pour identifier les fichiers concernés, vous pouvez utiliser la commande suivante :
Fichiers templates fournis par défaut :
Vérifier les modifications des fichiers templates fourni avec l’application et que vous auriez personnalisé. Pour cela, vous pouvez utiliser la commande suivante :
for i in $( ls /etc/ldapsaisie/local/templates/* )
do
default_file="/usr/share/ldapsaisie/templates/default/$( basename "$i" )"
[ ! -e "$default_file" ] && continue
vi -d $default_file $i
done
Note
Une attention particulière doit être porté aux fichiers login.tpl
et recoverpassword.tpl
qui
ont particulièrement changés.
Corriger les URL des images :
../../images/default/find.png
devient ../image/find
Pour identifier les fichiers concernés, vous pouvez utiliser les commandes suivantes :
grep -Er 'images' /etc/ldapsaisie/local/templates
grep -Er '\.(png|gif|jpg)' /etc/ldapsaisie/local/templates
Le cas de variable de template {$LSsession_css}
et {$LSsession_js}
:
Note
Ceci est déjà géré si vous étendez bien vos templates du fichier base.tpl
(pour les pages
non-connectées) ou base_connected.tpl
(pour les pages connectées).
{$LSsession_css}
doit être remplacé par{include file='ls:css.tpl'}
{$LSsession_js}
doit être remplacé par{include file='ls:js.tpl'}
Tous les fichiers : Modification des URLs
-
view.php
:- page recherche :
view.php?LSobject=LSpeople
devientobject/LSpeople
- page d'un objet :
view.php?LSobject=LSpeople&dn=$dn
devientobject/LSpeople/$dn
- page recherche :
addon_view.php
:addon_view.php?LSaddon=ee&view=copyContract
devientaddon/ee/copyContract
-
index_ajax.php
:
global_search.php
:global_search.php?refresh
devientsearch?refresh
index.php
:index.php?LSsession_recoverPassword
devientindex?LSsession_recoverPassword
create.php
:create.php?LSobject=LSpeople
devientobject/LSpeople/create
modify.php
:modify.php?LSobject=LSpeople&dn=$dn
devientobject/LSpeople/$dn/modify
import.php
:import.php?LSobject=LSpeople
devientobject/LSpeople/import
-
remove.php
:remove.php?LSobject=LSpeople&dn=$dn
devientobject/LSpeople/$dn/remove
Avec validation :
remove.php?LSobject=LSpeople&dn=$dn&valid
devientobject/LSpeople/$dn/remove?valid
select.php
:select.php?LSobject=LSpeople
devientobject/LSpeople/select
-
custom_action.php
:custom_action.php?LSobject=LSpeople&dn=$dn&customAction=$customAction
devientobject/LSpeople/$dn/customAction/$customAction
Avec validation :
custom_action.php?LSobject=LSpeople&dn=$dn&customAction=$customAction&valid
devientobject/LSpeople/$dn/customAction/$customAction?valid
-
custom_search_action.php
:custom_search_action.php?LSobject=LSpeople&customAction=$customAction
devientobject/LSpeople/customAction/$customAction
Avec validation :
custom_search_action.php?LSobject=LSpeople&customAction=$customAction&valid
devientobject/LSpeople/customAction/$customAction?valid
Pour identifier les fichiers concernés, vous pouvez utiliser la commande suivante :