Gestion des skins : Différence entre versions
(→Fichier de configuration) |
(→Gestion de la navigation) |
||
| Ligne 25 : | Ligne 25 : | ||
function bab_onSiteMapItems($event) { | function bab_onSiteMapItems($event) { | ||
// $event est une instance de bab_siteMapItems | // $event est une instance de bab_siteMapItems | ||
| − | $item = $event-> | + | $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); | $event->addItem($item); | ||
} | } | ||
</pre> | </pre> | ||
| + | |||
| + | |||
| + | 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 | ||
=== OVML === | === OVML === | ||
Version du 5 janvier 2007 à 10:34
Sommaire
Améliorations nécessaires avant modification des skins
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
- Catégorie 1
nouvel événement :
bab_siteMapItems
exemple d'ajout d'un lien dans l'arbre du site :
function bab_onSiteMapItems($event) {
// $event est une instance de bab_siteMapItems
$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
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 (a confirmer)
- Dans le contener de la liste des forums, il faut une variable avec le nombre de contributions en attente (a 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 serons plus modifiables en dehors du noyau, tout le travail de personalisation devra être fait en ovml. 2 modes de gestion serons possibles le mode groupware : tout 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 personalisable mais les applications d'ovidentia ne peuvent pas être affichées dedans, seules les fonctionnalités fournies par ovml pourrons être exploitées dans ce mode.
Si le mode fullpage est utilisé un nouveau point d'entré devra être définit 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