Gestion des skins : Différence entre versions

De OviWiki
Aller à : navigation, rechercher
(Templates)
(Templates)
Ligne 125 : Ligne 125 :
  
 
Les templates ne seront plus modifiables en dehors du noyau, tout le travail de personnalisation devra être fait en ovml.
 
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
+
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 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.
 
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.
  

Version du 8 janvier 2008 à 16:28

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

exemple d'ajout d'un lien dans l'arbre du site :

function bab_onSiteMapItems($event) {
// $event est une instance de bab_eventBeforeSiteMapCreated
$item = $event->createItem('topic1');
$item->setPosition(array('topcat','cat1','cat2'));
$item->setLabel($topicname);
$item->setDescription($topicdescription);
$item->setLink($topicurl, 0);
$item->setLanguage('fr');
$event->addItem($item);
}


createItem : créer un object "élément de l'arbre du site" le paramètre est le nom de l'élément qui sera utilisé pour le positionnement dans l'arbre, il doit être unique.

setPosition : le paramètre de cette fonction est un tableau qui contient le nom des éléments parents dans l'ordre de l'arborescence.

setLabel : Permet de définir le libelé du lien

setDescription : permet de définir une description (attribut title du lien)

setLink : permet de définir l'url du lien, un second paramètre optionnel permettra de définir la méthode d'ouverture du lien (nouvelle fenêtre).

setLanguage : pour que l'élément soit pris en compte dans le filtre de langue d'ovidentia


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 serons 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écifications nécessaires.


Fichier de configuration

Informations du fichier de configuration :

name = "superskin"
version = "1.0"
ov_version = "5.9.0"
thumbnail = "images/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 nomé « skin.ini »

  • name : nom du skin visible par l'interface d'ovidentia
  • version : version du skin pour permettre les chargement de nouvelles versions par zip
  • ov_version : version minimale d'ovidentia nécéssaire
  • thumbnail : 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ées du mode groupware

Les applications web crées dans ovidentia pour le mode groupware serons 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 a 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 utilisteur 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 suffi 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 tout les fichier template d'un skin en équivalent ovml pour le mode fullpage Créer la feuille de style pour le mode groupware si des application sont utilisée (intranet extranet)

Les modules

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