Gestion des skins

Un article de OviWiki.

Image:information.png Cet article est incomplet. Son contenu est donc à considérer avec précaution.

Voir la liste des articles incomplets


Sommaire

Améliorations nécessaires avant modification des skins

Gestion de la navigation

Chaque fonctionnalité devra fournir son lien pour accéder au travers du gestionnaire d'événement. La position du lien dans l'arbre pourra être modifiée avec le module sitemap. Afin de garder la compatibilité avec les anciennes versions, l'arbre du site reprendra la structure des sections.

  • Administration
    • Groupes
    • Addon1
  • Utilisateur
    • Congés
    • Addon1
    • Gestionnaire de fichier
    • Catégories de thèmes d'article
      • Catégorie 1
        • Thème 1

nouvel événement :

bab_eventBeforeSiteMapCreated

Documentation : Gestion des nœuds du plan du site


Gestion du cache :

tout l'arbre du site sera mémorisé avec tous les noeuds possibles, une fonction devra être appelée en cas de modification pour provoquer le rafraîchissement de l'arbre. le stockage des informations de l'arbre du site sera réparti sur 5 tables :

  • Structure de l'arbre : bab_sitemap
    • id_node
    • id_parent
    • left
    • right
    • id_function
  • table de liaison entre la fonction et le profil : bab_sitemap_function_profile
    • id_function
    • id_profile
  • table des fonctions utilisées : bab_sitemap_functions
    • id_function
    • langage
    • name
    • url
    • description
    • onclick
  • table des profils : bab_sitemap_profiles
    • id_profile
    • uid (clef unique faite avec la liste des fonctions du profil)
  • Une colonne profil dans la table des utilisateurs


Un profil est un ensemble de noeuds de l'arbre disponible pour 1 ou plusieurs utilisateurs. Si plusieurs utilisateur ont le même arbre, ils ont le même profil.

Si une fonction est intégrée plusieurs fois dans l'arbre, le profil et la table de liaison restent identiques.


Liste des actions qui déclenchent la suppression des arbres de tous les utilisateurs :

  • ajout d'un thème d'article
  • modification des droits d'accès ACL
  • Activation/désactivation d'un module
  • modification de la langue du site
  • Modification du skin du site
  • Déplacement d'un thème
  • Déplacement d'une catégorie
  • Modification de l'état visible/invisible d'un répertoire partagé
  • Suppression d'un répertoire partagé
  • Suppression d'un thème
  • Suppression d'une catégorie
  • Suppression d'un forum
  • Modification de l'état actif/inactif d'un forum

Liste des actions qui déclenchent la suppression de l'arbre d'un utilisateur :

  • modification de la langue de l'utilisateur
  • modification du skin de l'utilisateur
  • l'utilisateur est ajouté dans un groupe
  • l'utilisateur est supprimé d'un groupe
  • la liste des instances d'approbation est recalculée
  • Ajout de l'utilisateur dans le personnel des congés
  • Suppression de l'utilisateur du personnel de congés

OVML

  • Gestion des inclusions
  • Contener pour obtenir la liste des sections ordonnées avec un filtre pour les 2 colonnes de sections (sections personnalisés)
  • Contener pour lister les éléments nouveau sur le portail
  • Contener pour afficher un calendrier avec les événements d'agenda du mois en cours
  • Contener pour afficher un niveau de l'arbre du site
  • Variable pour l'email de l'administrateur
  • Permettre la récupération des thèmes d'articles avec une variable qui définit si il y a des articles en attente d'approbation (à confirmer)
  • Dans le contener de la liste des forums, il faut une variable avec le nombre de contributions en attente (à confirmer)
  • Contener pour le contenu du menu ovidentia groupware
  • Pour chaque article, avoir une url de modification si l'utilisateur a les droits de modification

Nouvelle gestion des skins

Templates

Les templates ne seront plus modifiables en dehors du noyau, tout le travail de personnalisation devra être fait en ovml. 2 modes de gestion seront possibles :

