dernière maj : lundi 17 février 2013

************************************
* Adaptation du WebCalendar V1.2.4 *
************************************

Adaptation de la personnalisation de webcalendar pour scribe 2.3 :
 - les sources sont les mêmes mais dans un dossier 'webcalendar'
 - le patch est le même mais à renommer en 'webcalendar.patch'
 - il y a des différences dans les scripts d'installation du répertoire 'sharenvole' comme pour le nom de l'appli (webcalendar et non plus calendar) où pour certaines variables
 - il y a 2 templates à mettre à jour à partir des fichiers modifiés par le patch (la modification par le patch sur 2.3 est inutile vus les templates mais pas gênant)
     * le script 'includes/user-cas.php' ajouté par le patch et templatisé dans 'tmpls/webcalendar_user-cas.php'
     * le script 'install/default_config.php' modifié par le patch et templatisé dans 'tmpls/webcalendar_default_config.php'
 - le fichier pour le sso 'calendar_apps.ini' est templatisé à tort sur 2.2 alors que sur 2.3, il fait parti des fichiers du répertoire 'install' juste copié où il faut par le makefile

+ installation du paquet debian :
    - includes/translate.php : prise en compte de la constante 'ABSPATH' fournie par l'installation afin de construire un chemin absolu au lieu du chemin relatif proposé

+ plugin SSO :
    - fichier concerné : includes/user-cas.php
    - activé en spécifiant le nom du fichier à la varaible 'user_inc' du fichier 'includes/settings.php'
    - ensemble de fonctions permettant l'authentification et des traitements concernant l'utilisateur
    - mise en session de la classe et du profil d'un utilisateur
    - utilisé par un grand nombre de fichiers notamment 'login.php' et 'includes/init.php' pour l'authentification
    - listage des utilisateurs : à partir de la table 'webcal_users' et donc incomplet dû à l'auto-create, plus propre mais nécessite de prévoir un import préalable des comptes LDAP (prévu dans EnvOLE 1.5)

+ gestion des droits : A TESTER
    - fichier concerné : includes/access.php et sa fonction 'access_user_calendar()'
    - problème rencontré : impossible d'accéder à l'agenda d'un autre utilisateur, sauf si l'administrateur à donner les droits et il doit le faire au cas par cas...
    - solution proposée : gestion faite par 'user_valid_access()' dans 'includes/user-cas.php'

+ configuration par défaut :
    - fichier concerné : 'install/default_config.php'
    - certains paramètres spécifiques
    - curiosité : la variable 'WEEK_START', si elle n'est pas à lundi(1) et qu'on ne souhaite pas afficher les week-ends, il manque le lundi...

+ tri adapté des utilisateurs :
    - fichiers concernés : 'users.php','select_user.php','edit_entry.php','edit_layer.php','views_edit.php','assistant_edit.php','edit_nonusers.php','group_edit.php','usersel.php'
    - concerne tous les fichiers listant les utilisateurs
    - regroupement pas statut : classes/élèves/enseignants/autre
    - dépend de 'includes/user-cas.php'
    
+ plugin cahier de textes : ACTIVER UNIQUEMENT SI VARIABLES $DISPLAY_CDT ET $cdt_plugin VALIDES
    - fichier concerné : plugin ajouté dans 'includes/user-cas.php'
    - affichage cours/devoirs/semainesA&B : 'includes/functions.php', 'week.php'
    - activation javascript des popups : variable 'entries' dans 'includes/js/popus.php'
    - ajout d'une configuration par défaut : 'C_COLOR', 'D_COLOR' et 'DISPLAY_CDT' à 'Y' dans 'install/default_config.php'
    - couleurs cours/devoirs ajoutées en css dans : 'includes/styles.php'
    - paramétrage par l'utilisateur de l'activation et des couleurs : 'admin.php', 'pref.php'
    - traductions nécessaires : 'translations/French.txt'

+ ajout d'une couleur de fond par calque pour une meilleur visibilité (demande plus professionnel que pédagogique...) :
    - fichiers concernés : 'layers.php', 'edit_layer.php', 'edit_layer_handler.php', 'includes/functions.php', 'includes/js/visible.php', 'French.txt'
    - méthode utilisée : concaténation d'une couleur de fond avec le séparateur "|" dans le champ 'cal_color' de la table 'webcal_user_layers'
    - PROBLEME : si suppression du patch, cette table est alors corrompue avec des données non lisibles par l'application orginale

+ Single Sign Out : la déconnexion globale ne fonctionne pas car Webcalendar s'appuie sur des cookies propres pour vérifier l'authentification
    - fichier concerné : procédure user_cas_logged_in() ajoutée dans 'includes/user-cas.php' et utilisée par 'WebCalendar.class'
