Mise à jour
Cette section de la documentation détaille la procédure de mise à jour d'une installation existante
et regroupe des informations pratiques et utiles pour des montées de versions spécifiques entrainant par
exemple une perte de rétrocompatibilité de la configuration.
Procédure de mise à jour
Installation via paquet Debian
Lors d’une installation par paquet Debian, la mise à jour est grandement facilité par le packaging:
Il vous suffit de mettre à jour le paquet ldapsaisie :
apt update
apt install ldapsaisie
Une fois l’application mise à jour, prêté attention aux nouveautés et point de vigilances décrite dans
la section suivante.
Installation à partir des sources
Lors d’une installation par à partir des sources, le script upgradeFromGit.sh permet
d’automatiser la mise à jour, à condition que vous ayez suivi la procédure d’installation à ce sujet.
Ce script s’occupera alors de :
Nettoyer working-tree Git des liens symboliques des fichiers locaux
(et éventuellement du thème) mis en place lors d’une précédente exécution ;
Vider le cache des templates ;
Mettre à jour le working-tree Git via un git pull
de la mise à jour ;
Installer des liens symboliques pour les fichiers locaux. En cas de fichier remplacant
un fichier livré avec l’application, le script vous notifiera en cas de changement intervenu dans le fichier
fourni avec l’application et vous permettra de le mettre à jour simplement votre fichier local (via un
vim -d) ;
Détecter des changements dans les fichiers MO (traduction) et de
déclencher dans ce cas un rechargement du serveur web pour prise en compte ;
Option : de compiler une version locale à jour de la documentation ;
Une fois l’application mise à jour, prêté attention aux nouveautés et point de vigilances décrite dans
la section suivante.
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 et
authObjectTypeAttrPwd sont remplacés par le tablau LSobjects dans le
paramètre LSauth.
Par exemple:
'authObjectType' => 'LSpeople',
'authObjectFilter' => '(|(uid=%{user})(mail=%{user}))',
'authObjectTypeAttrPwd' => 'userPassword',
Devient:
'LSauth' => array (
'LSobjects' => array(
'LSpeople' => array(
'filter' => '(|(uid=%{user})(mail=%{user}))',
'password_attribute' => 'userPassword',
),
),
[...]
),
Fichiers CSS
corriger les URL des images : url(../../images/default/find.png) devient
url(../image/find). Pour identifier les fichiers CSS concernés, vous pouvez utiliser les
commandes suivantes :grep -Er 'url\(.*images' /etc/ldapsaisie/local/css
grep -Er 'url\(.*\.(png|gif|jpg)' /etc/ldapsaisie/local/css
modification CSS page fatal_error (fichier base.css) :
#fatal_error devient #error
Fichiers PHP
LSsession :: redirect() devient LSurl :: redirect().
Pour identifier les fichiers CSS concernés, vous pouvez utiliser la commande suivante :
grep -Er 'LSsession *:: *redirect *\(' /etc/ldapsaisie/local/
Les inclusions de fichiers Javascript via LSsession :: addJSscript() doivent
être adaptées :
LSsession :: addJSscript('../../local/includes/js/LSformElement_eetelephone.js');
devient LSsession :: addJSscript('LSformElement_eetelephone.js');
LSsession :: addJSscript('../../local/includes/js/LSformElement_eetelephone.js');
devient LSsession :: addJSscript('LSformElement_eetelephone.js');
LSsession :: addJSscript('click-to-dial_view.js', 'local/includes/js/');
devient LSsession :: addJSscript('click-to-dial_view.js');
Pour identifier les fichiers concernés, vous pouvez utiliser les commandes suivantes :
grep -Er 'LSsession *:: *addJSscript\(.*local' /etc/ldapsaisie/local/
grep -Er 'LSsession *:: *addJSscript\(.*\.\.\/' /etc/ldapsaisie/local/
Les inclusions de fichiers CSS via LSsession :: addCssFile() doivent
être adaptées : le nom du fichier CSS uniquememnt doit être conservé (pas de chemin vers le fichier).
Pour identifier les fichiers concernés, vous pouvez utiliser les commandes suivantes :
grep -Er 'LSsession *:: *addCssFile\(.*local' /etc/ldapsaisie/local/
grep -Er 'LSsession *:: *addCssFile\(.*\.\.\/' /etc/ldapsaisie/local/
LSlog vs LSdebug : L’utilisation de LSdebug
est dépriorisée en faveur de LSlog. 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 classe LSlog_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 : LSlog :: get_logger("LSaddon_[addon]")
Cette méthode retourne une référence au logger et il est possible d’appeler directement
une méthode de log, par exemple :
LSlog :: get_logger("LSaddon_[addon]") -> debug("message");
Fichiers templates :
Changement de l’inclusion des templates
Le cas des fichiers top.tpl et bottom.tpl
{include file='ls:top.tpl'}
[...]
{include file='ls:bottom.tpl'}
devient :
{extends file='ls:base_connected.tpl'}
{block name="content"}
[...]
{/block}
Pages à l’état connecté uniquement (incluant le menu, l’entête…).
Fichiers avec entête HTML :
[...]
[...]