Le mode groupware : tous les templates sont gérés par le noyau et le skin peut lui appliquer une feuille de style non prioritaire

Le mode fullpage : La page entière est un fichier ovml, tout est personnalisable mais les applications d'ovidentia ne peuvent pas être affichées dedans, seules les fonctionnalités fournies par ovml pourront être exploitées dans ce mode.

Si le mode fullpage est utilisé, un nouveau point d'entrée devra être défini dans le site, équivalent d'un « echo=1 » sur les pages ovml

Feuilles de style

En mode groupware, le skin pourra affecter une feuille de style à la page web, celle-ci sera chargée en premier, les feuilles de styles du noyau chargées de l'affichage des applications seront chargées après. La personalisation graphique du groupware se limitera aux propriétés « background » et « color » sur certaines classes définies dans une documentation (4 ou 5 classes maximum) ainsi que la personnalisation de l'ovml chargé en bas de page.

Pour le mode fullpage, aucune spécification n'est nécessaire.

Fichier de configuration

Informations du fichier de configuration :

name = "superskin"
version = "1.0"
ov_version = "5.9.0"
image = "preview.jpg"
ovml_groupware = "ovml/groupware.html"
ovml_groupware_home = "ovml/groupware.html"
css_groupware = "styles/customgroupware.css"
ovml_fullpage = "ovml/fullpage.html"

Le fichier de configuration du skin devra être placé à la racine du répertoire du skin et devra être obligatoirement nommé « skin.ini »

  • name : nom du skin visible par l'interface d'ovidentia
  • version : version du skin pour permettre les chargements de nouvelles versions par zip
  • ov_version : version minimale d'ovidentia nécessaire
  • image : image miniature du skin qui sera affichée dans l'interface d'ovidentia
  • ovml_groupware : permet de charger un fichier ovml sur l'interface groupware en bas de page
  • ovml_groupware_home : le fichier ovml qui sera chargé lors de l'affichage de la page d'accueil du groupware
  • css_groupware : feuille de style du skin chargée en premier dans l'interface groupware
  • ovml_fullpage :

Spécificités du mode groupware

Les applications web créées dans Ovidentia pour le mode groupware seront toujours dans un élément en position absolue.

Par défaut, $babBody->babecho permettra de mettre une application dans la partie contenue, la position absolue permettra de contrôler la position exacte. Un élément placé en top:0 et left:0 se vera positionné dans le cadre prévu à cet effet par la feuille de style « groupware » définie dans le noyau.

Un menu déroulant qui reprend l'arbre du site sera disponible dans le mode groupware pour les fonctionnalités d'Ovidentia

Gestion dynamiques des sections

Le nouveau système de section sera utilisé par les applications pour générer des sections contextuelles. Par exemple, une section de calendrier dans l'agenda ou une section de liste de thème dans l'affichage des articles.

Une Api php permettra au developpeur d'ajouter ces propres sections et aussi de désactiver les sections utilisteurs pour une page donnée(forcer le mode pleine page).

Gestion des skins

Une interface dans Ovidentia sera prévue pour gérer les skins de la même façon que les modules d'Ovidentia, la liste des skins disponibles affichera l'image configurée dans « thumbnail » du fichier de configuration.

Migration

Contraintes

Dans certains cas, il sera impossible de reproduire un skin à l'identique, chaque application Ovidentia pourra être affichée en suivant les contraintes du mode « groupware ». Si le niveau de personnalisation du mode groupware ne suffit plus pour une application, il faudra enrichir l'api ovml pour que l'application cernée fournisse le même niveau de fonctionnalité pour le mode « fullpage »

Mode opératoire

Convertir tous les fichiers template d'un skin en équivalent ovml pour le mode fullpage. Créer la feuille de style pour le mode groupware si des applications sont utilisées (intranet extranet)

Les modules

Les modules continuent à fonctionner à l'identique, ils devront fournir leur api ovml pour être utilisés dans le mode fullpage