<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>https://wiki.ovidentia.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nouaya</id>
		<title>OviWiki - Contributions de l’utilisateur [fr]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.ovidentia.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nouaya"/>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php/Sp%C3%A9cial:Contributions/Nouaya"/>
		<updated>2026-04-18T17:37:15Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.26.4</generator>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=4720</id>
		<title>Feuille de route</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=4720"/>
				<updated>2010-06-03T20:02:50Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Version 7.3.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version 7.2.0 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| La page &amp;quot;Nouveautés&amp;quot; dans le noyau devient un module d'Ovidentia installé par défaut dans la distribution mais supprimable  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Un bouton de configuration dans la liste des modules de l'administrateur peut être ajouté sur chaque module a partir du fichier [[Variables du fichier addonini|addonini.php]] || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Les gestionnaires d'un thème d'articles peuvent maintenant modifier un commentaire d'article  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Utilisation du captcha lors de la rédaction d'un commentaire par un anonyme  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Lors de la rédaction d'un article, les utilisateurs peuvent noter l'article. Cette notation ( de 1 à 5 ) est restituée lors de la visualisation de l'article par OVML  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Possibilité de supprimer plusieurs utilisateurs en même temps   || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Possibilité de copier ou de déplacer les membres d'un groupe vers un autre groupe   || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Dans les forums, possibilité d'afficher un autre de champ de l'annuaire au lieu du nom du contributeur  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Nouvelle gestion de l'installation des modules et du noyau, ajout de la possibilité d'ajout des messages pour suivre la progression de l'installation || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Amélioration de l'API de l'éditeur WYSIWYG, tout les emplacement de contenu modifiable du noyau sont désormais capable de supporter des formats autre que le HTML || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Les utilisateurs peuvent configurer comment ils seront notifiés quand de nouvelles contributions arrivent sur les forums ( Pas de notification, notification uniquement quand un nouveau sujet est initié ) || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Supprimer des utilisateurs créés depuis une date donné, dans le menu administration &amp;gt; utilisateurs &amp;gt; utilitaires. ceci permet de revenir en arrière sur un import d'utilisateurs || Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 7.3.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot; | '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Modification du plan du site dans le noyau pour que les différentes pages du site puisse fournir leurs mots clefs pour le référencement en même temps que le point d'accès dans le sitemap  || A l'étude&lt;br /&gt;
|-&lt;br /&gt;
|| Modification du comportement des droits d'accès dans les agendas, toujours permettre la modification des évènements de son agenda sauf quand un événement est verrouillé  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Notification de l'auteur d'un événement en plus des participants en cas de modification de l'évènement  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Calcul partiel du plan du site en base pour améliorer les performances et supporter des arborescences plus importantes  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de la possibilité d'insérer plusieurs articles ( $ARTICLE ) d'un même thème à l'aide de l'éditeur WYSIWYG || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de la possibilité de paramétrer l'ordre des résultats pour la recherche dans les annuaires, le paramétrage peut se faire par annuaire et pour tous les annuaires confondus (recherche globale) || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Maintenant il est possible de choisir les colonnes à afficher dans le gestionnaire de fichiers. Cette configuration se fait par l'administrateur général et est valable pour tous les répertoires || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| On peut maintenant choisir la couleur d'affichage des jours fériés dans l'agenda || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Dans les menu Administrateur-&amp;gt;Sites, scinder les options de l'agenda des options relatifs aux congés et aux jours fériés || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Dans la vue mensuelle de l'agenda, il sera possible de n'afficher que les jours du mois courant. Cette configuration est faite par l'administrateur et peut être surchargée par l'utilisateur dans ses options de l'agenda  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| une gestion des événements  à été ajouté sur la publication des fichiers dans le gestionnaires de fichiers, la notification par mail des destinataires est faite par une fonction externe enregistrée sur ces événements. Un module peut s'enregistrer et remplacer la gestion normale des notifications  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout d'un choix d'envoi d'un e-mail de notification à l'utilisateur auquel on vient de modifier son mot de passe || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout d'une option dans le paramétrage du site pour choisir le plan du site utilisé || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de &amp;lt;OFSitemapPosition&amp;gt; et &amp;lt;OFSitemapMenu&amp;gt; qui renvoi des portions de HTMl liés au plan du site en cours d'utilisation || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Nouvelle variable de template { SitemapPosition } disponible dans page.html || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de la possibilité d'annuler un fichier ou un répertoire coupé || Fait&lt;br /&gt;
|-|}&lt;br /&gt;
&lt;br /&gt;
== Version future ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Création d'un (ou de) module(s) de saisie de notes et remplacement de la fonctionnalité Notes du noyau  || A l'étude&lt;br /&gt;
|-&lt;br /&gt;
|| Passer l'éditeur wysiwyg &amp;quot;htmlarea&amp;quot; dans un module  || A l'étude&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Anciennes versions ==&lt;br /&gt;
&lt;br /&gt;
Voir l'historique des changements pour les anciennes versions : [[Feuille de route (archives)]]&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=4709</id>
		<title>Feuille de route</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=4709"/>
				<updated>2010-04-27T12:14:59Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Version 7.3.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version 7.2.0 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| La page &amp;quot;Nouveautés&amp;quot; dans le noyau devient un module d'Ovidentia installé par défaut dans la distribution mais supprimable  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Un bouton de configuration dans la liste des modules de l'administrateur peut être ajouté sur chaque module a partir du fichier [[Variables du fichier addonini|addonini.php]] || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Les gestionnaires d'un thème d'articles peuvent maintenant modifier un commentaire d'article  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Utilisation du captcha lors de la rédaction d'un commentaire par un anonyme  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Lors de la rédaction d'un article, les utilisateurs peuvent noter l'article. Cette notation ( de 1 à 5 ) est restituée lors de la visualisation de l'article par OVML  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Possibilité de supprimer plusieurs utilisateurs en même temps   || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Possibilité de copier ou de déplacer les membres d'un groupe vers un autre groupe   || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Dans les forums, possibilité d'afficher un autre de champ de l'annuaire au lieu du nom du contributeur  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Nouvelle gestion de l'installation des modules et du noyau, ajout de la possibilité d'ajout des messages pour suivre la progression de l'installation || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Amélioration de l'API de l'éditeur WYSIWYG, tout les emplacement de contenu modifiable du noyau sont désormais capable de supporter des formats autre que le HTML || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Les utilisateurs peuvent configurer comment ils seront notifiés quand de nouvelles contributions arrivent sur les forums ( Pas de notification, notification uniquement quand un nouveau sujet est initié ) || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Supprimer des utilisateurs créés depuis une date donné, dans le menu administration &amp;gt; utilisateurs &amp;gt; utilitaires. ceci permet de revenir en arrière sur un import d'utilisateurs || Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 7.3.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot; | '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Modification du plan du site dans le noyau pour que les différentes pages du site puisse fournir leurs mots clefs pour le référencement en même temps que le point d'accès dans le sitemap  || A l'étude&lt;br /&gt;
|-&lt;br /&gt;
|| Modification du comportement des droits d'accès dans les agendas, toujours permettre la modification des évènements de son agenda sauf quand un événement est verrouillé  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Notification de l'auteur d'un événement en plus des participants en cas de modification de l'évènement  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Calcul partiel du plan du site en base pour améliorer les performances et supporter des arborescences plus importantes  || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de la possibilité d'insérer plusieurs articles ( $ARTICLE ) d'un même thème à l'aide de l'éditeur WYSIWYG || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de la possibilité de paramétrer l'ordre des résultats pour la recherche dans les annuaires, le paramétrage peut se faire par annuaire et pour tous les annuaires confondus (recherche globale) || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Maintenant il est possible de choisir les colonnes à afficher dans le gestionnaire de fichiers. Cette configuration se fait par l'administrateur général et est valable pour tous les répertoires || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| On peut maintenant choisir la couleur d'affichage des jours fériés dans l'agenda || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Dans les menu Administrateur-&amp;gt;Sites, scinder les options de l'agenda des options relatifs aux congés et aux jours fériés || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Dans la vue mensuelle de l'agenda, il sera possible de n'afficher que les jours du mois courant. Cette configuration est faite par l'administrateur et peut être surchargée par l'utilisateur dans ses options de l'agenda  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version future ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Création d'un (ou de) module(s) de saisie de notes et remplacement de la fonctionnalité Notes du noyau  || A l'étude&lt;br /&gt;
|-&lt;br /&gt;
|| Passer l'éditeur wysiwyg &amp;quot;htmlarea&amp;quot; dans un module  || A l'étude&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Anciennes versions ==&lt;br /&gt;
&lt;br /&gt;
Voir l'historique des changements pour les anciennes versions : [[Feuille de route (archives)]]&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=4701</id>
		<title>Feuille de route</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=4701"/>
				<updated>2010-02-25T08:16:38Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Version 7.3.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version 7.2.0 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| La page &amp;quot;Nouveautés&amp;quot; dans le noyau devient un module d'Ovidentia installé par défaut dans la distribution mais supprimable  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Un bouton de configuration dans la liste des modules de l'administrateur peut être ajouté sur chaque module a partir du fichier [[Variables du fichier addonini|addonini.php]] || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Les gestionnaires d'un thème d'articles peuvent maintenant modifier un commentaire d'article  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Utilisation du captcha lors de la rédaction d'un commentaire par un anonyme  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Lors de la rédaction d'un article, les utilisateurs peuvent noter l'article. Cette notation ( de 1 à 5 ) est restituée lors de la visualisation de l'article par OVML  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Possibilité de supprimer plusieurs utilisateurs en même temps   || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Possibilité de copier ou de déplacer les membres d'un groupe vers un autre groupe   || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Dans les forums, possibilité d'afficher un autre de champ de l'annuaire au lieu du nom du contributeur  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Nouvelle gestion de l'installation des modules et du noyau, ajout de la possibilité d'ajout des messages pour suivre la progression de l'installation || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Amélioration de l'API de l'éditeur WYSIWYG, tout les emplacement de contenu modifiable du noyau sont désormais capable de supporter des formats autre que le HTML || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Les utilisateurs peuvent configurer comment ils seront notifiés quand de nouvelles contributions arrivent sur les forums ( Pas de notification, notification uniquement quand un nouveau sujet est initié ) || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Supprimer des utilisateurs créés depuis une date donné, dans le menu administration &amp;gt; utilisateurs &amp;gt; utilitaires. ceci permet de revenir en arrière sur un import d'utilisateurs || Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 7.3.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot; | '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Modification du plan du site dans le noyau pour que les différentes pages du site puisse fournir leurs mots clefs pour le référencement en même temps que le point d'accès dans le sitemap  || A l'étude&lt;br /&gt;
|-&lt;br /&gt;
|| Modification du comportement des droits d'accès dans les agendas, toujours permettre la modification des évènements de son agenda sauf quand un événement est verrouillé  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Notification de l'auteur d'un événement en plus des participants en cas de modification de l'évènement  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Calcul partiel du plan du site en base pour améliorer les performances et supporter des arborescences plus importantes  || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de la possibilité d'insérer plusieurs articles ( $ARTICLE ) d'un même thème à l'aide de l'éditeur WYSIWYG || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de la possibilité de paramétrer l'ordre des résultats pour la recherche dans les annuaires, le paramétrage peut se faire par annuaire et pour tous les annuaires confondus (recherche globale) || Fait&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version future ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Création d'un (ou de) module(s) de saisie de notes et remplacement de la fonctionnalité Notes du noyau  || A l'étude&lt;br /&gt;
|-&lt;br /&gt;
|| Passer l'éditeur wysiwyg &amp;quot;htmlarea&amp;quot; dans un module  || A l'étude&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Anciennes versions ==&lt;br /&gt;
&lt;br /&gt;
Voir l'historique des changements pour les anciennes versions : [[Feuille de route (archives)]]&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=4694</id>
		<title>Feuille de route</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=4694"/>
				<updated>2010-02-22T14:47:38Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Version 7.3.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version 6.7.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer des fonctionnalités externe (Voir l'article [[Communication entre les modules]])   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de tester la présence des fonctionnalités comme des prérequis pour l'installation d'un module ou du noyau   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité d'ajouter un script de prérequis personnalisés pour l'installation d'un module   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Controle de disponibilité pour empêcher le surbooking dans les agendas de ressources  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de catégories sur les délégations utilisables dans l'OVML    || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout du contener OVML OCRecentFaqQuestions  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de l'API des articles ( Voir [[API Articles]])  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout des types de congés avec les couleurs sur la visualisation d'un congé dans l'agenda  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout de la gestion des plusieurs périodes d'exclusion dans les droits de congés ||   Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 7.0.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer le plan du site dans le noyau   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration des skins en tant que modules  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Déléguer la saisie de certains champs de l'annuaire à des utilisateurs en utilisant les droits ACL.&lt;br /&gt;
Les utilisateurs ayant le droit de mettre à jour l'annuaire continueront à le faire sur tous les champs de l'annuaire.&lt;br /&gt;
Les utilisateurs ayant le droit de modification sur certains champs ne pourront pas modifier les autres champs de l'annuaire ( sauf s'ils ont le droit de modification sur l'annuaire ). Un utilisateur qui a le droit de modification sur un champ pourra le faire sur toutes les fiches annuaires des utilisateurs du portail.&lt;br /&gt;
|| Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la liste des module pour séparer les modules utiles des modules de bibliothèques partagées et des thèmes  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout des contrôles de dépendances entre les modules lors de la suppression  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de la nouvelle [[API de gestion d'un module]]  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de typer les entités d'un organigramme pour mieux les personnaliser en exploitant un fichier CSS   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Nouveaux containers pour l'organigramme ( Liste des entités d'un utilisateur, liste des entités parents d'une entité )   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Utilisation d'un fichier OVML pour afficher la fiche annuaire d'un utilisateur dans les organigrammes   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Paramétrage du seuil d'affichage vertical d'un organigramme. Ajout d'une option pour les gestionnaires et prise en compte de ce seuil lors de la visualisation de l'organigramme   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout des options permettant de modifier/supprimer tous les événements répétitifs postérieurs à un événement répétitif  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de dupliquer un événement. A partir du formulaire de modification d'un événement, permettre de dupliquer l'événement en copiant toutes les informations ( sauf les informations de répétition ) vers le formulaire de création  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Support du mode d'encodage UTF-8 dans le portail || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité d'associer des images aux catégories d'articles, aux thèmes d'articles et aux articles  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de faire une recherche en spécifiant une catégorie d'articles  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de la possibilité de supprimer un groupe et ses enfants, uniquement les enfants de premier niveau ou seulement les enfants  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de PHP (passage à PHP 5.1.0)  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de MySQL (passage à MySQL 4.1.0)  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Le skin par défaut livré dans l'archive d'Ovidentia devient un module lors d'une nouvelle installation || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout d'un champ de recherche sur la liste des utilisateurs de l'administration || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API pour interagir avec l'organigramme  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API de base pour interagir avec le gestionnaire de fichier || Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 7.1.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API pour la recherche  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API de gestion de tags et thésaurus  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| [[Nouvelle interface de recherche dans le noyau]] || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de spécifier pour un compte utilisateur une période de connexion. En dehors de cette période le compte de l'utilisateur est désactivé || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout d'une fonction permettant d'historiser les téléchargements pour un répertoire collectif donné. L'historique affichera pour chaque fichier: la date du téléchargement, l'auteur, etc...  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de limiter le nombre de téléchargements pour un fichier donné  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Gestion des packages contenant plusieurs modules  || Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 7.2.0 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| La page &amp;quot;Nouveautés&amp;quot; dans le noyau devient un module d'Ovidentia installé par défaut dans la distribution mais supprimable  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Un bouton de configuration dans la liste des modules de l'administrateur peut être ajouté sur chaque module a partir du fichier [[Variables du fichier addonini|addonini.php]] || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Les gestionnaires d'un thème d'articles peuvent maintenant modifier un commentaire d'article  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Utilisation du captcha lors de la rédaction d'un commentaire par un anonyme  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Lors de la rédaction d'un article, les utilisateurs peuvent noter l'article. Cette notation ( de 1 à 5 ) est restituée lors de la visualisation de l'article par OVML  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Possibilité de supprimer plusieurs utilisateurs en même temps   || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Possibilité de copier ou de déplacer les membres d'un groupe vers un autre groupe   || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Dans les forums, possibilité d'afficher un autre de champ de l'annuaire au lieu du nom du contributeur  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Nouvelle gestion de l'installation des modules et du noyau, ajout de la possibilité d'ajout des messages pour suivre la progression de l'installation || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Amélioration de l'API de l'éditeur WYSIWYG, tout les emplacement de contenu modifiable du noyau sont désormais capable de supporter des formats autre que le HTML || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Les utilisateurs peuvent configurer comment ils seront notifiés quand de nouvelles contributions arrivent sur les forums ( Pas de notification, notification uniquement quand un nouveau sujet est initié ) || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Supprimer des utilisateurs créés depuis une date donné, dans le menu administration &amp;gt; utilisateurs &amp;gt; utilitaires. ceci permet de revenir en arrière sur un import d'utilisateurs || Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 7.3.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot; | '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Modification du plan du site dans le noyau pour que les différentes pages du site puisse fournir leurs mots clefs pour le référencement en même temps que le point d'accès dans le sitemap  || A l'étude&lt;br /&gt;
|-&lt;br /&gt;
|| Modification du comportement des droits d'accès dans les agendas, toujours permettre la modification des évènements de son agenda sauf quand un événement est verrouillé  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Notification de l'auteur d'un événement en plus des participants en cas de modification de l'évènement  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Calcul partiel du plan du site en base pour améliorer les performances et supporter des arborescences plus importantes  || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de la possibilité d'insérer plusieurs articles ( $ARTICLE ) d'un même thème à l'aide de l'éditeur WYSIWYG || Fait&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version future ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Création d'un (ou de) module(s) de saisie de notes et remplacement de la fonctionnalité Notes du noyau  || A l'étude&lt;br /&gt;
|-&lt;br /&gt;
|| Passer l'éditeur wysiwyg &amp;quot;htmlarea&amp;quot; dans un module  || A l'étude&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=4693</id>
		<title>Feuille de route</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=4693"/>
				<updated>2010-02-22T14:46:04Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Version 7.3.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version 6.7.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer des fonctionnalités externe (Voir l'article [[Communication entre les modules]])   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de tester la présence des fonctionnalités comme des prérequis pour l'installation d'un module ou du noyau   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité d'ajouter un script de prérequis personnalisés pour l'installation d'un module   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Controle de disponibilité pour empêcher le surbooking dans les agendas de ressources  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de catégories sur les délégations utilisables dans l'OVML    || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout du contener OVML OCRecentFaqQuestions  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de l'API des articles ( Voir [[API Articles]])  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout des types de congés avec les couleurs sur la visualisation d'un congé dans l'agenda  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout de la gestion des plusieurs périodes d'exclusion dans les droits de congés ||   Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 7.0.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer le plan du site dans le noyau   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration des skins en tant que modules  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Déléguer la saisie de certains champs de l'annuaire à des utilisateurs en utilisant les droits ACL.&lt;br /&gt;
Les utilisateurs ayant le droit de mettre à jour l'annuaire continueront à le faire sur tous les champs de l'annuaire.&lt;br /&gt;
Les utilisateurs ayant le droit de modification sur certains champs ne pourront pas modifier les autres champs de l'annuaire ( sauf s'ils ont le droit de modification sur l'annuaire ). Un utilisateur qui a le droit de modification sur un champ pourra le faire sur toutes les fiches annuaires des utilisateurs du portail.&lt;br /&gt;
|| Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la liste des module pour séparer les modules utiles des modules de bibliothèques partagées et des thèmes  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout des contrôles de dépendances entre les modules lors de la suppression  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de la nouvelle [[API de gestion d'un module]]  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de typer les entités d'un organigramme pour mieux les personnaliser en exploitant un fichier CSS   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Nouveaux containers pour l'organigramme ( Liste des entités d'un utilisateur, liste des entités parents d'une entité )   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Utilisation d'un fichier OVML pour afficher la fiche annuaire d'un utilisateur dans les organigrammes   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Paramétrage du seuil d'affichage vertical d'un organigramme. Ajout d'une option pour les gestionnaires et prise en compte de ce seuil lors de la visualisation de l'organigramme   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout des options permettant de modifier/supprimer tous les événements répétitifs postérieurs à un événement répétitif  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de dupliquer un événement. A partir du formulaire de modification d'un événement, permettre de dupliquer l'événement en copiant toutes les informations ( sauf les informations de répétition ) vers le formulaire de création  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Support du mode d'encodage UTF-8 dans le portail || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité d'associer des images aux catégories d'articles, aux thèmes d'articles et aux articles  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de faire une recherche en spécifiant une catégorie d'articles  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de la possibilité de supprimer un groupe et ses enfants, uniquement les enfants de premier niveau ou seulement les enfants  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de PHP (passage à PHP 5.1.0)  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de MySQL (passage à MySQL 4.1.0)  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Le skin par défaut livré dans l'archive d'Ovidentia devient un module lors d'une nouvelle installation || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout d'un champ de recherche sur la liste des utilisateurs de l'administration || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API pour interagir avec l'organigramme  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API de base pour interagir avec le gestionnaire de fichier || Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 7.1.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API pour la recherche  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API de gestion de tags et thésaurus  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| [[Nouvelle interface de recherche dans le noyau]] || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de spécifier pour un compte utilisateur une période de connexion. En dehors de cette période le compte de l'utilisateur est désactivé || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout d'une fonction permettant d'historiser les téléchargements pour un répertoire collectif donné. L'historique affichera pour chaque fichier: la date du téléchargement, l'auteur, etc...  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de limiter le nombre de téléchargements pour un fichier donné  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Gestion des packages contenant plusieurs modules  || Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 7.2.0 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| La page &amp;quot;Nouveautés&amp;quot; dans le noyau devient un module d'Ovidentia installé par défaut dans la distribution mais supprimable  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Un bouton de configuration dans la liste des modules de l'administrateur peut être ajouté sur chaque module a partir du fichier [[Variables du fichier addonini|addonini.php]] || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Les gestionnaires d'un thème d'articles peuvent maintenant modifier un commentaire d'article  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Utilisation du captcha lors de la rédaction d'un commentaire par un anonyme  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Lors de la rédaction d'un article, les utilisateurs peuvent noter l'article. Cette notation ( de 1 à 5 ) est restituée lors de la visualisation de l'article par OVML  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Possibilité de supprimer plusieurs utilisateurs en même temps   || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Possibilité de copier ou de déplacer les membres d'un groupe vers un autre groupe   || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Dans les forums, possibilité d'afficher un autre de champ de l'annuaire au lieu du nom du contributeur  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Nouvelle gestion de l'installation des modules et du noyau, ajout de la possibilité d'ajout des messages pour suivre la progression de l'installation || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Amélioration de l'API de l'éditeur WYSIWYG, tout les emplacement de contenu modifiable du noyau sont désormais capable de supporter des formats autre que le HTML || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Les utilisateurs peuvent configurer comment ils seront notifiés quand de nouvelles contributions arrivent sur les forums ( Pas de notification, notification uniquement quand un nouveau sujet est initié ) || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Supprimer des utilisateurs créés depuis une date donné, dans le menu administration &amp;gt; utilisateurs &amp;gt; utilitaires. ceci permet de revenir en arrière sur un import d'utilisateurs || Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 7.3.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot; | '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Modification du plan du site dans le noyau pour que les différentes pages du site puisse fournir leurs mots clefs pour le référencement en même temps que le point d'accès dans le sitemap  || A l'étude&lt;br /&gt;
|-&lt;br /&gt;
|| Modification du comportement des droits d'accès dans les agendas, toujours permettre la modification des évenements de sont agenda sauf quand un événement est verrouillé  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Notification de l'auteur d'un événement en plus des participants en cas de modification de l'évènement  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Calcul partiel du plan du site en base pour améliorer les performances et supporter des arborescences plus importantes  || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de la possibilité d'insérer plusieurs articles ( $ARTICLE ) d'un même thème à l'aide de l'éditeur WYSIWYG || Fait&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version future ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Création d'un (ou de) module(s) de saisie de notes et remplacement de la fonctionnalité Notes du noyau  || A l'étude&lt;br /&gt;
|-&lt;br /&gt;
|| Passer l'éditeur wysiwyg &amp;quot;htmlarea&amp;quot; dans un module  || A l'étude&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=4631</id>
		<title>Feuille de route</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=4631"/>
				<updated>2009-09-21T12:57:23Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Version 7.2.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version 6.7.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer des fonctionnalités externe (Voir l'article [[Communication entre les modules]])   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de tester la présence des fonctionnalités comme des prérequis pour l'installation d'un module ou du noyau   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité d'ajouter un script de prérequis personnalisés pour l'installation d'un module   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Controle de disponibilité pour empêcher le surbooking dans les agendas de ressources  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de catégories sur les délégations utilisables dans l'OVML    || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout du contener OVML OCRecentFaqQuestions  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de l'API des articles ( Voir [[API Articles]])  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout des types de congés avec les couleurs sur la visualisation d'un congé dans l'agenda  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout de la gestion des plusieurs périodes d'exclusion dans les droits de congés ||   Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 7.0.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer le plan du site dans le noyau   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration des skins en tant que modules  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Déléguer la saisie de certains champs de l'annuaire à des utilisateurs en utilisant les droits ACL.&lt;br /&gt;
Les utilisateurs ayant le droit de mettre à jour l'annuaire continueront à le faire sur tous les champs de l'annuaire.&lt;br /&gt;
Les utilisateurs ayant le droit de modification sur certains champs ne pourront pas modifier les autres champs de l'annuaire ( sauf s'ils ont le droit de modification sur l'annuaire ). Un utilisateur qui a le droit de modification sur un champ pourra le faire sur toutes les fiches annuaires des utilisateurs du portail.&lt;br /&gt;
|| Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la liste des module pour séparer les modules utiles des modules de bibliothèques partagées et des thèmes  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout des contrôles de dépendances entre les modules lors de la suppression  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de la nouvelle [[API de gestion d'un module]]  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de typer les entités d'un organigramme pour mieux les personnaliser en exploitant un fichier CSS   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Nouveaux containers pour l'organigramme ( Liste des entités d'un utilisateur, liste des entités parents d'une entité )   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Utilisation d'un fichier OVML pour afficher la fiche annuaire d'un utilisateur dans les organigrammes   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Paramétrage du seuil d'affichage vertical d'un organigramme. Ajout d'une option pour les gestionnaires et prise en compte de ce seuil lors de la visualisation de l'organigramme   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout des options permettant de modifier/supprimer tous les événements répétitifs postérieurs à un événement répétitif  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de dupliquer un événement. A partir du formulaire de modification d'un événement, permettre de dupliquer l'événement en copiant toutes les informations ( sauf les informations de répétition ) vers le formulaire de création  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Support du mode d'encodage UTF-8 dans le portail || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité d'associer des images aux catégories d'articles, aux thèmes d'articles et aux articles  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de faire une recherche en spécifiant une catégorie d'articles  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de la possibilité de supprimer un groupe et ses enfants, uniquement les enfants de premier niveau ou seulement les enfants  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de PHP (passage à PHP 5.1.0)  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de MySQL (passage à MySQL 4.1.0)  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Le skin par défaut livré dans l'archive d'Ovidentia devient un module lors d'une nouvelle installation || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout d'un champ de recherche sur la liste des utilisateurs de l'administration || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API pour interagir avec l'organigramme  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API de base pour interagir avec le gestionnaire de fichier || En cours&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 7.1.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API pour la recherche  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API de gestion de tags et thésaurus  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| [[Nouvelle interface de recherche dans le noyau]] || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de spécifier pour un compte utilisateur une période de connexion. En dehors de cette période le compte de l'utilisateur est désactivé || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout d'une fonction permettant d'historiser les téléchargements pour un répertoire collectif donné. L'historique affichera pour chaque fichier: la date du téléchargement, l'auteur, etc...  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de limiter le nombre de téléchargements pour un fichier donné  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Gestion des packages contenant plusieurs modules  || Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 7.2.0 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| La page &amp;quot;Nouveautés&amp;quot; dans le noyau devient un module d'Ovidentia installé par défaut dans la distribution mais supprimable  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Un bouton de configuration dans la liste des modules de l'administrateur peut être ajouté sur chaque module a partir du fichier [[Variables du fichier addonini|addonini.php]] || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Les gestionnaires d'un thème d'articles peuvent maintenant modifier un commentaire d'article  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Utilisation du captcha lors de la rédaction d'un commentaire par un anonyme  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Lors de la rédaction d'un article, les utilisateurs peuvent noter l'article. Cette notation ( de 1 à 5 ) est restituée lors de la visualisation de l'article par OVML  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Possibilité de supprimer plusieurs utilisateurs en même temps   || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Possibilité de copier ou de déplacer les membres d'un groupe vers un autre groupe   || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Dans les forums, possibilité d'afficher un autre de champ de l'annuaire au lieu du nom du contributeur  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Nouvelle gestion de l'installation des modules et du noyau, ajout de la possibilité d'ajout des messages pour suivre la progression de l'installation || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Amélioration de l'API de l'éditeur WYSIWYG, tout les emplacement de contenu modifiable du noyau sont désormais capable de supporter des formats autre que le HTML || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Les utilisateurs peuvent configurer comment ils seront notifiés quand de nouvelles contributions arrivent sur les forums ( Pas de notification, notification uniquement quand un nouveau sujet est initié ) || Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version future ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Création d'un (ou de) module(s) de saisie de notes et remplacement de la fonctionnalité Notes du noyau  || A l'étude&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=4623</id>
		<title>Feuille de route</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=4623"/>
				<updated>2009-08-26T09:35:22Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Version 7.2.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version 6.7.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer des fonctionnalités externe (Voir l'article [[Communication entre les modules]])   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de tester la présence des fonctionnalités comme des prérequis pour l'installation d'un module ou du noyau   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité d'ajouter un script de prérequis personnalisés pour l'installation d'un module   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Controle de disponibilité pour empêcher le surbooking dans les agendas de ressources  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de catégories sur les délégations utilisables dans l'OVML    || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout du contener OVML OCRecentFaqQuestions  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de l'API des articles ( Voir [[API Articles]])  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout des types de congés avec les couleurs sur la visualisation d'un congé dans l'agenda  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout de la gestion des plusieurs périodes d'exclusion dans les droits de congés ||   Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 7.0.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer le plan du site dans le noyau   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration des skins en tant que modules  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Déléguer la saisie de certains champs de l'annuaire à des utilisateurs en utilisant les droits ACL.&lt;br /&gt;
Les utilisateurs ayant le droit de mettre à jour l'annuaire continueront à le faire sur tous les champs de l'annuaire.&lt;br /&gt;
Les utilisateurs ayant le droit de modification sur certains champs ne pourront pas modifier les autres champs de l'annuaire ( sauf s'ils ont le droit de modification sur l'annuaire ). Un utilisateur qui a le droit de modification sur un champ pourra le faire sur toutes les fiches annuaires des utilisateurs du portail.&lt;br /&gt;
|| Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la liste des module pour séparer les modules utiles des modules de bibliothèques partagées et des thèmes  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout des contrôles de dépendances entre les modules lors de la suppression  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de la nouvelle [[API de gestion d'un module]]  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de typer les entités d'un organigramme pour mieux les personnaliser en exploitant un fichier CSS   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Nouveaux containers pour l'organigramme ( Liste des entités d'un utilisateur, liste des entités parents d'une entité )   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Utilisation d'un fichier OVML pour afficher la fiche annuaire d'un utilisateur dans les organigrammes   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Paramétrage du seuil d'affichage vertical d'un organigramme. Ajout d'une option pour les gestionnaires et prise en compte de ce seuil lors de la visualisation de l'organigramme   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout des options permettant de modifier/supprimer tous les événements répétitifs postérieurs à un événement répétitif  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de dupliquer un événement. A partir du formulaire de modification d'un événement, permettre de dupliquer l'événement en copiant toutes les informations ( sauf les informations de répétition ) vers le formulaire de création  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Support du mode d'encodage UTF-8 dans le portail || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité d'associer des images aux catégories d'articles, aux thèmes d'articles et aux articles  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de faire une recherche en spécifiant une catégorie d'articles  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de la possibilité de supprimer un groupe et ses enfants, uniquement les enfants de premier niveau ou seulement les enfants  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de PHP (passage à PHP 5.1.0)  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de MySQL (passage à MySQL 4.1.0)  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Le skin par défaut livré dans l'archive d'Ovidentia devient un module lors d'une nouvelle installation || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout d'un champ de recherche sur la liste des utilisateurs de l'administration || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API pour interagir avec l'organigramme  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API de base pour interagir avec le gestionnaire de fichier || En cours&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 7.1.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API pour la recherche  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API de gestion de tags et thésaurus  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| [[Nouvelle interface de recherche dans le noyau]] || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de spécifier pour un compte utilisateur une période de connexion. En dehors de cette période le compte de l'utilisateur est désactivé || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout d'une fonction permettant d'historiser les téléchargements pour un répertoire collectif donné. L'historique affichera pour chaque fichier: la date du téléchargement, l'auteur, etc...  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de limiter le nombre de téléchargements pour un fichier donné  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Gestion des packages contenant plusieurs modules  || Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 7.2.0 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| La page &amp;quot;Nouveautés&amp;quot; dans le noyau devient un module d'Ovidentia installé par défaut dans la distribution mais supprimable  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Un bouton de configuration dans la liste des modules de l'administrateur peut être ajouté sur chaque module a partir du fichier [[Variables du fichier addonini|addonini.php]] || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Les gestionnaires d'un thème d'articles peuvent maintenant modifier un commentaire d'article  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Utilisation du captcha lors de la rédaction d'un commentaire par un anonyme  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Lors de la rédaction d'un article, les utilisateurs peuvent noter l'article. Cette notation ( de 1 à 5 ) est restituée lors de la visualisation de l'article par OVML  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Possibilité de supprimer plusieurs utilisateurs en même temps   || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Possibilité de copier ou de déplacer les membres d'un groupe vers un autre groupe   || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Dans les forums, possibilité d'afficher un autre de champ de l'annuaire au lieu du nom du contributeur  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Nouvelle gestion de l'installation des modules et du noyau, ajout de la possibilité d'ajout des messages pour suivre la progression de l'installation || En cours&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version future ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Création d'un (ou de) module(s) de saisie de notes et remplacement de la fonctionnalité Notes du noyau  || A l'étude&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=4563</id>
		<title>Feuille de route</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=4563"/>
				<updated>2009-07-10T07:31:00Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Version 7.2.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version 6.7.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer des fonctionnalités externe (Voir l'article [[Communication entre les modules]])   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de tester la présence des fonctionnalités comme des prérequis pour l'installation d'un module ou du noyau   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité d'ajouter un script de prérequis personnalisés pour l'installation d'un module   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Controle de disponibilité pour empêcher le surbooking dans les agendas de ressources  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de catégories sur les délégations utilisables dans l'OVML    || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout du contener OVML OCRecentFaqQuestions  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de l'API des articles ( Voir [[API Articles]])  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout des types de congés avec les couleurs sur la visualisation d'un congé dans l'agenda  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout de la gestion des plusieurs périodes d'exclusion dans les droits de congés ||   Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 7.0.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer le plan du site dans le noyau   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration des skins en tant que modules  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Déléguer la saisie de certains champs de l'annuaire à des utilisateurs en utilisant les droits ACL.&lt;br /&gt;
Les utilisateurs ayant le droit de mettre à jour l'annuaire continueront à le faire sur tous les champs de l'annuaire.&lt;br /&gt;
Les utilisateurs ayant le droit de modification sur certains champs ne pourront pas modifier les autres champs de l'annuaire ( sauf s'ils ont le droit de modification sur l'annuaire ). Un utilisateur qui a le droit de modification sur un champ pourra le faire sur toutes les fiches annuaires des utilisateurs du portail.&lt;br /&gt;
|| Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la liste des module pour séparer les modules utiles des modules de bibliothèques partagées et des thèmes  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout des contrôles de dépendances entre les modules lors de la suppression  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de la nouvelle [[API de gestion d'un module]]  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de typer les entités d'un organigramme pour mieux les personnaliser en exploitant un fichier CSS   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Nouveaux containers pour l'organigramme ( Liste des entités d'un utilisateur, liste des entités parents d'une entité )   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Utilisation d'un fichier OVML pour afficher la fiche annuaire d'un utilisateur dans les organigrammes   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Paramétrage du seuil d'affichage vertical d'un organigramme. Ajout d'une option pour les gestionnaires et prise en compte de ce seuil lors de la visualisation de l'organigramme   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout des options permettant de modifier/supprimer tous les événements répétitifs postérieurs à un événement répétitif  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de dupliquer un événement. A partir du formulaire de modification d'un événement, permettre de dupliquer l'événement en copiant toutes les informations ( sauf les informations de répétition ) vers le formulaire de création  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Support du mode d'encodage UTF-8 dans le portail || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité d'associer des images aux catégories d'articles, aux thèmes d'articles et aux articles  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de faire une recherche en spécifiant une catégorie d'articles  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de la possibilité de supprimer un groupe et ses enfants, uniquement les enfants de premier niveau ou seulement les enfants  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de PHP (passage à PHP 5.1.0)  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de MySQL (passage à MySQL 4.1.0)  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Le skin par défaut livré dans l'archive d'Ovidentia devient un module lors d'une nouvelle installation || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout d'un champ de recherche sur la liste des utilisateurs de l'administration || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API pour interagir avec l'organigramme  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API de base pour interagir avec le gestionnaire de fichier || En cours&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 7.1.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API pour la recherche  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API de gestion de tags et thésaurus  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| [[Nouvelle interface de recherche dans le noyau]] || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de spécifier pour un compte utilisateur une période de connexion. En dehors de cette période le compte de l'utilisateur est désactivé || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout d'une fonction permettant d'historiser les téléchargements pour un répertoire collectif donné. L'historique affichera pour chaque fichier: la date du téléchargement, l'auteur, etc...  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de limiter le nombre de téléchargements pour un fichier donné  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Gestion des packages contenant plusieurs modules  || Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 7.2.0 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| La page &amp;quot;Nouveautés&amp;quot; dans le noyau devient un module d'Ovidentia installé par défaut dans la distribution mais supprimable  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Un bouton de configuration dans la liste des modules de l'administrateur peut être ajouté sur chaque module a partir du fichier [[Variables du fichier addonini|addonini.php]] || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Les gestionnaires d'un thème d'articles peuvent maintenant modifier un commentaire d'article  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Utilisation du captcha lors de la rédaction d'un commentaire par un anonyme  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Lors de la rédaction d'un article, les utilisateurs peuvent noter l'article. Cette notation ( de 1 à 5 ) est restituée lors de la visualisation de l'article par OVML  || Fait&lt;br /&gt;
|-  &lt;br /&gt;
|| Nouvelle gestion de l'installation des modules et du noyau, ajout de la possibilité d'ajout des messages pour suivre la progression de l'installation || En cours&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version future ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Création d'un (ou de) module(s) de saisie de notes et remplacement de la fonctionnalité Notes du noyau  || A l'étude&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Sitemap&amp;diff=4333</id>
		<title>Sitemap</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Sitemap&amp;diff=4333"/>
				<updated>2009-05-26T06:44:14Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Questions en l'air */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;'''Résumé des développements pour le plan du site (Sitemap)'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;'''du noyau Ovidentia'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
* Un plan du site est une représentation de l'architecture du site, il liste les ressources proposées aux utilisateurs. Dans Ovidentia le plan du site est représenté par un arbre. Une ressource (ou nœud de l'arbre) peut être un objet d'Ovidentia (thème d'articles, faq, site...), la section Utilisateur, une délégation...&lt;br /&gt;
* Tous les objets d’Ovidentia ne sont pas forcément présents dans le plan du site.&lt;br /&gt;
&lt;br /&gt;
===Pourquoi un plan du site ?===&lt;br /&gt;
# Avec la gestion de profils utilisateurs, il est possible d'enregistrer un plan du site par profil en base de données. L'enregistrement sera exploité à chaque page sans avoir à recalculer tous les droits d'accès aux objets. On aura donc un cache qui optimiserait le temps d'affichage des pages (ex : les liens en section Utilisateur n'auraient pas besoin d'être recalculés tout le temps).&lt;br /&gt;
# Définir un chemin de fer (aussi nommé rail, fil d'Ariane, breadcrumb) afin de localiser l'utilisateur sur le site. Actuellement, seule la fonction Articles propose un chemin de fer. &lt;br /&gt;
# Faciliter la navigation. L'arbre du plan du site sera réutilisable par d'autres applications qui pourront proposer des alternatives aux sections Utilisateur et Administration : menus déroulants, navigation horizontale...&lt;br /&gt;
# Personnaliser le plan du site. Des éditeurs permettront la personnalisation du plan du site : suppression de noeuds, renommages de noeuds...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:exnavigation.jpg|center|thumb|600px|Exemple de navigation aérée sans sections]]&lt;br /&gt;
&lt;br /&gt;
==Sitemap dans la base de données==&lt;br /&gt;
&lt;br /&gt;
* Actuellement l'arbre est sauvegardé dans la base de données dans les tables préfixées par sitemap :&lt;br /&gt;
&lt;br /&gt;
bab_sitemap : enregistre l'arbre du plan du site&lt;br /&gt;
&lt;br /&gt;
bab_sitemap_functions : enregistre tous les nœuds disponibles par Ovidentia et ses modules : noeuds conteneurs (ex : section Utilisateur) et nœuds enfants (ex : lien options)&lt;br /&gt;
&lt;br /&gt;
bab_sitemap_function_labels : enregistre les libellés de chaque fonction dans toutes les langues disponibles&lt;br /&gt;
&lt;br /&gt;
bab_sitemap_profiles : enregistre tous les profils des utilisateurs. Un profil correspond à une vue spécifique de l'arbre pour un ou plusieurs utilisateurs : la vue respecte donc les droits d'accès sur les objets d'Ovidentia. Si plusieurs utilisateurs ont la même vue, ils ont le même profil.&lt;br /&gt;
&lt;br /&gt;
bab_sitemap_function_profile : table de liaison entre bab_sitemap_functions et bab_sitemap_profiles&lt;br /&gt;
&lt;br /&gt;
==Exemples==&lt;br /&gt;
&lt;br /&gt;
* On voit ici une représentation du nœud AdminSection du plan du site :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:sitemap1.jpg|Noeud AdminSection du plan du site]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Ici, une représentation du nœud Articles dans le plan du site :&amp;lt;br /&amp;gt;&lt;br /&gt;
A gauche : arborescence des catégories et thèmes d'articles vue par l'administrateur du site.&amp;lt;br /&amp;gt;&lt;br /&gt;
A droite : représentation par le plan du site.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:sitemap2.jpg|Noeud Articles dans l'administration]] [[Image:sitemap3.jpg|Noeud Articles du plan du site]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==API sur Sitemap==&lt;br /&gt;
&lt;br /&gt;
La classe bab_siteMap gère le plan du site :&lt;br /&gt;
&lt;br /&gt;
La méthode get() permet de récupérer l'arbre (objets bab_Node)&lt;br /&gt;
&lt;br /&gt;
La méthode build() construit l'arbre en base&lt;br /&gt;
&lt;br /&gt;
La méthode clear() réinitialise l'arbre&lt;br /&gt;
&lt;br /&gt;
La méthode getUrlById() et getNameById() permet d'avoir des informations sur un nœud&lt;br /&gt;
&lt;br /&gt;
La classe bab_siteMapItem gère un nœud du plan du site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sitemap aujourd'hui==&lt;br /&gt;
&lt;br /&gt;
* Actuellement : l'enregistrement des profils en base de données permet d'optimiser le temps d'affichage des sections.&lt;br /&gt;
* Le plan du site est accessible par OVML : container OCSitemapEntries. Il est possible de lister les noeuds du plan du site comme les entrées de la section Administration ou Utilisateur.&amp;lt;br /&amp;gt;&lt;br /&gt;
Liste des variables OVML disponibles :&amp;lt;br /&amp;gt;&lt;br /&gt;
** OVSitemapEntryId : Identifiant unique de l'entrée (chaîne de caractères)&lt;br /&gt;
** OVSitemapEntryUrl : Adresse Web (url) de l'entrée&lt;br /&gt;
** OVSitemapEntryText : Nom de l'entrée&lt;br /&gt;
** OVSitemapEntryDescription : Description de l'entrée&lt;br /&gt;
** OVSitemapEntryOnclick : Code javascript à exécuter sur l'entrée (événement onclick sur le lien)&lt;br /&gt;
** OVSitemapEntryFolder : Vaut 1 si l'entrée est un répertoire (conteneur d'entrées) sinon 0&lt;br /&gt;
* Les principaux noeuds conteneurs ont été définis. Le plan du site est dynamique : il est modifié à la volée dès l'instant qu'a lieu une modification sur un objet d'Ovidentia.&lt;br /&gt;
&lt;br /&gt;
==Evolutions proches==&lt;br /&gt;
&lt;br /&gt;
===Éditeur de plan de site===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un éditeur de plan de site : permettre la création de nouvelles vues du plan du site. L'objectif étant la personnalisation du plan du site en vue de définir une nouvelle navigation sur le site.&lt;br /&gt;
&lt;br /&gt;
====Caractéristiques de l'éditeur====&lt;br /&gt;
* Il sera développé dans un module d'Ovidentia.&lt;br /&gt;
* Pouvoir créer plusieurs vues de plan de site.&lt;br /&gt;
* Gestion des vues du plan de site : le module stockera les nouvelles vues dans ses tables de données. Le module s'enregistrera sur un évènement afin de fournir les vues au noyau Ovidentia : la vue sera soumise sous la forme d'un objet bab_siteMap.&lt;br /&gt;
* Possibilité de réordonner les entrées, supprimer des entrées, modifier les libellés, cacher des entrées.&lt;br /&gt;
* Gestion multi-langues (le stockage des informations multi-langues sera peut-être effectué par un autre module dédié).&lt;br /&gt;
* Lors de l'édition du plan du site, lorsqu'on créé un noeud lié à un noeud existant d'Ovidentia : pouvoir inclure ou pas les noeuds enfants du noeud d'origine.&lt;br /&gt;
* Dans un premier temps, l'éditeur s'appuiera sur le plan de site complet (contenant la délégation DG_ALL et les autres délégations).&lt;br /&gt;
* Au moment de la création d'un nouveau plan de site, on choisit si on veut partir d'un arbre vide ou d'un arbre complet (contenant tous les noeuds d'Ovidentia).&lt;br /&gt;
&lt;br /&gt;
====Interface====&lt;br /&gt;
* Gestion de plusieurs plans de site&lt;br /&gt;
* Page principale : affichage de l'arbre en cours. Bouton de création d'un noeud.&lt;br /&gt;
* Création d'un noeud : lié ou pas à un noeud existant d'Ovidentia.&lt;br /&gt;
Si lié à un noeud existant d'Ovidentia, une case de recherche permet de rechercher le noeud désiré dans le plan du site d'origine.&lt;br /&gt;
&lt;br /&gt;
==Parralèle avec le module Sitemap existant (module privé)==&lt;br /&gt;
&lt;br /&gt;
Le module Sitemap est utilisé dans tous les sites et skins d'Ovidentia. Il permet de définir une arborescence de navigation en opposé à l'arborescence de publication définie par l'administrateur du site (Conteneurs catégories et thèmes d'articles).&lt;br /&gt;
&lt;br /&gt;
===Fonctionnement===&lt;br /&gt;
&lt;br /&gt;
Chaque noeud peut être de type nul, url, catégorie, thème ou article.&lt;br /&gt;
&lt;br /&gt;
L'arborescence est entièrement exploitable&lt;br /&gt;
&lt;br /&gt;
===Problèmes récurrents à l'utilisation du module===&lt;br /&gt;
&lt;br /&gt;
Le chemin de fer d'Ovidentia, présent dans les articles, est caché. Le chemin de fer remplaçant s'appuie sur l'arborescence du module Sitemap.&lt;br /&gt;
&lt;br /&gt;
Générer le chemin de fer demande le passage du paramètre smap_node_id dans les urls ou la vérification des paramètres de l'url pour connaître la page en cours&lt;br /&gt;
&lt;br /&gt;
Tous les noeuds vers des objets d'Ovidentia doivent être ressaisis manuellement&lt;br /&gt;
&lt;br /&gt;
===Avantages===&lt;br /&gt;
&lt;br /&gt;
Il est possible de définir des valeurs pour chaque noeud qui seront utilisées pour le référencement du site par les moteurs de recherche : ces valeurs sont appliquées aux balises title et méta&lt;br /&gt;
&lt;br /&gt;
On a une solution aux faiblesses du noyau d'Ovidentia&lt;br /&gt;
&lt;br /&gt;
===Evolutions du module Sitemap===&lt;br /&gt;
&lt;br /&gt;
Pouvoir associer une image à un noeud&lt;br /&gt;
&lt;br /&gt;
Pouvoir associer une couleur à un noeud&lt;br /&gt;
&lt;br /&gt;
Avoir plus de types de noeuds : faq, applications forms...&lt;br /&gt;
&lt;br /&gt;
==Evolutions lointaines==&lt;br /&gt;
&lt;br /&gt;
Objectif : maîtriser la navigation dans Ovidentia par le plan du site.&lt;br /&gt;
&lt;br /&gt;
* Possibilité de mélanger aux noeuds d'Ovidentia des noeuds de type URL EXTERNE.&lt;br /&gt;
* Possibilité d'appliquer des droits d'accès sur un noeud du plan du site.&lt;br /&gt;
* Gérer les balises pour le référencement pour chaque noeud : title, balises métas...&lt;br /&gt;
* Générer le fichier sitemap.xml pour les utilisateurs anonymes : le fichier XML est utilisé par les moteurs de recherche.&lt;br /&gt;
* Pouvoir réécrire les urls ( URL REWRITING ).&lt;br /&gt;
* Affichage automatique du chemin de fer en s'appuyant sur le plan du site.&lt;br /&gt;
&lt;br /&gt;
Explication :&lt;br /&gt;
&lt;br /&gt;
Actuellement le chemin de fer s'appuie sur le module Sitemap. Pour qu'un script OVML génère le chemin de fer, il est nécessaire de vérifier si la page en cours d'affichage par l'utilisateur provient de l'arbre du module Sitemap ou pas. Pour cela, tous les liens générés par le module Sitemap ajoute le paramètre smap_node_id. Ainsi le script qui génère le chemin de fer vérifie l'existence du paramètre smap_node_id dans l'url et si elle existe il interroge le module Sitemap pour connaître l'emplacement du noeud dans l'arbre et donc le chemin de fer.&lt;br /&gt;
&lt;br /&gt;
Problème : lorsqu'on se trouve sur une page qui n'est pas connue dans l'arbre du module Sitemap ou dont l'url ne contient pas le paramètre smap_node_id, on ne sait pas générer le chemin de fer.&lt;br /&gt;
&lt;br /&gt;
Solution : Ovidentia peut créer une variable globale qui aurait pour valeur l'identifiant unique du nœud correspondant à la page en cours affichée (thème, article, contribution de forum...). Ceci permettrait à Ovidentia ou à un script OVML de générer le chemin de fer à partir de l'identifiant unique du nœud dans le plan du site d'Ovidentia.&lt;br /&gt;
&lt;br /&gt;
* Définir des identifiants uniques sur les noeuds de l'arbre pour chaque objet d'Ovidentia (Exemple pour un article : bab_article_delegation0_129).&lt;br /&gt;
* API pour l'OVML : récupération du chemin de fer, informations sur un noeud, pouvoir filtrer les entrées du plan du site sur une délégation. Ce développement peut éviter tous les scripts OVML développés dans certains sites afin de générer des menus filtrés par la délégation en cours. Rappel : par défaut si on appartient à plusieurs délégations, tous les objets de la délégation apparaissent en même temps sur l'interface d'Ovidentia (sections...).&lt;br /&gt;
* Adaptation des skins d'Ovidentia avec les nouveaux arbres de plan de site : pertes des sections, navigation sur plusieurs niveaux...&lt;br /&gt;
&lt;br /&gt;
==Questions en l'air==&lt;br /&gt;
&lt;br /&gt;
* Un noeud à identifiant unique peut se retrouver à plusieurs endroits dans l'arbre : comment gérer le chemin de fer ?&lt;br /&gt;
* Comment gérer une section Utilisateur présente dans 2 délégations par OVML ?&lt;br /&gt;
* L'API d'Ovidentia ne sait pas retourner une partie du plan du site.&lt;br /&gt;
* Gestion des délégations dans le plan du site : permettre de récupérer, pour un utilisateur, une vue par délégation dont il fait partie.&lt;br /&gt;
* Régulariser les filtres sur les délégations par variables globales.&lt;br /&gt;
* L'API doit pouvoir retourner une vue du plan du site sans tenir compte des droits d'accès afin que l'administrateur qui édite un plan du site puisse préparer un plan pour tous les utilisateurs.&lt;br /&gt;
* La section Utilisateur peut apparaître dans 2 délégations. Dans ce cas, son identifiant unique de nœud prendrait en compte l'identifiant de la délégation ?&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Sitemap&amp;diff=4332</id>
		<title>Sitemap</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Sitemap&amp;diff=4332"/>
				<updated>2009-05-26T06:42:27Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Evolutions lointaines */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;'''Résumé des développements pour le plan du site (Sitemap)'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;'''du noyau Ovidentia'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
* Un plan du site est une représentation de l'architecture du site, il liste les ressources proposées aux utilisateurs. Dans Ovidentia le plan du site est représenté par un arbre. Une ressource (ou nœud de l'arbre) peut être un objet d'Ovidentia (thème d'articles, faq, site...), la section Utilisateur, une délégation...&lt;br /&gt;
* Tous les objets d’Ovidentia ne sont pas forcément présents dans le plan du site.&lt;br /&gt;
&lt;br /&gt;
===Pourquoi un plan du site ?===&lt;br /&gt;
# Avec la gestion de profils utilisateurs, il est possible d'enregistrer un plan du site par profil en base de données. L'enregistrement sera exploité à chaque page sans avoir à recalculer tous les droits d'accès aux objets. On aura donc un cache qui optimiserait le temps d'affichage des pages (ex : les liens en section Utilisateur n'auraient pas besoin d'être recalculés tout le temps).&lt;br /&gt;
# Définir un chemin de fer (aussi nommé rail, fil d'Ariane, breadcrumb) afin de localiser l'utilisateur sur le site. Actuellement, seule la fonction Articles propose un chemin de fer. &lt;br /&gt;
# Faciliter la navigation. L'arbre du plan du site sera réutilisable par d'autres applications qui pourront proposer des alternatives aux sections Utilisateur et Administration : menus déroulants, navigation horizontale...&lt;br /&gt;
# Personnaliser le plan du site. Des éditeurs permettront la personnalisation du plan du site : suppression de noeuds, renommages de noeuds...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:exnavigation.jpg|center|thumb|600px|Exemple de navigation aérée sans sections]]&lt;br /&gt;
&lt;br /&gt;
==Sitemap dans la base de données==&lt;br /&gt;
&lt;br /&gt;
* Actuellement l'arbre est sauvegardé dans la base de données dans les tables préfixées par sitemap :&lt;br /&gt;
&lt;br /&gt;
bab_sitemap : enregistre l'arbre du plan du site&lt;br /&gt;
&lt;br /&gt;
bab_sitemap_functions : enregistre tous les nœuds disponibles par Ovidentia et ses modules : noeuds conteneurs (ex : section Utilisateur) et nœuds enfants (ex : lien options)&lt;br /&gt;
&lt;br /&gt;
bab_sitemap_function_labels : enregistre les libellés de chaque fonction dans toutes les langues disponibles&lt;br /&gt;
&lt;br /&gt;
bab_sitemap_profiles : enregistre tous les profils des utilisateurs. Un profil correspond à une vue spécifique de l'arbre pour un ou plusieurs utilisateurs : la vue respecte donc les droits d'accès sur les objets d'Ovidentia. Si plusieurs utilisateurs ont la même vue, ils ont le même profil.&lt;br /&gt;
&lt;br /&gt;
bab_sitemap_function_profile : table de liaison entre bab_sitemap_functions et bab_sitemap_profiles&lt;br /&gt;
&lt;br /&gt;
==Exemples==&lt;br /&gt;
&lt;br /&gt;
* On voit ici une représentation du nœud AdminSection du plan du site :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:sitemap1.jpg|Noeud AdminSection du plan du site]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Ici, une représentation du nœud Articles dans le plan du site :&amp;lt;br /&amp;gt;&lt;br /&gt;
A gauche : arborescence des catégories et thèmes d'articles vue par l'administrateur du site.&amp;lt;br /&amp;gt;&lt;br /&gt;
A droite : représentation par le plan du site.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:sitemap2.jpg|Noeud Articles dans l'administration]] [[Image:sitemap3.jpg|Noeud Articles du plan du site]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==API sur Sitemap==&lt;br /&gt;
&lt;br /&gt;
La classe bab_siteMap gère le plan du site :&lt;br /&gt;
&lt;br /&gt;
La méthode get() permet de récupérer l'arbre (objets bab_Node)&lt;br /&gt;
&lt;br /&gt;
La méthode build() construit l'arbre en base&lt;br /&gt;
&lt;br /&gt;
La méthode clear() réinitialise l'arbre&lt;br /&gt;
&lt;br /&gt;
La méthode getUrlById() et getNameById() permet d'avoir des informations sur un nœud&lt;br /&gt;
&lt;br /&gt;
La classe bab_siteMapItem gère un nœud du plan du site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sitemap aujourd'hui==&lt;br /&gt;
&lt;br /&gt;
* Actuellement : l'enregistrement des profils en base de données permet d'optimiser le temps d'affichage des sections.&lt;br /&gt;
* Le plan du site est accessible par OVML : container OCSitemapEntries. Il est possible de lister les noeuds du plan du site comme les entrées de la section Administration ou Utilisateur.&amp;lt;br /&amp;gt;&lt;br /&gt;
Liste des variables OVML disponibles :&amp;lt;br /&amp;gt;&lt;br /&gt;
** OVSitemapEntryId : Identifiant unique de l'entrée (chaîne de caractères)&lt;br /&gt;
** OVSitemapEntryUrl : Adresse Web (url) de l'entrée&lt;br /&gt;
** OVSitemapEntryText : Nom de l'entrée&lt;br /&gt;
** OVSitemapEntryDescription : Description de l'entrée&lt;br /&gt;
** OVSitemapEntryOnclick : Code javascript à exécuter sur l'entrée (événement onclick sur le lien)&lt;br /&gt;
** OVSitemapEntryFolder : Vaut 1 si l'entrée est un répertoire (conteneur d'entrées) sinon 0&lt;br /&gt;
* Les principaux noeuds conteneurs ont été définis. Le plan du site est dynamique : il est modifié à la volée dès l'instant qu'a lieu une modification sur un objet d'Ovidentia.&lt;br /&gt;
&lt;br /&gt;
==Evolutions proches==&lt;br /&gt;
&lt;br /&gt;
===Éditeur de plan de site===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un éditeur de plan de site : permettre la création de nouvelles vues du plan du site. L'objectif étant la personnalisation du plan du site en vue de définir une nouvelle navigation sur le site.&lt;br /&gt;
&lt;br /&gt;
====Caractéristiques de l'éditeur====&lt;br /&gt;
* Il sera développé dans un module d'Ovidentia.&lt;br /&gt;
* Pouvoir créer plusieurs vues de plan de site.&lt;br /&gt;
* Gestion des vues du plan de site : le module stockera les nouvelles vues dans ses tables de données. Le module s'enregistrera sur un évènement afin de fournir les vues au noyau Ovidentia : la vue sera soumise sous la forme d'un objet bab_siteMap.&lt;br /&gt;
* Possibilité de réordonner les entrées, supprimer des entrées, modifier les libellés, cacher des entrées.&lt;br /&gt;
* Gestion multi-langues (le stockage des informations multi-langues sera peut-être effectué par un autre module dédié).&lt;br /&gt;
* Lors de l'édition du plan du site, lorsqu'on créé un noeud lié à un noeud existant d'Ovidentia : pouvoir inclure ou pas les noeuds enfants du noeud d'origine.&lt;br /&gt;
* Dans un premier temps, l'éditeur s'appuiera sur le plan de site complet (contenant la délégation DG_ALL et les autres délégations).&lt;br /&gt;
* Au moment de la création d'un nouveau plan de site, on choisit si on veut partir d'un arbre vide ou d'un arbre complet (contenant tous les noeuds d'Ovidentia).&lt;br /&gt;
&lt;br /&gt;
====Interface====&lt;br /&gt;
* Gestion de plusieurs plans de site&lt;br /&gt;
* Page principale : affichage de l'arbre en cours. Bouton de création d'un noeud.&lt;br /&gt;
* Création d'un noeud : lié ou pas à un noeud existant d'Ovidentia.&lt;br /&gt;
Si lié à un noeud existant d'Ovidentia, une case de recherche permet de rechercher le noeud désiré dans le plan du site d'origine.&lt;br /&gt;
&lt;br /&gt;
==Parralèle avec le module Sitemap existant (module privé)==&lt;br /&gt;
&lt;br /&gt;
Le module Sitemap est utilisé dans tous les sites et skins d'Ovidentia. Il permet de définir une arborescence de navigation en opposé à l'arborescence de publication définie par l'administrateur du site (Conteneurs catégories et thèmes d'articles).&lt;br /&gt;
&lt;br /&gt;
===Fonctionnement===&lt;br /&gt;
&lt;br /&gt;
Chaque noeud peut être de type nul, url, catégorie, thème ou article.&lt;br /&gt;
&lt;br /&gt;
L'arborescence est entièrement exploitable&lt;br /&gt;
&lt;br /&gt;
===Problèmes récurrents à l'utilisation du module===&lt;br /&gt;
&lt;br /&gt;
Le chemin de fer d'Ovidentia, présent dans les articles, est caché. Le chemin de fer remplaçant s'appuie sur l'arborescence du module Sitemap.&lt;br /&gt;
&lt;br /&gt;
Générer le chemin de fer demande le passage du paramètre smap_node_id dans les urls ou la vérification des paramètres de l'url pour connaître la page en cours&lt;br /&gt;
&lt;br /&gt;
Tous les noeuds vers des objets d'Ovidentia doivent être ressaisis manuellement&lt;br /&gt;
&lt;br /&gt;
===Avantages===&lt;br /&gt;
&lt;br /&gt;
Il est possible de définir des valeurs pour chaque noeud qui seront utilisées pour le référencement du site par les moteurs de recherche : ces valeurs sont appliquées aux balises title et méta&lt;br /&gt;
&lt;br /&gt;
On a une solution aux faiblesses du noyau d'Ovidentia&lt;br /&gt;
&lt;br /&gt;
===Evolutions du module Sitemap===&lt;br /&gt;
&lt;br /&gt;
Pouvoir associer une image à un noeud&lt;br /&gt;
&lt;br /&gt;
Pouvoir associer une couleur à un noeud&lt;br /&gt;
&lt;br /&gt;
Avoir plus de types de noeuds : faq, applications forms...&lt;br /&gt;
&lt;br /&gt;
==Evolutions lointaines==&lt;br /&gt;
&lt;br /&gt;
Objectif : maîtriser la navigation dans Ovidentia par le plan du site.&lt;br /&gt;
&lt;br /&gt;
* Possibilité de mélanger aux noeuds d'Ovidentia des noeuds de type URL EXTERNE.&lt;br /&gt;
* Possibilité d'appliquer des droits d'accès sur un noeud du plan du site.&lt;br /&gt;
* Gérer les balises pour le référencement pour chaque noeud : title, balises métas...&lt;br /&gt;
* Générer le fichier sitemap.xml pour les utilisateurs anonymes : le fichier XML est utilisé par les moteurs de recherche.&lt;br /&gt;
* Pouvoir réécrire les urls ( URL REWRITING ).&lt;br /&gt;
* Affichage automatique du chemin de fer en s'appuyant sur le plan du site.&lt;br /&gt;
&lt;br /&gt;
Explication :&lt;br /&gt;
&lt;br /&gt;
Actuellement le chemin de fer s'appuie sur le module Sitemap. Pour qu'un script OVML génère le chemin de fer, il est nécessaire de vérifier si la page en cours d'affichage par l'utilisateur provient de l'arbre du module Sitemap ou pas. Pour cela, tous les liens générés par le module Sitemap ajoute le paramètre smap_node_id. Ainsi le script qui génère le chemin de fer vérifie l'existence du paramètre smap_node_id dans l'url et si elle existe il interroge le module Sitemap pour connaître l'emplacement du noeud dans l'arbre et donc le chemin de fer.&lt;br /&gt;
&lt;br /&gt;
Problème : lorsqu'on se trouve sur une page qui n'est pas connue dans l'arbre du module Sitemap ou dont l'url ne contient pas le paramètre smap_node_id, on ne sait pas générer le chemin de fer.&lt;br /&gt;
&lt;br /&gt;
Solution : Ovidentia peut créer une variable globale qui aurait pour valeur l'identifiant unique du nœud correspondant à la page en cours affichée (thème, article, contribution de forum...). Ceci permettrait à Ovidentia ou à un script OVML de générer le chemin de fer à partir de l'identifiant unique du nœud dans le plan du site d'Ovidentia.&lt;br /&gt;
&lt;br /&gt;
* Définir des identifiants uniques sur les noeuds de l'arbre pour chaque objet d'Ovidentia (Exemple pour un article : bab_article_delegation0_129).&lt;br /&gt;
* API pour l'OVML : récupération du chemin de fer, informations sur un noeud, pouvoir filtrer les entrées du plan du site sur une délégation. Ce développement peut éviter tous les scripts OVML développés dans certains sites afin de générer des menus filtrés par la délégation en cours. Rappel : par défaut si on appartient à plusieurs délégations, tous les objets de la délégation apparaissent en même temps sur l'interface d'Ovidentia (sections...).&lt;br /&gt;
* Adaptation des skins d'Ovidentia avec les nouveaux arbres de plan de site : pertes des sections, navigation sur plusieurs niveaux...&lt;br /&gt;
&lt;br /&gt;
==Questions en l'air==&lt;br /&gt;
&lt;br /&gt;
* Un noeud à identifiant unique peut se retrouver à plusieurs endroits dans l'arbre : comment gérer le chemin de fer ?&lt;br /&gt;
* Comment gérer une section Utilisateur présente dans 2 délégations par OVML ?&lt;br /&gt;
* L'API d'Ovidentia ne sait pas retourner une partie du plan du site.&lt;br /&gt;
* Gestion des délégations dans le plan du site : rendre possible de récupérer pour un utilisateur une vue par délégation dont il fait partie.&lt;br /&gt;
* Régulariser les filtres sur les délégations par variables globales.&lt;br /&gt;
* L'API doit pouvoir retourner une vue du plan du site sans tenir compte des droits d'accès afin que l'administrateur qui édite un plan du site puisse préparer un plan pour tous les utilisateurs.&lt;br /&gt;
* La section Utilisateur peut apparaître dans 2 délégations. Dans ce cas, son identifiant unique de nœud prendrait en compte l'identifiant de la délégation ?&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Sitemap&amp;diff=4331</id>
		<title>Sitemap</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Sitemap&amp;diff=4331"/>
				<updated>2009-05-26T06:38:50Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Evolutions lointaines */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;'''Résumé des développements pour le plan du site (Sitemap)'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;'''du noyau Ovidentia'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
* Un plan du site est une représentation de l'architecture du site, il liste les ressources proposées aux utilisateurs. Dans Ovidentia le plan du site est représenté par un arbre. Une ressource (ou nœud de l'arbre) peut être un objet d'Ovidentia (thème d'articles, faq, site...), la section Utilisateur, une délégation...&lt;br /&gt;
* Tous les objets d’Ovidentia ne sont pas forcément présents dans le plan du site.&lt;br /&gt;
&lt;br /&gt;
===Pourquoi un plan du site ?===&lt;br /&gt;
# Avec la gestion de profils utilisateurs, il est possible d'enregistrer un plan du site par profil en base de données. L'enregistrement sera exploité à chaque page sans avoir à recalculer tous les droits d'accès aux objets. On aura donc un cache qui optimiserait le temps d'affichage des pages (ex : les liens en section Utilisateur n'auraient pas besoin d'être recalculés tout le temps).&lt;br /&gt;
# Définir un chemin de fer (aussi nommé rail, fil d'Ariane, breadcrumb) afin de localiser l'utilisateur sur le site. Actuellement, seule la fonction Articles propose un chemin de fer. &lt;br /&gt;
# Faciliter la navigation. L'arbre du plan du site sera réutilisable par d'autres applications qui pourront proposer des alternatives aux sections Utilisateur et Administration : menus déroulants, navigation horizontale...&lt;br /&gt;
# Personnaliser le plan du site. Des éditeurs permettront la personnalisation du plan du site : suppression de noeuds, renommages de noeuds...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:exnavigation.jpg|center|thumb|600px|Exemple de navigation aérée sans sections]]&lt;br /&gt;
&lt;br /&gt;
==Sitemap dans la base de données==&lt;br /&gt;
&lt;br /&gt;
* Actuellement l'arbre est sauvegardé dans la base de données dans les tables préfixées par sitemap :&lt;br /&gt;
&lt;br /&gt;
bab_sitemap : enregistre l'arbre du plan du site&lt;br /&gt;
&lt;br /&gt;
bab_sitemap_functions : enregistre tous les nœuds disponibles par Ovidentia et ses modules : noeuds conteneurs (ex : section Utilisateur) et nœuds enfants (ex : lien options)&lt;br /&gt;
&lt;br /&gt;
bab_sitemap_function_labels : enregistre les libellés de chaque fonction dans toutes les langues disponibles&lt;br /&gt;
&lt;br /&gt;
bab_sitemap_profiles : enregistre tous les profils des utilisateurs. Un profil correspond à une vue spécifique de l'arbre pour un ou plusieurs utilisateurs : la vue respecte donc les droits d'accès sur les objets d'Ovidentia. Si plusieurs utilisateurs ont la même vue, ils ont le même profil.&lt;br /&gt;
&lt;br /&gt;
bab_sitemap_function_profile : table de liaison entre bab_sitemap_functions et bab_sitemap_profiles&lt;br /&gt;
&lt;br /&gt;
==Exemples==&lt;br /&gt;
&lt;br /&gt;
* On voit ici une représentation du nœud AdminSection du plan du site :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:sitemap1.jpg|Noeud AdminSection du plan du site]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Ici, une représentation du nœud Articles dans le plan du site :&amp;lt;br /&amp;gt;&lt;br /&gt;
A gauche : arborescence des catégories et thèmes d'articles vue par l'administrateur du site.&amp;lt;br /&amp;gt;&lt;br /&gt;
A droite : représentation par le plan du site.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:sitemap2.jpg|Noeud Articles dans l'administration]] [[Image:sitemap3.jpg|Noeud Articles du plan du site]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==API sur Sitemap==&lt;br /&gt;
&lt;br /&gt;
La classe bab_siteMap gère le plan du site :&lt;br /&gt;
&lt;br /&gt;
La méthode get() permet de récupérer l'arbre (objets bab_Node)&lt;br /&gt;
&lt;br /&gt;
La méthode build() construit l'arbre en base&lt;br /&gt;
&lt;br /&gt;
La méthode clear() réinitialise l'arbre&lt;br /&gt;
&lt;br /&gt;
La méthode getUrlById() et getNameById() permet d'avoir des informations sur un nœud&lt;br /&gt;
&lt;br /&gt;
La classe bab_siteMapItem gère un nœud du plan du site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sitemap aujourd'hui==&lt;br /&gt;
&lt;br /&gt;
* Actuellement : l'enregistrement des profils en base de données permet d'optimiser le temps d'affichage des sections.&lt;br /&gt;
* Le plan du site est accessible par OVML : container OCSitemapEntries. Il est possible de lister les noeuds du plan du site comme les entrées de la section Administration ou Utilisateur.&amp;lt;br /&amp;gt;&lt;br /&gt;
Liste des variables OVML disponibles :&amp;lt;br /&amp;gt;&lt;br /&gt;
** OVSitemapEntryId : Identifiant unique de l'entrée (chaîne de caractères)&lt;br /&gt;
** OVSitemapEntryUrl : Adresse Web (url) de l'entrée&lt;br /&gt;
** OVSitemapEntryText : Nom de l'entrée&lt;br /&gt;
** OVSitemapEntryDescription : Description de l'entrée&lt;br /&gt;
** OVSitemapEntryOnclick : Code javascript à exécuter sur l'entrée (événement onclick sur le lien)&lt;br /&gt;
** OVSitemapEntryFolder : Vaut 1 si l'entrée est un répertoire (conteneur d'entrées) sinon 0&lt;br /&gt;
* Les principaux noeuds conteneurs ont été définis. Le plan du site est dynamique : il est modifié à la volée dès l'instant qu'a lieu une modification sur un objet d'Ovidentia.&lt;br /&gt;
&lt;br /&gt;
==Evolutions proches==&lt;br /&gt;
&lt;br /&gt;
===Éditeur de plan de site===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un éditeur de plan de site : permettre la création de nouvelles vues du plan du site. L'objectif étant la personnalisation du plan du site en vue de définir une nouvelle navigation sur le site.&lt;br /&gt;
&lt;br /&gt;
====Caractéristiques de l'éditeur====&lt;br /&gt;
* Il sera développé dans un module d'Ovidentia.&lt;br /&gt;
* Pouvoir créer plusieurs vues de plan de site.&lt;br /&gt;
* Gestion des vues du plan de site : le module stockera les nouvelles vues dans ses tables de données. Le module s'enregistrera sur un évènement afin de fournir les vues au noyau Ovidentia : la vue sera soumise sous la forme d'un objet bab_siteMap.&lt;br /&gt;
* Possibilité de réordonner les entrées, supprimer des entrées, modifier les libellés, cacher des entrées.&lt;br /&gt;
* Gestion multi-langues (le stockage des informations multi-langues sera peut-être effectué par un autre module dédié).&lt;br /&gt;
* Lors de l'édition du plan du site, lorsqu'on créé un noeud lié à un noeud existant d'Ovidentia : pouvoir inclure ou pas les noeuds enfants du noeud d'origine.&lt;br /&gt;
* Dans un premier temps, l'éditeur s'appuiera sur le plan de site complet (contenant la délégation DG_ALL et les autres délégations).&lt;br /&gt;
* Au moment de la création d'un nouveau plan de site, on choisit si on veut partir d'un arbre vide ou d'un arbre complet (contenant tous les noeuds d'Ovidentia).&lt;br /&gt;
&lt;br /&gt;
====Interface====&lt;br /&gt;
* Gestion de plusieurs plans de site&lt;br /&gt;
* Page principale : affichage de l'arbre en cours. Bouton de création d'un noeud.&lt;br /&gt;
* Création d'un noeud : lié ou pas à un noeud existant d'Ovidentia.&lt;br /&gt;
Si lié à un noeud existant d'Ovidentia, une case de recherche permet de rechercher le noeud désiré dans le plan du site d'origine.&lt;br /&gt;
&lt;br /&gt;
==Parralèle avec le module Sitemap existant (module privé)==&lt;br /&gt;
&lt;br /&gt;
Le module Sitemap est utilisé dans tous les sites et skins d'Ovidentia. Il permet de définir une arborescence de navigation en opposé à l'arborescence de publication définie par l'administrateur du site (Conteneurs catégories et thèmes d'articles).&lt;br /&gt;
&lt;br /&gt;
===Fonctionnement===&lt;br /&gt;
&lt;br /&gt;
Chaque noeud peut être de type nul, url, catégorie, thème ou article.&lt;br /&gt;
&lt;br /&gt;
L'arborescence est entièrement exploitable&lt;br /&gt;
&lt;br /&gt;
===Problèmes récurrents à l'utilisation du module===&lt;br /&gt;
&lt;br /&gt;
Le chemin de fer d'Ovidentia, présent dans les articles, est caché. Le chemin de fer remplaçant s'appuie sur l'arborescence du module Sitemap.&lt;br /&gt;
&lt;br /&gt;
Générer le chemin de fer demande le passage du paramètre smap_node_id dans les urls ou la vérification des paramètres de l'url pour connaître la page en cours&lt;br /&gt;
&lt;br /&gt;
Tous les noeuds vers des objets d'Ovidentia doivent être ressaisis manuellement&lt;br /&gt;
&lt;br /&gt;
===Avantages===&lt;br /&gt;
&lt;br /&gt;
Il est possible de définir des valeurs pour chaque noeud qui seront utilisées pour le référencement du site par les moteurs de recherche : ces valeurs sont appliquées aux balises title et méta&lt;br /&gt;
&lt;br /&gt;
On a une solution aux faiblesses du noyau d'Ovidentia&lt;br /&gt;
&lt;br /&gt;
===Evolutions du module Sitemap===&lt;br /&gt;
&lt;br /&gt;
Pouvoir associer une image à un noeud&lt;br /&gt;
&lt;br /&gt;
Pouvoir associer une couleur à un noeud&lt;br /&gt;
&lt;br /&gt;
Avoir plus de types de noeuds : faq, applications forms...&lt;br /&gt;
&lt;br /&gt;
==Evolutions lointaines==&lt;br /&gt;
&lt;br /&gt;
Objectif : maîtriser la navigation dans Ovidentia par le plan du site.&lt;br /&gt;
&lt;br /&gt;
* Possibilité de mélanger aux noeuds d'Ovidentia des noeuds de type URL EXTERNE.&lt;br /&gt;
* Possibilité d'appliquer des droits d'accès sur un noeud du plan du site.&lt;br /&gt;
* Gérer les balises pour le référencement pour chaque noeud : title, balises métas...&lt;br /&gt;
* Générer le fichier sitemap.xml pour les utilisateurs anonymes : le fichier XML est utilisé par les moteurs de recherche.&lt;br /&gt;
* Pouvoir réécrire les urls ( URL REWRITING ).&lt;br /&gt;
* Affichage automatique du chemin de fer en s'appuyant sur le plan du site.&lt;br /&gt;
&lt;br /&gt;
Explication :&lt;br /&gt;
&lt;br /&gt;
Actuellement le chemin de fer s'appuie sur le module Sitemap. Pour qu'un script OVML génère le chemin de fer, il est nécessaire de vérifier si la page en cours d'affichage par l'utilisateur provient de l'arbre du module Sitemap ou pas. Pour cela, tous les liens générés par le module Sitemap ajoute le paramètre smap_node_id. Ainsi le script qui génère le chemin de fer vérifie l'existence du paramètre smap_node_id dans l'url et si elle existe il interroge le module Sitemap pour connaître l'emplacement du noeud dans l'arbre et donc le chemin de fer.&lt;br /&gt;
&lt;br /&gt;
Problème : lorsqu'on se trouve sur une page qui n'est pas dans l'arbre du module Sitemap ou qui ne contient pas le paramètre smap_node_id, on en sait pas générer de chemin de fer.&lt;br /&gt;
&lt;br /&gt;
Solution : Ovidentia peut créer une variable globale qui aurait pour valeur l'identifiant unique du nœud correspondant à la page en cours affichée (thème, article, contribution de forum...). Ceci permettrait à Ovidentia ou à un script OVML de générer le chemin de fer à partir de l'identifiant unique du nœud dans le plan du site d'Ovidentia.&lt;br /&gt;
&lt;br /&gt;
* Définir des identifiants uniques sur les noeuds de l'arbre pour chaque objet d'Ovidentia (Exemple pour un article : bab_article_delegation0_129).&lt;br /&gt;
* API pour l'OVML : récupération du chemin de fer, informations sur un noeud, pouvoir filtrer les entrées du plan du site sur une délégation. Ce développement peut éviter tous les scripts OVML développés dans le cadre de la DRE et de la CASQY afin de générer des menus filtrés par la délégation en cours. Rappel : par défaut si on appartient à plusieurs délégations, tous les objets de la délégation apparaissent en même temps sur l'interface d'Ovidentia (sections...).&lt;br /&gt;
* Adaptation des skins d'Ovidentia avec les nouveaux arbres de plan de site : pertes des sections, navigation sur plusieurs niveaux...&lt;br /&gt;
&lt;br /&gt;
==Questions en l'air==&lt;br /&gt;
&lt;br /&gt;
* Un noeud à identifiant unique peut se retrouver à plusieurs endroits dans l'arbre : comment gérer le chemin de fer ?&lt;br /&gt;
* Comment gérer une section Utilisateur présente dans 2 délégations par OVML ?&lt;br /&gt;
* L'API d'Ovidentia ne sait pas retourner une partie du plan du site.&lt;br /&gt;
* Gestion des délégations dans le plan du site : rendre possible de récupérer pour un utilisateur une vue par délégation dont il fait partie.&lt;br /&gt;
* Régulariser les filtres sur les délégations par variables globales.&lt;br /&gt;
* L'API doit pouvoir retourner une vue du plan du site sans tenir compte des droits d'accès afin que l'administrateur qui édite un plan du site puisse préparer un plan pour tous les utilisateurs.&lt;br /&gt;
* La section Utilisateur peut apparaître dans 2 délégations. Dans ce cas, son identifiant unique de nœud prendrait en compte l'identifiant de la délégation ?&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Sitemap&amp;diff=4330</id>
		<title>Sitemap</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Sitemap&amp;diff=4330"/>
				<updated>2009-05-26T06:37:41Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Parralèle avec le module Sitemap existant (module privé) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;'''Résumé des développements pour le plan du site (Sitemap)'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;'''du noyau Ovidentia'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
* Un plan du site est une représentation de l'architecture du site, il liste les ressources proposées aux utilisateurs. Dans Ovidentia le plan du site est représenté par un arbre. Une ressource (ou nœud de l'arbre) peut être un objet d'Ovidentia (thème d'articles, faq, site...), la section Utilisateur, une délégation...&lt;br /&gt;
* Tous les objets d’Ovidentia ne sont pas forcément présents dans le plan du site.&lt;br /&gt;
&lt;br /&gt;
===Pourquoi un plan du site ?===&lt;br /&gt;
# Avec la gestion de profils utilisateurs, il est possible d'enregistrer un plan du site par profil en base de données. L'enregistrement sera exploité à chaque page sans avoir à recalculer tous les droits d'accès aux objets. On aura donc un cache qui optimiserait le temps d'affichage des pages (ex : les liens en section Utilisateur n'auraient pas besoin d'être recalculés tout le temps).&lt;br /&gt;
# Définir un chemin de fer (aussi nommé rail, fil d'Ariane, breadcrumb) afin de localiser l'utilisateur sur le site. Actuellement, seule la fonction Articles propose un chemin de fer. &lt;br /&gt;
# Faciliter la navigation. L'arbre du plan du site sera réutilisable par d'autres applications qui pourront proposer des alternatives aux sections Utilisateur et Administration : menus déroulants, navigation horizontale...&lt;br /&gt;
# Personnaliser le plan du site. Des éditeurs permettront la personnalisation du plan du site : suppression de noeuds, renommages de noeuds...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:exnavigation.jpg|center|thumb|600px|Exemple de navigation aérée sans sections]]&lt;br /&gt;
&lt;br /&gt;
==Sitemap dans la base de données==&lt;br /&gt;
&lt;br /&gt;
* Actuellement l'arbre est sauvegardé dans la base de données dans les tables préfixées par sitemap :&lt;br /&gt;
&lt;br /&gt;
bab_sitemap : enregistre l'arbre du plan du site&lt;br /&gt;
&lt;br /&gt;
bab_sitemap_functions : enregistre tous les nœuds disponibles par Ovidentia et ses modules : noeuds conteneurs (ex : section Utilisateur) et nœuds enfants (ex : lien options)&lt;br /&gt;
&lt;br /&gt;
bab_sitemap_function_labels : enregistre les libellés de chaque fonction dans toutes les langues disponibles&lt;br /&gt;
&lt;br /&gt;
bab_sitemap_profiles : enregistre tous les profils des utilisateurs. Un profil correspond à une vue spécifique de l'arbre pour un ou plusieurs utilisateurs : la vue respecte donc les droits d'accès sur les objets d'Ovidentia. Si plusieurs utilisateurs ont la même vue, ils ont le même profil.&lt;br /&gt;
&lt;br /&gt;
bab_sitemap_function_profile : table de liaison entre bab_sitemap_functions et bab_sitemap_profiles&lt;br /&gt;
&lt;br /&gt;
==Exemples==&lt;br /&gt;
&lt;br /&gt;
* On voit ici une représentation du nœud AdminSection du plan du site :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:sitemap1.jpg|Noeud AdminSection du plan du site]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Ici, une représentation du nœud Articles dans le plan du site :&amp;lt;br /&amp;gt;&lt;br /&gt;
A gauche : arborescence des catégories et thèmes d'articles vue par l'administrateur du site.&amp;lt;br /&amp;gt;&lt;br /&gt;
A droite : représentation par le plan du site.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:sitemap2.jpg|Noeud Articles dans l'administration]] [[Image:sitemap3.jpg|Noeud Articles du plan du site]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==API sur Sitemap==&lt;br /&gt;
&lt;br /&gt;
La classe bab_siteMap gère le plan du site :&lt;br /&gt;
&lt;br /&gt;
La méthode get() permet de récupérer l'arbre (objets bab_Node)&lt;br /&gt;
&lt;br /&gt;
La méthode build() construit l'arbre en base&lt;br /&gt;
&lt;br /&gt;
La méthode clear() réinitialise l'arbre&lt;br /&gt;
&lt;br /&gt;
La méthode getUrlById() et getNameById() permet d'avoir des informations sur un nœud&lt;br /&gt;
&lt;br /&gt;
La classe bab_siteMapItem gère un nœud du plan du site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sitemap aujourd'hui==&lt;br /&gt;
&lt;br /&gt;
* Actuellement : l'enregistrement des profils en base de données permet d'optimiser le temps d'affichage des sections.&lt;br /&gt;
* Le plan du site est accessible par OVML : container OCSitemapEntries. Il est possible de lister les noeuds du plan du site comme les entrées de la section Administration ou Utilisateur.&amp;lt;br /&amp;gt;&lt;br /&gt;
Liste des variables OVML disponibles :&amp;lt;br /&amp;gt;&lt;br /&gt;
** OVSitemapEntryId : Identifiant unique de l'entrée (chaîne de caractères)&lt;br /&gt;
** OVSitemapEntryUrl : Adresse Web (url) de l'entrée&lt;br /&gt;
** OVSitemapEntryText : Nom de l'entrée&lt;br /&gt;
** OVSitemapEntryDescription : Description de l'entrée&lt;br /&gt;
** OVSitemapEntryOnclick : Code javascript à exécuter sur l'entrée (événement onclick sur le lien)&lt;br /&gt;
** OVSitemapEntryFolder : Vaut 1 si l'entrée est un répertoire (conteneur d'entrées) sinon 0&lt;br /&gt;
* Les principaux noeuds conteneurs ont été définis. Le plan du site est dynamique : il est modifié à la volée dès l'instant qu'a lieu une modification sur un objet d'Ovidentia.&lt;br /&gt;
&lt;br /&gt;
==Evolutions proches==&lt;br /&gt;
&lt;br /&gt;
===Éditeur de plan de site===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un éditeur de plan de site : permettre la création de nouvelles vues du plan du site. L'objectif étant la personnalisation du plan du site en vue de définir une nouvelle navigation sur le site.&lt;br /&gt;
&lt;br /&gt;
====Caractéristiques de l'éditeur====&lt;br /&gt;
* Il sera développé dans un module d'Ovidentia.&lt;br /&gt;
* Pouvoir créer plusieurs vues de plan de site.&lt;br /&gt;
* Gestion des vues du plan de site : le module stockera les nouvelles vues dans ses tables de données. Le module s'enregistrera sur un évènement afin de fournir les vues au noyau Ovidentia : la vue sera soumise sous la forme d'un objet bab_siteMap.&lt;br /&gt;
* Possibilité de réordonner les entrées, supprimer des entrées, modifier les libellés, cacher des entrées.&lt;br /&gt;
* Gestion multi-langues (le stockage des informations multi-langues sera peut-être effectué par un autre module dédié).&lt;br /&gt;
* Lors de l'édition du plan du site, lorsqu'on créé un noeud lié à un noeud existant d'Ovidentia : pouvoir inclure ou pas les noeuds enfants du noeud d'origine.&lt;br /&gt;
* Dans un premier temps, l'éditeur s'appuiera sur le plan de site complet (contenant la délégation DG_ALL et les autres délégations).&lt;br /&gt;
* Au moment de la création d'un nouveau plan de site, on choisit si on veut partir d'un arbre vide ou d'un arbre complet (contenant tous les noeuds d'Ovidentia).&lt;br /&gt;
&lt;br /&gt;
====Interface====&lt;br /&gt;
* Gestion de plusieurs plans de site&lt;br /&gt;
* Page principale : affichage de l'arbre en cours. Bouton de création d'un noeud.&lt;br /&gt;
* Création d'un noeud : lié ou pas à un noeud existant d'Ovidentia.&lt;br /&gt;
Si lié à un noeud existant d'Ovidentia, une case de recherche permet de rechercher le noeud désiré dans le plan du site d'origine.&lt;br /&gt;
&lt;br /&gt;
==Parralèle avec le module Sitemap existant (module privé)==&lt;br /&gt;
&lt;br /&gt;
Le module Sitemap est utilisé dans tous les sites et skins d'Ovidentia. Il permet de définir une arborescence de navigation en opposé à l'arborescence de publication définie par l'administrateur du site (Conteneurs catégories et thèmes d'articles).&lt;br /&gt;
&lt;br /&gt;
===Fonctionnement===&lt;br /&gt;
&lt;br /&gt;
Chaque noeud peut être de type nul, url, catégorie, thème ou article.&lt;br /&gt;
&lt;br /&gt;
L'arborescence est entièrement exploitable&lt;br /&gt;
&lt;br /&gt;
===Problèmes récurrents à l'utilisation du module===&lt;br /&gt;
&lt;br /&gt;
Le chemin de fer d'Ovidentia, présent dans les articles, est caché. Le chemin de fer remplaçant s'appuie sur l'arborescence du module Sitemap.&lt;br /&gt;
&lt;br /&gt;
Générer le chemin de fer demande le passage du paramètre smap_node_id dans les urls ou la vérification des paramètres de l'url pour connaître la page en cours&lt;br /&gt;
&lt;br /&gt;
Tous les noeuds vers des objets d'Ovidentia doivent être ressaisis manuellement&lt;br /&gt;
&lt;br /&gt;
===Avantages===&lt;br /&gt;
&lt;br /&gt;
Il est possible de définir des valeurs pour chaque noeud qui seront utilisées pour le référencement du site par les moteurs de recherche : ces valeurs sont appliquées aux balises title et méta&lt;br /&gt;
&lt;br /&gt;
On a une solution aux faiblesses du noyau d'Ovidentia&lt;br /&gt;
&lt;br /&gt;
===Evolutions du module Sitemap===&lt;br /&gt;
&lt;br /&gt;
Pouvoir associer une image à un noeud&lt;br /&gt;
&lt;br /&gt;
Pouvoir associer une couleur à un noeud&lt;br /&gt;
&lt;br /&gt;
Avoir plus de types de noeuds : faq, applications forms...&lt;br /&gt;
&lt;br /&gt;
==Evolutions lointaines==&lt;br /&gt;
&lt;br /&gt;
Objectif : maîtriser la navigation dans Ovidentia par le plan du site.&lt;br /&gt;
&lt;br /&gt;
* Possibilité de mélanger aux noeuds d'Ovidentia des noeuds de type URL EXTERNE.&lt;br /&gt;
* Possibilité d'appliquer des droits d'accès sur un noeud du plan du site.&lt;br /&gt;
* Gérer les balises pour le référencement pour chaque noeud : title, balises métas...&lt;br /&gt;
* Générer le fichier sitemap.xml pour les utilisateurs anonymes : le fichier XML est utilisé par les moteurs de recherche.&lt;br /&gt;
* Pouvoir réécrire les urls.&lt;br /&gt;
* Affichage automatique du chemin de fer en s'appuyant sur le plan du site.&lt;br /&gt;
&lt;br /&gt;
Explication :&lt;br /&gt;
&lt;br /&gt;
Actuellement le chemin de fer s'appuie sur le module Sitemap. Pour qu'un script OVML génère le chemin de fer, il est nécessaire de vérifier si la page en cours d'affichage par l'utilisateur provient de l'arbre du module Sitemap ou pas. Pour cela, tous les liens générés par le module Sitemap ajoute le paramètre smap_node_id. Ainsi le script qui génère le chemin de fer vérifie l'existence du paramètre smap_node_id dans l'url et si elle existe il interroge le module Sitemap pour connaître l'emplacement du noeud dans l'arbre et donc le chemin de fer.&lt;br /&gt;
&lt;br /&gt;
Problème : lorsqu'on se trouve sur une page qui n'est pas dans l'arbre du module Sitemap ou qui ne contient pas le paramètre smap_node_id, on en sait pas générer de chemin de fer.&lt;br /&gt;
&lt;br /&gt;
Solution : Ovidentia peut créer une variable globale qui aurait pour valeur l'identifiant unique du nœud correspondant à la page en cours affichée (thème, article, contribution de forum...). Ceci permettrait à Ovidentia ou à un script OVML de générer le chemin de fer à partir de l'identifiant unique du nœud dans le plan du site d'Ovidentia.&lt;br /&gt;
&lt;br /&gt;
* Définir des identifiants uniques sur les noeuds de l'arbre pour chaque objet d'Ovidentia (Exemple pour un article : bab_article_delegation0_129).&lt;br /&gt;
* API pour l'OVML : récupération du chemin de fer, informations sur un noeud, pouvoir filtrer les entrées du plan du site sur une délégation. Ce développement peut éviter tous les scripts OVML développés dans le cadre de la DRE et de la CASQY afin de générer des menus filtrés par la délégation en cours. Rappel : par défaut si on appartient à plusieurs délégations, tous les objets de la délégation apparaissent en même temps sur l'interface d'Ovidentia (sections...).&lt;br /&gt;
* Adaptation des skins d'Ovidentia avec les nouveaux arbres de plan de site : pertes des sections, navigation sur plusieurs niveaux...&lt;br /&gt;
&lt;br /&gt;
==Questions en l'air==&lt;br /&gt;
&lt;br /&gt;
* Un noeud à identifiant unique peut se retrouver à plusieurs endroits dans l'arbre : comment gérer le chemin de fer ?&lt;br /&gt;
* Comment gérer une section Utilisateur présente dans 2 délégations par OVML ?&lt;br /&gt;
* L'API d'Ovidentia ne sait pas retourner une partie du plan du site.&lt;br /&gt;
* Gestion des délégations dans le plan du site : rendre possible de récupérer pour un utilisateur une vue par délégation dont il fait partie.&lt;br /&gt;
* Régulariser les filtres sur les délégations par variables globales.&lt;br /&gt;
* L'API doit pouvoir retourner une vue du plan du site sans tenir compte des droits d'accès afin que l'administrateur qui édite un plan du site puisse préparer un plan pour tous les utilisateurs.&lt;br /&gt;
* La section Utilisateur peut apparaître dans 2 délégations. Dans ce cas, son identifiant unique de nœud prendrait en compte l'identifiant de la délégation ?&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Sitemap&amp;diff=4329</id>
		<title>Sitemap</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Sitemap&amp;diff=4329"/>
				<updated>2009-05-26T06:35:15Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Caractéristiques de l'éditeur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;'''Résumé des développements pour le plan du site (Sitemap)'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;'''du noyau Ovidentia'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
* Un plan du site est une représentation de l'architecture du site, il liste les ressources proposées aux utilisateurs. Dans Ovidentia le plan du site est représenté par un arbre. Une ressource (ou nœud de l'arbre) peut être un objet d'Ovidentia (thème d'articles, faq, site...), la section Utilisateur, une délégation...&lt;br /&gt;
* Tous les objets d’Ovidentia ne sont pas forcément présents dans le plan du site.&lt;br /&gt;
&lt;br /&gt;
===Pourquoi un plan du site ?===&lt;br /&gt;
# Avec la gestion de profils utilisateurs, il est possible d'enregistrer un plan du site par profil en base de données. L'enregistrement sera exploité à chaque page sans avoir à recalculer tous les droits d'accès aux objets. On aura donc un cache qui optimiserait le temps d'affichage des pages (ex : les liens en section Utilisateur n'auraient pas besoin d'être recalculés tout le temps).&lt;br /&gt;
# Définir un chemin de fer (aussi nommé rail, fil d'Ariane, breadcrumb) afin de localiser l'utilisateur sur le site. Actuellement, seule la fonction Articles propose un chemin de fer. &lt;br /&gt;
# Faciliter la navigation. L'arbre du plan du site sera réutilisable par d'autres applications qui pourront proposer des alternatives aux sections Utilisateur et Administration : menus déroulants, navigation horizontale...&lt;br /&gt;
# Personnaliser le plan du site. Des éditeurs permettront la personnalisation du plan du site : suppression de noeuds, renommages de noeuds...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:exnavigation.jpg|center|thumb|600px|Exemple de navigation aérée sans sections]]&lt;br /&gt;
&lt;br /&gt;
==Sitemap dans la base de données==&lt;br /&gt;
&lt;br /&gt;
* Actuellement l'arbre est sauvegardé dans la base de données dans les tables préfixées par sitemap :&lt;br /&gt;
&lt;br /&gt;
bab_sitemap : enregistre l'arbre du plan du site&lt;br /&gt;
&lt;br /&gt;
bab_sitemap_functions : enregistre tous les nœuds disponibles par Ovidentia et ses modules : noeuds conteneurs (ex : section Utilisateur) et nœuds enfants (ex : lien options)&lt;br /&gt;
&lt;br /&gt;
bab_sitemap_function_labels : enregistre les libellés de chaque fonction dans toutes les langues disponibles&lt;br /&gt;
&lt;br /&gt;
bab_sitemap_profiles : enregistre tous les profils des utilisateurs. Un profil correspond à une vue spécifique de l'arbre pour un ou plusieurs utilisateurs : la vue respecte donc les droits d'accès sur les objets d'Ovidentia. Si plusieurs utilisateurs ont la même vue, ils ont le même profil.&lt;br /&gt;
&lt;br /&gt;
bab_sitemap_function_profile : table de liaison entre bab_sitemap_functions et bab_sitemap_profiles&lt;br /&gt;
&lt;br /&gt;
==Exemples==&lt;br /&gt;
&lt;br /&gt;
* On voit ici une représentation du nœud AdminSection du plan du site :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:sitemap1.jpg|Noeud AdminSection du plan du site]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Ici, une représentation du nœud Articles dans le plan du site :&amp;lt;br /&amp;gt;&lt;br /&gt;
A gauche : arborescence des catégories et thèmes d'articles vue par l'administrateur du site.&amp;lt;br /&amp;gt;&lt;br /&gt;
A droite : représentation par le plan du site.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:sitemap2.jpg|Noeud Articles dans l'administration]] [[Image:sitemap3.jpg|Noeud Articles du plan du site]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==API sur Sitemap==&lt;br /&gt;
&lt;br /&gt;
La classe bab_siteMap gère le plan du site :&lt;br /&gt;
&lt;br /&gt;
La méthode get() permet de récupérer l'arbre (objets bab_Node)&lt;br /&gt;
&lt;br /&gt;
La méthode build() construit l'arbre en base&lt;br /&gt;
&lt;br /&gt;
La méthode clear() réinitialise l'arbre&lt;br /&gt;
&lt;br /&gt;
La méthode getUrlById() et getNameById() permet d'avoir des informations sur un nœud&lt;br /&gt;
&lt;br /&gt;
La classe bab_siteMapItem gère un nœud du plan du site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sitemap aujourd'hui==&lt;br /&gt;
&lt;br /&gt;
* Actuellement : l'enregistrement des profils en base de données permet d'optimiser le temps d'affichage des sections.&lt;br /&gt;
* Le plan du site est accessible par OVML : container OCSitemapEntries. Il est possible de lister les noeuds du plan du site comme les entrées de la section Administration ou Utilisateur.&amp;lt;br /&amp;gt;&lt;br /&gt;
Liste des variables OVML disponibles :&amp;lt;br /&amp;gt;&lt;br /&gt;
** OVSitemapEntryId : Identifiant unique de l'entrée (chaîne de caractères)&lt;br /&gt;
** OVSitemapEntryUrl : Adresse Web (url) de l'entrée&lt;br /&gt;
** OVSitemapEntryText : Nom de l'entrée&lt;br /&gt;
** OVSitemapEntryDescription : Description de l'entrée&lt;br /&gt;
** OVSitemapEntryOnclick : Code javascript à exécuter sur l'entrée (événement onclick sur le lien)&lt;br /&gt;
** OVSitemapEntryFolder : Vaut 1 si l'entrée est un répertoire (conteneur d'entrées) sinon 0&lt;br /&gt;
* Les principaux noeuds conteneurs ont été définis. Le plan du site est dynamique : il est modifié à la volée dès l'instant qu'a lieu une modification sur un objet d'Ovidentia.&lt;br /&gt;
&lt;br /&gt;
==Evolutions proches==&lt;br /&gt;
&lt;br /&gt;
===Éditeur de plan de site===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un éditeur de plan de site : permettre la création de nouvelles vues du plan du site. L'objectif étant la personnalisation du plan du site en vue de définir une nouvelle navigation sur le site.&lt;br /&gt;
&lt;br /&gt;
====Caractéristiques de l'éditeur====&lt;br /&gt;
* Il sera développé dans un module d'Ovidentia.&lt;br /&gt;
* Pouvoir créer plusieurs vues de plan de site.&lt;br /&gt;
* Gestion des vues du plan de site : le module stockera les nouvelles vues dans ses tables de données. Le module s'enregistrera sur un évènement afin de fournir les vues au noyau Ovidentia : la vue sera soumise sous la forme d'un objet bab_siteMap.&lt;br /&gt;
* Possibilité de réordonner les entrées, supprimer des entrées, modifier les libellés, cacher des entrées.&lt;br /&gt;
* Gestion multi-langues (le stockage des informations multi-langues sera peut-être effectué par un autre module dédié).&lt;br /&gt;
* Lors de l'édition du plan du site, lorsqu'on créé un noeud lié à un noeud existant d'Ovidentia : pouvoir inclure ou pas les noeuds enfants du noeud d'origine.&lt;br /&gt;
* Dans un premier temps, l'éditeur s'appuiera sur le plan de site complet (contenant la délégation DG_ALL et les autres délégations).&lt;br /&gt;
* Au moment de la création d'un nouveau plan de site, on choisit si on veut partir d'un arbre vide ou d'un arbre complet (contenant tous les noeuds d'Ovidentia).&lt;br /&gt;
&lt;br /&gt;
====Interface====&lt;br /&gt;
* Gestion de plusieurs plans de site&lt;br /&gt;
* Page principale : affichage de l'arbre en cours. Bouton de création d'un noeud.&lt;br /&gt;
* Création d'un noeud : lié ou pas à un noeud existant d'Ovidentia.&lt;br /&gt;
Si lié à un noeud existant d'Ovidentia, une case de recherche permet de rechercher le noeud désiré dans le plan du site d'origine.&lt;br /&gt;
&lt;br /&gt;
==Parralèle avec le module Sitemap existant (module privé)==&lt;br /&gt;
&lt;br /&gt;
Le module Sitemap est utilisé dans tous les sites et skins d'Ovidentia. Il permet de définir une arborescence de navigation en opposé à l'arborescence de publication définies par l'administrateur du site (Conteneurs catégories et thèmes d'articles).&lt;br /&gt;
&lt;br /&gt;
===Fonctionnement===&lt;br /&gt;
&lt;br /&gt;
Chaque noeud peut être de type nul, url, catégorie, thème ou article.&lt;br /&gt;
&lt;br /&gt;
L'arborescence est entièrement exploitable&lt;br /&gt;
&lt;br /&gt;
===Problèmes récurrents à l'utilisation du module===&lt;br /&gt;
&lt;br /&gt;
Le chemin de fer d'Ovidentia, présent dans les articles, est caché. Le chemin de fer remplaçant s'appuie sur l'arborescence du module Sitemap.&lt;br /&gt;
&lt;br /&gt;
Générer le chemin de fer demande le passage du paramètre smap_node_id dans les urls ou la vérification des paramètres de l'url pour connaître la page en cours&lt;br /&gt;
&lt;br /&gt;
Tous les noeuds vers des objets d'Ovidentia doivent être resaisis manuellement&lt;br /&gt;
&lt;br /&gt;
===Avantages===&lt;br /&gt;
&lt;br /&gt;
Il est possible de définir des valeurs pour chaque noeud qui seront utilisées pour le référencement du site par les moteurs de recherche : ces valeurs sont appliquées aux balises title et méta&lt;br /&gt;
&lt;br /&gt;
On a une solution aux faiblesses du noyau d'Ovidentia&lt;br /&gt;
&lt;br /&gt;
===Evolutions du module Sitemap===&lt;br /&gt;
&lt;br /&gt;
Pouvoir associer une image à un noeud&lt;br /&gt;
&lt;br /&gt;
Pouvoir associer une couleur à un noeud&lt;br /&gt;
&lt;br /&gt;
Avoir plus de types de noeuds : faq, applications forms...&lt;br /&gt;
&lt;br /&gt;
==Evolutions lointaines==&lt;br /&gt;
&lt;br /&gt;
Objectif : maîtriser la navigation dans Ovidentia par le plan du site.&lt;br /&gt;
&lt;br /&gt;
* Possibilité de mélanger aux noeuds d'Ovidentia des noeuds de type URL EXTERNE.&lt;br /&gt;
* Possibilité d'appliquer des droits d'accès sur un noeud du plan du site.&lt;br /&gt;
* Gérer les balises pour le référencement pour chaque noeud : title, balises métas...&lt;br /&gt;
* Générer le fichier sitemap.xml pour les utilisateurs anonymes : le fichier XML est utilisé par les moteurs de recherche.&lt;br /&gt;
* Pouvoir réécrire les urls.&lt;br /&gt;
* Affichage automatique du chemin de fer en s'appuyant sur le plan du site.&lt;br /&gt;
&lt;br /&gt;
Explication :&lt;br /&gt;
&lt;br /&gt;
Actuellement le chemin de fer s'appuie sur le module Sitemap. Pour qu'un script OVML génère le chemin de fer, il est nécessaire de vérifier si la page en cours d'affichage par l'utilisateur provient de l'arbre du module Sitemap ou pas. Pour cela, tous les liens générés par le module Sitemap ajoute le paramètre smap_node_id. Ainsi le script qui génère le chemin de fer vérifie l'existence du paramètre smap_node_id dans l'url et si elle existe il interroge le module Sitemap pour connaître l'emplacement du noeud dans l'arbre et donc le chemin de fer.&lt;br /&gt;
&lt;br /&gt;
Problème : lorsqu'on se trouve sur une page qui n'est pas dans l'arbre du module Sitemap ou qui ne contient pas le paramètre smap_node_id, on en sait pas générer de chemin de fer.&lt;br /&gt;
&lt;br /&gt;
Solution : Ovidentia peut créer une variable globale qui aurait pour valeur l'identifiant unique du nœud correspondant à la page en cours affichée (thème, article, contribution de forum...). Ceci permettrait à Ovidentia ou à un script OVML de générer le chemin de fer à partir de l'identifiant unique du nœud dans le plan du site d'Ovidentia.&lt;br /&gt;
&lt;br /&gt;
* Définir des identifiants uniques sur les noeuds de l'arbre pour chaque objet d'Ovidentia (Exemple pour un article : bab_article_delegation0_129).&lt;br /&gt;
* API pour l'OVML : récupération du chemin de fer, informations sur un noeud, pouvoir filtrer les entrées du plan du site sur une délégation. Ce développement peut éviter tous les scripts OVML développés dans le cadre de la DRE et de la CASQY afin de générer des menus filtrés par la délégation en cours. Rappel : par défaut si on appartient à plusieurs délégations, tous les objets de la délégation apparaissent en même temps sur l'interface d'Ovidentia (sections...).&lt;br /&gt;
* Adaptation des skins d'Ovidentia avec les nouveaux arbres de plan de site : pertes des sections, navigation sur plusieurs niveaux...&lt;br /&gt;
&lt;br /&gt;
==Questions en l'air==&lt;br /&gt;
&lt;br /&gt;
* Un noeud à identifiant unique peut se retrouver à plusieurs endroits dans l'arbre : comment gérer le chemin de fer ?&lt;br /&gt;
* Comment gérer une section Utilisateur présente dans 2 délégations par OVML ?&lt;br /&gt;
* L'API d'Ovidentia ne sait pas retourner une partie du plan du site.&lt;br /&gt;
* Gestion des délégations dans le plan du site : rendre possible de récupérer pour un utilisateur une vue par délégation dont il fait partie.&lt;br /&gt;
* Régulariser les filtres sur les délégations par variables globales.&lt;br /&gt;
* L'API doit pouvoir retourner une vue du plan du site sans tenir compte des droits d'accès afin que l'administrateur qui édite un plan du site puisse préparer un plan pour tous les utilisateurs.&lt;br /&gt;
* La section Utilisateur peut apparaître dans 2 délégations. Dans ce cas, son identifiant unique de nœud prendrait en compte l'identifiant de la délégation ?&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Sitemap&amp;diff=4328</id>
		<title>Sitemap</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Sitemap&amp;diff=4328"/>
				<updated>2009-05-26T06:30:13Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Sitemap dans la base de données */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;'''Résumé des développements pour le plan du site (Sitemap)'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;'''du noyau Ovidentia'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
* Un plan du site est une représentation de l'architecture du site, il liste les ressources proposées aux utilisateurs. Dans Ovidentia le plan du site est représenté par un arbre. Une ressource (ou nœud de l'arbre) peut être un objet d'Ovidentia (thème d'articles, faq, site...), la section Utilisateur, une délégation...&lt;br /&gt;
* Tous les objets d’Ovidentia ne sont pas forcément présents dans le plan du site.&lt;br /&gt;
&lt;br /&gt;
===Pourquoi un plan du site ?===&lt;br /&gt;
# Avec la gestion de profils utilisateurs, il est possible d'enregistrer un plan du site par profil en base de données. L'enregistrement sera exploité à chaque page sans avoir à recalculer tous les droits d'accès aux objets. On aura donc un cache qui optimiserait le temps d'affichage des pages (ex : les liens en section Utilisateur n'auraient pas besoin d'être recalculés tout le temps).&lt;br /&gt;
# Définir un chemin de fer (aussi nommé rail, fil d'Ariane, breadcrumb) afin de localiser l'utilisateur sur le site. Actuellement, seule la fonction Articles propose un chemin de fer. &lt;br /&gt;
# Faciliter la navigation. L'arbre du plan du site sera réutilisable par d'autres applications qui pourront proposer des alternatives aux sections Utilisateur et Administration : menus déroulants, navigation horizontale...&lt;br /&gt;
# Personnaliser le plan du site. Des éditeurs permettront la personnalisation du plan du site : suppression de noeuds, renommages de noeuds...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:exnavigation.jpg|center|thumb|600px|Exemple de navigation aérée sans sections]]&lt;br /&gt;
&lt;br /&gt;
==Sitemap dans la base de données==&lt;br /&gt;
&lt;br /&gt;
* Actuellement l'arbre est sauvegardé dans la base de données dans les tables préfixées par sitemap :&lt;br /&gt;
&lt;br /&gt;
bab_sitemap : enregistre l'arbre du plan du site&lt;br /&gt;
&lt;br /&gt;
bab_sitemap_functions : enregistre tous les nœuds disponibles par Ovidentia et ses modules : noeuds conteneurs (ex : section Utilisateur) et nœuds enfants (ex : lien options)&lt;br /&gt;
&lt;br /&gt;
bab_sitemap_function_labels : enregistre les libellés de chaque fonction dans toutes les langues disponibles&lt;br /&gt;
&lt;br /&gt;
bab_sitemap_profiles : enregistre tous les profils des utilisateurs. Un profil correspond à une vue spécifique de l'arbre pour un ou plusieurs utilisateurs : la vue respecte donc les droits d'accès sur les objets d'Ovidentia. Si plusieurs utilisateurs ont la même vue, ils ont le même profil.&lt;br /&gt;
&lt;br /&gt;
bab_sitemap_function_profile : table de liaison entre bab_sitemap_functions et bab_sitemap_profiles&lt;br /&gt;
&lt;br /&gt;
==Exemples==&lt;br /&gt;
&lt;br /&gt;
* On voit ici une représentation du nœud AdminSection du plan du site :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:sitemap1.jpg|Noeud AdminSection du plan du site]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Ici, une représentation du nœud Articles dans le plan du site :&amp;lt;br /&amp;gt;&lt;br /&gt;
A gauche : arborescence des catégories et thèmes d'articles vue par l'administrateur du site.&amp;lt;br /&amp;gt;&lt;br /&gt;
A droite : représentation par le plan du site.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:sitemap2.jpg|Noeud Articles dans l'administration]] [[Image:sitemap3.jpg|Noeud Articles du plan du site]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==API sur Sitemap==&lt;br /&gt;
&lt;br /&gt;
La classe bab_siteMap gère le plan du site :&lt;br /&gt;
&lt;br /&gt;
La méthode get() permet de récupérer l'arbre (objets bab_Node)&lt;br /&gt;
&lt;br /&gt;
La méthode build() construit l'arbre en base&lt;br /&gt;
&lt;br /&gt;
La méthode clear() réinitialise l'arbre&lt;br /&gt;
&lt;br /&gt;
La méthode getUrlById() et getNameById() permet d'avoir des informations sur un nœud&lt;br /&gt;
&lt;br /&gt;
La classe bab_siteMapItem gère un nœud du plan du site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sitemap aujourd'hui==&lt;br /&gt;
&lt;br /&gt;
* Actuellement : l'enregistrement des profils en base de données permet d'optimiser le temps d'affichage des sections.&lt;br /&gt;
* Le plan du site est accessible par OVML : container OCSitemapEntries. Il est possible de lister les noeuds du plan du site comme les entrées de la section Administration ou Utilisateur.&amp;lt;br /&amp;gt;&lt;br /&gt;
Liste des variables OVML disponibles :&amp;lt;br /&amp;gt;&lt;br /&gt;
** OVSitemapEntryId : Identifiant unique de l'entrée (chaîne de caractères)&lt;br /&gt;
** OVSitemapEntryUrl : Adresse Web (url) de l'entrée&lt;br /&gt;
** OVSitemapEntryText : Nom de l'entrée&lt;br /&gt;
** OVSitemapEntryDescription : Description de l'entrée&lt;br /&gt;
** OVSitemapEntryOnclick : Code javascript à exécuter sur l'entrée (événement onclick sur le lien)&lt;br /&gt;
** OVSitemapEntryFolder : Vaut 1 si l'entrée est un répertoire (conteneur d'entrées) sinon 0&lt;br /&gt;
* Les principaux noeuds conteneurs ont été définis. Le plan du site est dynamique : il est modifié à la volée dès l'instant qu'a lieu une modification sur un objet d'Ovidentia.&lt;br /&gt;
&lt;br /&gt;
==Evolutions proches==&lt;br /&gt;
&lt;br /&gt;
===Éditeur de plan de site===&lt;br /&gt;
&lt;br /&gt;
Réalisation d'un éditeur de plan de site : permettre la création de nouvelles vues du plan du site. L'objectif étant la personnalisation du plan du site en vue de définir une nouvelle navigation sur le site.&lt;br /&gt;
&lt;br /&gt;
====Caractéristiques de l'éditeur====&lt;br /&gt;
* Il sera développé dans un module d'Ovidentia.&lt;br /&gt;
* Pouvoir créer plusieurs vues de plan de site.&lt;br /&gt;
* Gestion des vues du plan de site : le module stockera les nouvelles vues dans ces tables de données. Le module s'enregistrera sur un évènement afin de fournir les vues au noyau Ovidentia : la vue sera soumise sous la forme d'un objet bab_siteMap.&lt;br /&gt;
* Possibilité de réordonner les entrées, supprimer des entrées, modifier les libellés, cacher des entrées.&lt;br /&gt;
* Gestion multi-langues (le stockage des informations multi-langues sera peut-être effectué par un autre module dédié).&lt;br /&gt;
* Lors de l'édition du plan du site, lorsqu'on créé un noeud lié à un noeud existant d'Ovidentia : pouvoir inclure ou pas les noeuds enfants du noeud d'origine.&lt;br /&gt;
* Dans un premier temps, l'éditeur s'appuira sur le plan de site complet (contenant la délégation DG_ALL et les autres délégations).&lt;br /&gt;
* Au moment de la création d'un nouveau plan de site, on choisit si on veut partir d'un arbre vide ou d'un arbre complet (contenant tous les noeuds d'Ovidentia).&lt;br /&gt;
&lt;br /&gt;
====Interface====&lt;br /&gt;
* Gestion de plusieurs plans de site&lt;br /&gt;
* Page principale : affichage de l'arbre en cours. Bouton de création d'un noeud.&lt;br /&gt;
* Création d'un noeud : lié ou pas à un noeud existant d'Ovidentia.&lt;br /&gt;
Si lié à un noeud existant d'Ovidentia, une case de recherche permet de rechercher le noeud désiré dans le plan du site d'origine.&lt;br /&gt;
&lt;br /&gt;
==Parralèle avec le module Sitemap existant (module privé)==&lt;br /&gt;
&lt;br /&gt;
Le module Sitemap est utilisé dans tous les sites et skins d'Ovidentia. Il permet de définir une arborescence de navigation en opposé à l'arborescence de publication définies par l'administrateur du site (Conteneurs catégories et thèmes d'articles).&lt;br /&gt;
&lt;br /&gt;
===Fonctionnement===&lt;br /&gt;
&lt;br /&gt;
Chaque noeud peut être de type nul, url, catégorie, thème ou article.&lt;br /&gt;
&lt;br /&gt;
L'arborescence est entièrement exploitable&lt;br /&gt;
&lt;br /&gt;
===Problèmes récurrents à l'utilisation du module===&lt;br /&gt;
&lt;br /&gt;
Le chemin de fer d'Ovidentia, présent dans les articles, est caché. Le chemin de fer remplaçant s'appuie sur l'arborescence du module Sitemap.&lt;br /&gt;
&lt;br /&gt;
Générer le chemin de fer demande le passage du paramètre smap_node_id dans les urls ou la vérification des paramètres de l'url pour connaître la page en cours&lt;br /&gt;
&lt;br /&gt;
Tous les noeuds vers des objets d'Ovidentia doivent être resaisis manuellement&lt;br /&gt;
&lt;br /&gt;
===Avantages===&lt;br /&gt;
&lt;br /&gt;
Il est possible de définir des valeurs pour chaque noeud qui seront utilisées pour le référencement du site par les moteurs de recherche : ces valeurs sont appliquées aux balises title et méta&lt;br /&gt;
&lt;br /&gt;
On a une solution aux faiblesses du noyau d'Ovidentia&lt;br /&gt;
&lt;br /&gt;
===Evolutions du module Sitemap===&lt;br /&gt;
&lt;br /&gt;
Pouvoir associer une image à un noeud&lt;br /&gt;
&lt;br /&gt;
Pouvoir associer une couleur à un noeud&lt;br /&gt;
&lt;br /&gt;
Avoir plus de types de noeuds : faq, applications forms...&lt;br /&gt;
&lt;br /&gt;
==Evolutions lointaines==&lt;br /&gt;
&lt;br /&gt;
Objectif : maîtriser la navigation dans Ovidentia par le plan du site.&lt;br /&gt;
&lt;br /&gt;
* Possibilité de mélanger aux noeuds d'Ovidentia des noeuds de type URL EXTERNE.&lt;br /&gt;
* Possibilité d'appliquer des droits d'accès sur un noeud du plan du site.&lt;br /&gt;
* Gérer les balises pour le référencement pour chaque noeud : title, balises métas...&lt;br /&gt;
* Générer le fichier sitemap.xml pour les utilisateurs anonymes : le fichier XML est utilisé par les moteurs de recherche.&lt;br /&gt;
* Pouvoir réécrire les urls.&lt;br /&gt;
* Affichage automatique du chemin de fer en s'appuyant sur le plan du site.&lt;br /&gt;
&lt;br /&gt;
Explication :&lt;br /&gt;
&lt;br /&gt;
Actuellement le chemin de fer s'appuie sur le module Sitemap. Pour qu'un script OVML génère le chemin de fer, il est nécessaire de vérifier si la page en cours d'affichage par l'utilisateur provient de l'arbre du module Sitemap ou pas. Pour cela, tous les liens générés par le module Sitemap ajoute le paramètre smap_node_id. Ainsi le script qui génère le chemin de fer vérifie l'existence du paramètre smap_node_id dans l'url et si elle existe il interroge le module Sitemap pour connaître l'emplacement du noeud dans l'arbre et donc le chemin de fer.&lt;br /&gt;
&lt;br /&gt;
Problème : lorsqu'on se trouve sur une page qui n'est pas dans l'arbre du module Sitemap ou qui ne contient pas le paramètre smap_node_id, on en sait pas générer de chemin de fer.&lt;br /&gt;
&lt;br /&gt;
Solution : Ovidentia peut créer une variable globale qui aurait pour valeur l'identifiant unique du nœud correspondant à la page en cours affichée (thème, article, contribution de forum...). Ceci permettrait à Ovidentia ou à un script OVML de générer le chemin de fer à partir de l'identifiant unique du nœud dans le plan du site d'Ovidentia.&lt;br /&gt;
&lt;br /&gt;
* Définir des identifiants uniques sur les noeuds de l'arbre pour chaque objet d'Ovidentia (Exemple pour un article : bab_article_delegation0_129).&lt;br /&gt;
* API pour l'OVML : récupération du chemin de fer, informations sur un noeud, pouvoir filtrer les entrées du plan du site sur une délégation. Ce développement peut éviter tous les scripts OVML développés dans le cadre de la DRE et de la CASQY afin de générer des menus filtrés par la délégation en cours. Rappel : par défaut si on appartient à plusieurs délégations, tous les objets de la délégation apparaissent en même temps sur l'interface d'Ovidentia (sections...).&lt;br /&gt;
* Adaptation des skins d'Ovidentia avec les nouveaux arbres de plan de site : pertes des sections, navigation sur plusieurs niveaux...&lt;br /&gt;
&lt;br /&gt;
==Questions en l'air==&lt;br /&gt;
&lt;br /&gt;
* Un noeud à identifiant unique peut se retrouver à plusieurs endroits dans l'arbre : comment gérer le chemin de fer ?&lt;br /&gt;
* Comment gérer une section Utilisateur présente dans 2 délégations par OVML ?&lt;br /&gt;
* L'API d'Ovidentia ne sait pas retourner une partie du plan du site.&lt;br /&gt;
* Gestion des délégations dans le plan du site : rendre possible de récupérer pour un utilisateur une vue par délégation dont il fait partie.&lt;br /&gt;
* Régulariser les filtres sur les délégations par variables globales.&lt;br /&gt;
* L'API doit pouvoir retourner une vue du plan du site sans tenir compte des droits d'accès afin que l'administrateur qui édite un plan du site puisse préparer un plan pour tous les utilisateurs.&lt;br /&gt;
* La section Utilisateur peut apparaître dans 2 délégations. Dans ce cas, son identifiant unique de nœud prendrait en compte l'identifiant de la délégation ?&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=4103</id>
		<title>Feuille de route</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=4103"/>
				<updated>2009-03-31T15:13:14Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Version 7.1.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version 6.7.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer des fonctionnalités externe (Voir l'article [[Communication entre les modules]])   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de tester la présence des fonctionnalités comme des prérequis pour l'installation d'un module ou du noyau   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité d'ajouter un script de prérequis personnalisés pour l'installation d'un module   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Controle de disponibilité pour empêcher le surbooking dans les agendas de ressources  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de catégories sur les délégations utilisables dans l'OVML    || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout du contener OVML OCRecentFaqQuestions  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de l'API des articles ( Voir [[API Articles]])  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout des types de congés avec les couleurs sur la visualisation d'un congé dans l'agenda  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout de la gestion des plusieurs périodes d'exclusion dans les droits de congés ||   Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 7.0.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer le plan du site dans le noyau   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration des skins en tant que modules  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Déléguer la saisie de certains champs de l'annuaire à des utilisateurs en utilisant les droits ACL.&lt;br /&gt;
Les utilisateurs ayant le droit de mettre à jour l'annuaire continueront à le faire sur tous les champs de l'annuaire.&lt;br /&gt;
Les utilisateurs ayant le droit de modification sur certains champs ne pourront pas modifier les autres champs de l'annuaire ( sauf s'ils ont le droit de modification sur l'annuaire ). Un utilisateur qui a le droit de modification sur un champ pourra le faire sur toutes les fiches annuaires des utilisateurs du portail.&lt;br /&gt;
|| Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la liste des module pour séparer les modules utiles des modules de bibliothèques partagées et des thèmes  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout des contrôles de dépendances entre les modules lors de la suppression  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de la nouvelle [[API de gestion d'un module]]  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de typer les entités d'un organigramme pour mieux les personnaliser en exploitant un fichier CSS   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Nouveaux containers pour l'organigramme ( Liste des entités d'un utilisateur, liste des entités parents d'une entité )   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Utilisation d'un fichier OVML pour afficher la fiche annuaire d'un utilisateur dans les organigrammes   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Paramétrage du seuil d'affichage vertical d'un organigramme. Ajout d'une option pour les gestionnaires et prise en compte de ce seuil lors de la visualisation de l'organigramme   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout des options permettant de modifier/supprimer tous les événements répétitifs postérieurs à un événement répétitif  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de dupliquer un événement. A partir du formulaire de modification d'un événement, permettre de dupliquer l'événement en copiant toutes les informations ( sauf les informations de répétition ) vers le formulaire de création  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Support du mode d'encodage UTF-8 dans le portail || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité d'associer des images aux catégories d'articles, aux thèmes d'articles et aux articles  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de faire une recherche en spécifiant une catégorie d'articles  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de la possibilité de supprimer un groupe et ses enfants, uniquement les enfants de premier niveau ou seulement les enfants  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de PHP (passage à PHP 5.1.0)  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de MySQL (passage à MySQL 4.1.0)  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Le skin par défaut livré dans l'archive d'Ovidentia devient un module lors d'une nouvelle installation || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout d'un champ de recherche sur la liste des utilisateurs de l'administration || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API pour interagir avec l'organigramme  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API de base pour interagir avec le gestionnaire de fichier || En cours&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 7.1.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API pour la recherche  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API de gestion de tags et thésaurus  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| [[Nouvelle interface de recherche dans le noyau]] || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de spécifier pour un compte utilisateur une période de connexion. En dehors de cette période le compte de l'utilisateur est désactivé || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout d'une fonction permettant d'historiser les téléchargements pour un répertoire collectif donné. L'historique affichera pour chaque fichier: la date du téléchargement, l'auteur, etc...  || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de limiter le nombre de téléchargements pour un fichier donné  || En cours&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version future ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Création d'un (ou de) module(s) de saisie de notes et remplacement de la fonctionnalité Notes du noyau  || A l'étude&lt;br /&gt;
|-&lt;br /&gt;
|| La page &amp;quot;Nouveautés&amp;quot; dans le noyau devient un module d'Ovidentia installé par défaut dans la distribution mais supprimable  || A l'étude&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=4102</id>
		<title>Feuille de route</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=4102"/>
				<updated>2009-03-31T14:55:01Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Version 7.1.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version 6.7.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer des fonctionnalités externe (Voir l'article [[Communication entre les modules]])   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de tester la présence des fonctionnalités comme des prérequis pour l'installation d'un module ou du noyau   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité d'ajouter un script de prérequis personnalisés pour l'installation d'un module   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Controle de disponibilité pour empêcher le surbooking dans les agendas de ressources  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de catégories sur les délégations utilisables dans l'OVML    || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout du contener OVML OCRecentFaqQuestions  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de l'API des articles ( Voir [[API Articles]])  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout des types de congés avec les couleurs sur la visualisation d'un congé dans l'agenda  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout de la gestion des plusieurs périodes d'exclusion dans les droits de congés ||   Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 7.0.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer le plan du site dans le noyau   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration des skins en tant que modules  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Déléguer la saisie de certains champs de l'annuaire à des utilisateurs en utilisant les droits ACL.&lt;br /&gt;
Les utilisateurs ayant le droit de mettre à jour l'annuaire continueront à le faire sur tous les champs de l'annuaire.&lt;br /&gt;
Les utilisateurs ayant le droit de modification sur certains champs ne pourront pas modifier les autres champs de l'annuaire ( sauf s'ils ont le droit de modification sur l'annuaire ). Un utilisateur qui a le droit de modification sur un champ pourra le faire sur toutes les fiches annuaires des utilisateurs du portail.&lt;br /&gt;
|| Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la liste des module pour séparer les modules utiles des modules de bibliothèques partagées et des thèmes  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout des contrôles de dépendances entre les modules lors de la suppression  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de la nouvelle [[API de gestion d'un module]]  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de typer les entités d'un organigramme pour mieux les personnaliser en exploitant un fichier CSS   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Nouveaux containers pour l'organigramme ( Liste des entités d'un utilisateur, liste des entités parents d'une entité )   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Utilisation d'un fichier OVML pour afficher la fiche annuaire d'un utilisateur dans les organigrammes   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Paramétrage du seuil d'affichage vertical d'un organigramme. Ajout d'une option pour les gestionnaires et prise en compte de ce seuil lors de la visualisation de l'organigramme   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout des options permettant de modifier/supprimer tous les événements répétitifs postérieurs à un événement répétitif  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de dupliquer un événement. A partir du formulaire de modification d'un événement, permettre de dupliquer l'événement en copiant toutes les informations ( sauf les informations de répétition ) vers le formulaire de création  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Support du mode d'encodage UTF-8 dans le portail || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité d'associer des images aux catégories d'articles, aux thèmes d'articles et aux articles  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de faire une recherche en spécifiant une catégorie d'articles  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de la possibilité de supprimer un groupe et ses enfants, uniquement les enfants de premier niveau ou seulement les enfants  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de PHP (passage à PHP 5.1.0)  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de MySQL (passage à MySQL 4.1.0)  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Le skin par défaut livré dans l'archive d'Ovidentia devient un module lors d'une nouvelle installation || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout d'un champ de recherche sur la liste des utilisateurs de l'administration || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API pour interagir avec l'organigramme  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API de base pour interagir avec le gestionnaire de fichier || En cours&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 7.1.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API pour la recherche  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une nouvelle API de gestion de tags et thésaurus  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| [[Nouvelle interface de recherche dans le noyau]] || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| [[Possibilité de spécifier pour un compte utilisateur une période de connexion. En dehors de cette période le compte de l'utilisateur est désactivé]] || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout d'une fonction permettant d'historiser les téléchargements pour un répertoire collectif donné. L'historique affichera pour chaque fichier: la date du téléchargement, l'auteur, etc...  || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de limiter le nombre de téléchargements pour un fichier donné  || En cours&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version future ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Création d'un (ou de) module(s) de saisie de notes et remplacement de la fonctionnalité Notes du noyau  || A l'étude&lt;br /&gt;
|-&lt;br /&gt;
|| La page &amp;quot;Nouveautés&amp;quot; dans le noyau devient un module d'Ovidentia installé par défaut dans la distribution mais supprimable  || A l'étude&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Format_des_archives&amp;diff=4101</id>
		<title>Format des archives</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Format_des_archives&amp;diff=4101"/>
				<updated>2009-03-31T14:49:08Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Structure de l'archive */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Développement de modules]]&lt;br /&gt;
&lt;br /&gt;
Les installations et mises à jour dans Ovidentia se font au moyen d'archives zip.&lt;br /&gt;
&lt;br /&gt;
Les méta-données nécessaires pour que l'archive soit reconnue sont enregistrées dans un [http://fr.wikipedia.org/wiki/Fichier_INI fichier ini].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Types d'archives ==&lt;br /&gt;
&lt;br /&gt;
=== Distribution ===&lt;br /&gt;
&lt;br /&gt;
Une archive de distribution contient une version d'Ovidentia qui permet de faire soit une nouvelle installation soit une mise à jour.&lt;br /&gt;
&lt;br /&gt;
==== Structure de l'archive ==== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    /&lt;br /&gt;
    |&lt;br /&gt;
    +- install/&lt;br /&gt;
    |   |&lt;br /&gt;
    |   +- babinstall.sql&lt;br /&gt;
    |   |&lt;br /&gt;
    |   +- addons/&lt;br /&gt;
    |&lt;br /&gt;
    +- ovidentia/&lt;br /&gt;
        |&lt;br /&gt;
        +- version.inc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Le sous-répertoire addons/ contient des modules qui seront installés par défaut avec la distribution&lt;br /&gt;
* babinstall.sql contient les tables qui seront créées lors d'une nouvelle installation d'Ovidentia&lt;br /&gt;
&lt;br /&gt;
==== Le fichier ini &amp;quot;version.inc&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
Pour plus d'informations sur le fichier ini : [[Variables du fichier addonini]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Module ===&lt;br /&gt;
&lt;br /&gt;
Une archive de module contient un module pour Ovidentia qui peut être de trois types possible :&lt;br /&gt;
&lt;br /&gt;
* Extension&lt;br /&gt;
* Skin&lt;br /&gt;
* Librairie&lt;br /&gt;
&lt;br /&gt;
Voir la variable &amp;lt;code&amp;gt;addon_type&amp;lt;/code&amp;gt; du fichier [[Variables du fichier addonini|addonini.php]]&lt;br /&gt;
&lt;br /&gt;
==== Structure de l'archive ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   /&lt;br /&gt;
   |&lt;br /&gt;
   +- programs&lt;br /&gt;
   |   |&lt;br /&gt;
   |   +- addonini.php&lt;br /&gt;
   |   |&lt;br /&gt;
   |   +- init.php&lt;br /&gt;
   |&lt;br /&gt;
   |&lt;br /&gt;
   +- langfiles&lt;br /&gt;
   |&lt;br /&gt;
   +- skins&lt;br /&gt;
   |&lt;br /&gt;
   +- styles&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Le fichier ini &amp;quot;addonini.php&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
Pour plus d'informations sur le fichier ini : [[Variables du fichier addonini]]&lt;br /&gt;
&lt;br /&gt;
=== Groupement de modules ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|Les groupements de modules sont disponibles à partir d'Ovidentia 7.0.90}}&lt;br /&gt;
&lt;br /&gt;
Une archive groupement de modules permet d'installer plusieurs modules en une seule opération. Le fichier ini du groupement de module vérifié avant l'installation, puis chaque module sera installé ou mis a jour dans l'ordre prédéfinit par le fichier de configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Structure de l'archive ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   /&lt;br /&gt;
   |&lt;br /&gt;
   +- install&lt;br /&gt;
   |   |&lt;br /&gt;
   |   +- addons&lt;br /&gt;
   |       |&lt;br /&gt;
   |       +-folder1&lt;br /&gt;
   |       |&lt;br /&gt;
   |       +-folder2&lt;br /&gt;
   |       |&lt;br /&gt;
   |       +-addons.ini&lt;br /&gt;
   |&lt;br /&gt;
   +- skins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Le répertoire skin permet de stocker une icône pour tout le groupe de modules.&lt;br /&gt;
* Chaque répertoire (folder1, folder2) contient une sous-arborescence de module.&lt;br /&gt;
&lt;br /&gt;
==== Le fichier ini &amp;quot;addons.ini&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
Il existe une variable spécifique pour paramétrer l'installation d'un groupement de modules :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
package_collection=&amp;quot;folder1, folder2, folder3&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les sous-répertoires folder1, folder2, folder3 serons installés comme des modules dans l'ordre indiqué.&lt;br /&gt;
&lt;br /&gt;
Pour plus d'informations sur le fichier ini : [[Variables du fichier addonini]]&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Format_des_archives&amp;diff=4100</id>
		<title>Format des archives</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Format_des_archives&amp;diff=4100"/>
				<updated>2009-03-31T14:48:43Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Groupement de modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Développement de modules]]&lt;br /&gt;
&lt;br /&gt;
Les installations et mises à jour dans Ovidentia se font au moyen d'archives zip.&lt;br /&gt;
&lt;br /&gt;
Les méta-données nécessaires pour que l'archive soit reconnue sont enregistrées dans un [http://fr.wikipedia.org/wiki/Fichier_INI fichier ini].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Types d'archives ==&lt;br /&gt;
&lt;br /&gt;
=== Distribution ===&lt;br /&gt;
&lt;br /&gt;
Une archive de distribution contient une version d'Ovidentia qui permet de faire soit une nouvelle installation soit une mise à jour.&lt;br /&gt;
&lt;br /&gt;
==== Structure de l'archive ==== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    /&lt;br /&gt;
    |&lt;br /&gt;
    +- install/&lt;br /&gt;
    |   |&lt;br /&gt;
    |   +- babinstall.sql&lt;br /&gt;
    |   |&lt;br /&gt;
    |   +- addons/&lt;br /&gt;
    |&lt;br /&gt;
    +- ovidentia/&lt;br /&gt;
        |&lt;br /&gt;
        +- version.inc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Le sous-répertoire addons/ contient des modules qui seront installés par défaut avec la distribution&lt;br /&gt;
* babinstall.sql contient les tables qui seront créées lors d'une nouvelle installation d'Ovidentia&lt;br /&gt;
&lt;br /&gt;
==== Le fichier ini &amp;quot;version.inc&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
Pour plus d'informations sur le fichier ini : [[Variables du fichier addonini]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Module ===&lt;br /&gt;
&lt;br /&gt;
Une archive de module contient un module pour Ovidentia qui peut être de trois types possible :&lt;br /&gt;
&lt;br /&gt;
* Extension&lt;br /&gt;
* Skin&lt;br /&gt;
* Librairie&lt;br /&gt;
&lt;br /&gt;
Voir la variable &amp;lt;code&amp;gt;addon_type&amp;lt;/code&amp;gt; du fichier [[Variables du fichier addonini|addonini.php]]&lt;br /&gt;
&lt;br /&gt;
==== Structure de l'archive ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   /&lt;br /&gt;
   |&lt;br /&gt;
   +- programs&lt;br /&gt;
   |   |&lt;br /&gt;
   |   +- addonini.php&lt;br /&gt;
   |   |&lt;br /&gt;
   |   +- init.php&lt;br /&gt;
   |&lt;br /&gt;
   |&lt;br /&gt;
   +- langfiles&lt;br /&gt;
   |&lt;br /&gt;
   +- skins&lt;br /&gt;
   |&lt;br /&gt;
   +- styles&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Le fichier ini &amp;quot;addonini.php&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
Pour plus d'informations sur le fichier ini : [[Variables du fichier addonini]]&lt;br /&gt;
&lt;br /&gt;
=== Groupement de modules ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|Les groupements de modules sont disponibles à partir d'Ovidentia 7.0.90}}&lt;br /&gt;
&lt;br /&gt;
Une archive groupement de modules permet d'installer plusieurs modules en une seule opération. Le fichier ini du groupement de module vérifié avant l'installation, puis chaque module sera installé ou mis a jour dans l'ordre prédéfinit par le fichier de configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Structure de l'archive ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   /&lt;br /&gt;
   |&lt;br /&gt;
   +- install&lt;br /&gt;
   |   |&lt;br /&gt;
   |   +- addons&lt;br /&gt;
   |       |&lt;br /&gt;
   |       +-folder1&lt;br /&gt;
   |       |&lt;br /&gt;
   |       +-folder2&lt;br /&gt;
   |       |&lt;br /&gt;
   |       +-addons.ini&lt;br /&gt;
   |&lt;br /&gt;
   +- skins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Le répertoire skin permet de stocker une icône pour tout le groupe de modules.&lt;br /&gt;
* chaque répertoire (folder1, folder2) contient une sous-arborescence de module.&lt;br /&gt;
&lt;br /&gt;
==== Le fichier ini &amp;quot;addons.ini&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
Il existe une variable spécifique pour paramétrer l'installation d'un groupement de modules :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
package_collection=&amp;quot;folder1, folder2, folder3&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les sous-répertoires folder1, folder2, folder3 serons installés comme des modules dans l'ordre indiqué.&lt;br /&gt;
&lt;br /&gt;
Pour plus d'informations sur le fichier ini : [[Variables du fichier addonini]]&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Format_des_archives&amp;diff=4099</id>
		<title>Format des archives</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Format_des_archives&amp;diff=4099"/>
				<updated>2009-03-31T14:45:44Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Structure de l'archive */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Développement de modules]]&lt;br /&gt;
&lt;br /&gt;
Les installations et mises à jour dans Ovidentia se font au moyen d'archives zip.&lt;br /&gt;
&lt;br /&gt;
Les méta-données nécessaires pour que l'archive soit reconnue sont enregistrées dans un [http://fr.wikipedia.org/wiki/Fichier_INI fichier ini].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Types d'archives ==&lt;br /&gt;
&lt;br /&gt;
=== Distribution ===&lt;br /&gt;
&lt;br /&gt;
Une archive de distribution contient une version d'Ovidentia qui permet de faire soit une nouvelle installation soit une mise à jour.&lt;br /&gt;
&lt;br /&gt;
==== Structure de l'archive ==== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    /&lt;br /&gt;
    |&lt;br /&gt;
    +- install/&lt;br /&gt;
    |   |&lt;br /&gt;
    |   +- babinstall.sql&lt;br /&gt;
    |   |&lt;br /&gt;
    |   +- addons/&lt;br /&gt;
    |&lt;br /&gt;
    +- ovidentia/&lt;br /&gt;
        |&lt;br /&gt;
        +- version.inc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Le sous-répertoire addons/ contient des modules qui seront installés par défaut avec la distribution&lt;br /&gt;
* babinstall.sql contient les tables qui seront créées lors d'une nouvelle installation d'Ovidentia&lt;br /&gt;
&lt;br /&gt;
==== Le fichier ini &amp;quot;version.inc&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
Pour plus d'informations sur le fichier ini : [[Variables du fichier addonini]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Module ===&lt;br /&gt;
&lt;br /&gt;
Une archive de module contient un module pour Ovidentia qui peut être de trois types possible :&lt;br /&gt;
&lt;br /&gt;
* Extension&lt;br /&gt;
* Skin&lt;br /&gt;
* Librairie&lt;br /&gt;
&lt;br /&gt;
Voir la variable &amp;lt;code&amp;gt;addon_type&amp;lt;/code&amp;gt; du fichier [[Variables du fichier addonini|addonini.php]]&lt;br /&gt;
&lt;br /&gt;
==== Structure de l'archive ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   /&lt;br /&gt;
   |&lt;br /&gt;
   +- programs&lt;br /&gt;
   |   |&lt;br /&gt;
   |   +- addonini.php&lt;br /&gt;
   |   |&lt;br /&gt;
   |   +- init.php&lt;br /&gt;
   |&lt;br /&gt;
   |&lt;br /&gt;
   +- langfiles&lt;br /&gt;
   |&lt;br /&gt;
   +- skins&lt;br /&gt;
   |&lt;br /&gt;
   +- styles&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Le fichier ini &amp;quot;addonini.php&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
Pour plus d'informations sur le fichier ini : [[Variables du fichier addonini]]&lt;br /&gt;
&lt;br /&gt;
=== Groupement de modules ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|Les groupements de modules sont disponibles à partir d'Ovidentia 7.0.90}}&lt;br /&gt;
&lt;br /&gt;
Une archive groupement de modules permet d'installer plusieurs modules en une seule opération. le fichier ini du groupement de module vérifié avant l'installation, puis chaque module sera installé ou mis a jour dans l'ordre prédéfinit par le fichier de configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Structure de l'archive ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   /&lt;br /&gt;
   |&lt;br /&gt;
   +- install&lt;br /&gt;
   |   |&lt;br /&gt;
   |   +- addons&lt;br /&gt;
   |       |&lt;br /&gt;
   |       +-folder1&lt;br /&gt;
   |       |&lt;br /&gt;
   |       +-folder2&lt;br /&gt;
   |       |&lt;br /&gt;
   |       +-addons.ini&lt;br /&gt;
   |&lt;br /&gt;
   +- skins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Le répertoire skin permet de stocker une icône pour tout le groupe de modules.&lt;br /&gt;
* chaque répertoire (folder1, folder2) contient une sous-arborescence de module.&lt;br /&gt;
&lt;br /&gt;
==== Le fichier ini &amp;quot;addons.ini&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
Il existe une variable spécifique pour paramétrer l'installation d'un groupement de modules :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
package_collection=&amp;quot;folder1, folder2, folder3&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les sous-répertoires folder1, folder2, folder3 serons installés comme des modules dans l'ordre indiqué.&lt;br /&gt;
&lt;br /&gt;
Pour plus d'informations sur le fichier ini : [[Variables du fichier addonini]]&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Format_des_archives&amp;diff=4098</id>
		<title>Format des archives</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Format_des_archives&amp;diff=4098"/>
				<updated>2009-03-31T14:39:59Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Structure de l'archive */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Développement de modules]]&lt;br /&gt;
&lt;br /&gt;
Les installations et mises à jour dans Ovidentia se font au moyen d'archives zip.&lt;br /&gt;
&lt;br /&gt;
Les méta-données nécessaires pour que l'archive soit reconnue sont enregistrées dans un [http://fr.wikipedia.org/wiki/Fichier_INI fichier ini].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Types d'archives ==&lt;br /&gt;
&lt;br /&gt;
=== Distribution ===&lt;br /&gt;
&lt;br /&gt;
Une archive de distribution contient une version d'Ovidentia qui permet de faire soit une nouvelle installation soit une mise à jour.&lt;br /&gt;
&lt;br /&gt;
==== Structure de l'archive ==== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    /&lt;br /&gt;
    |&lt;br /&gt;
    +- install/&lt;br /&gt;
    |   |&lt;br /&gt;
    |   +- babinstall.sql&lt;br /&gt;
    |   |&lt;br /&gt;
    |   +- addons/&lt;br /&gt;
    |&lt;br /&gt;
    +- ovidentia/&lt;br /&gt;
        |&lt;br /&gt;
        +- version.inc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Le sous-répertoire addons/ contient des modules qui seront installés par défaut avec la distribution&lt;br /&gt;
* babinstall.sql contient les tables qui seront installées lors d'une nouvelle installation d'Ovidentia&lt;br /&gt;
&lt;br /&gt;
==== Le fichier ini &amp;quot;version.inc&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
Pour plus d'informations sur le fichier ini : [[Variables du fichier addonini]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Module ===&lt;br /&gt;
&lt;br /&gt;
Une archive de module contient un module pour Ovidentia qui peut être de trois types possible :&lt;br /&gt;
&lt;br /&gt;
* Extension&lt;br /&gt;
* Skin&lt;br /&gt;
* Librairie&lt;br /&gt;
&lt;br /&gt;
Voir la variable &amp;lt;code&amp;gt;addon_type&amp;lt;/code&amp;gt; du fichier [[Variables du fichier addonini|addonini.php]]&lt;br /&gt;
&lt;br /&gt;
==== Structure de l'archive ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   /&lt;br /&gt;
   |&lt;br /&gt;
   +- programs&lt;br /&gt;
   |   |&lt;br /&gt;
   |   +- addonini.php&lt;br /&gt;
   |   |&lt;br /&gt;
   |   +- init.php&lt;br /&gt;
   |&lt;br /&gt;
   |&lt;br /&gt;
   +- langfiles&lt;br /&gt;
   |&lt;br /&gt;
   +- skins&lt;br /&gt;
   |&lt;br /&gt;
   +- styles&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Le fichier ini &amp;quot;addonini.php&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
Pour plus d'informations sur le fichier ini : [[Variables du fichier addonini]]&lt;br /&gt;
&lt;br /&gt;
=== Groupement de modules ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|Les groupements de modules sont disponibles à partir d'Ovidentia 7.0.90}}&lt;br /&gt;
&lt;br /&gt;
Une archive groupement de modules permet d'installer plusieurs modules en une seule opération. le fichier ini du groupement de module vérifié avant l'installation, puis chaque module sera installé ou mis a jour dans l'ordre prédéfinit par le fichier de configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Structure de l'archive ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   /&lt;br /&gt;
   |&lt;br /&gt;
   +- install&lt;br /&gt;
   |   |&lt;br /&gt;
   |   +- addons&lt;br /&gt;
   |       |&lt;br /&gt;
   |       +-folder1&lt;br /&gt;
   |       |&lt;br /&gt;
   |       +-folder2&lt;br /&gt;
   |       |&lt;br /&gt;
   |       +-addons.ini&lt;br /&gt;
   |&lt;br /&gt;
   +- skins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Le répertoire skin permet de stocker une icône pour tout le groupe de modules.&lt;br /&gt;
* chaque répertoire (folder1, folder2) contient une sous-arborescence de module.&lt;br /&gt;
&lt;br /&gt;
==== Le fichier ini &amp;quot;addons.ini&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
Il existe une variable spécifique pour paramétrer l'installation d'un groupement de modules :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
package_collection=&amp;quot;folder1, folder2, folder3&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les sous-répertoires folder1, folder2, folder3 serons installés comme des modules dans l'ordre indiqué.&lt;br /&gt;
&lt;br /&gt;
Pour plus d'informations sur le fichier ini : [[Variables du fichier addonini]]&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Param%C3%A8tres_de_la_recherche&amp;diff=4042</id>
		<title>Paramètres de la recherche</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Param%C3%A8tres_de_la_recherche&amp;diff=4042"/>
				<updated>2009-03-20T08:30:54Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : Nouvelle page : Catégorie:Développement de modules Catégorie:API Ovidentia Catégorie:Recherche {{Critical|Cette normalisation des paramètres de la recherche est disponible à partir...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Développement de modules]]&lt;br /&gt;
[[Catégorie:API Ovidentia]]&lt;br /&gt;
[[Catégorie:Recherche]]&lt;br /&gt;
{{Critical|Cette normalisation des paramètres de la recherche est disponible à partir de Ovidentia 7.1.0}}&lt;br /&gt;
&lt;br /&gt;
== But ==&lt;br /&gt;
Normaliser les paramètres passés au moteur de recherche d'OVIDENTIA afin de permettre aux utilisateurs ou aux addons de créer leur propre url de recherche. &lt;br /&gt;
La recherche doit permettre de prendre en compte les GET et les POST&lt;br /&gt;
&lt;br /&gt;
== Paramètres généraux ==&lt;br /&gt;
URL : index.php?tg=search&amp;amp;...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Paramètre'''&lt;br /&gt;
| '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|| idx  || Valeur=find. Si pas indiqué le formulaire de recherche est affiché&lt;br /&gt;
|-&lt;br /&gt;
|| what  || Mot à rechercher&lt;br /&gt;
|-&lt;br /&gt;
|| what2 || Deuxième mot à rechercher&lt;br /&gt;
|-&lt;br /&gt;
|| option || Prend une des valeurs suivantes vide, OR, AND ou NOT&lt;br /&gt;
|-&lt;br /&gt;
|| item || Vide pour recherche dans tous les objets&lt;br /&gt;
* ''articles'' pour rechercher dans les articles&lt;br /&gt;
* ''forums'' pour rechercher dans forums&lt;br /&gt;
* ''faqs'' pour rechercher dans les faqs&lt;br /&gt;
* ''notes'' pour rechercher dans les notes&lt;br /&gt;
* ''files'' pour rechercher dans les fichiers&lt;br /&gt;
* ''contacts'' pour rechercher dans contacts&lt;br /&gt;
* ''directories'' pour rechercher dans les annuaires&lt;br /&gt;
* ''calendars'' pour rechercher dans les agendas&lt;br /&gt;
* ''addon/addonname'' or « addon/addonid »  pour rechercher dans  un un addon spécifique&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Paramètres Articles ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Paramètre'''&lt;br /&gt;
| '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|| tagsname  || Les mots de thésaurus séparés par des virgules&lt;br /&gt;
|-&lt;br /&gt;
|| tagsopt  || OR ou AND ( par défaut OR )&lt;br /&gt;
|-&lt;br /&gt;
|| topic || vide ou id du thème où rechercher&lt;br /&gt;
|-&lt;br /&gt;
|| category || vide où la catégorie où chercher&lt;br /&gt;
|-&lt;br /&gt;
|| authorid || ID de l'auteur sinon vide&lt;br /&gt;
|-&lt;br /&gt;
|| before || Date de fin au format 'YYYY-MM-DD'&lt;br /&gt;
|-&lt;br /&gt;
|| after || Date de début au format 'YYYY-MM-DD'&lt;br /&gt;
|-&lt;br /&gt;
|| sao || Search Attachment Only: Recherche uniquement dans les fichiers joints&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Paramètres Forums ==&lt;br /&gt;
Pas de paramètres supplémentaires&lt;br /&gt;
&lt;br /&gt;
== Paramètres Faqs ==&lt;br /&gt;
Pas de paramètres supplémentaires&lt;br /&gt;
&lt;br /&gt;
== Paramètres Notes ==&lt;br /&gt;
Pas de paramètres supplémentaires&lt;br /&gt;
&lt;br /&gt;
== Paramètres Fichiers ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Paramètre'''&lt;br /&gt;
| '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|| tagsname  || Les mots de thésaurus séparés par des virgules&lt;br /&gt;
|-&lt;br /&gt;
|| tagsopt  || OR ou AND ( par défaut OR )&lt;br /&gt;
|-&lt;br /&gt;
|| rp || rank priority: Exploite la pertinence du moteur swish-e&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Paramètres Contacts ==&lt;br /&gt;
Pas de paramètres supplémentaires&lt;br /&gt;
&lt;br /&gt;
== Paramètres Annuaires ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Paramètre'''&lt;br /&gt;
| '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|| directoryid  || ID de l'annuaire ou vide pour  tous les annuaires&lt;br /&gt;
|-&lt;br /&gt;
|| f0  || Nom du champ à chercher ( sn, givenname, email, etc … )&lt;br /&gt;
|-&lt;br /&gt;
|| v0 || Valeur du champ à chercher ( sn, givenname, email, etc … )&lt;br /&gt;
|-&lt;br /&gt;
|| f1 || Nom du champ à chercher ( sn, givenname, email, etc … )&lt;br /&gt;
|-&lt;br /&gt;
|| v1 || Valeur du champ à chercher( sn, givenname, email, etc … ) &lt;br /&gt;
|-&lt;br /&gt;
|| f2 || Nom du champ à chercher ( sn, givenname, email, etc … ) &lt;br /&gt;
|-&lt;br /&gt;
|| v2 || Valeur du champ à chercher ( sn, givenname, email, etc … )&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Paramètres Agendas ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Paramètre'''&lt;br /&gt;
| '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|| calendarid  || ID de l'agenda ou vide pour  tous les agendas&lt;br /&gt;
|-&lt;br /&gt;
|| f0  || Nom du champ à chercher ( sn, givenname, email, etc … )&lt;br /&gt;
|-&lt;br /&gt;
|| before || Date de fin au format 'YYYY-MM-DD'&lt;br /&gt;
|-&lt;br /&gt;
|| after || Date de début au format 'YYYY-MM-DD'&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Accueil&amp;diff=4041</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Accueil&amp;diff=4041"/>
				<updated>2009-03-20T07:52:18Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Documentation des API du noyau */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Contribuer au Wiki de développement Ovidentia==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=0 cellspacing=5 width=&amp;quot;100%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le Wiki dédié au développement d'OVIDENTIA&lt;br /&gt;
&lt;br /&gt;
Pour télécharger des documentations utilisateur et administrateur pour OVIDENTIA, vous pouvez utiliser le site communautaire [http://www.ovidentia.org/ Ovidentia.org]. Ce wiki, quant à lui contient une introduction au développement des modules ainsi que diverses documentations sur les nouvelles interfaces de programmation disponibles dans les versions actuelles et futures d'OVIDENTIA.&lt;br /&gt;
&lt;br /&gt;
Avant de contribuer, vous pouvez vous familiariser avec les [[Règles d'usage du wiki|règles d'usage du wiki]].&lt;br /&gt;
&lt;br /&gt;
Le développement d'OVIDENTIA est initié et géré par [http://www.cantico.fr Cantico] ([http://wiki.cantico.fr/ wiki privé])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;border: 1px solid lightgray;padding-left:1em;padding-right:0.5em;padding-bottom:0.5em;&amp;quot; width=&amp;quot;50%&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
===[[Image:icon-addon-dev.jpg]] Développer un module Ovidentia===&lt;br /&gt;
&lt;br /&gt;
* [[:Catégorie:Développement de modules|Introduction au développement de module]]&lt;br /&gt;
* [[Addon tutorial|Tutorial module]]&lt;br /&gt;
* [[:Catégorie:Développement de skins|Introduction au développement de skins]]&lt;br /&gt;
* [http://www.ovidentia.org/?tg=articles&amp;amp;topics=56 Autres types de contributions]&lt;br /&gt;
&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;border: 1px solid lightgray;padding-left:1em;padding-right:0.5em;&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
[[Image:Roadmap.jpg]] [[Feuille de route]] (Roadmap)&lt;br /&gt;
&lt;br /&gt;
* Voir aussi les [[:Catégorie:Technologies à l'étude|technologies à l'étude]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Développement ==&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=0 cellspacing=5 width=&amp;quot;100%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; style=&amp;quot;padding-right:.9em;&amp;quot;|&lt;br /&gt;
&amp;lt;div class=&amp;quot;bg-bloc bg-orange&amp;quot;&amp;gt;&lt;br /&gt;
=== Documentation des API du noyau ===&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
''Contenu de l'[[:Catégorie:API Ovidentia|API Ovidentia]]. Ces API peuvent être utilisées dans le cadre du [[:Catégorie:Développement de modules|développement de modules]].''&lt;br /&gt;
{{MenuItem&lt;br /&gt;
|title       = [[API noyau/module]]&lt;br /&gt;
|description = Fonctions toujours incluses dans Ovidentia&lt;br /&gt;
}}&lt;br /&gt;
{{MenuItem&lt;br /&gt;
|title       = [[API des dates]]&lt;br /&gt;
|description = Fonctions pour l'affichage des dates et l'objet BAB_DateTime pour effectuer des traitements complexes. Voir aussi : [[API des agendas]]&lt;br /&gt;
|icon        = DateTime.png&lt;br /&gt;
}}&lt;br /&gt;
{{MenuItem&lt;br /&gt;
|title       = [[API des utilisateurs et des annuaires]]&lt;br /&gt;
|description = Permet d'effectuer des traitements sur les utilisateurs et les fiches d'annuaires. Voir aussi : [[API de sélection d'utilisateurs]]&lt;br /&gt;
|icon        = User-info.png&lt;br /&gt;
}}&lt;br /&gt;
{{MenuItem&lt;br /&gt;
|title       = [[API des groupes]]&lt;br /&gt;
|description = Accès aux groupes d'utilisateurs d'Ovidentia&lt;br /&gt;
|icon        = Kuser.png&lt;br /&gt;
}}&lt;br /&gt;
{{MenuItem&lt;br /&gt;
|title       = [[API de gestion d'un module]]&lt;br /&gt;
|description = Voir aussi : [[API Addon - OVML]] et [[Implémentation de containers OVML dans un module]]&lt;br /&gt;
|icon        = Applications-development.png&lt;br /&gt;
}}&lt;br /&gt;
{{MenuItem&lt;br /&gt;
|title       = [[API Articles]]&lt;br /&gt;
|description = Accès aux catégories de thèmes d'articles, aux thèmes d'articles et aux articles. Voir aussi [[API editeur]] pour utiliser l'éditeur WYSIWYG&lt;br /&gt;
|icon        = Document-properties.png&lt;br /&gt;
}}&lt;br /&gt;
{{MenuItem&lt;br /&gt;
|title       = [[API d'envoi de mails]]&lt;br /&gt;
|description = Classe d'envoi des email basée sur la configuration du portail.&lt;br /&gt;
|icon        = Evolution-mail.png&lt;br /&gt;
}}&lt;br /&gt;
{{MenuItem&lt;br /&gt;
|title       = [[:Catégorie:Recherche|Exploitation de la recherche]]&lt;br /&gt;
|description = Recherche dans Ovidentia, Utilisation du thésaurus, Configuration du moteur d'indexation swish-e. Voir aussi : [[Paramètres de la recherche]], [[API de la recherche]], [[API des tags]], [[Indexation]]&lt;br /&gt;
|icon        = Search.png&lt;br /&gt;
}}&lt;br /&gt;
{{MenuItem&lt;br /&gt;
|title       = [[Access Control List]]&lt;br /&gt;
|description = API des droits d'accès, pour tester ou créer des droits&lt;br /&gt;
|icon        = Keys.png&lt;br /&gt;
}}&lt;br /&gt;
{{MenuItem&lt;br /&gt;
|title       = [[Base de registre]] &lt;br /&gt;
|description = Cette API permet aux module et au noyau de mémoriser des paramètres de configuration&lt;br /&gt;
|icon        = Drive-harddisk.png&lt;br /&gt;
}}&lt;br /&gt;
{{MenuItem&lt;br /&gt;
|title       = [[API du gestionnaire de fichier]]&lt;br /&gt;
|description = Document à compléter&lt;br /&gt;
|icon        = Fs-directory.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;div class=&amp;quot;bg-bloc bg-green&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Documentation des librairies ===&lt;br /&gt;
&lt;br /&gt;
{{MenuItem&lt;br /&gt;
|title       = [[API des fonctionnalités]] et [[API du gestionnaire d'événement]]&lt;br /&gt;
|description = APIs pour créer des bibliothèques de code partagé et faciliter la communication entre les modules. Voir aussi : [[:Catégorie:Documentation des librairies|Documentation des librairies]] &lt;br /&gt;
|icon        = Applications-accessories.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;bg-bloc&amp;quot;&amp;gt;&lt;br /&gt;
=== Propositions d'améliorations ===&lt;br /&gt;
&lt;br /&gt;
* [[Articles]]&lt;br /&gt;
* [[Gestionnaire de fichiers]]&lt;br /&gt;
* [[Propositions pour Ovidentia 7]]&lt;br /&gt;
* [[OVML]]&lt;br /&gt;
* [[Gestion des skins]]&lt;br /&gt;
* [[Authentification par identifiant NT]]&lt;br /&gt;
* [[Refactorisation du noyau]]&lt;br /&gt;
* [[Utilisateurs]]&lt;br /&gt;
* [[Internationalisation]] : Améliorations de la gestion de l'internationalisation dans Ovidentia&lt;br /&gt;
* [[Délégations]] : Refonte de la gestion des délégations dans Ovidentia&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;bg-bloc&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Documentation interne ===&lt;br /&gt;
&lt;br /&gt;
{{MenuItem&lt;br /&gt;
|title       = [[Nouveau moteur de templates]]&lt;br /&gt;
|description = Explication du fonctionnement de la fonction ''bab_printTemplate()''&lt;br /&gt;
|icon        = Screen.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;bg-bloc&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Règles de développement ===&lt;br /&gt;
&lt;br /&gt;
* [[Règles de codage]]&lt;br /&gt;
* [[Sécurité]]&lt;br /&gt;
* [[Utilisation de Mantis]]&lt;br /&gt;
* [[Utilisation de CVS]] et gestion des versions&lt;br /&gt;
* [[Développement d'un programme de mise à jour]]&lt;br /&gt;
* [[Gettext]] : instruction d'utilisation pour les modules&lt;br /&gt;
* [[Accessibilité]]&lt;br /&gt;
* [[Développement d'une nouvelle fonctionnalité]]&lt;br /&gt;
* [[Code de caractère]] conversion de latin1 à utf8&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;bg-bloc bg-grey&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Outils de développements ===&lt;br /&gt;
&lt;br /&gt;
* [[Clients CVS]]&lt;br /&gt;
* [[Eclipse]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Utilisation du wiki ==&lt;br /&gt;
&lt;br /&gt;
Consultez le [http://meta.wikimedia.org/wiki/Aide:Contenu Guide de l'utilisateur] pour plus d'information sur l'utilisation d'un wiki.&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=3530</id>
		<title>Feuille de route</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=3530"/>
				<updated>2009-01-15T09:23:58Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Version 6.8.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version 6.7.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer des fonctionnalités externe (Voir l'article [[Communication entre les modules]])   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de tester la présence des fonctionnalités comme des prérequis pour l'installation d'un module ou du noyau   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité d'ajouter un script de prérequis personnalisés pour l'installation d'un module   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Controle de disponibilité pour empêcher le surbooking dans les agendas de ressources  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de catégories sur les délégations utilisables dans l'OVML    || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout du contener OVML OCRecentFaqQuestions  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de l'API des articles ( Voir [[API Articles]])  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout des types de congés avec les couleurs sur la visualisation d'un congé dans l'agenda  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout de la gestion des plusieurs périodes d'exclusion dans les droits de congés ||   Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 6.8.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer le plan du site dans le noyau   || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration des skins en tant que modules  || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Déléguer la saisie de certains champs de l'annuaire à des utilisateurs en utilisant les droits ACL.&lt;br /&gt;
Les utilisateurs ayant le droit de mettre à jour l'annuaire continueront à le faire sur tous les champs de l'annuaire.&lt;br /&gt;
Les utilisateurs ayant le droit de modification sur certains champs ne pourront pas modifier les autres champs de l'annuaire ( sauf s'ils ont le droit de modification sur l'annuaire ). Un utilisateur qui a le droit de modification sur un champ pourra le faire sur toutes les fiches annuaires des utilisateurs du portail.&lt;br /&gt;
|| Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la liste des module pour séparer les modules utiles des modules de bibliothèques partagées et des thèmes  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout des contrôles de dépendances entre les modules lors de la suppression  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de la nouvelle [[API de gestion d'un module]]  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de typer les entités d'un organigramme pour mieux les personnaliser en exploitant un fichier CSS   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Nouveaux containers pour l'organigramme ( Liste des entités d'un utilisateur, liste des entités parents d'une entité )   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Utilisation d'un fichier OVML pour afficher la fiche annuaire d'un utilisateur dans les organigrammes   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Paramétrage du seuil d'affichage vertical d'un organigramme. Ajout d'une option pour les gestionnaires et prise en compte de ce seuil lors de la visualisation de l'organigramme   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout des options permettant de modifier/supprimer tous les événements répétitifs postérieurs à un événement répétitif  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de dupliquer un événement. A partir du formulaire de modification d'un événement, permettre de dupliquer l'événement en copiant toutes les informations ( sauf les informations de répétition ) vers le formulaire de création  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Support UTF8  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité d'associer des images aux catégories d'articles, aux thèmes d'articles et aux articles  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de faire une recherche en spécifiant une catégorie d'articles  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de la possibilité de supprimer un groupe et ses enfants, uniquement les enfants de premier niveau ou seulement les enfants  || Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 7.0.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de PHP (passage à PHP 5.1.0)  || A faire&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de MySQL (passage à MySQL 4.1.0)  || A faire&lt;br /&gt;
|-&lt;br /&gt;
|| Support du mode d'encodage UTF-8 dans le portail || A faire&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=3529</id>
		<title>Feuille de route</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=3529"/>
				<updated>2009-01-13T12:55:03Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Version 6.8.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version 6.7.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer des fonctionnalités externe (Voir l'article [[Communication entre les modules]])   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de tester la présence des fonctionnalités comme des prérequis pour l'installation d'un module ou du noyau   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité d'ajouter un script de prérequis personnalisés pour l'installation d'un module   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Controle de disponibilité pour empêcher le surbooking dans les agendas de ressources  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de catégories sur les délégations utilisables dans l'OVML    || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout du contener OVML OCRecentFaqQuestions  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de l'API des articles ( Voir [[API Articles]])  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout des types de congés avec les couleurs sur la visualisation d'un congé dans l'agenda  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout de la gestion des plusieurs périodes d'exclusion dans les droits de congés ||   Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 6.8.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer le plan du site dans le noyau   || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration des skins en tant que modules  || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Déléguer la saisie de certains champs de l'annuaire à des utilisateurs en utilisant les droits ACL.&lt;br /&gt;
Les utilisateurs ayant le droit de mettre à jour l'annuaire continueront à le faire sur tous les champs de l'annuaire.&lt;br /&gt;
Les utilisateurs ayant le droit de modification sur certains champs ne pourront pas modifier les autres champs de l'annuaire ( sauf s'ils ont le droit de modification sur l'annuaire ). Un utilisateur qui a le droit de modification sur un champ pourra le faire sur toutes les fiches annuaires des utilisateurs du portail.&lt;br /&gt;
|| Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la liste des module pour séparer les modules utiles des modules de bibliothèques partagées et des thèmes  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout des contrôles de dépendances entre les modules lors de la suppression  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de la nouvelle [[API de gestion d'un module]]  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de typer les entités d'un organigramme pour mieux les personnaliser en exploitant un fichier CSS   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Nouveaux containers pour l'organigramme ( Liste des entités d'un utilisateur, liste des entités parents d'une entité )   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Utilisation d'un fichier OVML pour afficher la fiche annuaire d'un utilisateur dans les organigrammes   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Paramétrage du seuil d'affichage vertical d'un organigramme. Ajout d'une option pour les gestionnaires et prise en compte de ce seuil lors de la visualisation de l'organigramme   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout des options permettant de modifier/supprimer tous les événements répétitifs postérieurs à un événement répétitif  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de dupliquer un événement. A partir du formulaire de modification d'un événement, permettre de dupliquer l'événement en copiant toutes les informations ( sauf les informations de répétition ) vers le formulaire de création  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Support UTF8  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité d'associer des images aux catégories d'articles, aux thèmes d'articles et aux articles  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de faire une recherche en spécifiant une catégorie d'articles  || Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 7.0.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de PHP (passage à PHP 5.1.0)  || A faire&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de MySQL (passage à MySQL 4.1.0)  || A faire&lt;br /&gt;
|-&lt;br /&gt;
|| Support du mode d'encodage UTF-8 dans le portail || A faire&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=3526</id>
		<title>Feuille de route</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=3526"/>
				<updated>2009-01-09T16:36:59Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Version 6.8.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version 6.7.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer des fonctionnalités externe (Voir l'article [[Communication entre les modules]])   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de tester la présence des fonctionnalités comme des prérequis pour l'installation d'un module ou du noyau   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité d'ajouter un script de prérequis personnalisés pour l'installation d'un module   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Controle de disponibilité pour empêcher le surbooking dans les agendas de ressources  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de catégories sur les délégations utilisables dans l'OVML    || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout du contener OVML OCRecentFaqQuestions  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de l'API des articles ( Voir [[API Articles]])  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout des types de congés avec les couleurs sur la visualisation d'un congé dans l'agenda  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout de la gestion des plusieurs périodes d'exclusion dans les droits de congés ||   Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 6.8.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer le plan du site dans le noyau   || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration des skins en tant que modules  || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Déléguer la saisie de certains champs de l'annuaire à des utilisateurs en utilisant les droits ACL.&lt;br /&gt;
Les utilisateurs ayant le droit de mettre à jour l'annuaire continueront à le faire sur tous les champs de l'annuaire.&lt;br /&gt;
Les utilisateurs ayant le droit de modification sur certains champs ne pourront pas modifier les autres champs de l'annuaire ( sauf s'ils ont le droit de modification sur l'annuaire ). Un utilisateur qui a le droit de modification sur un champ pourra le faire sur toutes les fiches annuaires des utilisateurs du portail.&lt;br /&gt;
|| Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la liste des module pour séparer les modules utiles des modules de bibliothèques partagées et des thèmes  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout des contrôles de dépendances entre les modules lors de la suppression  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de la nouvelle [[API de gestion d'un module]]  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de typer les entités d'un organigramme pour mieux les personnaliser en exploitant un fichier CSS   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Nouveaux containers pour l'organigramme ( Liste des entités d'un utilisateur, liste des entités parents d'une entité )   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Utilisation d'un fichier OVML pour afficher la fiche annuaire d'un utilisateur dans les organigrammes   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Paramétrage du seuil d'affichage vertical d'un organigramme. Ajout d'une option pour les gestionnaires et prise en compte de ce seuil lors de la visualisation de l'organigramme   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout des options permettant de modifier/supprimer tous les événements répétitifs postérieurs à un événement répétitif  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de dupliquer un événement. A partir du formulaire de modification d'un événement, permettre de dupliquer l'événement en copiant toutes les informations ( sauf les informations de répétition ) vers le formulaire de création  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Support UTF8  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité d'associer des images aux catégories d'articles, aux thèmes d'articles et aux articles  || Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 7.0.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de PHP (passage à PHP 5.1.0)  || A faire&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de MySQL (passage à MySQL 4.1.0)  || A faire&lt;br /&gt;
|-&lt;br /&gt;
|| Support du mode d'encodage UTF-8 dans le portail || A faire&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=3487</id>
		<title>Feuille de route</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=3487"/>
				<updated>2008-11-28T15:02:13Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Version 6.8.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version 6.7.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer des fonctionnalités externe (Voir l'article [[Communication entre les modules]])   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de tester la présence des fonctionnalités comme des prérequis pour l'installation d'un module ou du noyau   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité d'ajouter un script de prérequis personnalisés pour l'installation d'un module   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Controle de disponibilité pour empêcher le surbooking dans les agendas de ressources  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de catégories sur les délégations utilisables dans l'OVML    || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout du contener OVML OCRecentFaqQuestions  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de l'API des articles ( Voir [[API Articles]])  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout des types de congés avec les couleurs sur la visualisation d'un congé dans l'agenda  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout de la gestion des plusieurs périodes d'exclusion dans les droits de congés ||   Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 6.8.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer le plan du site dans le noyau   || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration des skins en tant que modules  || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Déléguer la saisie de certains champs de l'annuaire à des utilisateurs en utilisant les droits ACL.&lt;br /&gt;
Les utilisateurs ayant le droit de mettre à jour l'annuaire continueront à le faire sur tous les champs de l'annuaire.&lt;br /&gt;
Les utilisateurs ayant le droit de modification sur certains champs ne pourront pas modifier les autres champs de l'annuaire ( sauf s'ils ont le droit de modification sur l'annuaire ). Un utilisateur qui a le droit de modification sur un champ pourra le faire sur toutes les fiches annuaires des utilisateurs du portail.&lt;br /&gt;
|| Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la liste des module pour séparer les modules utiles des modules de bibliothèques partagées et des thèmes  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout des contrôles de dépendances entre les modules lors de la suppression  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de la nouvelle [[API de gestion d'un module]]  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de typer les entités d'un organigramme pour mieux les personnaliser en exploitant un fichier CSS   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Nouveaux containers pour l'organigramme ( Liste des entités d'un utilisateur, liste des entités parents d'une entité )   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Utilisation d'un fichier OVML pour afficher la fiche annuaire d'un utilisateur dans les organigrammes   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Paramétrage du seuil d'affichage vertical d'un organigramme. Ajout d'une option pour les gestionnaires et prise en compte de ce seuil lors de la visualisation de l'organigramme   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout des options permettant de modifier/supprimer tous les événements répétitifs postérieurs à un événement répétitif  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de dupliquer un événement. A partir du formulaire de modification d'un événement, permettre de dupliquer l'événement en copiant toutes les informations ( sauf les informations de répétition ) vers le formulaire de création  || Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 7.0.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de PHP (passage à PHP 5.1.0)  || A faire&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de MySQL (passage à MySQL 4.1.0)  || A faire&lt;br /&gt;
|-&lt;br /&gt;
|| Support du mode d'encodage UTF-8 dans le portail || A faire&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=3361</id>
		<title>Feuille de route</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=3361"/>
				<updated>2008-10-30T12:48:39Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Version 6.8.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version 6.7.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer des fonctionnalités externe (Voir l'article [[Communication entre les modules]])   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de tester la présence des fonctionnalités comme des prérequis pour l'installation d'un module ou du noyau   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité d'ajouter un script de prérequis personnalisés pour l'installation d'un module   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Controle de disponibilité pour empêcher le surbooking dans les agendas de ressources  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de catégories sur les délégations utilisables dans l'OVML    || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout du contener OVML OCRecentFaqQuestions  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de l'API des articles ( Voir [[API Articles]])  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout des types de congés avec les couleurs sur la visualisation d'un congé dans l'agenda  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout de la gestion des plusieurs périodes d'exclusion dans les droits de congés ||   Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 6.8.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer le plan du site dans le noyau   || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration des skins en tant que modules  || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Déléguer la saisie de certains champs de l'annuaire à des utilisateurs en utilisant les droits ACL.&lt;br /&gt;
Les utilisateurs ayant le droit de mettre à jour l'annuaire continueront à le faire sur tous les champs de l'annuaire.&lt;br /&gt;
Les utilisateurs ayant le droit de modification sur certains champs ne pourront pas modifier les autres champs de l'annuaire ( sauf s'ils ont le droit de modification sur l'annuaire ). Un utilisateur qui a le droit de modification sur un champ pourra le faire sur toutes les fiches annuaires des utilisateurs du portail.&lt;br /&gt;
|| Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la liste des module pour séparer les modules utiles des modules de bibliothèques partagées  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de typer les entités d'un organigramme pour mieux les personnaliser en exploitant un fichier CSS   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Nouveaux containers pour l'organigramme ( Liste des entités d'un utilisateur, liste des entités parents d'une entité )   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Utilisation d'un fichier OVML pour afficher la fiche annuaire d'un utilisateur dans les organigrammes   || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Paramétrage du seuil d'affichage vertical d'un organigramme. Ajout d'une option pour les gestionnaires et prise en compte de ce seuil lors de la visualisation de l'organigramme   || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout des options permettant de modifier/supprimer tous les événements répétitifs postérieurs à un événement répétitif  || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de dupliquer un événement. A partir du formulaire de modification d'un événement, permettre de dupliquer l'événement en copiant toutes les informations ( sauf les informations de répétition ) vers le formulaire de création  || En cours&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 7.0.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de PHP (passage à PHP 5.1.0)  || A faire&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de MySQL (passage à MySQL 4.1.0)  || A faire&lt;br /&gt;
|-&lt;br /&gt;
|| Support du mode d'encodage UTF-8 dans le portail || A faire&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=3360</id>
		<title>Feuille de route</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=3360"/>
				<updated>2008-10-30T12:36:38Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Version 6.8.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version 6.7.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer des fonctionnalités externe (Voir l'article [[Communication entre les modules]])   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de tester la présence des fonctionnalités comme des prérequis pour l'installation d'un module ou du noyau   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité d'ajouter un script de prérequis personnalisés pour l'installation d'un module   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Controle de disponibilité pour empêcher le surbooking dans les agendas de ressources  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de catégories sur les délégations utilisables dans l'OVML    || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout du contener OVML OCRecentFaqQuestions  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de l'API des articles ( Voir [[API Articles]])  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout des types de congés avec les couleurs sur la visualisation d'un congé dans l'agenda  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout de la gestion des plusieurs périodes d'exclusion dans les droits de congés ||   Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 6.8.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer le plan du site dans le noyau   || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration des skins en tant que modules  || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Déléguer la saisie de certains champs de l'annuaire à des utilisateurs en utilisant les droits ACL.&lt;br /&gt;
Les utilisateurs ayant le droit de mettre à jour l'annuaire continueront à le faire sur tous les champs de l'annuaire.&lt;br /&gt;
Les utilisateurs ayant le droit de modification sur certains champs ne pourront pas modifier les autres champs de l'annuaire ( sauf s'ils ont le droit de modification sur l'annuaire ). Un utilisateur qui a le droit de modification sur un champ pourra le faire sur toutes les fiches annuaires des utilisateurs du portail.&lt;br /&gt;
|| Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la liste des module pour séparer les modules utiles des modules de bibliothèques partagées  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de typer les entités d'un organigramme pour mieux les personnaliser en exploitant un fichier CSS   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Utilisation d'un fichier OVML pour afficher la fiche annuaire d'un utilisateur dans les organigrammes   || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Paramétrage du seuil d'affichage vertical d'un organigramme. Ajout d'une option pour les gestionnaires et prise en compte de ce seuil lors de la visualisation de l'organigramme   || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout des options permettant de modifier/supprimer tous les événements répétitifs postérieurs à un événement répétitif  || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de dupliquer un événement. A partir du formulaire de modification d'un événement, permettre de dupliquer l'événement en copiant toutes les informations ( sauf les informations de répétition ) vers le formulaire de création  || En cours&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 7.0.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de PHP (passage à PHP 5.1.0)  || A faire&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de MySQL (passage à MySQL 4.1.0)  || A faire&lt;br /&gt;
|-&lt;br /&gt;
|| Support du mode d'encodage UTF-8 dans le portail || A faire&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=API_des_fonctionnalit%C3%A9s&amp;diff=3350</id>
		<title>API des fonctionnalités</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=API_des_fonctionnalit%C3%A9s&amp;diff=3350"/>
				<updated>2008-10-27T12:49:47Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Proposer des fonctionnalités */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Développement de modules]]&lt;br /&gt;
&lt;br /&gt;
'''Attention, cette API sera disponible à partir de ovidentia 6.7.0'''&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'API des fonctionnalités est utilisée pour partager du code entre différentes parties d'Ovidentia tel que le noyau et les modules. Dans Ovidentia, les fonctionnalités sont représentées sous forme d'un arbre visible par les administrateurs dans la page &amp;quot;Modules&amp;quot; sous l'onglet &amp;quot;Fonctionnalités&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Proposer des fonctionnalités ==&lt;br /&gt;
&lt;br /&gt;
Chaque fonctionnalité devra être nommée selon un &amp;quot;chemin&amp;quot; unique, par exemple &amp;quot;convertHtml/toPdf/openOffice&amp;quot;, les caractères _ sont interdits dans le chemin.&lt;br /&gt;
&lt;br /&gt;
Une fonction du noyau d'ovidentia permettra d'enregistrer un fichier php en tant que fonctionnalité, le fichier devra contenir une classe PHP nommée en utilisant le même chemin, par exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class Func_ConvertHtml_ToPdf_OpenOffice extends bab_functionality {&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le nom de toutes les classes de fonctionnalité sont préfixées par Func_ le _ remplace le / dans le nom de la classe, l'objet devra hériter de la classe bab_functionality.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
Au moment de l'installation ou du programme de reprise, il faut enregistrer la fonctionnalité dans ovidentia, exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
include_once $GLOBALS['babInstallPath'].'utilit/functionalityincl.php';&lt;br /&gt;
&lt;br /&gt;
$func = new bab_functionalities();&lt;br /&gt;
$func-&amp;gt;register('ConvertHtml/ToPdf/OpenOffice', $GLOBALS['babAddonPhpPath'].'convert.php');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La méthode register retourne un boolean, la valeur retournée sera false si la fonctionnalité n'a pas pu être enregistrée&lt;br /&gt;
&lt;br /&gt;
Dans Ovidentia, un fichier &amp;quot;link.inc&amp;quot; sera créé dans un arbre de répertoire (sous le répertoire '''fonctionalities''' à la racine du site) avec pour contenu du code php pour inclure le fichier passé en 2ème paramètre.&lt;br /&gt;
&lt;br /&gt;
De même, la méthode '''unregister()''' permet de désinstaller la fonctionnalité, le fichier de lien sera supprimé de l'arborescence.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
include_once $GLOBALS['babInstallPath'].'utilit/functionalityincl.php';&lt;br /&gt;
&lt;br /&gt;
$func = new bab_functionalities();&lt;br /&gt;
$func-&amp;gt;unregister('ConvertHtml/ToPdf/OpenOffice');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il existe deux [[API du gestionnaire d'événement|événements]] qui peuvent être utilisés lors de l'appel à '''bab_functionalities::register()''' et '''bab_functionalities::unregister()''' &lt;br /&gt;
&lt;br /&gt;
* bab_eventFunctionalityRegistered&lt;br /&gt;
* bab_eventFunctionalityUnregistered&lt;br /&gt;
&lt;br /&gt;
=== Héritage de fonctionnalités ===&lt;br /&gt;
&lt;br /&gt;
Il est possible de créer une fonctionnalité qui hérite et utilise l'interface d'une autre fonctionnalité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
exemple : le module &amp;quot;convert&amp;quot; propose une fonctionnalité pour convertir du html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
class Func_convertHtml extends bab_functionality {&lt;br /&gt;
	function getDescription() {&lt;br /&gt;
		return 'convertir du html vers un autre format';&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function process($html) {&lt;br /&gt;
		return NULL;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans un autre module &amp;quot;convertToPdf&amp;quot;, on propose de convertir du html en pdf en utilisant openOffice. Pour que la fonctionnalité soit acceptée par le programme d'installation, l'objet hériter de l'objet parent.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
bab_functionality::includefile('convertHtml');&lt;br /&gt;
&lt;br /&gt;
class Func_ConvertHtml_ToPdf_OpenOffice extends Func_ConvertHtml {&lt;br /&gt;
	function getDescription() {&lt;br /&gt;
		return 'convertir du html en pdf';&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function process($html) {&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Utiliser une fonctionnalité ==&lt;br /&gt;
&lt;br /&gt;
La fonction du noyau  bab_functionality::get('convertHtml/toPdf/openOffice'); effectuera une inclusion du fichier &amp;quot;convertHtml/toPdf/openOffice/link.inc&amp;quot; ensuite l'objet Func_convertHtml_toPdf_openOffice sera instancié.&lt;br /&gt;
&lt;br /&gt;
Les niveaux supérieurs de l'arborescence seront complétés avec une copie du fichier link.inc si aucun fichier de lien n'est présent.&lt;br /&gt;
&lt;br /&gt;
Un formulaire sera disponible pour d'administrateur afin de changer les fichiers interfaces des niveaux supérieurs pour redéfinir les fonctions par défaut dans le cas de sous-répertoires multiples.&lt;br /&gt;
&lt;br /&gt;
Pour simplifier l'exécution des fonctions d'interface, le contexte du module ne sera pas recréé avant que la fonction soit appelée. Par conséquent, les variables globales de l'environnement du module ne devront pas être utilisées.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fonctions ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Obtenir les sous-répertoires d'une fonctionnalité ====&lt;br /&gt;
&lt;br /&gt;
La liste des sous-fonctionnalités permet de proposer à l'utilisateur un choix, et ensuite effectuer un appel direct à la fonctionnalité en utilisant un chemin plus complet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $array = bab_functionality::getFunctionalities('path');&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Obtenir l'instance de l'objet ====&lt;br /&gt;
&lt;br /&gt;
Par défaut, l'objet retourné pour une fonctionnalité est un [http://fr.wikipedia.org/wiki/Singleton_(patron_de_conception) singleton]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $singleton = bab_functionality::get('path');&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il est possible de passer un deuxième paramètre à la methode get() pour que l'instance retournée ne soit pas un singleton&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $instance = bab_functionality::get('path', false);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== inclure le fichier de la functionnalité ====&lt;br /&gt;
&lt;br /&gt;
inclure le fichier de la fonctionnalité afin d'effectuer un héritage&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 bab_functionality::includefile('path');&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tester la présence d'un fonctionnalité ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans le fichier addonini.php d'un module, il est possible de tester la présence d'un fonctionnalité comme un pré-requis, afin d'empêcher l'installation du module si la fonctionnalité n'est pas installée.&lt;br /&gt;
&lt;br /&gt;
bab_functionality::get() retourne false si la fonctionnalité n'est pas trouvée, il est possible d'utiliser cette méthode avec un @ devant l'appel pour ne pas voir le notice déclenché et utiliser uniquement la valeur de retour.&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=API_des_fonctionnalit%C3%A9s&amp;diff=3349</id>
		<title>API des fonctionnalités</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=API_des_fonctionnalit%C3%A9s&amp;diff=3349"/>
				<updated>2008-10-27T12:48:21Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Développement de modules]]&lt;br /&gt;
&lt;br /&gt;
'''Attention, cette API sera disponible à partir de ovidentia 6.7.0'''&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'API des fonctionnalités est utilisée pour partager du code entre différentes parties d'Ovidentia tel que le noyau et les modules. Dans Ovidentia, les fonctionnalités sont représentées sous forme d'un arbre visible par les administrateurs dans la page &amp;quot;Modules&amp;quot; sous l'onglet &amp;quot;Fonctionnalités&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Proposer des fonctionnalités ==&lt;br /&gt;
&lt;br /&gt;
Chaque fonctionnalité devra être nommée selon un &amp;quot;chemin&amp;quot; unique, par exemple &amp;quot;convertHtml/toPdf/openOffice&amp;quot;, les caractères _ sont interdits dans le chemin.&lt;br /&gt;
&lt;br /&gt;
Une fonction du noyau d'ovidentia permettra d'enregistrer un fichier php en tant que fonctionnalité, le fichier devra contenir une classe PHP nommée en utilisant la même chemin, par exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class Func_ConvertHtml_ToPdf_OpenOffice extends bab_functionality {&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le nom de toutes les classes de fonctionnalité sont préfixées par Func_ le _ remplace le / dans le nom de la classe, l'objet devra hériter de la classe bab_functionality.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
Au moment de l'installation ou du programme de reprise, il faut enregistrer la fonctionnalité dans ovidentia, exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
include_once $GLOBALS['babInstallPath'].'utilit/functionalityincl.php';&lt;br /&gt;
&lt;br /&gt;
$func = new bab_functionalities();&lt;br /&gt;
$func-&amp;gt;register('ConvertHtml/ToPdf/OpenOffice', $GLOBALS['babAddonPhpPath'].'convert.php');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La méthode register retourne un boolean, la valeur retournée sera false si la fonctionnalité n'a pas pu être enregistrée&lt;br /&gt;
&lt;br /&gt;
Dans Ovidentia, un fichier &amp;quot;link.inc&amp;quot; sera créé dans un arbre de répertoire (sous le répertoire '''fonctionalities''' à la racine du site) avec pour contenu du code php pour inclure le fichier passé en 2ème paramètre.&lt;br /&gt;
&lt;br /&gt;
De même, la méthode '''unregister()''' permet de désinstaller la fonctionnalité, le fichier de lien sera supprimé de l'arborescence.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
include_once $GLOBALS['babInstallPath'].'utilit/functionalityincl.php';&lt;br /&gt;
&lt;br /&gt;
$func = new bab_functionalities();&lt;br /&gt;
$func-&amp;gt;unregister('ConvertHtml/ToPdf/OpenOffice');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il existe deux [[API du gestionnaire d'événement|événements]] qui peuvent être utilisés lors de l'appel à '''bab_functionalities::register()''' et '''bab_functionalities::unregister()''' &lt;br /&gt;
&lt;br /&gt;
* bab_eventFunctionalityRegistered&lt;br /&gt;
* bab_eventFunctionalityUnregistered&lt;br /&gt;
&lt;br /&gt;
=== Héritage de fonctionnalités ===&lt;br /&gt;
&lt;br /&gt;
Il est possible de créer une fonctionnalité qui hérite et utilise l'interface d'une autre fonctionnalité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
exemple : le module &amp;quot;convert&amp;quot; propose une fonctionnalité pour convertir du html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
class Func_convertHtml extends bab_functionality {&lt;br /&gt;
	function getDescription() {&lt;br /&gt;
		return 'convertir du html vers un autre format';&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function process($html) {&lt;br /&gt;
		return NULL;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans un autre module &amp;quot;convertToPdf&amp;quot;, on propose de convertir du html en pdf en utilisant openOffice. Pour que la fonctionnalité soit acceptée par le programme d'installation, l'objet hériter de l'objet parent.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
bab_functionality::includefile('convertHtml');&lt;br /&gt;
&lt;br /&gt;
class Func_ConvertHtml_ToPdf_OpenOffice extends Func_ConvertHtml {&lt;br /&gt;
	function getDescription() {&lt;br /&gt;
		return 'convertir du html en pdf';&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function process($html) {&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Utiliser une fonctionnalité ==&lt;br /&gt;
&lt;br /&gt;
La fonction du noyau  bab_functionality::get('convertHtml/toPdf/openOffice'); effectuera une inclusion du fichier &amp;quot;convertHtml/toPdf/openOffice/link.inc&amp;quot; ensuite l'objet Func_convertHtml_toPdf_openOffice sera instancié.&lt;br /&gt;
&lt;br /&gt;
Les niveaux supérieurs de l'arborescence seront complétés avec une copie du fichier link.inc si aucun fichier de lien n'est présent.&lt;br /&gt;
&lt;br /&gt;
Un formulaire sera disponible pour d'administrateur afin de changer les fichiers interfaces des niveaux supérieurs pour redéfinir les fonctions par défaut dans le cas de sous-répertoires multiples.&lt;br /&gt;
&lt;br /&gt;
Pour simplifier l'exécution des fonctions d'interface, le contexte du module ne sera pas recréé avant que la fonction soit appelée. Par conséquent, les variables globales de l'environnement du module ne devront pas être utilisées.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fonctions ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Obtenir les sous-répertoires d'une fonctionnalité ====&lt;br /&gt;
&lt;br /&gt;
La liste des sous-fonctionnalités permet de proposer à l'utilisateur un choix, et ensuite effectuer un appel direct à la fonctionnalité en utilisant un chemin plus complet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $array = bab_functionality::getFunctionalities('path');&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Obtenir l'instance de l'objet ====&lt;br /&gt;
&lt;br /&gt;
Par défaut, l'objet retourné pour une fonctionnalité est un [http://fr.wikipedia.org/wiki/Singleton_(patron_de_conception) singleton]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $singleton = bab_functionality::get('path');&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il est possible de passer un deuxième paramètre à la methode get() pour que l'instance retournée ne soit pas un singleton&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 $instance = bab_functionality::get('path', false);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== inclure le fichier de la functionnalité ====&lt;br /&gt;
&lt;br /&gt;
inclure le fichier de la fonctionnalité afin d'effectuer un héritage&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 bab_functionality::includefile('path');&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tester la présence d'un fonctionnalité ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans le fichier addonini.php d'un module, il est possible de tester la présence d'un fonctionnalité comme un pré-requis, afin d'empêcher l'installation du module si la fonctionnalité n'est pas installée.&lt;br /&gt;
&lt;br /&gt;
bab_functionality::get() retourne false si la fonctionnalité n'est pas trouvée, il est possible d'utiliser cette méthode avec un @ devant l'appel pour ne pas voir le notice déclenché et utiliser uniquement la valeur de retour.&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=3341</id>
		<title>Feuille de route</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=3341"/>
				<updated>2008-10-07T14:52:26Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Version 6.8.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version 6.7.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer le plan du site dans le noyau   || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer des fonctionnalités externe (Voir l'article [[Communication entre les modules]])   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de tester la présence des fonctionnalités comme des prérequis pour l'installation d'un module ou du noyau   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité d'ajouter un script de prérequis personnalisés pour l'installation d'un module   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Controle de disponibilité pour empêcher le surbooking dans les agendas de ressources  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de catégories sur les délégations utilisables dans l'OVML    || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout du contener OVML OCRecentFaqQuestions  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de l'API des articles ( Voir [[API Articles]])  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout des types de congés avec les couleurs sur la visualisation d'un congé dans l'agenda  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout de la gestion des plusieurs périodes d'exclusion dans les droits de congés ||   Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 6.8.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration des skins en tant que modules  || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Déléguer la saisie de certains champs de l'annuaire à des utilisateurs en utilisant les droits ACL.&lt;br /&gt;
Les utilisateurs ayant le droit de mettre à jour l'annuaire continueront à le faire sur tous les champs de l'annuaire.&lt;br /&gt;
Les utilisateurs ayant le droit de modification sur certains champs ne pourront pas modifier les autres champs de l'annuaire ( sauf s'ils ont le droit de modification sur l'annuaire ). Un utilisateur qui a le droit de modification sur un champ pourra le faire sur toutes les fiches annuaires des utilisateurs du portail.&lt;br /&gt;
|| Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 7.0.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de PHP (passage à PHP 5.1.0)  || A faire&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de MySQL (passage à MySQL 4.1.0)  || A faire&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=3340</id>
		<title>Feuille de route</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=3340"/>
				<updated>2008-10-03T09:45:30Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Version 6.8.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version 6.7.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer le plan du site dans le noyau   || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer des fonctionnalités externe (Voir l'article [[Communication entre les modules]])   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité de tester la présence des fonctionnalités comme des prérequis pour l'installation d'un module ou du noyau   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Possibilité d'ajouter un script de prérequis personnalisés pour l'installation d'un module   || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Controle de disponibilité pour empêcher le surbooking dans les agendas de ressources  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de catégories sur les délégations utilisables dans l'OVML    || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout du contener OVML OCRecentFaqQuestions  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de l'API des articles ( Voir [[API Articles]])  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout des types de congés avec les couleurs sur la visualisation d'un congé dans l'agenda  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| ajout de la gestion des plusieurs périodes d'exclusion dans les droits de congés ||   Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 6.8.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration des skins en tant que modules  || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Déléguer la saisie de certains champs de l'annuaire à des utilisateurs en utilisant les droits ACL.&lt;br /&gt;
Les utilisateurs ayant le droit de mettre à jour l'annuaire continueront à le faire sur tous les champs de l'annuaire.&lt;br /&gt;
Les utilisateurs ayant le droit de modification sur certains champs ne pourront pas modifier les autres champs de l'annuaire ( sauf s'ils ont le droit de modification sur l'annuaire ). Un utilisateur qui a le droit de modification sur un champ pourra le faire sur toutes les fiches annuaires des utilisateurs du portail.&lt;br /&gt;
|| En cours&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 7.0.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de PHP (passage à PHP 5.1.0)  || A faire&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de MySQL (passage à MySQL 4.1.0)  || A faire&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=3228</id>
		<title>Feuille de route</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=3228"/>
				<updated>2008-03-17T06:31:01Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Version 6.7.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version 6.7.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer le plan du site dans le noyau   || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer des fonctionnalités externe (Voir l'article [[Communication entre les modules]])   || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Controle de disponibilité pour empêcher le subooking dans les agendas de ressources  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de catégories sur les délégations utilisables dans l'OVML    || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout du contener OVML OCRecentFaqQuestions  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de l'API des articles ( Voir [[API Articles]])  ||   Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 6.8.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration des skins en tant que modules  || En cours&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 7.0.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de PHP (passage à PHP 5.1.0)  || A faire&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de MySQL (passage à MySQL 4.1.0)  || A faire&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=3227</id>
		<title>Feuille de route</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Feuille_de_route&amp;diff=3227"/>
				<updated>2008-03-17T06:30:37Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Version 6.7.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version 6.7.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer le plan du site dans le noyau   || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration d'une API pour gérer des fonctionnalités externe (Voir l'article [[Communication entre les modules]])   || En cours&lt;br /&gt;
|-&lt;br /&gt;
|| Controle de disponibilité pour empêcher le subooking dans les agendas de ressources  || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout de catégories sur les délégations utilisables dans l'OVML    || Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Ajout du contener OVML OCRecentFaqQuestions  ||   Fait&lt;br /&gt;
|-&lt;br /&gt;
|| Publication de l'API des articles ( [[API Articles]])  ||   Fait&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Version 6.8.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Intégration des skins en tant que modules  || En cours&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 7.0.0 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|| '''Description''' &lt;br /&gt;
| width=&amp;quot;70&amp;quot;| '''État'''&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de PHP (passage à PHP 5.1.0)  || A faire&lt;br /&gt;
|-&lt;br /&gt;
|| Modification de la version minimale requise de MySQL (passage à MySQL 4.1.0)  || A faire&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=API_Articles&amp;diff=3222</id>
		<title>API Articles</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=API_Articles&amp;diff=3222"/>
				<updated>2008-03-15T08:27:44Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : Nouvelle page : Catégorie:Développement de modules   == Introduction == Cette API permet de créer des catégories, des thèmes, des brouillons d'articles et des articles. Son utilisation néc...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Développement de modules]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Cette API permet de créer des catégories, des thèmes, des brouillons d'articles et des articles.&lt;br /&gt;
Son utilisation nécessite l'inclusion du fichier '''artapi.php''' comme ceci:&lt;br /&gt;
:'''require_once $GLOBALS['babInstallPath'].'utilit/artapi.php';'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===bab_addTopicsCategory()===&lt;br /&gt;
Cette fonction permet de créer une catégorie d'articles.&lt;br /&gt;
Retourne l'ID de la catégorie créée. Sinon '''false'''.&lt;br /&gt;
:'''function bab_addTopicsCategory($name, $description, $benabled, $template, $disptmpl, $topcatid, $dgowner=0)'''&lt;br /&gt;
* '''$name''' :&lt;br /&gt;
*: Libellé de la catégorie d'articles&lt;br /&gt;
* '''$description''' :&lt;br /&gt;
*: Description de la catégorie d'articles&lt;br /&gt;
* '''$benabled''' :&lt;br /&gt;
*: Active ou non ('Y'/'N')&lt;br /&gt;
* '''$template''' :&lt;br /&gt;
*: Nom du template de la section&lt;br /&gt;
* '''$disptmpl''' :&lt;br /&gt;
*: Nom du template d'affichage&lt;br /&gt;
* '''$topcatid''' :&lt;br /&gt;
*: ID de la catégorie d'articles parent&lt;br /&gt;
* '''$dgowner''' :&lt;br /&gt;
*: ID de la délégation. Par défaut O.&lt;br /&gt;
&lt;br /&gt;
===bab_addTopic()===&lt;br /&gt;
Cette fonction permet de créer un thème d'articles.&lt;br /&gt;
Retourne l'ID de la catégorie créée. Sinon '''false'''.&lt;br /&gt;
:'''bab_addTopic($name, $description, $idCategory, &amp;amp;$error, $topicArr = array())'''&lt;br /&gt;
* '''$name''' :&lt;br /&gt;
*: Libellé du thème d'articles&lt;br /&gt;
* '''$description''' :&lt;br /&gt;
*: Description du thème d'articles&lt;br /&gt;
* '''$idCategory''' :&lt;br /&gt;
*: ID de la catégorie d'articles à laquelle sera attaché le thème&lt;br /&gt;
* '''$error''' :&lt;br /&gt;
*: Variable passée par référence et, en cas d'erreur, initialisée par le système avec un libellé d'erreur&lt;br /&gt;
* '''$topicArr''' :&lt;br /&gt;
*: Tableau associatif permettant de spécifier d'autres paramètres pour initialiser le thème&lt;br /&gt;
** ''&amp;quot;idsaart&amp;quot;'' :&lt;br /&gt;
**: ID du schéma d'approbation des articles. Si pas d'approbation 0. ( Par défaut 0 )&lt;br /&gt;
** ''&amp;quot;idsacom&amp;quot;'' :&lt;br /&gt;
**: ID du schéma d'approbation des commentaires. Si pas d'approbation 0. ( Par défaut 0 )&lt;br /&gt;
** ''&amp;quot;idsa_update&amp;quot;'' : &lt;br /&gt;
**: ID du schéma d'approbation de modification des articles. Si pas d'approbation 0. ( Par défaut 0 )&lt;br /&gt;
** ''&amp;quot;notify&amp;quot;'' : &lt;br /&gt;
**: 'Y' si on souhaite la notification des membres. 'N' sinon. ( Par défaut 'N' )&lt;br /&gt;
** ''&amp;quot;lang&amp;quot;'' : &lt;br /&gt;
**: Langue de l'article. ( Par défaut la langue courante est utilisée )&lt;br /&gt;
** ''&amp;quot;article_tmpl&amp;quot;'' :&lt;br /&gt;
**: Template d'article. ( Par défaut aucun )&lt;br /&gt;
** ''&amp;quot;display_tmpl&amp;quot;'' :&lt;br /&gt;
**: Template d'affichage. ( Par défaut aucun )&lt;br /&gt;
** ''&amp;quot;restrict_access&amp;quot;'' :&lt;br /&gt;
**: 'Y' si on souhaite activer la restriction d'articles. 'N' sinon. ( Par défaut 'N' )&lt;br /&gt;
** ''&amp;quot;allow_hpages&amp;quot;'' :&lt;br /&gt;
**: 'Y' si on souhaite permettre aux auteurs de proposer leurs articles pour les pages d'accueil. 'N' sinon. ( Par défaut 'N' )&lt;br /&gt;
** ''&amp;quot;allow_pubdates&amp;quot;'' :&lt;br /&gt;
**: 'Y' si on souhaite permettre aux auteurs de spécifier une date de publication. 'N' sinon. ( Par défaut 'N' )&lt;br /&gt;
** ''&amp;quot;allow_attachments&amp;quot;'' :&lt;br /&gt;
**: 'Y' si on souhaite permettre aux auteurs de joindre des documents à leurs articles. 'N' sinon. ( Par défaut 'N' )&lt;br /&gt;
** ''&amp;quot;allow_update&amp;quot;'' :&lt;br /&gt;
**: 'Y' si on souhaite permettre aux auteurs de modifier leurs articles. 'N' sinon. ( Par défaut 'N' )&lt;br /&gt;
** ''&amp;quot;allow_manupdate&amp;quot;'' :&lt;br /&gt;
**: 'Y' si on souhaite permettre aux gestionnaires de modifier leurs articles. 'N' sinon. ( Par défaut 'N' )&lt;br /&gt;
** ''&amp;quot;max_articles&amp;quot;'' :&lt;br /&gt;
**: Nombre d'articles à afficher sur une page.( Par défaut 10 )&lt;br /&gt;
** ''&amp;quot;auto_approbation&amp;quot;'' :&lt;br /&gt;
**: 'Y' si on souhaite que le système approuve automatiquement les auteurs s'ils font partie du schéma d'approbation. 'N' sinon. ( Par défaut 'N' )&lt;br /&gt;
** ''&amp;quot;busetags&amp;quot;'' :&lt;br /&gt;
**: 'Y' si on souhaite l'utilisation des mots clés. 'N' sinon. ( Par défaut 'N' )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===bab_addArticleDraft()===&lt;br /&gt;
Cette fonction permet de créer un brouillon d'un article.&lt;br /&gt;
L'article n'est pas soumis. Pour le soumettre il afut appeler la fonction '''bab_submitArticleDraft()'''&lt;br /&gt;
Retourne l'ID du brouillon. Sinon '''0'''.&lt;br /&gt;
:'''function bab_addArticleDraft( $title, $head, $body, $idTopic, &amp;amp;$error, $articleArr=array())'''&lt;br /&gt;
* '''$title''' :&lt;br /&gt;
*: Titre de l'article&lt;br /&gt;
* '''$head''' :&lt;br /&gt;
*: Introduction de l'article&lt;br /&gt;
* '''$body''' :&lt;br /&gt;
*: Sujet de l'article&lt;br /&gt;
* '''$idTopic''' :&lt;br /&gt;
*: ID du thème d'articles auquel appartiendra le brouillon d'article&lt;br /&gt;
* '''$error''' :&lt;br /&gt;
*: Variable passée par référence et, en cas d'erreur, initialisée par le système avec un libellé d'erreur&lt;br /&gt;
* '''$articleArr''' :&lt;br /&gt;
*: Tableau associatif permettant de spécifier d'autres paramètres pour initialiser le brouillon&lt;br /&gt;
** ''&amp;quot;id_author&amp;quot;'' :&lt;br /&gt;
**: ID de l'auteur. ( Par défaut ID de l'utilisateur courant )&lt;br /&gt;
** ''&amp;quot;lang&amp;quot;'' :&lt;br /&gt;
**: Langue de l'article. ( Par défaut la langue courante est utilisée )&lt;br /&gt;
** ''&amp;quot;date_submission&amp;quot;'' :&lt;br /&gt;
**: Date de soumission au format '''YYYY-MM-DD HH:MM:SS'''.( Par défaut pas de date )&lt;br /&gt;
** ''&amp;quot;date_archiving&amp;quot;'' :&lt;br /&gt;
**: Date d'archivage au format '''YYYY-MM-DD HH:MM:SS'''.( Par défaut pas de date )&lt;br /&gt;
** ''&amp;quot;date_publication&amp;quot;'' :&lt;br /&gt;
**: Date de publication au format '''YYYY-MM-DD HH:MM:SS'''.( Par défaut pas de date )&lt;br /&gt;
** ''&amp;quot;hpage_private&amp;quot;'' :&lt;br /&gt;
**: 'Y' si on souhaite que l'article sera proposé en page d'accueil privée une fois soumis. 'N' sinon. ( Par défaut 'N' )&lt;br /&gt;
** ''&amp;quot;hpage_public&amp;quot;'' :&lt;br /&gt;
**: 'Y' si on souhaite que l'article sera proposé en page d'accueil public une fois soumis. 'N' sinon. ( Par défaut 'N' )&lt;br /&gt;
** ''&amp;quot;notify_members&amp;quot;'' :&lt;br /&gt;
**: 'Y' si on souhaite que les membres soient notifiés une fois l'article publié. 'N' sinon. ( Par défaut 'N' )&lt;br /&gt;
** ''&amp;quot;update_datemodif&amp;quot;'' :&lt;br /&gt;
**: 'Y' si on souhaite que la date de modification de l'article soit mise à jour. 'N' sinon. ( Par défaut 'N' )&lt;br /&gt;
&lt;br /&gt;
===bab_addArticle()===&lt;br /&gt;
Cette fonction permet de créer un article et de le soumettre.&lt;br /&gt;
Retourne ''true'' en cas de succès. Sinon ''false''.&lt;br /&gt;
:'''function bab_addArticle( $title, $head, $body, $idTopic, &amp;amp;$error, $articleArr=array())'''&lt;br /&gt;
* '''$title''' :&lt;br /&gt;
*: Titre de l'article&lt;br /&gt;
* '''$head''' :&lt;br /&gt;
*: Introduction de l'article&lt;br /&gt;
* '''$body''' :&lt;br /&gt;
*: Sujet de l'article&lt;br /&gt;
* '''$idTopic''' :&lt;br /&gt;
*: ID du thème d'articles auquel appartiendra l'article&lt;br /&gt;
* '''$error''' :&lt;br /&gt;
*: Variable passée par référence et, en cas d'erreur, initialisée par le système avec un libellé d'erreur&lt;br /&gt;
* '''$articleArr''' :&lt;br /&gt;
*: Tableau associatif permettant de spécifier d'autres paramètres pour initialiser l'article&lt;br /&gt;
** ''&amp;quot;id_author&amp;quot;'' :&lt;br /&gt;
**: ID de l'auteur. ( Par défaut ID de l'utilisateur courant )&lt;br /&gt;
** ''&amp;quot;lang&amp;quot;'' :&lt;br /&gt;
**: Langue de l'article. ( Par défaut la langue courante est utilisée )&lt;br /&gt;
** ''&amp;quot;date_submission&amp;quot;'' :&lt;br /&gt;
**: Date de soumission au format '''YYYY-MM-DD HH:MM:SS'''.( Par défaut pas de date )&lt;br /&gt;
** ''&amp;quot;date_archiving&amp;quot;'' :&lt;br /&gt;
**: Date d'archivage au format '''YYYY-MM-DD HH:MM:SS'''.( Par défaut pas de date )&lt;br /&gt;
** ''&amp;quot;date_publication&amp;quot;'' :&lt;br /&gt;
**: Date de publication au format '''YYYY-MM-DD HH:MM:SS'''.( Par défaut pas de date )&lt;br /&gt;
** ''&amp;quot;hpage_private&amp;quot;'' :&lt;br /&gt;
**: 'Y' si on souhaite que l'article sera proposé en page d'accueil privée une fois soumis. 'N' sinon. ( Par défaut 'N' )&lt;br /&gt;
** ''&amp;quot;hpage_public&amp;quot;'' :&lt;br /&gt;
**: 'Y' si on souhaite que l'article sera proposé en page d'accueil public une fois soumis. 'N' sinon. ( Par défaut 'N' )&lt;br /&gt;
** ''&amp;quot;notify_members&amp;quot;'' :&lt;br /&gt;
**: 'Y' si on souhaite que les membres soient notifiés une fois l'article publié. 'N' sinon. ( Par défaut 'N' )&lt;br /&gt;
** ''&amp;quot;update_datemodif&amp;quot;'' :&lt;br /&gt;
**: 'Y' si on souhaite que la date de modification de l'article soit mise à jour. 'N' sinon. ( Par défaut 'N' )&lt;br /&gt;
&lt;br /&gt;
===bab_submitArticleDraft()===&lt;br /&gt;
Cette fonction permet de soumettre un article brouillon.&lt;br /&gt;
Retourne ''true'' en cas de succès. Sinon ''false''.&lt;br /&gt;
:'''function bab_addArticle( $idDraft)'''&lt;br /&gt;
* '''$idDraft''' :&lt;br /&gt;
*: ID du brouillon d'article&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===bab_getTopicTitle()===&lt;br /&gt;
Retourne le nom d'un thème d'articles. Si le thème n'existe pas, la fonction retourne une chaîne vide&lt;br /&gt;
:'''function bab_getTopicTitle($id)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID du thème&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===bab_getTopicDescription()===&lt;br /&gt;
Retourne la description d'un thème d'articles. Si la catégorie n'existe pas, la fonction retourne une chaîne vide&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
:'''function bab_getTopicDescription($id)'''&lt;br /&gt;
*: ID du thème&lt;br /&gt;
&lt;br /&gt;
===bab_getTopicCategoryTitle()===&lt;br /&gt;
Retourne le nom d'une catégorie de thèmes d'articles. Si la catégorie n'existe pas, la fonction retourne une chaîne vide&lt;br /&gt;
:'''function bab_getTopicCategoryTitle($id)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID de la catégorie d'articles&lt;br /&gt;
&lt;br /&gt;
===bab_getTopicCategoryDescription()===&lt;br /&gt;
Retourne la description d'une catégorie de thèmes d'articles. Si la catégorie n'existe pas, la fonction retourne une chaîne vide&lt;br /&gt;
:'''function bab_getTopicCategoryDescription($id)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID de la catégorie d'articles&lt;br /&gt;
&lt;br /&gt;
===bab_getArticleTitle()===&lt;br /&gt;
Retourne le titre d'un article. Si l'article n'existe pas, la fonction retourne une chaîne vide&lt;br /&gt;
:'''function bab_getArticleTitle($id)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID de l'article&lt;br /&gt;
&lt;br /&gt;
===bab_getArticleDate()===&lt;br /&gt;
Retourne la date d'un article. Si l'article n'existe pas, la fonction retourne une chaîne vide&lt;br /&gt;
:'''function bab_getArticleDate($id)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID de l'article&lt;br /&gt;
&lt;br /&gt;
===bab_getArticleAuthor()===&lt;br /&gt;
Retourne le nom complet de l'auteur de l'article. Si l'article n'existe pas, la fonction retourne une chaîne vide.&lt;br /&gt;
Si l'auteur est un utilisateur anonyme, la fonction retourne '''Anonymous''' traduit dans la langue courante.&lt;br /&gt;
:'''function bab_getArticleAuthor($id)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID de l'article&lt;br /&gt;
&lt;br /&gt;
===bab_getCommentTitle()===&lt;br /&gt;
Retourne le titre d'un commentaire. Si le commentaire n'existe pas, la fonction retourne une chaîne vide.&lt;br /&gt;
:'''function bab_getCommentTitle($id)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID du commentaire&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Accueil&amp;diff=3221</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Accueil&amp;diff=3221"/>
				<updated>2008-03-15T07:20:54Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Documentation des API */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Contribuer au Wiki de développement Ovidentia==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=0 cellspacing=5 width=&amp;quot;100%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le Wiki dédié au développement d'OVIDENTIA&lt;br /&gt;
&lt;br /&gt;
Pour télécharger des documentations utilisateur et administrateur pour OVIDENTIA, vous pouvez utiliser le site communautaire [http://www.ovidentia.org/ Ovidentia.org]. Ce wiki, quant à lui contient une introduction au développement des modules ainsi que diverses documentations sur les nouvelles interfaces de programmation disponibles dans les versions actuelles et futures d'OVIDENTIA.&lt;br /&gt;
&lt;br /&gt;
Avant de contribuer, vous pouvez vous familiariser avec les [[Règles d'usage du wiki|règles d'usage du wiki]].&lt;br /&gt;
&lt;br /&gt;
Le développement d'OVIDENTIA est initié et géré par [http://www.cantico.fr Cantico] ([http://wiki.cantico.fr/ wiki privé])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;border: 1px solid lightgray;padding-left:1em;padding-right:0.5em;padding-bottom:0.5em;&amp;quot; width=&amp;quot;50%&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
===[[Image:icon-addon-dev.jpg]] Développer un module Ovidentia===&lt;br /&gt;
&lt;br /&gt;
* [[Développement de modules|Introduction]]&lt;br /&gt;
* [[Addon tutorial|Tutorial]]&lt;br /&gt;
* [[:Catégorie:Développement de modules|Tous les articles]]&lt;br /&gt;
* [http://www.ovidentia.org/?tg=articles&amp;amp;topics=56 Autres types de contributions]&lt;br /&gt;
&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;border: 1px solid lightgray;padding-left:1em;padding-right:0.5em;&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
[[Image:Roadmap.jpg]] [[Feuille de route]] (Roadmap)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Développement ==&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=0 cellspacing=5 width=&amp;quot;100%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|style=&amp;quot;border: 1px solid gray;padding-left:1em;padding-right:0.5em;background:#E8F1FF;padding-bottom:0.5em;&amp;quot; width=&amp;quot;50%&amp;quot;|&lt;br /&gt;
=== Règles de développement ===&lt;br /&gt;
* [[Règles de codage]]&lt;br /&gt;
* [[Sécurité]]&lt;br /&gt;
* [[Utilisation de Mantis]]&lt;br /&gt;
* [[Utilisation de CVS]] et gestion des versions&lt;br /&gt;
* [[Développement d'un programme de mise à jour]]&lt;br /&gt;
* [[Créer une archive de version]]&lt;br /&gt;
* [[Gettext]] : instruction d'utilisation pour les modules&lt;br /&gt;
* [[Implémentation de containers OVML dans un module]]&lt;br /&gt;
* [[Internationalisation]] : Améliorations de la gestion de l'internationalisation dans Ovidentia&lt;br /&gt;
* [[Accessibilité]]&lt;br /&gt;
* [[Développement d'une nouvelle fonctionnalité]]&lt;br /&gt;
&lt;br /&gt;
=== Documentation des API ===&lt;br /&gt;
* [[API noyau/module]]&lt;br /&gt;
* [[API Articles]]&lt;br /&gt;
* [[Nouveau moteur de templates]]&lt;br /&gt;
* [[API des agendas]]&lt;br /&gt;
* [[Access Control List]], Droits d'accès&lt;br /&gt;
* [[Base de registre]]&lt;br /&gt;
* [[API de sélection d'utilisateurs]]&lt;br /&gt;
* [[API du gestionnaire de fichier]]&lt;br /&gt;
* [[API du gestionnaire d'événement]]&lt;br /&gt;
* [[API editeur]]&lt;br /&gt;
* [[API Addon - OVML]]&lt;br /&gt;
* [[Indexation]]&lt;br /&gt;
&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#E8F1FF&amp;quot; style=&amp;quot;border-style:solid;border-width:1px;border-color:gray;padding-left:1em;padding-right:0.5em; padding-bottom:0.5em;&amp;quot; width=&amp;quot;50%&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
=== Outils de développements ===&lt;br /&gt;
&lt;br /&gt;
* [[Clients CVS]]&lt;br /&gt;
* [[Eclipse]]&lt;br /&gt;
&lt;br /&gt;
=== Technologies à l'étude ===&lt;br /&gt;
&lt;br /&gt;
* [[WebDAV]]&lt;br /&gt;
* [[Plugins OpenSearch]]&lt;br /&gt;
* [[Communication entre les modules]]&lt;br /&gt;
* [[Les microformats]]&lt;br /&gt;
* [[Le standard UWA de Netvibes]]&lt;br /&gt;
&lt;br /&gt;
=== Propositions d'améliorations ===&lt;br /&gt;
&lt;br /&gt;
* [[Gestionnaire de fichiers]]&lt;br /&gt;
* [[Propositions pour Ovidentia 7]]&lt;br /&gt;
* [[OVML]]&lt;br /&gt;
* [[Gestion des skins]]&lt;br /&gt;
* [[Authentification par identifiant NT]]&lt;br /&gt;
* [[Refactorisation du noyau]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Utilisation du wiki ==&lt;br /&gt;
&lt;br /&gt;
Consultez le [http://meta.wikimedia.org/wiki/Aide:Contenu Guide de l'utilisateur] pour plus d'information sur l'utilisation d'un wiki.&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Addon_tutorial&amp;diff=3209</id>
		<title>Addon tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Addon_tutorial&amp;diff=3209"/>
				<updated>2008-03-07T13:02:14Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : Nouvelle page : Catégorie:Développement de modules  = Introduction = Le but de ce guide est donner une initiation au développement d'un module pour Ovidentia. Il est destiné à des utilisate...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Développement de modules]]&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Le but de ce guide est donner une initiation au développement d'un module pour Ovidentia.&lt;br /&gt;
Il est destiné à des utilisateurs ayant déjà des connaissances en PHP et des développements de site PHP.&lt;br /&gt;
Avant de commencer vérifier que vous avez un serveur web avec le support PHP activé et qu'une version d'OVIDENTIA est installé. Si ce n'est pas fait vous pouvez télécharger une version sur le site communautaire http://www.ovidentia.org/ Ovidentia.org. &lt;br /&gt;
&lt;br /&gt;
= Création d'un nouvel module =&lt;br /&gt;
Nous allons, pour le besoin du tutorial, développer un module qui permet de créer des nouvelles et de les afficher sur la page d'accueil.&lt;br /&gt;
&lt;br /&gt;
Une nouvelle est composée d'un titre et d'un texte.&lt;br /&gt;
&lt;br /&gt;
A une nouvelle est associée une date de publication et un auteur, c'est à dire l'utilisateur qui a soumis la nouvelle.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'un utilisateur publie une nouvelle, celle-ci n'est pas immédiatement publiée. Des utilisateurs approbateurs approuvent ou refusent la nouvelle. Si elle est approuvée, elle est publiée. Sinon elle est supprimée.&lt;br /&gt;
&lt;br /&gt;
Le droit d'ajouter des nouvelles sera octroyé uniquement à certains groupes d'utilisateurs.&lt;br /&gt;
== Création des répertoires ==&lt;br /&gt;
Créer un répertoire ''newsaddon'' dans le répertoire ''ovidentia/addon'' de votre installation d'Ovidentia.&lt;br /&gt;
&lt;br /&gt;
Dans ce répertoire, créer les trois fichiers php suivants:&lt;br /&gt;
&lt;br /&gt;
* addonini.php&lt;br /&gt;
* base.php&lt;br /&gt;
* init.php&lt;br /&gt;
&lt;br /&gt;
Editer le fichier addonini.php et y insérer le code suivant:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;;&amp;lt;?php/*&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[general]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 name=&amp;quot;newsaddon&amp;quot;&lt;br /&gt;
 version=1.0&lt;br /&gt;
 description=&amp;quot;News addon&amp;quot;&lt;br /&gt;
 delete=1&lt;br /&gt;
 longdesc=&amp;quot;Addon des nouvelles&amp;quot;&lt;br /&gt;
 db_prefix=&amp;quot;newsaddon_&amp;quot;&lt;br /&gt;
 ov_version=&amp;quot;6.7.0&amp;quot;&lt;br /&gt;
 php_version=&amp;quot;4.1.2&amp;quot;&lt;br /&gt;
 mysql_version=&amp;quot;3.23&amp;quot;&lt;br /&gt;
 author=&amp;quot;Your name ( Your compagny )&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;*/?&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Editer le fichier base.php et y insérer le code suivant:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;?php&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 exit;&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Enfin éditer le fichier init.php et insérer dedans le code suivant:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;?php&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 require_once 'base.php';&lt;br /&gt;
 function newsaddon_getAdminSectionMenus(&amp;amp;$url, &amp;amp;$text)&lt;br /&gt;
 {&lt;br /&gt;
 return false;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 function newsaddon_getUserSectionMenus(&amp;amp;$url, &amp;amp;$text)&lt;br /&gt;
 {&lt;br /&gt;
 return false;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 function newsaddon_onSectionCreate(&amp;amp;$title, &amp;amp;$content)&lt;br /&gt;
 {&lt;br /&gt;
 return false;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 function newsaddon_upgrade($version_base,$version_ini)&lt;br /&gt;
 {&lt;br /&gt;
 return true;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 function newsaddon_onDeleteAddon()&lt;br /&gt;
 {&lt;br /&gt;
 return true;&lt;br /&gt;
 }&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A ce stade vous avez un module fonctionnel mais qui n'affiche rien et ne fait aucun traitement particulier.&lt;br /&gt;
&lt;br /&gt;
Nous détaillerons le contenu des fichiers créés plus tard. Pour le moment nous allons voir comment administrer, supprimer ou télécharger notre nouveau module.&lt;br /&gt;
&lt;br /&gt;
== Administration du module ==&lt;br /&gt;
En tant qu'administrateur du site, à partir de la section «''''' Administration '''''», cliquez sur le menu «''''' Modules '''''».&lt;br /&gt;
&lt;br /&gt;
Le système affiche la liste des modules présents.&lt;br /&gt;
&lt;br /&gt;
On remarque que dans la liste figure notre nouveau module «''''' newsaddon '''''».&lt;br /&gt;
&lt;br /&gt;
Cette interface vous permet de gérer les modules. En particulier, elle permet:&lt;br /&gt;
&lt;br /&gt;
* De donner les droits sur le module&lt;br /&gt;
* De télécharger le module&lt;br /&gt;
* De supprimer le module&lt;br /&gt;
* Installer le module&lt;br /&gt;
&lt;br /&gt;
'''Droits sur le module'''&lt;br /&gt;
&lt;br /&gt;
Cliquez sur le lien « Droits » pour désigner le ou les groupes des utilisateurs qui peuvent utiliser le module.&lt;br /&gt;
&lt;br /&gt;
Nous verrons plus tard comment le module peut surcharger ces droits pour restreindre l'accès à des sous groupes.&lt;br /&gt;
&lt;br /&gt;
Pour notre exemple, donnez le droit à tous les utilisateurs enregistrés en utilisant le formulaire ACL ( Access Control Level ) affiché.&lt;br /&gt;
&lt;br /&gt;
'''Télécharger le module'''&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez créer un ZIP de votre module pour le fournir à vos clients ou pour l'installer sur un autre site Ovidentia, cliquer sur l'image sous forme de disquette.&lt;br /&gt;
&lt;br /&gt;
Le système créé une archive ZIP du nom de l'addon et du numéro de version. &lt;br /&gt;
&lt;br /&gt;
Dans notre exemple, le système proposera de télécharger l'archive « '''''newsaddon-1-0.zip''''' »&lt;br /&gt;
&lt;br /&gt;
'''Supprimer le module'''&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez supprimer le module, cliquer sur l'icône de suppression.&lt;br /&gt;
&lt;br /&gt;
Le système vous demandera de confirmer la suppression.&lt;br /&gt;
&lt;br /&gt;
'''ATTENTION''': avant de procéder à la suppression, sauvegardez votre module en téléchargeant l'archive comme indiqué ci dessus.&lt;br /&gt;
&lt;br /&gt;
'''Installer le module'''&lt;br /&gt;
&lt;br /&gt;
Pour installer un module, cliquez sur le lien «''''' Déposer '''''» et charger l'archive.&lt;br /&gt;
&lt;br /&gt;
Une fois l'archive installée, cliquez sur l'icône de mise à jour pour procéder à l'installation définitive.&lt;br /&gt;
&lt;br /&gt;
== Description des fichiers ==&lt;br /&gt;
'''Fichier addonini.php'''&lt;br /&gt;
&lt;br /&gt;
Le fichier addonini.php est un fichier de configuration et contient les rubriques suivantes:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;'''Entrée'''&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;'''Description'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| name&lt;br /&gt;
| Nom du module&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| version&lt;br /&gt;
| La version du module&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| description&lt;br /&gt;
| Description courte du module&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| delete&lt;br /&gt;
| 1 : si on souhaite autoriser la suppression du module&lt;br /&gt;
&lt;br /&gt;
0: sinon&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| longdesc&lt;br /&gt;
| Description longue du module&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| db_prefix&lt;br /&gt;
| Le préfix utilisé pour les tables MySQL du module. Lors de la suppression du module, OVIDENTIA supprimera également de la base de données les tables dont le nom commencent par ce préfixe.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ov_version&lt;br /&gt;
| Version minimale requise d'Ovidentia &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| php_version&lt;br /&gt;
| Version requise de PHP&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| mysql_version&lt;br /&gt;
| Version requise de la base de données MySQL&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| author&lt;br /&gt;
| Auteur du module&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Fichier base.php'''&lt;br /&gt;
&lt;br /&gt;
Ce fichier sert de sécurité et empêche l'accès direct au module sans passer par le noyau Ovidentia.&lt;br /&gt;
&lt;br /&gt;
Il contient qu'une seule instruction :&lt;br /&gt;
&lt;br /&gt;
 exit;&lt;br /&gt;
&lt;br /&gt;
'''Fichier init.php'''&lt;br /&gt;
&lt;br /&gt;
Tout module doit contenir ce fichier.&lt;br /&gt;
&lt;br /&gt;
La fonction suivante ajoute une entrée dans la section «''' Administrateur '''»:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 function xxx_getAdminSectionMenus(&amp;amp;$url, &amp;amp;$text)&lt;br /&gt;
 {&lt;br /&gt;
 return false;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
( xxx est le nom du module )&lt;br /&gt;
&lt;br /&gt;
Si votre module a besoin d'un menu dans la section « Administration » pour permettre aux administrateurs de le configurer, Ovidentia vous donne une chance d'insérer ce menu par l'intermédiaire de cette fonction. Votre module doit initialiser les paramètres passés par références $url ( URL du menu ) et $text ( texte à afficher pour le menu ).&lt;br /&gt;
&lt;br /&gt;
Cette fonction retourne ''false'' si le module n'a pas d'entrée à jouter et retourne ''true'' si le module veut ajouter une entrée.&lt;br /&gt;
&lt;br /&gt;
Exemple:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 function newsaddon_getAdminSectionMenus(&amp;amp;$url, &amp;amp;$text)&lt;br /&gt;
 {&lt;br /&gt;
      static $j=0;&lt;br /&gt;
      if($j==0)&lt;br /&gt;
      {    &lt;br /&gt;
      $text = 'News Addon';&lt;br /&gt;
      &amp;lt;nowiki&amp;gt;$url = $GLOBALS['babAddonUrl'].&amp;quot;admin&amp;quot;;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
      $j++;&lt;br /&gt;
      return true;&lt;br /&gt;
      }&lt;br /&gt;
      return false;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Editez le fichier init.php et modifier la fonction comme ci-dessus.&lt;br /&gt;
&lt;br /&gt;
Rafraîchissez la page et vous verrez qu'une entrée est venue s'ajouter à la section «''' Administration '''»&lt;br /&gt;
&lt;br /&gt;
'''ATTENTION''': Cette fonction et les suivantes ne doivent pas générer d'affichage sur la page Web ( affichage de formulaire ou autre ) et doivent retourner assez rapidement à l'appelant.&lt;br /&gt;
&lt;br /&gt;
De la même manière vous pouvez ajouter un menu dans la section «''' Utilisateur '''». Pour cela utilisez la fonction:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 function xxx_getUserSectionMenus(&amp;amp;$url, &amp;amp;$text)&lt;br /&gt;
 {&lt;br /&gt;
 return false;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dans notre exemple ceci donne:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 function newsaddon_getUserSectionMenus(&amp;amp;$url, &amp;amp;$text)&lt;br /&gt;
 {&lt;br /&gt;
      static $j=0;&lt;br /&gt;
      if($j==0)&lt;br /&gt;
      {    &lt;br /&gt;
           $text = 'News Addon';&lt;br /&gt;
           &amp;lt;nowiki&amp;gt;$url = $GLOBALS['babAddonUrl'].&amp;quot;user&amp;quot;;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
           $j++;&lt;br /&gt;
           return true;&lt;br /&gt;
      }&lt;br /&gt;
 return false;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous rafraîchissez la page du navigateur, vous verrez qu'une entrée est venue s'ajouter à la section «''' Utilisateur'''»&lt;br /&gt;
&lt;br /&gt;
Si vous cliquez sur ces liens, le navigateur affichera des erreurs PHP parce que les fichiers admin.php et user.php n'existent pas. Pour éviter ces erreurs, créer deux fichiers user.php et admin.php dans le même répertoire que celui où se trouve le fichier init.php:&lt;br /&gt;
&lt;br /&gt;
admin.php:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;?php&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 require_once 'base.php';&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
user.php:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;?php&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 require_once 'base.php';&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Des fois le module a besoin de créer une section comme les sections «''' Administrateur '''» ou «''' Utilisateur '''» afin de regrouper tous les menus dont il a besoin. C'est là que la fonction suivante vient en aide:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 function newsaddon_onSectionCreate(&amp;amp;$title, &amp;amp;$content)&lt;br /&gt;
 {&lt;br /&gt;
 return false;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette fonction retourne '''''false''''' si le module ne créé pas de section et '''''true''''' dans le cas contraire.&lt;br /&gt;
&lt;br /&gt;
Dans ce cas le module initialise la variable '''''$title''''' avec le titre de la section et la variable '''''$content''''' avec le contenu de la section.&lt;br /&gt;
&lt;br /&gt;
La fonction:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 function newsaddon_onDeleteAddon()&lt;br /&gt;
 {&lt;br /&gt;
 return true;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
est appelée quand Ovidentia est sur le point de supprimer le module. Cette fonction permet au module de procéder à des nettoyages du système ( suppression de fichiers, répertoires temporaires ... créés par le module ).&lt;br /&gt;
&lt;br /&gt;
Enfin la fonction:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 function newsaddon_upgrade($version_base,$version_ini)&lt;br /&gt;
 {&lt;br /&gt;
 return true;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
est appelée par Ovidentia lors d'une mise à jour de votre module.&lt;br /&gt;
&lt;br /&gt;
Le premier paramètre est la version actuelle du module et le deuxième paramètre est la version définie dans le fichier addonini.php.&lt;br /&gt;
&lt;br /&gt;
( Pour plus de détails, au sujet de cette fonction, voir [[Développement d'un programme de mise à jour]])&lt;br /&gt;
&lt;br /&gt;
== Les variables du modules ==&lt;br /&gt;
Ovidentia met à la disposition de chaque module des variables pour faciliter leur implémentation. Il s'agit par exemple de l'url d'accès au module, du nom du module, des répertoires d'installation du module etc ... &lt;br /&gt;
&lt;br /&gt;
Ovidentia identifie chaque module par son nom et lui attribut un ID unique.&lt;br /&gt;
&lt;br /&gt;
Par exemple dans notre cas le module s'appelle '''newsaddon''' et son '''ID''' est 1 ( peut être différent sur votre installation ). Dans ce cas les variables disponibles à notre module sont:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;'''Variable'''&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;'''Description'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $babAddonUrl&lt;br /&gt;
| L'url d'accès au module&lt;br /&gt;
&lt;br /&gt;
[http://localhost/index.php?tg=addon/2/ http://localhost/index.php?tg=addon/1/]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $babAddonPhpPath&lt;br /&gt;
| Chemin vers les fichiers PHP&lt;br /&gt;
&lt;br /&gt;
« ovidentia/adons/newsaddon »&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $babAddonTarget&lt;br /&gt;
| Utilisé dans les formulaires comme action du tag « form »&lt;br /&gt;
&lt;br /&gt;
« addon/1 »&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $babAddonHtmlPath&lt;br /&gt;
| Chemin vers les fichiers templates ( voir ci dessous )&lt;br /&gt;
&lt;br /&gt;
addons/newsaddon/&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $babAddonFolder&lt;br /&gt;
| Nom du répertoire du module&lt;br /&gt;
&lt;br /&gt;
newsaddon&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $babAddonUpload&lt;br /&gt;
| Chemin du répertoire de stockage du module&lt;br /&gt;
&lt;br /&gt;
$babUploadPath.'addons/newsaddon'&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Les variables globales d'Ovidentia ==&lt;br /&gt;
Ovidentia met à la disposition des modules certaines variables utiles:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;'''Variable'''&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;'''Description'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $BAB_SESS_LOGGED&lt;br /&gt;
| Cette variable permet au module de savoir si l'utilisateur courant est authentifié ( ''true'' ) ou c'est un utilisateur anonyme ( ''false'' )&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $BAB_SESS_USER&lt;br /&gt;
| Contient le nom complet de l'utilisateur courant.&lt;br /&gt;
&lt;br /&gt;
Vide si l'utilisateur est anonyme&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $BAB_SESS_NICKNAME&lt;br /&gt;
| Contient l'identifiant de l'utilisateur courant.&lt;br /&gt;
&lt;br /&gt;
Vide si l'utilisateur est anonyme&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $BAB_SESS_USERID&lt;br /&gt;
| Contient l'ID de l'utilisateur courant.&lt;br /&gt;
&lt;br /&gt;
Vide si l'utilisateur est anonyme&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $BAB_SESS_EMAIL&lt;br /&gt;
| Contient l'adresse email de l'utilisateur courant.&lt;br /&gt;
&lt;br /&gt;
Vide si l'utilisateur est anonyme&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $babInstallPath&lt;br /&gt;
| Contient le chemin du répertoire où le noyau Ovidentia est installé.&lt;br /&gt;
&lt;br /&gt;
Le chemin est relatif au répertoire racine du site.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $babSkin &lt;br /&gt;
| Contient le nom du skin courant&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $babSkinPath &lt;br /&gt;
| Contient le chemin du répertoire du skin&lt;br /&gt;
&lt;br /&gt;
$babInstallPath.&amp;quot;skins/&amp;quot;.$babSkin.&amp;quot;/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $babCssPath&lt;br /&gt;
| Chemin vers le répertoire du CSS&lt;br /&gt;
&lt;br /&gt;
“skins/&amp;quot;.$babSkin.&amp;quot;/styles/name of file choosen by user.css&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $babScriptPath&lt;br /&gt;
| Chemin du répertoire des scripts&lt;br /&gt;
&lt;br /&gt;
$babInstallPath.&amp;quot;scripts/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $babLanguage&lt;br /&gt;
| Le langage courant&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $babStyle&lt;br /&gt;
| Nom du fichier CSS utilisé avec l'extension css&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $babSiteName&lt;br /&gt;
| Nom du site tel que configuré dans le fichier config.php&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $babUrl&lt;br /&gt;
| URL d'accès au site&lt;br /&gt;
&lt;br /&gt;
[http://localhost/ http://localhost]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $babDB&lt;br /&gt;
| Une instance de la classe de gestion de la base de données&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $babBody&lt;br /&gt;
| Une instance de la classe de gestion de la page Ovidentia&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Gestion des langues ==&lt;br /&gt;
Si vous avez besoin de gérer plusieurs langues pour votre module, vous devez utilisez la fonction:&lt;br /&gt;
&lt;br /&gt;
 bab_translate($str, $addonname)&lt;br /&gt;
&lt;br /&gt;
où $str est la chaîne à traduire et $addonname le nom de votre module.&lt;br /&gt;
&lt;br /&gt;
Dans notre exemple, on utilisera la fonction comme ceci:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;bab_translate($str, $GLOBALS['babAddonFolder']);&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De plus il est nécessaire de créer un répertoire du nom de votre module sous le répertoire « lang/addons » de votre installation.&lt;br /&gt;
&lt;br /&gt;
Pour chaque langue créer un fichier « lang-xx.xml » où xx est la langue.&lt;br /&gt;
&lt;br /&gt;
Dans notre cas on créera le fichier lang-fr.xml pour gérer les traductions en français. Le contenu de ce fichier est structuré comme suit:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;fr&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;string id=&amp;quot;Interpretation&amp;quot;&amp;gt;Interprétation&amp;lt;/string&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;string id=&amp;quot;Display the result in popup&amp;quot;&amp;gt;Afficher le résultat en popup&amp;lt;/string&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;string id=&amp;quot;Result:&amp;quot;&amp;gt;Résultat :&amp;lt;/string&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;string id=&amp;quot;Help&amp;quot;&amp;gt;Aide&amp;lt;/string&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/fr&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Gestion des erreurs ==&lt;br /&gt;
Pour afficher un message d'erreur à destination de l'utilisateur, Ovidentia met à la disposition des modules la fonction:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $babBody-&amp;gt;addError($message);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
L'appel à cette fonction avec un message affiche ce dernier en rouge pour attirer l'attention de l'utilisateur.&lt;br /&gt;
&lt;br /&gt;
Par exemple editer le fichier user.php et insérer le code suivant:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;?php&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 require_once 'base.php';&lt;br /&gt;
 $babBody-&amp;gt;addError('Ceci est un avertissement !');&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En cliquant sur le menu de la section « Utilisateur », le système affiche le message d'erreur.&lt;br /&gt;
&lt;br /&gt;
Essayez maintenant ceci:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;?php&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 require_once 'base.php';&lt;br /&gt;
 $babBody-&amp;gt;addError('Ceci est un avertissement !');&lt;br /&gt;
 echo 'ceci est un texte';&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Que remarque-t-on? Le texte est affiché tout en haut de la page et non pas en dessous de l'avertissement ! &lt;br /&gt;
&lt;br /&gt;
Afin d'afficher correctement des données, utilisez la fonction:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $babBody-&amp;gt;babEcho($str);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Editez le fichier user.php et modifiez le comme ceci:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;?php&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 require_once 'base.php';&lt;br /&gt;
 $babBody-&amp;gt;addError('Ceci est un avertissement !');&lt;br /&gt;
 $babBody-&amp;gt;babEcho( 'ceci est un texte' );&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Maintenant le texte est bien affiché en dessous de l'avertissement.&lt;br /&gt;
&lt;br /&gt;
= Module de nouvelles =&lt;br /&gt;
&lt;br /&gt;
== Base de données ==&lt;br /&gt;
Nous allons stocker nos nouvelles dans la base de données avec un schéma comme celui-ci:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;'''Champ'''&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;'''Type'''&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;'''Null?'''&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;'''Notes'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| id&lt;br /&gt;
| Integer&lt;br /&gt;
| Non&lt;br /&gt;
| Primary key, Autoincrement&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| news_title&lt;br /&gt;
| Varchar(255)&lt;br /&gt;
| Non&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| news_body&lt;br /&gt;
| Text&lt;br /&gt;
| Non&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| news_datetime&lt;br /&gt;
| Datetime&lt;br /&gt;
| Non&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| news_author&lt;br /&gt;
| Integer&lt;br /&gt;
| Oui&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
En utilisant phpMyAdmin, créer une table en utilisant la requête suivante:&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE `newsaddon_news` (&lt;br /&gt;
  `id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,&lt;br /&gt;
 `news_title` VARCHAR( 255 ) NOT NULL ,&lt;br /&gt;
 `news_body` TEXT NOT NULL ,&lt;br /&gt;
 `news_datetime` DATETIME NOT NULL ,&lt;br /&gt;
 `news_author` int(11) unsigned NOT NULL default '0' &lt;br /&gt;
 )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour que votre module puisse créer cette table lors de son installation, vous devez éditer le fichier init.php et modifier la fonction '''upgrade()''' comme ceci:&lt;br /&gt;
&lt;br /&gt;
 function newsaddon_upgrade($version_base,$version_ini) &lt;br /&gt;
 { &lt;br /&gt;
 global $babDB; &lt;br /&gt;
 if ( !bab_isTable(&amp;quot;newsaddon_news&amp;quot;)) &lt;br /&gt;
 { &lt;br /&gt;
 $res = $babDB-&amp;gt;db_query(&amp;quot; &lt;br /&gt;
  CREATE TABLE `newsaddon_news` ( &lt;br /&gt;
  `id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , &lt;br /&gt;
  `news_title` VARCHAR( 255 ) NOT NULL , &lt;br /&gt;
  `news_body` TEXT NOT NULL , &lt;br /&gt;
  `news_datetime` DATETIME NOT NULL , &lt;br /&gt;
  `news_author` int(11) unsigned NOT NULL default '0' &lt;br /&gt;
  )&amp;quot;); &lt;br /&gt;
 } &lt;br /&gt;
 return true; &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La variable globale '''''$babDB''''' permet d'accéder à l'objet gérant la base de données.&lt;br /&gt;
&lt;br /&gt;
La fonction''''' bab_isTable()''''' permet de vérifier si la table n'existe pas déjà dans la base de données ( voir [[Développement d'un programme de mise à jour]] )&lt;br /&gt;
&lt;br /&gt;
== Formulaire de création d'une nouvelle ==&lt;br /&gt;
Pour permettre à l'utilisateur de créer une nouvelle, il nous faut créer :&lt;br /&gt;
&lt;br /&gt;
* un menu pour accéder à cette fonctionnalité&lt;br /&gt;
* un formulaire de création&lt;br /&gt;
&lt;br /&gt;
'''Création du menu'''&lt;br /&gt;
&lt;br /&gt;
Éditez le fichier user.php et modifier comme suit:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;?php &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 require_once &amp;quot;base.php&amp;quot;; &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$babBody-&amp;gt;addItemMenu(&amp;quot;add&amp;quot;, bab_translate(&amp;quot;Add&amp;quot;, $GLOBALS[&amp;quot;babAddonFolder&amp;quot;]),$GLOBALS[&amp;quot;babAddonUrl&amp;quot;].&amp;quot;user&amp;amp;idx=add&amp;quot;); &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fonction &lt;br /&gt;
&lt;br /&gt;
 function addItemMenu($id, $txt, $url, $enabled=true)&lt;br /&gt;
&lt;br /&gt;
permet d'ajouter une entrée dans le menu de la page d'OVIDENTIA. Cette fonction prend comme paramètres :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;'''Paramètres'''&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;'''Description'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $id&lt;br /&gt;
| Est un identifiant de l'entrée du menu&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $txt&lt;br /&gt;
| Texte à afficher dans l'entrée du men&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $url&lt;br /&gt;
| URL du lien&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| $enabled&lt;br /&gt;
| Si '''''true''''' l'entrée est active. &lt;br /&gt;
&lt;br /&gt;
'''''false''''' si on souhaite que l'entrée soit désactivée&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sauvegarder et tester votre module. &lt;br /&gt;
&lt;br /&gt;
On voit bien que le menu contient maintenant une entrée «''' Ajouter '''» et si vous cliquer dessus rien ne se passe. C'est normal, l'action n'est pas gérée.&lt;br /&gt;
&lt;br /&gt;
'''Ajout d'un titre'''&lt;br /&gt;
&lt;br /&gt;
Pour ajouter un titre, modifiez le fichier user.php comme suit:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;?php &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 require_once &amp;quot;base.php&amp;quot;;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$babBody-&amp;gt;title = bab_translate(&amp;quot;Add new&amp;quot;, $GLOBALS['babAddonFolder']);&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$babBody-&amp;gt;addItemMenu(&amp;quot;add&amp;quot;, bab_translate(&amp;quot;Add&amp;quot;, $GLOBALS[&amp;quot;babAddonFolder&amp;quot;]),$GLOBALS[&amp;quot;babAddonUrl&amp;quot;].&amp;quot;user&amp;amp;idx=add&amp;quot;); &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Création du formulaire d'ajout d'une nouvelle'''&lt;br /&gt;
&lt;br /&gt;
La création du formulaire consiste en la création d'un fichier HTML contenant le template du formulaire et du code PHP pour afficher ce template.&lt;br /&gt;
&lt;br /&gt;
En premier créer un répertoire ''newsaddon ''sous le répertoire ''ovidentia/skins/ovidentia/templates/addons'' et ajoutez y le fichier ''user.html''. Enfin éditez ce dernier et insérer le code suivant:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;!--#begin newsaddform --&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;form name=&amp;quot;newsadd&amp;quot; method=&amp;quot;post&amp;quot; action=&amp;quot;{ babPhpSelf }&amp;quot;&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;tg&amp;quot; value=&amp;quot;{ babAddonTarget }/user&amp;quot; &amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;table align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=&amp;quot;50%&amp;quot;&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;tbody&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;tr&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;td class=&amp;quot;BabLoginCadreBackground&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;middle&amp;quot;&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;table align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot;&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;tbody&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;tr&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;td class=&amp;quot;BabLoginMenuBackground&amp;quot; align=&amp;quot;right&amp;quot; nowrap=&amp;quot;nowrap&amp;quot; valign=&amp;quot;middle&amp;quot;&amp;gt;{ titlelabel }:&amp;lt;/td&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;td class=&amp;quot;BabLoginMenuBackground&amp;quot; valign=&amp;quot;middle&amp;quot;&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;input name=&amp;quot;newstitle&amp;quot; size=&amp;quot;50&amp;quot; maxlength=&amp;quot;255&amp;quot; value=&amp;quot;&amp;quot; type=&amp;quot;text&amp;quot;&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/tr&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;tr&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;td class=&amp;quot;BabLoginMenuBackground&amp;quot; align=&amp;quot;right&amp;quot; valign=&amp;quot;middle&amp;quot;&amp;gt;{ bodylabel }:&amp;lt;/td&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;td class=&amp;quot;BabLoginMenuBackground&amp;quot; valign=&amp;quot;middle&amp;quot;&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;textarea name=&amp;quot;newsbody&amp;quot; cols=&amp;quot;50&amp;quot; rows=&amp;quot;10&amp;quot;&amp;gt;&amp;lt;/textarea&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/tr&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;tr&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;td class=&amp;quot;BabLoginMenuBackground&amp;quot; nowrap=&amp;quot;nowrap&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;td class=&amp;quot;BabLoginMenuBackground&amp;quot; valign=&amp;quot;middle&amp;quot;&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;input name=&amp;quot;baddnews&amp;quot; value=&amp;quot;{ addlabel }&amp;quot; type=&amp;quot;submit&amp;quot;&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;br&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/tr&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/tbody&amp;gt;&amp;lt;/table&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/tr&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/tbody&amp;gt;&amp;lt;/table&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/form&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;!--#end newsaddform --&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Un fichier template contient du code HTML et peut contenir plusieurs templates. Chaque template commence par :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;!--#begin xxxxxx --&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et se termine par&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;!--#end xxxxxx --&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
où xxxxxx est le nom du template.&lt;br /&gt;
&lt;br /&gt;
Les variables d'un template sont toujours sous la forme &lt;br /&gt;
&lt;br /&gt;
 { myvariable } &lt;br /&gt;
&lt;br /&gt;
Le nom de la variable et du template ne doivent pas contenir d'espace.&lt;br /&gt;
&lt;br /&gt;
Pour afficher ce template, vous devez créer une classe PHP, l'instancier et appeler la fonction:&lt;br /&gt;
&lt;br /&gt;
 bab_printTemplate($class, $file, $template);&lt;br /&gt;
&lt;br /&gt;
où:&lt;br /&gt;
&lt;br /&gt;
* $class est l'instance de la classe PHP qui contient les variables du template&lt;br /&gt;
* $file est le nom du fichier qui contient le template&lt;br /&gt;
* $template est le nom du template.&lt;br /&gt;
&lt;br /&gt;
'''Affichage du formulaire'''&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre template est créé nous allons écrire le code PHP pour l'afficher. Pour cela éditez le fichier user.php et modifiez le comme suit:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;?php&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
require_once 'base.php';&lt;br /&gt;
&lt;br /&gt;
function displayAddNewsForm()&lt;br /&gt;
{&lt;br /&gt;
global $babBody;&lt;br /&gt;
&lt;br /&gt;
class displayAddNewsFormClass &lt;br /&gt;
{&lt;br /&gt;
function displayAddNewsFormClass()&lt;br /&gt;
{&lt;br /&gt;
&amp;lt;nowiki&amp;gt;$this-&amp;gt;bodylabel = bab_translate(&amp;quot;Body&amp;quot;, $GLOBALS['babAddonFolder']);&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;$this-&amp;gt;titlelabel = bab_translate(&amp;quot;Title&amp;quot;, $GLOBALS['babAddonFolder']);&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;$this-&amp;gt;addlabel = bab_translate(&amp;quot;Add&amp;quot;, $GLOBALS['babAddonFolder']);&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$obj= new displayAddNewsFormClass();&lt;br /&gt;
&amp;lt;nowiki&amp;gt;$babBody-&amp;gt;babecho( bab_printTemplate($obj,$GLOBALS['babAddonHtmlPath'].&amp;quot;user.html&amp;quot;, &amp;quot;newsaddform&amp;quot;));&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;$babBody-&amp;gt;addItemMenu(&amp;quot;add&amp;quot;, bab_translate(&amp;quot;Add&amp;quot;, $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'].&amp;quot;user&amp;amp;idx=add&amp;quot;);&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
displayAddNewsForm();&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sauvegardez et testez votre module. En cliquant sur le lien de la section «''' Utilisateur '''», le module affiche le formulaire de création d'un nouvelle.&lt;br /&gt;
&lt;br /&gt;
'''Enregistrement de la nouvelle'''&lt;br /&gt;
&lt;br /&gt;
Il faut sauvegarder la nouvelle dans la base de données. Pour cela modifier le fichier '''user.php''' comme suit:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;?php&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 require_once 'base.php';&lt;br /&gt;
 &lt;br /&gt;
 function displayAddNewsForm()&lt;br /&gt;
 {&lt;br /&gt;
 global $babBody;&lt;br /&gt;
 class displayAddNewsFormClass &lt;br /&gt;
 {&lt;br /&gt;
 function displayAddNewsFormClass()&lt;br /&gt;
 {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$this-&amp;gt;bodylabel = bab_translate(&amp;quot;Body&amp;quot;, $GLOBALS['babAddonFolder']);&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$this-&amp;gt;titlelabel = bab_translate(&amp;quot;Title&amp;quot;, $GLOBALS['babAddonFolder']);&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$this-&amp;gt;addlabel = bab_translate(&amp;quot;Add&amp;quot;, $GLOBALS['babAddonFolder']);&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 $obj= new displayAddNewsFormClass();&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$babBody-&amp;gt;babecho( bab_printTemplate($obj,$GLOBALS['babAddonHtmlPath'].&amp;quot;user.html&amp;quot;, &amp;quot;newsaddform&amp;quot;));&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
  &lt;br /&gt;
 function recordNews()&lt;br /&gt;
 {&lt;br /&gt;
 global $babBody, $babDB;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;if( !empty($_POST['newstitle']) &amp;amp;&amp;amp; !empty($_POST['newsbody']) )&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$babDB-&amp;gt;db_query(&amp;quot;insert into newsaddon_news (news_title, news_body, news_datetime, news_author) values ('&amp;quot;.$babDB-&amp;gt;db_escape_string($_POST['newstitle']).&amp;quot;','&amp;quot;.$babDB-&amp;gt;db_escape_string($_POST['newsbody']).&amp;quot;',now(),'&amp;quot;.$GLOBALS['BAB_SESS_USERID'].&amp;quot;')&amp;quot;);&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
 else&lt;br /&gt;
 {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$babBody-&amp;gt;addError(bab_translate(&amp;quot;All fields are required!&amp;quot;, $GLOBALS['babAddonFolder']));&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
  &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;if( isset($_POST['baddnews']))&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
 recordNews();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$babBody-&amp;gt;title = bab_translate(&amp;quot;Add new&amp;quot;, $GLOBALS['babAddonFolder']);&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$babBody-&amp;gt;addItemMenu(&amp;quot;add&amp;quot;, bab_translate(&amp;quot;Add&amp;quot;, $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'].&amp;quot;user&amp;amp;idx=add&amp;quot;);&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 displayAddNewsForm();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant les utilisateurs peuvent ajouter autant de nouvelles qu'ils le souhaitent. EN utilisant phpMyAdmin, vous pouvez le vérifier en affichant le contenu de la table '''''newsaddon_news'''''.&lt;br /&gt;
&lt;br /&gt;
Peut être souhaitez-vous restreindre la création des nouvelles uniquement à certains groupes d'Ovidentia au lieu de laisser l'ensemble des utilisateurs le faire. Dans ce cas il faut utiliser les ACL ( Access Control List ) pour donner le droit de création uniquement à certains groupes.&lt;br /&gt;
&lt;br /&gt;
'''Droits de création de nouvelle'''&lt;br /&gt;
&lt;br /&gt;
Tout d'abord nous allons créer une table dans la base de données pour stocker ces droits. En utilisant phpMyAdmin, créer la table en utilisant la requête suivante:&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE newsaddon_newsadd_groups (&lt;br /&gt;
    id int(11) unsigned NOT NULL auto_increment,&lt;br /&gt;
    id_object int(11) unsigned DEFAULT '0' NOT NULL,&lt;br /&gt;
    id_group int(11) unsigned DEFAULT '0' NOT NULL,&lt;br /&gt;
    PRIMARY KEY (id));&lt;br /&gt;
&lt;br /&gt;
où:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;'''Champ'''&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;'''Type'''&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;'''Null?'''&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;'''Notes'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| id&lt;br /&gt;
| Integer&lt;br /&gt;
| Non&lt;br /&gt;
| Primary key, Autoincrement&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| id_object&lt;br /&gt;
| Integer&lt;br /&gt;
| Non&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| id_group&lt;br /&gt;
| Integer&lt;br /&gt;
| Non&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Afin qu'Ovidentia puisse gérer les droits à votre place, il est nécessaire de respecter le noms des champs et de nommer votre table xxxx_groups.&lt;br /&gt;
&lt;br /&gt;
Le champ id_object sert à Ovidentia pour stocker l'ID de l'objet sur lequel vous souhaitez gérer des droits. Par exemple, ça peut être l'ID de toute donnée stockée dans la base de données.&lt;br /&gt;
&lt;br /&gt;
Les autres champs sont gérés complètement par Ovidentia.&lt;br /&gt;
&lt;br /&gt;
Dans notre cas, nous souhaitons gérer les droits sur la création des nouvelles. Ce n'est pas un objet de la base de données et nous n'avons donc pas d'ID. Pas de problème, nous allons définir un ID nous même pour cette fonctionnalité, par exemple 1000. Vous pouvez choisir un tout autre nombre.&lt;br /&gt;
&lt;br /&gt;
Editez le fichier admin.php et modifiez le comme ci-dessous:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;?php&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 require_once 'base.php';&lt;br /&gt;
 include_once $babInstallPath.&amp;quot;admin/acl.php&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;if( isset($_POST['updateaccess']))&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
 maclGroups();&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$babBody-&amp;gt;addError( bab_translate(&amp;quot;Update done&amp;quot;, $GLOBALS['babAddonFolder']));&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$macl = new macl($GLOBALS['babAddonTarget'].&amp;quot;/admin&amp;quot;, 'idx_value', 1000, 'updateaccess');&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$macl-&amp;gt;addtable( 'newsaddon_newsadd_groups',bab_translate(&amp;quot;Who can add news?&amp;quot;, $GLOBALS['babAddonFolder']));&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 $macl-&amp;gt;filter(0,0,1,1,1);&lt;br /&gt;
 $macl-&amp;gt;babecho();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La classe '''''macl''''' prend en charge, à la place de votre module, la gestion des droits de l'affichage, au choix des groupes jusqu'à l'enregistrement dans la base de données.&lt;br /&gt;
&lt;br /&gt;
A cette classe nous avons passé l'ID 1000 que nous avons choisi précédement et la variable ''''''updateaccess'''''' qui nous sera retournée dans le tableau $_POST une fois le formulaire des droits soumis.&lt;br /&gt;
&lt;br /&gt;
Pour de plus de détails sur l'utilisation des ACL consultez la rubrique [[Access Control List]]&lt;br /&gt;
&lt;br /&gt;
Maintenant que les droits sont octroyés pour la création des nouvelles, modifions le fichier user.php afin qu'il vérifie si l'utilisateur a ou non le droit de créer une nouvelle. Pour cela on affichera le menu « Ajouter » que si l'utilisateur a le droit d'ajouter une nouvelle:&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;if( isset($_POST['baddnews']))&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
 recordNews();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 if( bab_isAccessValid('newsaddon_newsadd_groups', 1000))&lt;br /&gt;
 {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$babBody-&amp;gt;title = bab_translate(&amp;quot;Add new&amp;quot;, $GLOBALS['babAddonFolder']);&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$babBody-&amp;gt;addItemMenu(&amp;quot;add&amp;quot;, bab_translate(&amp;quot;Add&amp;quot;, $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'].&amp;quot;user&amp;amp;idx=add&amp;quot;);&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 displayAddNewsForm();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
La fonction bab_isAccessValid() permet de vérifier les droits d'accès de l'utilisateur courant en utilisant une table des droits et l'ID d'un objet:&lt;br /&gt;
&lt;br /&gt;
  bab_isAccessValid($table, $ID)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Mais ce n'est pas suffisant, il faudrait que lors de l'enregistrement de la nouvelle dans la base de données, on vérifie que l'utilisateur qui a soumis le formulaire de création est un utilisateur autorisé. Modifiez la fonction recordNews() comme ceci:&lt;br /&gt;
&lt;br /&gt;
 function recordNews()&lt;br /&gt;
 {&lt;br /&gt;
 global $babBody, $babDB;&lt;br /&gt;
 if( bab_isAccessValid('newsaddon_newsadd_groups', 1000))&lt;br /&gt;
 {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;if( !empty($_POST['newstitle']) &amp;amp;&amp;amp; !empty($_POST['newsbody']) )&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 {&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;$babDB-&amp;gt;db_query(&amp;quot;insert into newsaddon_news (news_title, news_body, news_datetime, news_author) values ('&amp;quot;.$babDB-&amp;gt;db_escape_string($_POST['newstitle']).&amp;quot;','&amp;quot;.$babDB-&amp;gt;db_escape_string($_POST['newsbody']).&amp;quot;',now(),'&amp;quot;.$GLOBALS['BAB_SESS_USERID'].&amp;quot;')&amp;quot;);&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
 else&lt;br /&gt;
 {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$babBody-&amp;gt;addError(bab_translate(&amp;quot;All fields are required!&amp;quot;, $GLOBALS['babAddonFolder']));&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
 else&lt;br /&gt;
 {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;$babBody-&amp;gt;addError(bab_translate(&amp;quot;You don't have rights to add news!&amp;quot;, $GLOBALS['babAddonFolder']));&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Affichage de la liste des nouvelles ==&lt;br /&gt;
Afin d'afficher la liste des nouvelles, nous allons modifier le fichier user.php pour y intégrer une nouvelle entrée '''Liste''' au menu. Lorsque l'utilisateur clique sur le lien de la section '''Utilisateur''' on affichera la page contenant la liste des nouvelles et s'il est autorisé à créer des nouvelles, il aura une autre entrée dans le menu pour le faire.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
if( isset($_POST['baddnews']))&lt;br /&gt;
{&lt;br /&gt;
	recordNews();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$idx = bab_rp('idx', 'list');&lt;br /&gt;
&lt;br /&gt;
switch($idx)&lt;br /&gt;
{&lt;br /&gt;
	case 'add':&lt;br /&gt;
		$babBody-&amp;gt;addItemMenu(&amp;quot;list&amp;quot;, bab_translate(&amp;quot;List&amp;quot;, $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'].&amp;quot;user&amp;amp;idx=list&amp;quot;);&lt;br /&gt;
		if( bab_isAccessValid('newsaddon_newsadd_groups', 1000))&lt;br /&gt;
		{&lt;br /&gt;
		$babBody-&amp;gt;title = bab_translate(&amp;quot;Add new&amp;quot;, $GLOBALS['babAddonFolder']);&lt;br /&gt;
		$babBody-&amp;gt;addItemMenu(&amp;quot;add&amp;quot;, bab_translate(&amp;quot;Add&amp;quot;, $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'].&amp;quot;user&amp;amp;idx=add&amp;quot;);&lt;br /&gt;
		displayAddNewsForm();&lt;br /&gt;
		}&lt;br /&gt;
		break;&lt;br /&gt;
	case 'list':&lt;br /&gt;
	default:&lt;br /&gt;
		$babBody-&amp;gt;addItemMenu(&amp;quot;list&amp;quot;, bab_translate(&amp;quot;List&amp;quot;, $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'].&amp;quot;user&amp;amp;idx=list&amp;quot;);&lt;br /&gt;
		if( bab_isAccessValid('newsaddon_newsadd_groups', 1000))&lt;br /&gt;
		{&lt;br /&gt;
		$babBody-&amp;gt;addItemMenu(&amp;quot;add&amp;quot;, bab_translate(&amp;quot;Add&amp;quot;, $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'].&amp;quot;user&amp;amp;idx=add&amp;quot;);&lt;br /&gt;
		}&lt;br /&gt;
		break;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$babBody-&amp;gt;setCurrentItemMenu($idx);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fonction '''bab_rp()''' permet de récupérer les variables des tableaux $_GET et $_POST ( voir [[Règles de codage]] )&lt;br /&gt;
&lt;br /&gt;
En fonction de la valeur de la variable $idx on accède soit à la liste des nouvelles ('''''list''''') soit au formulaire de création d'une nouvelle ( '''''add''''' ).&lt;br /&gt;
&lt;br /&gt;
La fonction '''setCurrentItemMenu()''' permet de désactiver l'entrée courante du menu.&lt;br /&gt;
&lt;br /&gt;
'''Création du template de la liste'''&lt;br /&gt;
&lt;br /&gt;
Editez le fichier user.html et insérer à la fin le code HTML suivant:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!--#begin newslist --&amp;gt;&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=&amp;quot;95%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tbody&amp;gt;&amp;lt;tr&amp;gt; &lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot; valign=&amp;quot;middle&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tbody&amp;gt;&amp;lt;tr&amp;gt; &lt;br /&gt;
&amp;lt;td class=&amp;quot;BabSiteAdminTitleFontBackground&amp;quot; nowrap=&amp;quot;nowrap&amp;quot; valign=&amp;quot;middle&amp;quot; width=&amp;quot;30%&amp;quot;&amp;gt;{ titlelabel }&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;BabSiteAdminTitleFontBackground&amp;quot; valign=&amp;quot;middle&amp;quot;&amp;gt;{ bodylabel }&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &lt;br /&gt;
&amp;lt;td nowrap=&amp;quot;nowrap&amp;quot; valign=&amp;quot;middle&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;middle&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/tbody&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/tbody&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;!--#end newslist --&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Affichage de la liste'''&lt;br /&gt;
&lt;br /&gt;
Et modifiez le fichier '''user.php''' pour inclure la fonction qui affiche ce template:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	...&lt;br /&gt;
	case 'list':&lt;br /&gt;
	default:&lt;br /&gt;
		$babBody-&amp;gt;addItemMenu(&amp;quot;list&amp;quot;, bab_translate(&amp;quot;List&amp;quot;, $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'].&amp;quot;user&amp;amp;idx=list&amp;quot;);&lt;br /&gt;
		displayListNews();&lt;br /&gt;
		if( bab_isAccessValid('newsaddon_newsadd_groups', 1000))&lt;br /&gt;
	...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et ajouter l'implémentation de la fonction '''displayListNews()''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function displayListNews()&lt;br /&gt;
{&lt;br /&gt;
	global $babBody;&lt;br /&gt;
	class displayListNewsFormClass &lt;br /&gt;
	{&lt;br /&gt;
		function displayListNewsFormClass()&lt;br /&gt;
		{&lt;br /&gt;
		$this-&amp;gt;bodylabel = bab_translate(&amp;quot;Body&amp;quot;, $GLOBALS['babAddonFolder']);&lt;br /&gt;
		$this-&amp;gt;titlelabel = bab_translate(&amp;quot;Title&amp;quot;, $GLOBALS['babAddonFolder']);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	$obj= new displayListNewsFormClass();&lt;br /&gt;
	$babBody-&amp;gt;babecho( bab_printTemplate($obj,$GLOBALS['babAddonHtmlPath'].&amp;quot;user.html&amp;quot;, &amp;quot;newslist&amp;quot;));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous testez votre module, vous remarquez que pour le moment on affiche un tableau vide. Pour afficher la liste des nouvelles il faut interroger la base de données pour avoir la liste et les afficher en utilisant le template. C'est ce que nous allons faire.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on va récupérer la liste des nouvelles de la base de données. &lt;br /&gt;
Modifier la fonction '''displayListNewsForm()''' comme suit:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function displayListNews()&lt;br /&gt;
{&lt;br /&gt;
	global $babBody;&lt;br /&gt;
	class displayListNewsFormClass &lt;br /&gt;
	{&lt;br /&gt;
		function displayListNewsFormClass()&lt;br /&gt;
		{&lt;br /&gt;
		global $babDB;&lt;br /&gt;
		$this-&amp;gt;bodylabel = bab_translate(&amp;quot;Body&amp;quot;, $GLOBALS['babAddonFolder']);&lt;br /&gt;
		$this-&amp;gt;titlelabel = bab_translate(&amp;quot;Title&amp;quot;, $GLOBALS['babAddonFolder']);&lt;br /&gt;
&lt;br /&gt;
		$this-&amp;gt;res = $babDB-&amp;gt;db_query(&amp;quot;select * from newsaddon_news&amp;quot;);&lt;br /&gt;
		$this-&amp;gt;count = $babDB-&amp;gt;db_num_rows($this-&amp;gt;res);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function nextrow()&lt;br /&gt;
		{&lt;br /&gt;
		global $babDB;&lt;br /&gt;
		static $k=0;&lt;br /&gt;
		if( $k &amp;lt; $this-&amp;gt;count)&lt;br /&gt;
		{&lt;br /&gt;
			$arr = $babDB-&amp;gt;db_fetch_array($this-&amp;gt;res);&lt;br /&gt;
			$this-&amp;gt;newstitle = $arr['news_title'];&lt;br /&gt;
			$this-&amp;gt;newsbody = $arr['news_body'];&lt;br /&gt;
			$k++;&lt;br /&gt;
			return true;&lt;br /&gt;
		}&lt;br /&gt;
		else&lt;br /&gt;
		{&lt;br /&gt;
			return false;&lt;br /&gt;
		}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	$obj= new displayListNewsFormClass();&lt;br /&gt;
	$babBody-&amp;gt;babecho( bab_printTemplate($obj,$GLOBALS['babAddonHtmlPath'].&amp;quot;user.html&amp;quot;, &amp;quot;newslist&amp;quot;));&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et le template ainsi:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!--#begin newslist --&amp;gt;&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=&amp;quot;95%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tbody&amp;gt;&amp;lt;tr&amp;gt; &lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot; valign=&amp;quot;middle&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tbody&amp;gt;&amp;lt;tr&amp;gt; &lt;br /&gt;
&amp;lt;td class=&amp;quot;BabSiteAdminTitleFontBackground&amp;quot; nowrap=&amp;quot;nowrap&amp;quot; valign=&amp;quot;middle&amp;quot; width=&amp;quot;30%&amp;quot;&amp;gt;{ titlelabel }&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;BabSiteAdminTitleFontBackground&amp;quot; valign=&amp;quot;middle&amp;quot;&amp;gt;{ bodylabel }&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;!--#in nextrow --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &lt;br /&gt;
&amp;lt;td nowrap=&amp;quot;nowrap&amp;quot; valign=&amp;quot;middle&amp;quot;&amp;gt;{ newstitle }&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;middle&amp;quot;&amp;gt;{ newsbody }&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;!--#endin nextrow --&amp;gt;&lt;br /&gt;
&amp;lt;/tbody&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/tbody&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;!--#end newslist --&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous remarquez que pour afficher les nouvelles, on fait appel, dans le template, à la forme:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!--#in nextrow --&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;!--#endin nextrow --&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le moteur de template d'Ovidentia fait appel à la fonction '''nextrow()''' définie dans la classe et affiche ce qu'il y'a entre ces deux tags tant que cette fonction retourne ''true''. La fonction '''nextrow()''' à son tour parcoure le résultat de la requête SQL et initialise les variables.&lt;br /&gt;
&lt;br /&gt;
Enregistrer les modifications et tester le module. &lt;br /&gt;
&lt;br /&gt;
Maintenant qu'on a affiché la liste des nouvelles, on va modifier l'affichage afin d'utiliser une couleur de fond pour alterner les nouvelles.&lt;br /&gt;
Pour cela, éditez d'abord le fichier des templates '''user.html''' et modifiez le comme suit:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!--#begin newslist --&amp;gt;&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=&amp;quot;95%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tbody&amp;gt;&amp;lt;tr&amp;gt; &lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot; valign=&amp;quot;middle&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tbody&amp;gt;&amp;lt;tr&amp;gt; &lt;br /&gt;
&amp;lt;td class=&amp;quot;BabSiteAdminTitleFontBackground&amp;quot; nowrap=&amp;quot;nowrap&amp;quot; valign=&amp;quot;middle&amp;quot; width=&amp;quot;30%&amp;quot;&amp;gt;{ titlelabel }&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td class=&amp;quot;BabSiteAdminTitleFontBackground&amp;quot; valign=&amp;quot;middle&amp;quot;&amp;gt;{ bodylabel }&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;!--#in nextrow --&amp;gt;&lt;br /&gt;
&amp;lt;!--#if bred --&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--#else bred --&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;!--#endif bred --&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;td nowrap=&amp;quot;nowrap&amp;quot; valign=&amp;quot;middle&amp;quot;&amp;gt;{ newstitle }&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;middle&amp;quot;&amp;gt;{ newsbody }&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;!--#endin nextrow --&amp;gt;&lt;br /&gt;
&amp;lt;/tbody&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/tbody&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;!--#end newslist --&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La structure :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!--#if bred --&amp;gt;&lt;br /&gt;
	...&lt;br /&gt;
&amp;lt;!--#else bred --&amp;gt;&lt;br /&gt;
	...&lt;br /&gt;
&amp;lt;!--#endif bred --&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
permet d'afficher une partie de template selon la valeur d'une variable, ici '''bred'''.&lt;br /&gt;
Cette variable doit être initialisée dans le contructeur à '''''true''''' et doit changer d'état à chaque affichage d'une nouvelle:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	...// dans le constructeur&lt;br /&gt;
	$this-&amp;gt;bred = true;&lt;br /&gt;
	...&lt;br /&gt;
	...&lt;br /&gt;
	&lt;br /&gt;
	// dans la fonction nextrow()&lt;br /&gt;
	$this-&amp;gt;bred = !$this-&amp;gt;bred;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Utilisation des schémas d'approbation==&lt;br /&gt;
[EN COURS DE REDACTION]&lt;br /&gt;
&lt;br /&gt;
==Utilisation de l'OVML==&lt;br /&gt;
[EN COURS DE REDACTION]&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=Accueil&amp;diff=3208</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=Accueil&amp;diff=3208"/>
				<updated>2008-03-06T15:18:11Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Image:icon-addon-dev.jpg Développer un module Ovidentia */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Contribuer au Wiki de développement Ovidentia==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=0 cellspacing=5 width=&amp;quot;100%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bienvenue sur le Wiki dédié au développement d'OVIDENTIA&lt;br /&gt;
&lt;br /&gt;
Pour télécharger des documentations utilisateur et administrateur pour OVIDENTIA, vous pouvez utiliser le site communautaire [http://www.ovidentia.org/ Ovidentia.org]. Ce wiki, quant à lui contient une introduction au développement des modules ainsi que diverses documentations sur les nouvelles interfaces de programmation disponibles dans les versions actuelles et futures d'OVIDENTIA.&lt;br /&gt;
&lt;br /&gt;
Avant de contribuer, vous pouvez vous familiariser avec les [[Règles d'usage du wiki|règles d'usage du wiki]].&lt;br /&gt;
&lt;br /&gt;
Le développement d'OVIDENTIA est initié et géré par [http://www.cantico.fr Cantico] ([http://wiki.cantico.fr/ wiki privé])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;border: 1px solid lightgray;padding-left:1em;padding-right:0.5em;padding-bottom:0.5em;&amp;quot; width=&amp;quot;50%&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
===[[Image:icon-addon-dev.jpg]] Développer un module Ovidentia===&lt;br /&gt;
&lt;br /&gt;
* [[Développement de modules|Introduction]]&lt;br /&gt;
* [[Addon tutorial|Tutorial]]&lt;br /&gt;
* [[:Catégorie:Développement de modules|Tous les articles]]&lt;br /&gt;
* [http://www.ovidentia.org/?tg=articles&amp;amp;topics=56 Autres types de contributions]&lt;br /&gt;
&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|style=&amp;quot;border: 1px solid lightgray;padding-left:1em;padding-right:0.5em;&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
[[Image:Roadmap.jpg]] [[Feuille de route]] (Roadmap)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Développement ==&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=0 cellspacing=5 width=&amp;quot;100%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|style=&amp;quot;border: 1px solid gray;padding-left:1em;padding-right:0.5em;background:#E8F1FF;padding-bottom:0.5em;&amp;quot; width=&amp;quot;50%&amp;quot;|&lt;br /&gt;
=== Règles de développement ===&lt;br /&gt;
* [[Règles de codage]]&lt;br /&gt;
* [[Sécurité]]&lt;br /&gt;
* [[Utilisation de Mantis]]&lt;br /&gt;
* [[Utilisation de CVS]] et gestion des versions&lt;br /&gt;
* [[Développement d'un programme de mise à jour]]&lt;br /&gt;
* [[Créer une archive de version]]&lt;br /&gt;
* [[Gettext]] : instruction d'utilisation pour les modules&lt;br /&gt;
* [[Implémentation de containers OVML dans un module]]&lt;br /&gt;
* [[Internationalisation]] : Améliorations de la gestion de l'internationalisation dans Ovidentia&lt;br /&gt;
* [[Accessibilité]]&lt;br /&gt;
* [[Développement d'une nouvelle fonctionnalité]]&lt;br /&gt;
&lt;br /&gt;
=== Documentation des API ===&lt;br /&gt;
* [[API noyau/module]]&lt;br /&gt;
* [[Nouveau moteur de templates]]&lt;br /&gt;
* [[API des agendas]]&lt;br /&gt;
* [[Access Control List]], Droits d'accès&lt;br /&gt;
* [[Base de registre]]&lt;br /&gt;
* [[API de sélection d'utilisateurs]]&lt;br /&gt;
* [[API du gestionnaire de fichier]]&lt;br /&gt;
* [[API du gestionnaire d'événement]]&lt;br /&gt;
* [[API editeur]]&lt;br /&gt;
* [[API Addon - OVML]]&lt;br /&gt;
* [[Indexation]]&lt;br /&gt;
&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#E8F1FF&amp;quot; style=&amp;quot;border-style:solid;border-width:1px;border-color:gray;padding-left:1em;padding-right:0.5em; padding-bottom:0.5em;&amp;quot; width=&amp;quot;50%&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
=== Outils de développements ===&lt;br /&gt;
&lt;br /&gt;
* [[Clients CVS]]&lt;br /&gt;
* [[Eclipse]]&lt;br /&gt;
&lt;br /&gt;
=== Technologies à l'étude ===&lt;br /&gt;
&lt;br /&gt;
* [[WebDAV]]&lt;br /&gt;
* [[Plugins OpenSearch]]&lt;br /&gt;
* [[Communication entre les modules]]&lt;br /&gt;
* [[Les microformats]]&lt;br /&gt;
* [[Le standard UWA de Netvibes]]&lt;br /&gt;
&lt;br /&gt;
=== Propositions d'améliorations ===&lt;br /&gt;
&lt;br /&gt;
* [[Gestionnaire de fichiers]]&lt;br /&gt;
* [[Propositions pour Ovidentia 7]]&lt;br /&gt;
* [[OVML]]&lt;br /&gt;
* [[Gestion des skins]]&lt;br /&gt;
* [[Authentification par identifiant NT]]&lt;br /&gt;
* [[Refactorisation du noyau]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Utilisation du wiki ==&lt;br /&gt;
&lt;br /&gt;
Consultez le [http://meta.wikimedia.org/wiki/Aide:Contenu Guide de l'utilisateur] pour plus d'information sur l'utilisation d'un wiki.&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=API_noyau/module&amp;diff=3175</id>
		<title>API noyau/module</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=API_noyau/module&amp;diff=3175"/>
				<updated>2008-02-26T17:03:50Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* bab_detachUserFromGroup() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Cette partie contient l'ensemble des fonctions mises à la disposition des modules par le noyau.&lt;br /&gt;
Ces fonctions se trouvent dans le fichier addonappi.php qui se trouve dans le répertoire '''&amp;quot;utilit&amp;quot;''' de la distribution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API date/temps ==&lt;br /&gt;
===bab_time()===&lt;br /&gt;
Retourne une chaîne contenant la date/heure formatée selon les préférences de l'utilisateur&lt;br /&gt;
:'''function bab_time($time)'''&lt;br /&gt;
&lt;br /&gt;
* '''$time''' :&lt;br /&gt;
*: Time stamp unix&lt;br /&gt;
&lt;br /&gt;
===bab_mktime()===&lt;br /&gt;
Retourne un time stamp à partir d'une date MySQL ( DATETIME : '2006-03-10 17:37:02')&lt;br /&gt;
:'''function bab_mktime($time)'''&lt;br /&gt;
&lt;br /&gt;
* '''$time''' :&lt;br /&gt;
*: Date au format de DATETIME de MySQL ( par ex: 2006-03-10 17:37:02 )&lt;br /&gt;
&lt;br /&gt;
===bab_formatDate()===&lt;br /&gt;
Retourne une chaîne contenant la date/heure formatée selon le format spécifié&lt;br /&gt;
:'''function bab_formatDate($format, $time)'''&lt;br /&gt;
&lt;br /&gt;
* '''$format''' :&lt;br /&gt;
*: Format désiré. Par exemple '%'&lt;br /&gt;
*: %d   Une représentation courte du jour ( sur trois caractères )&lt;br /&gt;
*: %D   Jour&lt;br /&gt;
*: %j   Jour du mois ( padding avec zéros )&lt;br /&gt;
*: %m   Une représentation courte du mois ( sur trois caractères )&lt;br /&gt;
*: %M   Mois&lt;br /&gt;
*: %n   Une représentation numérique courte du mois ( sur trois caractères )&lt;br /&gt;
*: %Y   Représentation numérique de l'année, 4 caractères&lt;br /&gt;
*: %y   Année sur deux carcatères&lt;br /&gt;
*: %H   Heure au format 24 heures ( padding avec zéros )&lt;br /&gt;
*: %i   Minutes ( padding avec zéros ) &lt;br /&gt;
*: %S   Format de la date courte préférée de l'utilisateur&lt;br /&gt;
*: %L   Format de la date longue préférée de l'utilisateur&lt;br /&gt;
*: %T   Format du temps préféré de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
* '''$time''' :&lt;br /&gt;
*: Time stamp unix&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===bab_longDate()===&lt;br /&gt;
Retourne une chaîne contenant la date/heure dans un format long&lt;br /&gt;
:'''function bab_longDate($time, $hour=true)'''&lt;br /&gt;
* '''$time''' :&lt;br /&gt;
*: Time stamp unix&lt;br /&gt;
:'''function bab_longDate($time, $hour=true)'''&lt;br /&gt;
* '''$hour''' :&lt;br /&gt;
*: Si true la fonctionne retourne l'heure aussi sinon uniquement la date&lt;br /&gt;
&lt;br /&gt;
===bab_shortDate()===&lt;br /&gt;
Retourne une chaîne contenant la date/heure dans un format court&lt;br /&gt;
:'''function bab_shortDate($time, $hour=true)'''&lt;br /&gt;
* '''$time''' :&lt;br /&gt;
*: Time stamp unix&lt;br /&gt;
:'''function bab_longDate($time, $hour=true)'''&lt;br /&gt;
* '''$hour''' :&lt;br /&gt;
*: Si true la fonctionne retourne l'heure aussi sinon uniquement la date&lt;br /&gt;
&lt;br /&gt;
== API Navigateur ==&lt;br /&gt;
===bab_browserOS()===&lt;br /&gt;
Retourne le système d'exploitation ( windows, macos, linux ou chaîne vide si autre )&lt;br /&gt;
:'''function bab_browserOS()'''&lt;br /&gt;
===bab_browserAgent()===&lt;br /&gt;
Retourne le type de navigateur ( konqueror, opera, msie, nn6, nn4 ou chaîne vide si autre )&lt;br /&gt;
:'''function bab_browserAgent()'''&lt;br /&gt;
===bab_browserVersion()===&lt;br /&gt;
Retourne la version du navigateur&lt;br /&gt;
:'''function bab_browserVersion()'''&lt;br /&gt;
&lt;br /&gt;
== API Traduction ==&lt;br /&gt;
===bab_translate()===&lt;br /&gt;
Permet de traduire une chaîne&lt;br /&gt;
:'''function bab_translate($str, $folder = &amp;quot;&amp;quot;, $lang=&amp;quot;&amp;quot;)'''&lt;br /&gt;
* '''$str''' :&lt;br /&gt;
*: Contient la chaîne à traduire&lt;br /&gt;
* '''$folder''' :&lt;br /&gt;
*: Sous répertoire du répertoire lang ( pour les modules )&lt;br /&gt;
* '''$lang''' :&lt;br /&gt;
*: Vers quelle langue il faut faire la traduction. Si vide le système utilise la langue courante&lt;br /&gt;
&lt;br /&gt;
===bab_getAvailableLanguages()===&lt;br /&gt;
Retourne un tableau contenant les différentes langues disponibles&lt;br /&gt;
:'''function bab_getAvailableLanguages()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Utilisateur ==&lt;br /&gt;
===bab_isUserAdministrator()===&lt;br /&gt;
Retourne '''true''' si l'utilisateur est administrateur. Sinon '''false'''&lt;br /&gt;
:'''function bab_isUserAdministrator()'''&lt;br /&gt;
===bab_isUserGroupManager()===&lt;br /&gt;
Retourne '''true''' si l'utilisateur est gestionnaire du groupe d'id $grpid. Sinon '''false'''&lt;br /&gt;
:'''function bab_isUserGroupManager($grpid=&amp;quot;&amp;quot;)'''&lt;br /&gt;
* '''$grpid''' :&lt;br /&gt;
*: ID du groupe pour lequel on souhaite savoir si l'utilisateur est gestionnaire. Si vide la fonction retiourne '''true''' si l'utilisateur est gestionnaire d'au moins un groupe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===bab_getUserName()===&lt;br /&gt;
Retourne le nom complet de l'utilisateur d'ID $id.Sinon une chaîne vide.&lt;br /&gt;
:'''function bab_getUserName($id)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getUserEmail()===&lt;br /&gt;
Retourne l'adresse email de l'utilisateur d'ID $id.Sinon une chaîne vide.&lt;br /&gt;
:'''function bab_getUserEmail($id)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getUserNickname()===&lt;br /&gt;
Retourne l'identifiant de l'utilisateur d'ID $id.Sinon une chaîne vide.&lt;br /&gt;
:'''function bab_getUserNickname($id)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getGroupsMembers()===&lt;br /&gt;
Retourne un tableau contenant les utilisateurs membres du ou des groupes $ids.&lt;br /&gt;
*Le tableau contient pour chaque utilisateur son ID ( &amp;quot;id&amp;quot; ), son email (&amp;quot;email&amp;quot;) et son nom complet (&amp;quot;name&amp;quot;)&lt;br /&gt;
:'''function bab_getGroupsMembers($ids)'''&lt;br /&gt;
* '''$ids''' :&lt;br /&gt;
*: ID du groupe ou un tableau d'id de groupes&lt;br /&gt;
&lt;br /&gt;
===bab_isMemberOfGroup()===&lt;br /&gt;
Vérifie si l'utilisateur est l'utilisateur courant ou l'utilisateur d'ID $userid est membre du groupe $group.&lt;br /&gt;
:'''function bab_isMemberOfGroup($group, $userid=&amp;quot;&amp;quot;)'''&lt;br /&gt;
* '''$group''' :&lt;br /&gt;
*: ID du groupe ou chaîne contenant le nom du groupe&lt;br /&gt;
* '''$userid''' :&lt;br /&gt;
*: ID de l'utilisateur. Si vide le système utilise l'ID de l'utilisateur courant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===bab_getUserIdByEmail()===&lt;br /&gt;
Retourne l'ID de l'utilisateur à partir de son adresse email. Retourne 0 si aucun utilisateur&lt;br /&gt;
:'''function bab_getUserIdByEmail($email)'''&lt;br /&gt;
* '''$email''' :&lt;br /&gt;
*: Adresse email de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getUserIdByNickname()===&lt;br /&gt;
Retourne l'ID de l'utilisateur à partir de son identifiant. Retourne 0 si aucun utilisateur&lt;br /&gt;
:'''function bab_getUserIdByNickname($nickname)'''&lt;br /&gt;
* '''$nickname''' :&lt;br /&gt;
*: Identifiant de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getUserId()===&lt;br /&gt;
Retourn l'ID de l'utilisateur à partir de son nom. Sinon 0.&lt;br /&gt;
:'''function bab_getUserId( $name )'''&lt;br /&gt;
* '''$name''' :&lt;br /&gt;
*: Nom de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getUserGroups()===&lt;br /&gt;
Retourne un tableau contenant les ID et les noms des groupes auxquels l'utilisateur appartient.&lt;br /&gt;
:'''function bab_getUserGroups($id = &amp;quot;&amp;quot;)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID de l'utilisateur. Si vide le système utilise celui de l'utilisateur courant&lt;br /&gt;
&lt;br /&gt;
===bab_composeUserName()===&lt;br /&gt;
Retourne une chaîne contenant le nom complet de l'utilisateur selon les préférences du site ( nom/prénom ou prénom/nom )&lt;br /&gt;
:'''function bab_composeUserName( $F, $L)'''&lt;br /&gt;
* '''$F''' :&lt;br /&gt;
*: Prénom de l'utilisateur&lt;br /&gt;
* '''$L''' :&lt;br /&gt;
*: Nom de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_userIsloggedin()===&lt;br /&gt;
Retourne '''true''' si l'utilisateur courant est authentifié. Sinon elle retourne '''false'''&lt;br /&gt;
:'''function bab_userIsloggedin()'''&lt;br /&gt;
&lt;br /&gt;
===bab_registerUser()===&lt;br /&gt;
Permet d'inscrire un utilisateur dans le portail.&lt;br /&gt;
Retourne l'ID de l'utilisateur inscrit. Sinon '''false'''.&lt;br /&gt;
:'''function bab_registerUser($firstname, $lastname, $middlename, $email, $nickname, $password1, $password2, $confirmed, &amp;amp;$error, $bgroup = true)'''&lt;br /&gt;
* '''$firstname''' :&lt;br /&gt;
*: Prénom de l'utilisateur à inscrire&lt;br /&gt;
* '''$lastname''' :&lt;br /&gt;
*: Nom de l'utilisateur à inscrire&lt;br /&gt;
* '''$middlename''' :&lt;br /&gt;
*: Deuxième prénom de l'utilisateur à inscrire&lt;br /&gt;
* '''$email''' :&lt;br /&gt;
*: Adresse email de l'utilisateur à inscrire&lt;br /&gt;
* '''$nickname''' :&lt;br /&gt;
*: Identifiant de l'utilisateur à inscrire&lt;br /&gt;
* '''$password1''' :&lt;br /&gt;
*: Mot de passe de l'utilisateur à inscrire&lt;br /&gt;
* '''$password2''' :&lt;br /&gt;
*: De nouveau le même mot de passe de l'utilisateur à inscrire&lt;br /&gt;
* '''$confirmed''' :&lt;br /&gt;
*: '''true''' si l'inscription de l'utilisateur sera confirmée. Sinon '''false'''&lt;br /&gt;
* '''$error''' :&lt;br /&gt;
*: Variable passée par référence. Si l'inscription échoue, elle sera initialisée avec le message d'erreur&lt;br /&gt;
&lt;br /&gt;
===bab_attachUserToGroup()===&lt;br /&gt;
Affecte un utilisateur à un groupe&lt;br /&gt;
:'''function bab_attachUserToGroup($iduser, $idgroup)'''&lt;br /&gt;
* '''$iduser''' :&lt;br /&gt;
*: ID de l'utilisateur à affecter au groupe&lt;br /&gt;
* '''$idgroup''' :&lt;br /&gt;
*: ID du groupe&lt;br /&gt;
&lt;br /&gt;
===bab_detachUserFromGroup()===&lt;br /&gt;
Détache un utilisateur d'un groupe. C'est à dire qu'il ne sera plus membre de ce groupe.&lt;br /&gt;
:'''function bab_detachUserFromGroup($iduser, $idgroup)'''&lt;br /&gt;
* '''$iduser''' :&lt;br /&gt;
*: ID de l'utilisateur a enlever du groupe&lt;br /&gt;
* '''$idgroup''' :&lt;br /&gt;
*: ID du groupe&lt;br /&gt;
&lt;br /&gt;
===bab_getUserInfos()===&lt;br /&gt;
:'''function bab_getUserInfos($id_user)'''&lt;br /&gt;
===bab_updateUserById()===&lt;br /&gt;
:'''function bab_updateUserById($id, $info, &amp;amp;$error)'''&lt;br /&gt;
===bab_uppdateUserById()===&lt;br /&gt;
:'''function bab_uppdateUserById($id, $info, &amp;amp;$error)'''&lt;br /&gt;
===bab_updateUserByNickname()===&lt;br /&gt;
:'''function bab_updateUserByNickname($nickname, $info, &amp;amp;$error)'''&lt;br /&gt;
&lt;br /&gt;
== API ACL ==&lt;br /&gt;
===bab_isAccessValidByUser()===&lt;br /&gt;
:'''function bab_isAccessValidByUser($table, $idobject, $iduser)'''&lt;br /&gt;
===bab_isAccessValid()===&lt;br /&gt;
:'''function bab_isAccessValid($table, $idobject, $iduser='')'''&lt;br /&gt;
===bab_getUserIdObjects()===&lt;br /&gt;
:'''function bab_getUserIdObjects($table)'''&lt;br /&gt;
===bab_getUsersAccess()===&lt;br /&gt;
:'''function bab_getUsersAccess($table)'''&lt;br /&gt;
===bab_getGroupsAccess()===&lt;br /&gt;
:'''function bab_getGroupsAccess($table, $idobject)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Calendrier popup ==&lt;br /&gt;
===bab_calendarPopup()===&lt;br /&gt;
:'''function bab_calendarPopup($callback, $month=&amp;quot;&amp;quot;, $year=&amp;quot;&amp;quot;, $low=&amp;quot;&amp;quot;, $high=&amp;quot;&amp;quot;)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Création des répertoires ==&lt;br /&gt;
===bab_mkdir()===&lt;br /&gt;
:'''function bab_mkdir($path, $mode='')'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API templates/OVML ==&lt;br /&gt;
===bab_printTemplate()===&lt;br /&gt;
:'''function bab_printTemplate( &amp;amp;$class, $file, $section=&amp;quot;&amp;quot;)'''&lt;br /&gt;
===bab_printOvmlTemplate()===&lt;br /&gt;
:'''function bab_printOvmlTemplate($file, $args=array())'''&lt;br /&gt;
===bab_abbr()===&lt;br /&gt;
:'''function bab_abbr($text, $type, $max_length)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API fichiers ==&lt;br /&gt;
===bab_getFileMimeType()===&lt;br /&gt;
:'''function bab_getFileMimeType($file)'''&lt;br /&gt;
===bab_getFileContentDisposition()===&lt;br /&gt;
:'''function bab_getFileContentDisposition()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Annuaires ==&lt;br /&gt;
===bab_getUserDirFields()===&lt;br /&gt;
:'''function bab_getUserDirFields($id = false)'''&lt;br /&gt;
===bab_getDirEntry()===&lt;br /&gt;
:'''function bab_getDirEntry($id = false, $type = BAB_DIR_ENTRY_ID_USER, $id_directory = NULL )'''&lt;br /&gt;
===bab_getUserDirectories()===&lt;br /&gt;
:'''function bab_getUserDirectories()'''&lt;br /&gt;
===bab_getUserDirEntryLink()===&lt;br /&gt;
:'''function bab_getUserDirEntryLink($id = false, $type = BAB_DIR_ENTRY_ID_USER, $id_directory = false)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Groupes ==&lt;br /&gt;
===bab_getGroupName()===&lt;br /&gt;
:'''function bab_getGroupName($id, $fpn=true)'''&lt;br /&gt;
===bab_getGroups()===&lt;br /&gt;
:'''function bab_getGroups($parent=BAB_REGISTERED_GROUP, $all=true)'''&lt;br /&gt;
===bab_createGroup()===&lt;br /&gt;
:'''function bab_createGroup( $name, $description, $managerid, $parent = 1)'''&lt;br /&gt;
===bab_updateGroup()===&lt;br /&gt;
:'''function bab_updateGroup( $id, $name, $description, $managerid)'''&lt;br /&gt;
===bab_removeGroup()===&lt;br /&gt;
:'''function bab_removeGroup($id)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Debug ==&lt;br /&gt;
===bab_debug()===&lt;br /&gt;
:'''function bab_debug($data, $severity = DBG_TRACE)'''&lt;br /&gt;
===bab_getDebug()===&lt;br /&gt;
:'''function bab_getDebug()'''&lt;br /&gt;
===bab_toHtml()===&lt;br /&gt;
:'''function bab_toHtml($str, $option = BAB_HTML_ENTITIES)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Moteur d'indexation ==&lt;br /&gt;
===bab_searchEngineInfos()===&lt;br /&gt;
:'''function bab_searchEngineInfos()'''&lt;br /&gt;
&lt;br /&gt;
== API Registry ==&lt;br /&gt;
===bab_getRegistryInstance()===&lt;br /&gt;
:'''function bab_getRegistryInstance()'''&lt;br /&gt;
&lt;br /&gt;
Documentation [[Base de registre]]&lt;br /&gt;
&lt;br /&gt;
== API GET/POST ==&lt;br /&gt;
===bab_rp()===&lt;br /&gt;
:'''function bab_rp($name, $default = &amp;quot;&amp;quot;)'''&lt;br /&gt;
===bab_pp()===&lt;br /&gt;
:'''function bab_pp($name, $default = &amp;quot;&amp;quot;)'''&lt;br /&gt;
===bab_gp()===&lt;br /&gt;
:'''function bab_gp($name, $default = &amp;quot;&amp;quot;)'''&lt;br /&gt;
&lt;br /&gt;
== API Divers ==&lt;br /&gt;
===bab_locale()===&lt;br /&gt;
:'''function bab_locale()'''&lt;br /&gt;
===bab_isMagicQuotesGpcOn()===&lt;br /&gt;
:'''function bab_isMagicQuotesGpcOn()'''&lt;br /&gt;
===bab_getActiveSessions()===&lt;br /&gt;
:'''function bab_getActiveSessions()'''&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=API_noyau/module&amp;diff=3174</id>
		<title>API noyau/module</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=API_noyau/module&amp;diff=3174"/>
				<updated>2008-02-26T17:01:44Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* bab_attachUserToGroup() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Cette partie contient l'ensemble des fonctions mises à la disposition des modules par le noyau.&lt;br /&gt;
Ces fonctions se trouvent dans le fichier addonappi.php qui se trouve dans le répertoire '''&amp;quot;utilit&amp;quot;''' de la distribution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API date/temps ==&lt;br /&gt;
===bab_time()===&lt;br /&gt;
Retourne une chaîne contenant la date/heure formatée selon les préférences de l'utilisateur&lt;br /&gt;
:'''function bab_time($time)'''&lt;br /&gt;
&lt;br /&gt;
* '''$time''' :&lt;br /&gt;
*: Time stamp unix&lt;br /&gt;
&lt;br /&gt;
===bab_mktime()===&lt;br /&gt;
Retourne un time stamp à partir d'une date MySQL ( DATETIME : '2006-03-10 17:37:02')&lt;br /&gt;
:'''function bab_mktime($time)'''&lt;br /&gt;
&lt;br /&gt;
* '''$time''' :&lt;br /&gt;
*: Date au format de DATETIME de MySQL ( par ex: 2006-03-10 17:37:02 )&lt;br /&gt;
&lt;br /&gt;
===bab_formatDate()===&lt;br /&gt;
Retourne une chaîne contenant la date/heure formatée selon le format spécifié&lt;br /&gt;
:'''function bab_formatDate($format, $time)'''&lt;br /&gt;
&lt;br /&gt;
* '''$format''' :&lt;br /&gt;
*: Format désiré. Par exemple '%'&lt;br /&gt;
*: %d   Une représentation courte du jour ( sur trois caractères )&lt;br /&gt;
*: %D   Jour&lt;br /&gt;
*: %j   Jour du mois ( padding avec zéros )&lt;br /&gt;
*: %m   Une représentation courte du mois ( sur trois caractères )&lt;br /&gt;
*: %M   Mois&lt;br /&gt;
*: %n   Une représentation numérique courte du mois ( sur trois caractères )&lt;br /&gt;
*: %Y   Représentation numérique de l'année, 4 caractères&lt;br /&gt;
*: %y   Année sur deux carcatères&lt;br /&gt;
*: %H   Heure au format 24 heures ( padding avec zéros )&lt;br /&gt;
*: %i   Minutes ( padding avec zéros ) &lt;br /&gt;
*: %S   Format de la date courte préférée de l'utilisateur&lt;br /&gt;
*: %L   Format de la date longue préférée de l'utilisateur&lt;br /&gt;
*: %T   Format du temps préféré de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
* '''$time''' :&lt;br /&gt;
*: Time stamp unix&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===bab_longDate()===&lt;br /&gt;
Retourne une chaîne contenant la date/heure dans un format long&lt;br /&gt;
:'''function bab_longDate($time, $hour=true)'''&lt;br /&gt;
* '''$time''' :&lt;br /&gt;
*: Time stamp unix&lt;br /&gt;
:'''function bab_longDate($time, $hour=true)'''&lt;br /&gt;
* '''$hour''' :&lt;br /&gt;
*: Si true la fonctionne retourne l'heure aussi sinon uniquement la date&lt;br /&gt;
&lt;br /&gt;
===bab_shortDate()===&lt;br /&gt;
Retourne une chaîne contenant la date/heure dans un format court&lt;br /&gt;
:'''function bab_shortDate($time, $hour=true)'''&lt;br /&gt;
* '''$time''' :&lt;br /&gt;
*: Time stamp unix&lt;br /&gt;
:'''function bab_longDate($time, $hour=true)'''&lt;br /&gt;
* '''$hour''' :&lt;br /&gt;
*: Si true la fonctionne retourne l'heure aussi sinon uniquement la date&lt;br /&gt;
&lt;br /&gt;
== API Navigateur ==&lt;br /&gt;
===bab_browserOS()===&lt;br /&gt;
Retourne le système d'exploitation ( windows, macos, linux ou chaîne vide si autre )&lt;br /&gt;
:'''function bab_browserOS()'''&lt;br /&gt;
===bab_browserAgent()===&lt;br /&gt;
Retourne le type de navigateur ( konqueror, opera, msie, nn6, nn4 ou chaîne vide si autre )&lt;br /&gt;
:'''function bab_browserAgent()'''&lt;br /&gt;
===bab_browserVersion()===&lt;br /&gt;
Retourne la version du navigateur&lt;br /&gt;
:'''function bab_browserVersion()'''&lt;br /&gt;
&lt;br /&gt;
== API Traduction ==&lt;br /&gt;
===bab_translate()===&lt;br /&gt;
Permet de traduire une chaîne&lt;br /&gt;
:'''function bab_translate($str, $folder = &amp;quot;&amp;quot;, $lang=&amp;quot;&amp;quot;)'''&lt;br /&gt;
* '''$str''' :&lt;br /&gt;
*: Contient la chaîne à traduire&lt;br /&gt;
* '''$folder''' :&lt;br /&gt;
*: Sous répertoire du répertoire lang ( pour les modules )&lt;br /&gt;
* '''$lang''' :&lt;br /&gt;
*: Vers quelle langue il faut faire la traduction. Si vide le système utilise la langue courante&lt;br /&gt;
&lt;br /&gt;
===bab_getAvailableLanguages()===&lt;br /&gt;
Retourne un tableau contenant les différentes langues disponibles&lt;br /&gt;
:'''function bab_getAvailableLanguages()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Utilisateur ==&lt;br /&gt;
===bab_isUserAdministrator()===&lt;br /&gt;
Retourne '''true''' si l'utilisateur est administrateur. Sinon '''false'''&lt;br /&gt;
:'''function bab_isUserAdministrator()'''&lt;br /&gt;
===bab_isUserGroupManager()===&lt;br /&gt;
Retourne '''true''' si l'utilisateur est gestionnaire du groupe d'id $grpid. Sinon '''false'''&lt;br /&gt;
:'''function bab_isUserGroupManager($grpid=&amp;quot;&amp;quot;)'''&lt;br /&gt;
* '''$grpid''' :&lt;br /&gt;
*: ID du groupe pour lequel on souhaite savoir si l'utilisateur est gestionnaire. Si vide la fonction retiourne '''true''' si l'utilisateur est gestionnaire d'au moins un groupe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===bab_getUserName()===&lt;br /&gt;
Retourne le nom complet de l'utilisateur d'ID $id.Sinon une chaîne vide.&lt;br /&gt;
:'''function bab_getUserName($id)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getUserEmail()===&lt;br /&gt;
Retourne l'adresse email de l'utilisateur d'ID $id.Sinon une chaîne vide.&lt;br /&gt;
:'''function bab_getUserEmail($id)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getUserNickname()===&lt;br /&gt;
Retourne l'identifiant de l'utilisateur d'ID $id.Sinon une chaîne vide.&lt;br /&gt;
:'''function bab_getUserNickname($id)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getGroupsMembers()===&lt;br /&gt;
Retourne un tableau contenant les utilisateurs membres du ou des groupes $ids.&lt;br /&gt;
*Le tableau contient pour chaque utilisateur son ID ( &amp;quot;id&amp;quot; ), son email (&amp;quot;email&amp;quot;) et son nom complet (&amp;quot;name&amp;quot;)&lt;br /&gt;
:'''function bab_getGroupsMembers($ids)'''&lt;br /&gt;
* '''$ids''' :&lt;br /&gt;
*: ID du groupe ou un tableau d'id de groupes&lt;br /&gt;
&lt;br /&gt;
===bab_isMemberOfGroup()===&lt;br /&gt;
Vérifie si l'utilisateur est l'utilisateur courant ou l'utilisateur d'ID $userid est membre du groupe $group.&lt;br /&gt;
:'''function bab_isMemberOfGroup($group, $userid=&amp;quot;&amp;quot;)'''&lt;br /&gt;
* '''$group''' :&lt;br /&gt;
*: ID du groupe ou chaîne contenant le nom du groupe&lt;br /&gt;
* '''$userid''' :&lt;br /&gt;
*: ID de l'utilisateur. Si vide le système utilise l'ID de l'utilisateur courant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===bab_getUserIdByEmail()===&lt;br /&gt;
Retourne l'ID de l'utilisateur à partir de son adresse email. Retourne 0 si aucun utilisateur&lt;br /&gt;
:'''function bab_getUserIdByEmail($email)'''&lt;br /&gt;
* '''$email''' :&lt;br /&gt;
*: Adresse email de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getUserIdByNickname()===&lt;br /&gt;
Retourne l'ID de l'utilisateur à partir de son identifiant. Retourne 0 si aucun utilisateur&lt;br /&gt;
:'''function bab_getUserIdByNickname($nickname)'''&lt;br /&gt;
* '''$nickname''' :&lt;br /&gt;
*: Identifiant de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getUserId()===&lt;br /&gt;
Retourn l'ID de l'utilisateur à partir de son nom. Sinon 0.&lt;br /&gt;
:'''function bab_getUserId( $name )'''&lt;br /&gt;
* '''$name''' :&lt;br /&gt;
*: Nom de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getUserGroups()===&lt;br /&gt;
Retourne un tableau contenant les ID et les noms des groupes auxquels l'utilisateur appartient.&lt;br /&gt;
:'''function bab_getUserGroups($id = &amp;quot;&amp;quot;)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID de l'utilisateur. Si vide le système utilise celui de l'utilisateur courant&lt;br /&gt;
&lt;br /&gt;
===bab_composeUserName()===&lt;br /&gt;
Retourne une chaîne contenant le nom complet de l'utilisateur selon les préférences du site ( nom/prénom ou prénom/nom )&lt;br /&gt;
:'''function bab_composeUserName( $F, $L)'''&lt;br /&gt;
* '''$F''' :&lt;br /&gt;
*: Prénom de l'utilisateur&lt;br /&gt;
* '''$L''' :&lt;br /&gt;
*: Nom de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_userIsloggedin()===&lt;br /&gt;
Retourne '''true''' si l'utilisateur courant est authentifié. Sinon elle retourne '''false'''&lt;br /&gt;
:'''function bab_userIsloggedin()'''&lt;br /&gt;
&lt;br /&gt;
===bab_registerUser()===&lt;br /&gt;
Permet d'inscrire un utilisateur dans le portail.&lt;br /&gt;
Retourne l'ID de l'utilisateur inscrit. Sinon '''false'''.&lt;br /&gt;
:'''function bab_registerUser($firstname, $lastname, $middlename, $email, $nickname, $password1, $password2, $confirmed, &amp;amp;$error, $bgroup = true)'''&lt;br /&gt;
* '''$firstname''' :&lt;br /&gt;
*: Prénom de l'utilisateur à inscrire&lt;br /&gt;
* '''$lastname''' :&lt;br /&gt;
*: Nom de l'utilisateur à inscrire&lt;br /&gt;
* '''$middlename''' :&lt;br /&gt;
*: Deuxième prénom de l'utilisateur à inscrire&lt;br /&gt;
* '''$email''' :&lt;br /&gt;
*: Adresse email de l'utilisateur à inscrire&lt;br /&gt;
* '''$nickname''' :&lt;br /&gt;
*: Identifiant de l'utilisateur à inscrire&lt;br /&gt;
* '''$password1''' :&lt;br /&gt;
*: Mot de passe de l'utilisateur à inscrire&lt;br /&gt;
* '''$password2''' :&lt;br /&gt;
*: De nouveau le même mot de passe de l'utilisateur à inscrire&lt;br /&gt;
* '''$confirmed''' :&lt;br /&gt;
*: '''true''' si l'inscription de l'utilisateur sera confirmée. Sinon '''false'''&lt;br /&gt;
* '''$error''' :&lt;br /&gt;
*: Variable passée par référence. Si l'inscription échoue, elle sera initialisée avec le message d'erreur&lt;br /&gt;
&lt;br /&gt;
===bab_attachUserToGroup()===&lt;br /&gt;
Affecte un utilisateur à un groupe&lt;br /&gt;
:'''function bab_attachUserToGroup($iduser, $idgroup)'''&lt;br /&gt;
* '''$iduser''' :&lt;br /&gt;
*: ID de l'utilisateur à affecter au groupe&lt;br /&gt;
* '''$idgroup''' :&lt;br /&gt;
*: ID du groupe&lt;br /&gt;
&lt;br /&gt;
===bab_detachUserFromGroup()===&lt;br /&gt;
:'''function bab_detachUserFromGroup($iduser, $idgroup)'''&lt;br /&gt;
===bab_getUserInfos()===&lt;br /&gt;
:'''function bab_getUserInfos($id_user)'''&lt;br /&gt;
===bab_updateUserById()===&lt;br /&gt;
:'''function bab_updateUserById($id, $info, &amp;amp;$error)'''&lt;br /&gt;
===bab_uppdateUserById()===&lt;br /&gt;
:'''function bab_uppdateUserById($id, $info, &amp;amp;$error)'''&lt;br /&gt;
===bab_updateUserByNickname()===&lt;br /&gt;
:'''function bab_updateUserByNickname($nickname, $info, &amp;amp;$error)'''&lt;br /&gt;
&lt;br /&gt;
== API ACL ==&lt;br /&gt;
===bab_isAccessValidByUser()===&lt;br /&gt;
:'''function bab_isAccessValidByUser($table, $idobject, $iduser)'''&lt;br /&gt;
===bab_isAccessValid()===&lt;br /&gt;
:'''function bab_isAccessValid($table, $idobject, $iduser='')'''&lt;br /&gt;
===bab_getUserIdObjects()===&lt;br /&gt;
:'''function bab_getUserIdObjects($table)'''&lt;br /&gt;
===bab_getUsersAccess()===&lt;br /&gt;
:'''function bab_getUsersAccess($table)'''&lt;br /&gt;
===bab_getGroupsAccess()===&lt;br /&gt;
:'''function bab_getGroupsAccess($table, $idobject)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Calendrier popup ==&lt;br /&gt;
===bab_calendarPopup()===&lt;br /&gt;
:'''function bab_calendarPopup($callback, $month=&amp;quot;&amp;quot;, $year=&amp;quot;&amp;quot;, $low=&amp;quot;&amp;quot;, $high=&amp;quot;&amp;quot;)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Création des répertoires ==&lt;br /&gt;
===bab_mkdir()===&lt;br /&gt;
:'''function bab_mkdir($path, $mode='')'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API templates/OVML ==&lt;br /&gt;
===bab_printTemplate()===&lt;br /&gt;
:'''function bab_printTemplate( &amp;amp;$class, $file, $section=&amp;quot;&amp;quot;)'''&lt;br /&gt;
===bab_printOvmlTemplate()===&lt;br /&gt;
:'''function bab_printOvmlTemplate($file, $args=array())'''&lt;br /&gt;
===bab_abbr()===&lt;br /&gt;
:'''function bab_abbr($text, $type, $max_length)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API fichiers ==&lt;br /&gt;
===bab_getFileMimeType()===&lt;br /&gt;
:'''function bab_getFileMimeType($file)'''&lt;br /&gt;
===bab_getFileContentDisposition()===&lt;br /&gt;
:'''function bab_getFileContentDisposition()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Annuaires ==&lt;br /&gt;
===bab_getUserDirFields()===&lt;br /&gt;
:'''function bab_getUserDirFields($id = false)'''&lt;br /&gt;
===bab_getDirEntry()===&lt;br /&gt;
:'''function bab_getDirEntry($id = false, $type = BAB_DIR_ENTRY_ID_USER, $id_directory = NULL )'''&lt;br /&gt;
===bab_getUserDirectories()===&lt;br /&gt;
:'''function bab_getUserDirectories()'''&lt;br /&gt;
===bab_getUserDirEntryLink()===&lt;br /&gt;
:'''function bab_getUserDirEntryLink($id = false, $type = BAB_DIR_ENTRY_ID_USER, $id_directory = false)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Groupes ==&lt;br /&gt;
===bab_getGroupName()===&lt;br /&gt;
:'''function bab_getGroupName($id, $fpn=true)'''&lt;br /&gt;
===bab_getGroups()===&lt;br /&gt;
:'''function bab_getGroups($parent=BAB_REGISTERED_GROUP, $all=true)'''&lt;br /&gt;
===bab_createGroup()===&lt;br /&gt;
:'''function bab_createGroup( $name, $description, $managerid, $parent = 1)'''&lt;br /&gt;
===bab_updateGroup()===&lt;br /&gt;
:'''function bab_updateGroup( $id, $name, $description, $managerid)'''&lt;br /&gt;
===bab_removeGroup()===&lt;br /&gt;
:'''function bab_removeGroup($id)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Debug ==&lt;br /&gt;
===bab_debug()===&lt;br /&gt;
:'''function bab_debug($data, $severity = DBG_TRACE)'''&lt;br /&gt;
===bab_getDebug()===&lt;br /&gt;
:'''function bab_getDebug()'''&lt;br /&gt;
===bab_toHtml()===&lt;br /&gt;
:'''function bab_toHtml($str, $option = BAB_HTML_ENTITIES)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Moteur d'indexation ==&lt;br /&gt;
===bab_searchEngineInfos()===&lt;br /&gt;
:'''function bab_searchEngineInfos()'''&lt;br /&gt;
&lt;br /&gt;
== API Registry ==&lt;br /&gt;
===bab_getRegistryInstance()===&lt;br /&gt;
:'''function bab_getRegistryInstance()'''&lt;br /&gt;
&lt;br /&gt;
Documentation [[Base de registre]]&lt;br /&gt;
&lt;br /&gt;
== API GET/POST ==&lt;br /&gt;
===bab_rp()===&lt;br /&gt;
:'''function bab_rp($name, $default = &amp;quot;&amp;quot;)'''&lt;br /&gt;
===bab_pp()===&lt;br /&gt;
:'''function bab_pp($name, $default = &amp;quot;&amp;quot;)'''&lt;br /&gt;
===bab_gp()===&lt;br /&gt;
:'''function bab_gp($name, $default = &amp;quot;&amp;quot;)'''&lt;br /&gt;
&lt;br /&gt;
== API Divers ==&lt;br /&gt;
===bab_locale()===&lt;br /&gt;
:'''function bab_locale()'''&lt;br /&gt;
===bab_isMagicQuotesGpcOn()===&lt;br /&gt;
:'''function bab_isMagicQuotesGpcOn()'''&lt;br /&gt;
===bab_getActiveSessions()===&lt;br /&gt;
:'''function bab_getActiveSessions()'''&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=API_noyau/module&amp;diff=3173</id>
		<title>API noyau/module</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=API_noyau/module&amp;diff=3173"/>
				<updated>2008-02-26T16:58:04Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* bab_registerUser() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Cette partie contient l'ensemble des fonctions mises à la disposition des modules par le noyau.&lt;br /&gt;
Ces fonctions se trouvent dans le fichier addonappi.php qui se trouve dans le répertoire '''&amp;quot;utilit&amp;quot;''' de la distribution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API date/temps ==&lt;br /&gt;
===bab_time()===&lt;br /&gt;
Retourne une chaîne contenant la date/heure formatée selon les préférences de l'utilisateur&lt;br /&gt;
:'''function bab_time($time)'''&lt;br /&gt;
&lt;br /&gt;
* '''$time''' :&lt;br /&gt;
*: Time stamp unix&lt;br /&gt;
&lt;br /&gt;
===bab_mktime()===&lt;br /&gt;
Retourne un time stamp à partir d'une date MySQL ( DATETIME : '2006-03-10 17:37:02')&lt;br /&gt;
:'''function bab_mktime($time)'''&lt;br /&gt;
&lt;br /&gt;
* '''$time''' :&lt;br /&gt;
*: Date au format de DATETIME de MySQL ( par ex: 2006-03-10 17:37:02 )&lt;br /&gt;
&lt;br /&gt;
===bab_formatDate()===&lt;br /&gt;
Retourne une chaîne contenant la date/heure formatée selon le format spécifié&lt;br /&gt;
:'''function bab_formatDate($format, $time)'''&lt;br /&gt;
&lt;br /&gt;
* '''$format''' :&lt;br /&gt;
*: Format désiré. Par exemple '%'&lt;br /&gt;
*: %d   Une représentation courte du jour ( sur trois caractères )&lt;br /&gt;
*: %D   Jour&lt;br /&gt;
*: %j   Jour du mois ( padding avec zéros )&lt;br /&gt;
*: %m   Une représentation courte du mois ( sur trois caractères )&lt;br /&gt;
*: %M   Mois&lt;br /&gt;
*: %n   Une représentation numérique courte du mois ( sur trois caractères )&lt;br /&gt;
*: %Y   Représentation numérique de l'année, 4 caractères&lt;br /&gt;
*: %y   Année sur deux carcatères&lt;br /&gt;
*: %H   Heure au format 24 heures ( padding avec zéros )&lt;br /&gt;
*: %i   Minutes ( padding avec zéros ) &lt;br /&gt;
*: %S   Format de la date courte préférée de l'utilisateur&lt;br /&gt;
*: %L   Format de la date longue préférée de l'utilisateur&lt;br /&gt;
*: %T   Format du temps préféré de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
* '''$time''' :&lt;br /&gt;
*: Time stamp unix&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===bab_longDate()===&lt;br /&gt;
Retourne une chaîne contenant la date/heure dans un format long&lt;br /&gt;
:'''function bab_longDate($time, $hour=true)'''&lt;br /&gt;
* '''$time''' :&lt;br /&gt;
*: Time stamp unix&lt;br /&gt;
:'''function bab_longDate($time, $hour=true)'''&lt;br /&gt;
* '''$hour''' :&lt;br /&gt;
*: Si true la fonctionne retourne l'heure aussi sinon uniquement la date&lt;br /&gt;
&lt;br /&gt;
===bab_shortDate()===&lt;br /&gt;
Retourne une chaîne contenant la date/heure dans un format court&lt;br /&gt;
:'''function bab_shortDate($time, $hour=true)'''&lt;br /&gt;
* '''$time''' :&lt;br /&gt;
*: Time stamp unix&lt;br /&gt;
:'''function bab_longDate($time, $hour=true)'''&lt;br /&gt;
* '''$hour''' :&lt;br /&gt;
*: Si true la fonctionne retourne l'heure aussi sinon uniquement la date&lt;br /&gt;
&lt;br /&gt;
== API Navigateur ==&lt;br /&gt;
===bab_browserOS()===&lt;br /&gt;
Retourne le système d'exploitation ( windows, macos, linux ou chaîne vide si autre )&lt;br /&gt;
:'''function bab_browserOS()'''&lt;br /&gt;
===bab_browserAgent()===&lt;br /&gt;
Retourne le type de navigateur ( konqueror, opera, msie, nn6, nn4 ou chaîne vide si autre )&lt;br /&gt;
:'''function bab_browserAgent()'''&lt;br /&gt;
===bab_browserVersion()===&lt;br /&gt;
Retourne la version du navigateur&lt;br /&gt;
:'''function bab_browserVersion()'''&lt;br /&gt;
&lt;br /&gt;
== API Traduction ==&lt;br /&gt;
===bab_translate()===&lt;br /&gt;
Permet de traduire une chaîne&lt;br /&gt;
:'''function bab_translate($str, $folder = &amp;quot;&amp;quot;, $lang=&amp;quot;&amp;quot;)'''&lt;br /&gt;
* '''$str''' :&lt;br /&gt;
*: Contient la chaîne à traduire&lt;br /&gt;
* '''$folder''' :&lt;br /&gt;
*: Sous répertoire du répertoire lang ( pour les modules )&lt;br /&gt;
* '''$lang''' :&lt;br /&gt;
*: Vers quelle langue il faut faire la traduction. Si vide le système utilise la langue courante&lt;br /&gt;
&lt;br /&gt;
===bab_getAvailableLanguages()===&lt;br /&gt;
Retourne un tableau contenant les différentes langues disponibles&lt;br /&gt;
:'''function bab_getAvailableLanguages()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Utilisateur ==&lt;br /&gt;
===bab_isUserAdministrator()===&lt;br /&gt;
Retourne '''true''' si l'utilisateur est administrateur. Sinon '''false'''&lt;br /&gt;
:'''function bab_isUserAdministrator()'''&lt;br /&gt;
===bab_isUserGroupManager()===&lt;br /&gt;
Retourne '''true''' si l'utilisateur est gestionnaire du groupe d'id $grpid. Sinon '''false'''&lt;br /&gt;
:'''function bab_isUserGroupManager($grpid=&amp;quot;&amp;quot;)'''&lt;br /&gt;
* '''$grpid''' :&lt;br /&gt;
*: ID du groupe pour lequel on souhaite savoir si l'utilisateur est gestionnaire. Si vide la fonction retiourne '''true''' si l'utilisateur est gestionnaire d'au moins un groupe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===bab_getUserName()===&lt;br /&gt;
Retourne le nom complet de l'utilisateur d'ID $id.Sinon une chaîne vide.&lt;br /&gt;
:'''function bab_getUserName($id)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getUserEmail()===&lt;br /&gt;
Retourne l'adresse email de l'utilisateur d'ID $id.Sinon une chaîne vide.&lt;br /&gt;
:'''function bab_getUserEmail($id)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getUserNickname()===&lt;br /&gt;
Retourne l'identifiant de l'utilisateur d'ID $id.Sinon une chaîne vide.&lt;br /&gt;
:'''function bab_getUserNickname($id)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getGroupsMembers()===&lt;br /&gt;
Retourne un tableau contenant les utilisateurs membres du ou des groupes $ids.&lt;br /&gt;
*Le tableau contient pour chaque utilisateur son ID ( &amp;quot;id&amp;quot; ), son email (&amp;quot;email&amp;quot;) et son nom complet (&amp;quot;name&amp;quot;)&lt;br /&gt;
:'''function bab_getGroupsMembers($ids)'''&lt;br /&gt;
* '''$ids''' :&lt;br /&gt;
*: ID du groupe ou un tableau d'id de groupes&lt;br /&gt;
&lt;br /&gt;
===bab_isMemberOfGroup()===&lt;br /&gt;
Vérifie si l'utilisateur est l'utilisateur courant ou l'utilisateur d'ID $userid est membre du groupe $group.&lt;br /&gt;
:'''function bab_isMemberOfGroup($group, $userid=&amp;quot;&amp;quot;)'''&lt;br /&gt;
* '''$group''' :&lt;br /&gt;
*: ID du groupe ou chaîne contenant le nom du groupe&lt;br /&gt;
* '''$userid''' :&lt;br /&gt;
*: ID de l'utilisateur. Si vide le système utilise l'ID de l'utilisateur courant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===bab_getUserIdByEmail()===&lt;br /&gt;
Retourne l'ID de l'utilisateur à partir de son adresse email. Retourne 0 si aucun utilisateur&lt;br /&gt;
:'''function bab_getUserIdByEmail($email)'''&lt;br /&gt;
* '''$email''' :&lt;br /&gt;
*: Adresse email de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getUserIdByNickname()===&lt;br /&gt;
Retourne l'ID de l'utilisateur à partir de son identifiant. Retourne 0 si aucun utilisateur&lt;br /&gt;
:'''function bab_getUserIdByNickname($nickname)'''&lt;br /&gt;
* '''$nickname''' :&lt;br /&gt;
*: Identifiant de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getUserId()===&lt;br /&gt;
Retourn l'ID de l'utilisateur à partir de son nom. Sinon 0.&lt;br /&gt;
:'''function bab_getUserId( $name )'''&lt;br /&gt;
* '''$name''' :&lt;br /&gt;
*: Nom de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getUserGroups()===&lt;br /&gt;
Retourne un tableau contenant les ID et les noms des groupes auxquels l'utilisateur appartient.&lt;br /&gt;
:'''function bab_getUserGroups($id = &amp;quot;&amp;quot;)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID de l'utilisateur. Si vide le système utilise celui de l'utilisateur courant&lt;br /&gt;
&lt;br /&gt;
===bab_composeUserName()===&lt;br /&gt;
Retourne une chaîne contenant le nom complet de l'utilisateur selon les préférences du site ( nom/prénom ou prénom/nom )&lt;br /&gt;
:'''function bab_composeUserName( $F, $L)'''&lt;br /&gt;
* '''$F''' :&lt;br /&gt;
*: Prénom de l'utilisateur&lt;br /&gt;
* '''$L''' :&lt;br /&gt;
*: Nom de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_userIsloggedin()===&lt;br /&gt;
Retourne '''true''' si l'utilisateur courant est authentifié. Sinon elle retourne '''false'''&lt;br /&gt;
:'''function bab_userIsloggedin()'''&lt;br /&gt;
&lt;br /&gt;
===bab_registerUser()===&lt;br /&gt;
Permet d'inscrire un utilisateur dans le portail.&lt;br /&gt;
Retourne l'ID de l'utilisateur inscrit. Sinon '''false'''.&lt;br /&gt;
:'''function bab_registerUser($firstname, $lastname, $middlename, $email, $nickname, $password1, $password2, $confirmed, &amp;amp;$error, $bgroup = true)'''&lt;br /&gt;
* '''$firstname''' :&lt;br /&gt;
*: Prénom de l'utilisateur à inscrire&lt;br /&gt;
* '''$lastname''' :&lt;br /&gt;
*: Nom de l'utilisateur à inscrire&lt;br /&gt;
* '''$middlename''' :&lt;br /&gt;
*: Deuxième prénom de l'utilisateur à inscrire&lt;br /&gt;
* '''$email''' :&lt;br /&gt;
*: Adresse email de l'utilisateur à inscrire&lt;br /&gt;
* '''$nickname''' :&lt;br /&gt;
*: Identifiant de l'utilisateur à inscrire&lt;br /&gt;
* '''$password1''' :&lt;br /&gt;
*: Mot de passe de l'utilisateur à inscrire&lt;br /&gt;
* '''$password2''' :&lt;br /&gt;
*: De nouveau le même mot de passe de l'utilisateur à inscrire&lt;br /&gt;
* '''$confirmed''' :&lt;br /&gt;
*: '''true''' si l'inscription de l'utilisateur sera confirmée. Sinon '''false'''&lt;br /&gt;
* '''$error''' :&lt;br /&gt;
*: Variable passée par référence. Si l'inscription échoue, elle sera initialisée avec le message d'erreur&lt;br /&gt;
&lt;br /&gt;
===bab_attachUserToGroup()===&lt;br /&gt;
:'''function bab_attachUserToGroup($iduser, $idgroup)'''&lt;br /&gt;
===bab_detachUserFromGroup()===&lt;br /&gt;
:'''function bab_detachUserFromGroup($iduser, $idgroup)'''&lt;br /&gt;
===bab_getUserInfos()===&lt;br /&gt;
:'''function bab_getUserInfos($id_user)'''&lt;br /&gt;
===bab_updateUserById()===&lt;br /&gt;
:'''function bab_updateUserById($id, $info, &amp;amp;$error)'''&lt;br /&gt;
===bab_uppdateUserById()===&lt;br /&gt;
:'''function bab_uppdateUserById($id, $info, &amp;amp;$error)'''&lt;br /&gt;
===bab_updateUserByNickname()===&lt;br /&gt;
:'''function bab_updateUserByNickname($nickname, $info, &amp;amp;$error)'''&lt;br /&gt;
&lt;br /&gt;
== API ACL ==&lt;br /&gt;
===bab_isAccessValidByUser()===&lt;br /&gt;
:'''function bab_isAccessValidByUser($table, $idobject, $iduser)'''&lt;br /&gt;
===bab_isAccessValid()===&lt;br /&gt;
:'''function bab_isAccessValid($table, $idobject, $iduser='')'''&lt;br /&gt;
===bab_getUserIdObjects()===&lt;br /&gt;
:'''function bab_getUserIdObjects($table)'''&lt;br /&gt;
===bab_getUsersAccess()===&lt;br /&gt;
:'''function bab_getUsersAccess($table)'''&lt;br /&gt;
===bab_getGroupsAccess()===&lt;br /&gt;
:'''function bab_getGroupsAccess($table, $idobject)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Calendrier popup ==&lt;br /&gt;
===bab_calendarPopup()===&lt;br /&gt;
:'''function bab_calendarPopup($callback, $month=&amp;quot;&amp;quot;, $year=&amp;quot;&amp;quot;, $low=&amp;quot;&amp;quot;, $high=&amp;quot;&amp;quot;)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Création des répertoires ==&lt;br /&gt;
===bab_mkdir()===&lt;br /&gt;
:'''function bab_mkdir($path, $mode='')'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API templates/OVML ==&lt;br /&gt;
===bab_printTemplate()===&lt;br /&gt;
:'''function bab_printTemplate( &amp;amp;$class, $file, $section=&amp;quot;&amp;quot;)'''&lt;br /&gt;
===bab_printOvmlTemplate()===&lt;br /&gt;
:'''function bab_printOvmlTemplate($file, $args=array())'''&lt;br /&gt;
===bab_abbr()===&lt;br /&gt;
:'''function bab_abbr($text, $type, $max_length)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API fichiers ==&lt;br /&gt;
===bab_getFileMimeType()===&lt;br /&gt;
:'''function bab_getFileMimeType($file)'''&lt;br /&gt;
===bab_getFileContentDisposition()===&lt;br /&gt;
:'''function bab_getFileContentDisposition()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Annuaires ==&lt;br /&gt;
===bab_getUserDirFields()===&lt;br /&gt;
:'''function bab_getUserDirFields($id = false)'''&lt;br /&gt;
===bab_getDirEntry()===&lt;br /&gt;
:'''function bab_getDirEntry($id = false, $type = BAB_DIR_ENTRY_ID_USER, $id_directory = NULL )'''&lt;br /&gt;
===bab_getUserDirectories()===&lt;br /&gt;
:'''function bab_getUserDirectories()'''&lt;br /&gt;
===bab_getUserDirEntryLink()===&lt;br /&gt;
:'''function bab_getUserDirEntryLink($id = false, $type = BAB_DIR_ENTRY_ID_USER, $id_directory = false)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Groupes ==&lt;br /&gt;
===bab_getGroupName()===&lt;br /&gt;
:'''function bab_getGroupName($id, $fpn=true)'''&lt;br /&gt;
===bab_getGroups()===&lt;br /&gt;
:'''function bab_getGroups($parent=BAB_REGISTERED_GROUP, $all=true)'''&lt;br /&gt;
===bab_createGroup()===&lt;br /&gt;
:'''function bab_createGroup( $name, $description, $managerid, $parent = 1)'''&lt;br /&gt;
===bab_updateGroup()===&lt;br /&gt;
:'''function bab_updateGroup( $id, $name, $description, $managerid)'''&lt;br /&gt;
===bab_removeGroup()===&lt;br /&gt;
:'''function bab_removeGroup($id)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Debug ==&lt;br /&gt;
===bab_debug()===&lt;br /&gt;
:'''function bab_debug($data, $severity = DBG_TRACE)'''&lt;br /&gt;
===bab_getDebug()===&lt;br /&gt;
:'''function bab_getDebug()'''&lt;br /&gt;
===bab_toHtml()===&lt;br /&gt;
:'''function bab_toHtml($str, $option = BAB_HTML_ENTITIES)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Moteur d'indexation ==&lt;br /&gt;
===bab_searchEngineInfos()===&lt;br /&gt;
:'''function bab_searchEngineInfos()'''&lt;br /&gt;
&lt;br /&gt;
== API Registry ==&lt;br /&gt;
===bab_getRegistryInstance()===&lt;br /&gt;
:'''function bab_getRegistryInstance()'''&lt;br /&gt;
&lt;br /&gt;
Documentation [[Base de registre]]&lt;br /&gt;
&lt;br /&gt;
== API GET/POST ==&lt;br /&gt;
===bab_rp()===&lt;br /&gt;
:'''function bab_rp($name, $default = &amp;quot;&amp;quot;)'''&lt;br /&gt;
===bab_pp()===&lt;br /&gt;
:'''function bab_pp($name, $default = &amp;quot;&amp;quot;)'''&lt;br /&gt;
===bab_gp()===&lt;br /&gt;
:'''function bab_gp($name, $default = &amp;quot;&amp;quot;)'''&lt;br /&gt;
&lt;br /&gt;
== API Divers ==&lt;br /&gt;
===bab_locale()===&lt;br /&gt;
:'''function bab_locale()'''&lt;br /&gt;
===bab_isMagicQuotesGpcOn()===&lt;br /&gt;
:'''function bab_isMagicQuotesGpcOn()'''&lt;br /&gt;
===bab_getActiveSessions()===&lt;br /&gt;
:'''function bab_getActiveSessions()'''&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=API_noyau/module&amp;diff=3172</id>
		<title>API noyau/module</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=API_noyau/module&amp;diff=3172"/>
				<updated>2008-02-26T16:49:39Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* bab_userIsloggedin() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Cette partie contient l'ensemble des fonctions mises à la disposition des modules par le noyau.&lt;br /&gt;
Ces fonctions se trouvent dans le fichier addonappi.php qui se trouve dans le répertoire '''&amp;quot;utilit&amp;quot;''' de la distribution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API date/temps ==&lt;br /&gt;
===bab_time()===&lt;br /&gt;
Retourne une chaîne contenant la date/heure formatée selon les préférences de l'utilisateur&lt;br /&gt;
:'''function bab_time($time)'''&lt;br /&gt;
&lt;br /&gt;
* '''$time''' :&lt;br /&gt;
*: Time stamp unix&lt;br /&gt;
&lt;br /&gt;
===bab_mktime()===&lt;br /&gt;
Retourne un time stamp à partir d'une date MySQL ( DATETIME : '2006-03-10 17:37:02')&lt;br /&gt;
:'''function bab_mktime($time)'''&lt;br /&gt;
&lt;br /&gt;
* '''$time''' :&lt;br /&gt;
*: Date au format de DATETIME de MySQL ( par ex: 2006-03-10 17:37:02 )&lt;br /&gt;
&lt;br /&gt;
===bab_formatDate()===&lt;br /&gt;
Retourne une chaîne contenant la date/heure formatée selon le format spécifié&lt;br /&gt;
:'''function bab_formatDate($format, $time)'''&lt;br /&gt;
&lt;br /&gt;
* '''$format''' :&lt;br /&gt;
*: Format désiré. Par exemple '%'&lt;br /&gt;
*: %d   Une représentation courte du jour ( sur trois caractères )&lt;br /&gt;
*: %D   Jour&lt;br /&gt;
*: %j   Jour du mois ( padding avec zéros )&lt;br /&gt;
*: %m   Une représentation courte du mois ( sur trois caractères )&lt;br /&gt;
*: %M   Mois&lt;br /&gt;
*: %n   Une représentation numérique courte du mois ( sur trois caractères )&lt;br /&gt;
*: %Y   Représentation numérique de l'année, 4 caractères&lt;br /&gt;
*: %y   Année sur deux carcatères&lt;br /&gt;
*: %H   Heure au format 24 heures ( padding avec zéros )&lt;br /&gt;
*: %i   Minutes ( padding avec zéros ) &lt;br /&gt;
*: %S   Format de la date courte préférée de l'utilisateur&lt;br /&gt;
*: %L   Format de la date longue préférée de l'utilisateur&lt;br /&gt;
*: %T   Format du temps préféré de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
* '''$time''' :&lt;br /&gt;
*: Time stamp unix&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===bab_longDate()===&lt;br /&gt;
Retourne une chaîne contenant la date/heure dans un format long&lt;br /&gt;
:'''function bab_longDate($time, $hour=true)'''&lt;br /&gt;
* '''$time''' :&lt;br /&gt;
*: Time stamp unix&lt;br /&gt;
:'''function bab_longDate($time, $hour=true)'''&lt;br /&gt;
* '''$hour''' :&lt;br /&gt;
*: Si true la fonctionne retourne l'heure aussi sinon uniquement la date&lt;br /&gt;
&lt;br /&gt;
===bab_shortDate()===&lt;br /&gt;
Retourne une chaîne contenant la date/heure dans un format court&lt;br /&gt;
:'''function bab_shortDate($time, $hour=true)'''&lt;br /&gt;
* '''$time''' :&lt;br /&gt;
*: Time stamp unix&lt;br /&gt;
:'''function bab_longDate($time, $hour=true)'''&lt;br /&gt;
* '''$hour''' :&lt;br /&gt;
*: Si true la fonctionne retourne l'heure aussi sinon uniquement la date&lt;br /&gt;
&lt;br /&gt;
== API Navigateur ==&lt;br /&gt;
===bab_browserOS()===&lt;br /&gt;
Retourne le système d'exploitation ( windows, macos, linux ou chaîne vide si autre )&lt;br /&gt;
:'''function bab_browserOS()'''&lt;br /&gt;
===bab_browserAgent()===&lt;br /&gt;
Retourne le type de navigateur ( konqueror, opera, msie, nn6, nn4 ou chaîne vide si autre )&lt;br /&gt;
:'''function bab_browserAgent()'''&lt;br /&gt;
===bab_browserVersion()===&lt;br /&gt;
Retourne la version du navigateur&lt;br /&gt;
:'''function bab_browserVersion()'''&lt;br /&gt;
&lt;br /&gt;
== API Traduction ==&lt;br /&gt;
===bab_translate()===&lt;br /&gt;
Permet de traduire une chaîne&lt;br /&gt;
:'''function bab_translate($str, $folder = &amp;quot;&amp;quot;, $lang=&amp;quot;&amp;quot;)'''&lt;br /&gt;
* '''$str''' :&lt;br /&gt;
*: Contient la chaîne à traduire&lt;br /&gt;
* '''$folder''' :&lt;br /&gt;
*: Sous répertoire du répertoire lang ( pour les modules )&lt;br /&gt;
* '''$lang''' :&lt;br /&gt;
*: Vers quelle langue il faut faire la traduction. Si vide le système utilise la langue courante&lt;br /&gt;
&lt;br /&gt;
===bab_getAvailableLanguages()===&lt;br /&gt;
Retourne un tableau contenant les différentes langues disponibles&lt;br /&gt;
:'''function bab_getAvailableLanguages()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Utilisateur ==&lt;br /&gt;
===bab_isUserAdministrator()===&lt;br /&gt;
Retourne '''true''' si l'utilisateur est administrateur. Sinon '''false'''&lt;br /&gt;
:'''function bab_isUserAdministrator()'''&lt;br /&gt;
===bab_isUserGroupManager()===&lt;br /&gt;
Retourne '''true''' si l'utilisateur est gestionnaire du groupe d'id $grpid. Sinon '''false'''&lt;br /&gt;
:'''function bab_isUserGroupManager($grpid=&amp;quot;&amp;quot;)'''&lt;br /&gt;
* '''$grpid''' :&lt;br /&gt;
*: ID du groupe pour lequel on souhaite savoir si l'utilisateur est gestionnaire. Si vide la fonction retiourne '''true''' si l'utilisateur est gestionnaire d'au moins un groupe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===bab_getUserName()===&lt;br /&gt;
Retourne le nom complet de l'utilisateur d'ID $id.Sinon une chaîne vide.&lt;br /&gt;
:'''function bab_getUserName($id)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getUserEmail()===&lt;br /&gt;
Retourne l'adresse email de l'utilisateur d'ID $id.Sinon une chaîne vide.&lt;br /&gt;
:'''function bab_getUserEmail($id)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getUserNickname()===&lt;br /&gt;
Retourne l'identifiant de l'utilisateur d'ID $id.Sinon une chaîne vide.&lt;br /&gt;
:'''function bab_getUserNickname($id)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getGroupsMembers()===&lt;br /&gt;
Retourne un tableau contenant les utilisateurs membres du ou des groupes $ids.&lt;br /&gt;
*Le tableau contient pour chaque utilisateur son ID ( &amp;quot;id&amp;quot; ), son email (&amp;quot;email&amp;quot;) et son nom complet (&amp;quot;name&amp;quot;)&lt;br /&gt;
:'''function bab_getGroupsMembers($ids)'''&lt;br /&gt;
* '''$ids''' :&lt;br /&gt;
*: ID du groupe ou un tableau d'id de groupes&lt;br /&gt;
&lt;br /&gt;
===bab_isMemberOfGroup()===&lt;br /&gt;
Vérifie si l'utilisateur est l'utilisateur courant ou l'utilisateur d'ID $userid est membre du groupe $group.&lt;br /&gt;
:'''function bab_isMemberOfGroup($group, $userid=&amp;quot;&amp;quot;)'''&lt;br /&gt;
* '''$group''' :&lt;br /&gt;
*: ID du groupe ou chaîne contenant le nom du groupe&lt;br /&gt;
* '''$userid''' :&lt;br /&gt;
*: ID de l'utilisateur. Si vide le système utilise l'ID de l'utilisateur courant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===bab_getUserIdByEmail()===&lt;br /&gt;
Retourne l'ID de l'utilisateur à partir de son adresse email. Retourne 0 si aucun utilisateur&lt;br /&gt;
:'''function bab_getUserIdByEmail($email)'''&lt;br /&gt;
* '''$email''' :&lt;br /&gt;
*: Adresse email de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getUserIdByNickname()===&lt;br /&gt;
Retourne l'ID de l'utilisateur à partir de son identifiant. Retourne 0 si aucun utilisateur&lt;br /&gt;
:'''function bab_getUserIdByNickname($nickname)'''&lt;br /&gt;
* '''$nickname''' :&lt;br /&gt;
*: Identifiant de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getUserId()===&lt;br /&gt;
Retourn l'ID de l'utilisateur à partir de son nom. Sinon 0.&lt;br /&gt;
:'''function bab_getUserId( $name )'''&lt;br /&gt;
* '''$name''' :&lt;br /&gt;
*: Nom de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getUserGroups()===&lt;br /&gt;
Retourne un tableau contenant les ID et les noms des groupes auxquels l'utilisateur appartient.&lt;br /&gt;
:'''function bab_getUserGroups($id = &amp;quot;&amp;quot;)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID de l'utilisateur. Si vide le système utilise celui de l'utilisateur courant&lt;br /&gt;
&lt;br /&gt;
===bab_composeUserName()===&lt;br /&gt;
Retourne une chaîne contenant le nom complet de l'utilisateur selon les préférences du site ( nom/prénom ou prénom/nom )&lt;br /&gt;
:'''function bab_composeUserName( $F, $L)'''&lt;br /&gt;
* '''$F''' :&lt;br /&gt;
*: Prénom de l'utilisateur&lt;br /&gt;
* '''$L''' :&lt;br /&gt;
*: Nom de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_userIsloggedin()===&lt;br /&gt;
Retourne '''true''' si l'utilisateur courant est authentifié. Sinon elle retourne '''false'''&lt;br /&gt;
:'''function bab_userIsloggedin()'''&lt;br /&gt;
&lt;br /&gt;
===bab_registerUser()===&lt;br /&gt;
:'''function bab_registerUser($firstname, $lastname, $middlename, $email, $nickname, $password1, $password2, $confirmed, &amp;amp;$error, $bgroup = true)'''&lt;br /&gt;
===bab_attachUserToGroup()===&lt;br /&gt;
:'''function bab_attachUserToGroup($iduser, $idgroup)'''&lt;br /&gt;
===bab_detachUserFromGroup()===&lt;br /&gt;
:'''function bab_detachUserFromGroup($iduser, $idgroup)'''&lt;br /&gt;
===bab_getUserInfos()===&lt;br /&gt;
:'''function bab_getUserInfos($id_user)'''&lt;br /&gt;
===bab_updateUserById()===&lt;br /&gt;
:'''function bab_updateUserById($id, $info, &amp;amp;$error)'''&lt;br /&gt;
===bab_uppdateUserById()===&lt;br /&gt;
:'''function bab_uppdateUserById($id, $info, &amp;amp;$error)'''&lt;br /&gt;
===bab_updateUserByNickname()===&lt;br /&gt;
:'''function bab_updateUserByNickname($nickname, $info, &amp;amp;$error)'''&lt;br /&gt;
&lt;br /&gt;
== API ACL ==&lt;br /&gt;
===bab_isAccessValidByUser()===&lt;br /&gt;
:'''function bab_isAccessValidByUser($table, $idobject, $iduser)'''&lt;br /&gt;
===bab_isAccessValid()===&lt;br /&gt;
:'''function bab_isAccessValid($table, $idobject, $iduser='')'''&lt;br /&gt;
===bab_getUserIdObjects()===&lt;br /&gt;
:'''function bab_getUserIdObjects($table)'''&lt;br /&gt;
===bab_getUsersAccess()===&lt;br /&gt;
:'''function bab_getUsersAccess($table)'''&lt;br /&gt;
===bab_getGroupsAccess()===&lt;br /&gt;
:'''function bab_getGroupsAccess($table, $idobject)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Calendrier popup ==&lt;br /&gt;
===bab_calendarPopup()===&lt;br /&gt;
:'''function bab_calendarPopup($callback, $month=&amp;quot;&amp;quot;, $year=&amp;quot;&amp;quot;, $low=&amp;quot;&amp;quot;, $high=&amp;quot;&amp;quot;)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Création des répertoires ==&lt;br /&gt;
===bab_mkdir()===&lt;br /&gt;
:'''function bab_mkdir($path, $mode='')'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API templates/OVML ==&lt;br /&gt;
===bab_printTemplate()===&lt;br /&gt;
:'''function bab_printTemplate( &amp;amp;$class, $file, $section=&amp;quot;&amp;quot;)'''&lt;br /&gt;
===bab_printOvmlTemplate()===&lt;br /&gt;
:'''function bab_printOvmlTemplate($file, $args=array())'''&lt;br /&gt;
===bab_abbr()===&lt;br /&gt;
:'''function bab_abbr($text, $type, $max_length)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API fichiers ==&lt;br /&gt;
===bab_getFileMimeType()===&lt;br /&gt;
:'''function bab_getFileMimeType($file)'''&lt;br /&gt;
===bab_getFileContentDisposition()===&lt;br /&gt;
:'''function bab_getFileContentDisposition()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Annuaires ==&lt;br /&gt;
===bab_getUserDirFields()===&lt;br /&gt;
:'''function bab_getUserDirFields($id = false)'''&lt;br /&gt;
===bab_getDirEntry()===&lt;br /&gt;
:'''function bab_getDirEntry($id = false, $type = BAB_DIR_ENTRY_ID_USER, $id_directory = NULL )'''&lt;br /&gt;
===bab_getUserDirectories()===&lt;br /&gt;
:'''function bab_getUserDirectories()'''&lt;br /&gt;
===bab_getUserDirEntryLink()===&lt;br /&gt;
:'''function bab_getUserDirEntryLink($id = false, $type = BAB_DIR_ENTRY_ID_USER, $id_directory = false)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Groupes ==&lt;br /&gt;
===bab_getGroupName()===&lt;br /&gt;
:'''function bab_getGroupName($id, $fpn=true)'''&lt;br /&gt;
===bab_getGroups()===&lt;br /&gt;
:'''function bab_getGroups($parent=BAB_REGISTERED_GROUP, $all=true)'''&lt;br /&gt;
===bab_createGroup()===&lt;br /&gt;
:'''function bab_createGroup( $name, $description, $managerid, $parent = 1)'''&lt;br /&gt;
===bab_updateGroup()===&lt;br /&gt;
:'''function bab_updateGroup( $id, $name, $description, $managerid)'''&lt;br /&gt;
===bab_removeGroup()===&lt;br /&gt;
:'''function bab_removeGroup($id)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Debug ==&lt;br /&gt;
===bab_debug()===&lt;br /&gt;
:'''function bab_debug($data, $severity = DBG_TRACE)'''&lt;br /&gt;
===bab_getDebug()===&lt;br /&gt;
:'''function bab_getDebug()'''&lt;br /&gt;
===bab_toHtml()===&lt;br /&gt;
:'''function bab_toHtml($str, $option = BAB_HTML_ENTITIES)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Moteur d'indexation ==&lt;br /&gt;
===bab_searchEngineInfos()===&lt;br /&gt;
:'''function bab_searchEngineInfos()'''&lt;br /&gt;
&lt;br /&gt;
== API Registry ==&lt;br /&gt;
===bab_getRegistryInstance()===&lt;br /&gt;
:'''function bab_getRegistryInstance()'''&lt;br /&gt;
&lt;br /&gt;
Documentation [[Base de registre]]&lt;br /&gt;
&lt;br /&gt;
== API GET/POST ==&lt;br /&gt;
===bab_rp()===&lt;br /&gt;
:'''function bab_rp($name, $default = &amp;quot;&amp;quot;)'''&lt;br /&gt;
===bab_pp()===&lt;br /&gt;
:'''function bab_pp($name, $default = &amp;quot;&amp;quot;)'''&lt;br /&gt;
===bab_gp()===&lt;br /&gt;
:'''function bab_gp($name, $default = &amp;quot;&amp;quot;)'''&lt;br /&gt;
&lt;br /&gt;
== API Divers ==&lt;br /&gt;
===bab_locale()===&lt;br /&gt;
:'''function bab_locale()'''&lt;br /&gt;
===bab_isMagicQuotesGpcOn()===&lt;br /&gt;
:'''function bab_isMagicQuotesGpcOn()'''&lt;br /&gt;
===bab_getActiveSessions()===&lt;br /&gt;
:'''function bab_getActiveSessions()'''&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=API_noyau/module&amp;diff=3171</id>
		<title>API noyau/module</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=API_noyau/module&amp;diff=3171"/>
				<updated>2008-02-26T16:48:36Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* bab_composeUserName() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Cette partie contient l'ensemble des fonctions mises à la disposition des modules par le noyau.&lt;br /&gt;
Ces fonctions se trouvent dans le fichier addonappi.php qui se trouve dans le répertoire '''&amp;quot;utilit&amp;quot;''' de la distribution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API date/temps ==&lt;br /&gt;
===bab_time()===&lt;br /&gt;
Retourne une chaîne contenant la date/heure formatée selon les préférences de l'utilisateur&lt;br /&gt;
:'''function bab_time($time)'''&lt;br /&gt;
&lt;br /&gt;
* '''$time''' :&lt;br /&gt;
*: Time stamp unix&lt;br /&gt;
&lt;br /&gt;
===bab_mktime()===&lt;br /&gt;
Retourne un time stamp à partir d'une date MySQL ( DATETIME : '2006-03-10 17:37:02')&lt;br /&gt;
:'''function bab_mktime($time)'''&lt;br /&gt;
&lt;br /&gt;
* '''$time''' :&lt;br /&gt;
*: Date au format de DATETIME de MySQL ( par ex: 2006-03-10 17:37:02 )&lt;br /&gt;
&lt;br /&gt;
===bab_formatDate()===&lt;br /&gt;
Retourne une chaîne contenant la date/heure formatée selon le format spécifié&lt;br /&gt;
:'''function bab_formatDate($format, $time)'''&lt;br /&gt;
&lt;br /&gt;
* '''$format''' :&lt;br /&gt;
*: Format désiré. Par exemple '%'&lt;br /&gt;
*: %d   Une représentation courte du jour ( sur trois caractères )&lt;br /&gt;
*: %D   Jour&lt;br /&gt;
*: %j   Jour du mois ( padding avec zéros )&lt;br /&gt;
*: %m   Une représentation courte du mois ( sur trois caractères )&lt;br /&gt;
*: %M   Mois&lt;br /&gt;
*: %n   Une représentation numérique courte du mois ( sur trois caractères )&lt;br /&gt;
*: %Y   Représentation numérique de l'année, 4 caractères&lt;br /&gt;
*: %y   Année sur deux carcatères&lt;br /&gt;
*: %H   Heure au format 24 heures ( padding avec zéros )&lt;br /&gt;
*: %i   Minutes ( padding avec zéros ) &lt;br /&gt;
*: %S   Format de la date courte préférée de l'utilisateur&lt;br /&gt;
*: %L   Format de la date longue préférée de l'utilisateur&lt;br /&gt;
*: %T   Format du temps préféré de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
* '''$time''' :&lt;br /&gt;
*: Time stamp unix&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===bab_longDate()===&lt;br /&gt;
Retourne une chaîne contenant la date/heure dans un format long&lt;br /&gt;
:'''function bab_longDate($time, $hour=true)'''&lt;br /&gt;
* '''$time''' :&lt;br /&gt;
*: Time stamp unix&lt;br /&gt;
:'''function bab_longDate($time, $hour=true)'''&lt;br /&gt;
* '''$hour''' :&lt;br /&gt;
*: Si true la fonctionne retourne l'heure aussi sinon uniquement la date&lt;br /&gt;
&lt;br /&gt;
===bab_shortDate()===&lt;br /&gt;
Retourne une chaîne contenant la date/heure dans un format court&lt;br /&gt;
:'''function bab_shortDate($time, $hour=true)'''&lt;br /&gt;
* '''$time''' :&lt;br /&gt;
*: Time stamp unix&lt;br /&gt;
:'''function bab_longDate($time, $hour=true)'''&lt;br /&gt;
* '''$hour''' :&lt;br /&gt;
*: Si true la fonctionne retourne l'heure aussi sinon uniquement la date&lt;br /&gt;
&lt;br /&gt;
== API Navigateur ==&lt;br /&gt;
===bab_browserOS()===&lt;br /&gt;
Retourne le système d'exploitation ( windows, macos, linux ou chaîne vide si autre )&lt;br /&gt;
:'''function bab_browserOS()'''&lt;br /&gt;
===bab_browserAgent()===&lt;br /&gt;
Retourne le type de navigateur ( konqueror, opera, msie, nn6, nn4 ou chaîne vide si autre )&lt;br /&gt;
:'''function bab_browserAgent()'''&lt;br /&gt;
===bab_browserVersion()===&lt;br /&gt;
Retourne la version du navigateur&lt;br /&gt;
:'''function bab_browserVersion()'''&lt;br /&gt;
&lt;br /&gt;
== API Traduction ==&lt;br /&gt;
===bab_translate()===&lt;br /&gt;
Permet de traduire une chaîne&lt;br /&gt;
:'''function bab_translate($str, $folder = &amp;quot;&amp;quot;, $lang=&amp;quot;&amp;quot;)'''&lt;br /&gt;
* '''$str''' :&lt;br /&gt;
*: Contient la chaîne à traduire&lt;br /&gt;
* '''$folder''' :&lt;br /&gt;
*: Sous répertoire du répertoire lang ( pour les modules )&lt;br /&gt;
* '''$lang''' :&lt;br /&gt;
*: Vers quelle langue il faut faire la traduction. Si vide le système utilise la langue courante&lt;br /&gt;
&lt;br /&gt;
===bab_getAvailableLanguages()===&lt;br /&gt;
Retourne un tableau contenant les différentes langues disponibles&lt;br /&gt;
:'''function bab_getAvailableLanguages()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Utilisateur ==&lt;br /&gt;
===bab_isUserAdministrator()===&lt;br /&gt;
Retourne '''true''' si l'utilisateur est administrateur. Sinon '''false'''&lt;br /&gt;
:'''function bab_isUserAdministrator()'''&lt;br /&gt;
===bab_isUserGroupManager()===&lt;br /&gt;
Retourne '''true''' si l'utilisateur est gestionnaire du groupe d'id $grpid. Sinon '''false'''&lt;br /&gt;
:'''function bab_isUserGroupManager($grpid=&amp;quot;&amp;quot;)'''&lt;br /&gt;
* '''$grpid''' :&lt;br /&gt;
*: ID du groupe pour lequel on souhaite savoir si l'utilisateur est gestionnaire. Si vide la fonction retiourne '''true''' si l'utilisateur est gestionnaire d'au moins un groupe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===bab_getUserName()===&lt;br /&gt;
Retourne le nom complet de l'utilisateur d'ID $id.Sinon une chaîne vide.&lt;br /&gt;
:'''function bab_getUserName($id)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getUserEmail()===&lt;br /&gt;
Retourne l'adresse email de l'utilisateur d'ID $id.Sinon une chaîne vide.&lt;br /&gt;
:'''function bab_getUserEmail($id)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getUserNickname()===&lt;br /&gt;
Retourne l'identifiant de l'utilisateur d'ID $id.Sinon une chaîne vide.&lt;br /&gt;
:'''function bab_getUserNickname($id)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getGroupsMembers()===&lt;br /&gt;
Retourne un tableau contenant les utilisateurs membres du ou des groupes $ids.&lt;br /&gt;
*Le tableau contient pour chaque utilisateur son ID ( &amp;quot;id&amp;quot; ), son email (&amp;quot;email&amp;quot;) et son nom complet (&amp;quot;name&amp;quot;)&lt;br /&gt;
:'''function bab_getGroupsMembers($ids)'''&lt;br /&gt;
* '''$ids''' :&lt;br /&gt;
*: ID du groupe ou un tableau d'id de groupes&lt;br /&gt;
&lt;br /&gt;
===bab_isMemberOfGroup()===&lt;br /&gt;
Vérifie si l'utilisateur est l'utilisateur courant ou l'utilisateur d'ID $userid est membre du groupe $group.&lt;br /&gt;
:'''function bab_isMemberOfGroup($group, $userid=&amp;quot;&amp;quot;)'''&lt;br /&gt;
* '''$group''' :&lt;br /&gt;
*: ID du groupe ou chaîne contenant le nom du groupe&lt;br /&gt;
* '''$userid''' :&lt;br /&gt;
*: ID de l'utilisateur. Si vide le système utilise l'ID de l'utilisateur courant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===bab_getUserIdByEmail()===&lt;br /&gt;
Retourne l'ID de l'utilisateur à partir de son adresse email. Retourne 0 si aucun utilisateur&lt;br /&gt;
:'''function bab_getUserIdByEmail($email)'''&lt;br /&gt;
* '''$email''' :&lt;br /&gt;
*: Adresse email de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getUserIdByNickname()===&lt;br /&gt;
Retourne l'ID de l'utilisateur à partir de son identifiant. Retourne 0 si aucun utilisateur&lt;br /&gt;
:'''function bab_getUserIdByNickname($nickname)'''&lt;br /&gt;
* '''$nickname''' :&lt;br /&gt;
*: Identifiant de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getUserId()===&lt;br /&gt;
Retourn l'ID de l'utilisateur à partir de son nom. Sinon 0.&lt;br /&gt;
:'''function bab_getUserId( $name )'''&lt;br /&gt;
* '''$name''' :&lt;br /&gt;
*: Nom de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_getUserGroups()===&lt;br /&gt;
Retourne un tableau contenant les ID et les noms des groupes auxquels l'utilisateur appartient.&lt;br /&gt;
:'''function bab_getUserGroups($id = &amp;quot;&amp;quot;)'''&lt;br /&gt;
* '''$id''' :&lt;br /&gt;
*: ID de l'utilisateur. Si vide le système utilise celui de l'utilisateur courant&lt;br /&gt;
&lt;br /&gt;
===bab_composeUserName()===&lt;br /&gt;
Retourne une chaîne contenant le nom complet de l'utilisateur selon les préférences du site ( nom/prénom ou prénom/nom )&lt;br /&gt;
:'''function bab_composeUserName( $F, $L)'''&lt;br /&gt;
* '''$F''' :&lt;br /&gt;
*: Prénom de l'utilisateur&lt;br /&gt;
* '''$L''' :&lt;br /&gt;
*: Nom de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
===bab_userIsloggedin()===&lt;br /&gt;
:'''function bab_userIsloggedin()'''&lt;br /&gt;
===bab_registerUser()===&lt;br /&gt;
:'''function bab_registerUser($firstname, $lastname, $middlename, $email, $nickname, $password1, $password2, $confirmed, &amp;amp;$error, $bgroup = true)'''&lt;br /&gt;
===bab_attachUserToGroup()===&lt;br /&gt;
:'''function bab_attachUserToGroup($iduser, $idgroup)'''&lt;br /&gt;
===bab_detachUserFromGroup()===&lt;br /&gt;
:'''function bab_detachUserFromGroup($iduser, $idgroup)'''&lt;br /&gt;
===bab_getUserInfos()===&lt;br /&gt;
:'''function bab_getUserInfos($id_user)'''&lt;br /&gt;
===bab_updateUserById()===&lt;br /&gt;
:'''function bab_updateUserById($id, $info, &amp;amp;$error)'''&lt;br /&gt;
===bab_uppdateUserById()===&lt;br /&gt;
:'''function bab_uppdateUserById($id, $info, &amp;amp;$error)'''&lt;br /&gt;
===bab_updateUserByNickname()===&lt;br /&gt;
:'''function bab_updateUserByNickname($nickname, $info, &amp;amp;$error)'''&lt;br /&gt;
&lt;br /&gt;
== API ACL ==&lt;br /&gt;
===bab_isAccessValidByUser()===&lt;br /&gt;
:'''function bab_isAccessValidByUser($table, $idobject, $iduser)'''&lt;br /&gt;
===bab_isAccessValid()===&lt;br /&gt;
:'''function bab_isAccessValid($table, $idobject, $iduser='')'''&lt;br /&gt;
===bab_getUserIdObjects()===&lt;br /&gt;
:'''function bab_getUserIdObjects($table)'''&lt;br /&gt;
===bab_getUsersAccess()===&lt;br /&gt;
:'''function bab_getUsersAccess($table)'''&lt;br /&gt;
===bab_getGroupsAccess()===&lt;br /&gt;
:'''function bab_getGroupsAccess($table, $idobject)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Calendrier popup ==&lt;br /&gt;
===bab_calendarPopup()===&lt;br /&gt;
:'''function bab_calendarPopup($callback, $month=&amp;quot;&amp;quot;, $year=&amp;quot;&amp;quot;, $low=&amp;quot;&amp;quot;, $high=&amp;quot;&amp;quot;)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Création des répertoires ==&lt;br /&gt;
===bab_mkdir()===&lt;br /&gt;
:'''function bab_mkdir($path, $mode='')'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API templates/OVML ==&lt;br /&gt;
===bab_printTemplate()===&lt;br /&gt;
:'''function bab_printTemplate( &amp;amp;$class, $file, $section=&amp;quot;&amp;quot;)'''&lt;br /&gt;
===bab_printOvmlTemplate()===&lt;br /&gt;
:'''function bab_printOvmlTemplate($file, $args=array())'''&lt;br /&gt;
===bab_abbr()===&lt;br /&gt;
:'''function bab_abbr($text, $type, $max_length)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API fichiers ==&lt;br /&gt;
===bab_getFileMimeType()===&lt;br /&gt;
:'''function bab_getFileMimeType($file)'''&lt;br /&gt;
===bab_getFileContentDisposition()===&lt;br /&gt;
:'''function bab_getFileContentDisposition()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Annuaires ==&lt;br /&gt;
===bab_getUserDirFields()===&lt;br /&gt;
:'''function bab_getUserDirFields($id = false)'''&lt;br /&gt;
===bab_getDirEntry()===&lt;br /&gt;
:'''function bab_getDirEntry($id = false, $type = BAB_DIR_ENTRY_ID_USER, $id_directory = NULL )'''&lt;br /&gt;
===bab_getUserDirectories()===&lt;br /&gt;
:'''function bab_getUserDirectories()'''&lt;br /&gt;
===bab_getUserDirEntryLink()===&lt;br /&gt;
:'''function bab_getUserDirEntryLink($id = false, $type = BAB_DIR_ENTRY_ID_USER, $id_directory = false)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Groupes ==&lt;br /&gt;
===bab_getGroupName()===&lt;br /&gt;
:'''function bab_getGroupName($id, $fpn=true)'''&lt;br /&gt;
===bab_getGroups()===&lt;br /&gt;
:'''function bab_getGroups($parent=BAB_REGISTERED_GROUP, $all=true)'''&lt;br /&gt;
===bab_createGroup()===&lt;br /&gt;
:'''function bab_createGroup( $name, $description, $managerid, $parent = 1)'''&lt;br /&gt;
===bab_updateGroup()===&lt;br /&gt;
:'''function bab_updateGroup( $id, $name, $description, $managerid)'''&lt;br /&gt;
===bab_removeGroup()===&lt;br /&gt;
:'''function bab_removeGroup($id)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Debug ==&lt;br /&gt;
===bab_debug()===&lt;br /&gt;
:'''function bab_debug($data, $severity = DBG_TRACE)'''&lt;br /&gt;
===bab_getDebug()===&lt;br /&gt;
:'''function bab_getDebug()'''&lt;br /&gt;
===bab_toHtml()===&lt;br /&gt;
:'''function bab_toHtml($str, $option = BAB_HTML_ENTITIES)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== API Moteur d'indexation ==&lt;br /&gt;
===bab_searchEngineInfos()===&lt;br /&gt;
:'''function bab_searchEngineInfos()'''&lt;br /&gt;
&lt;br /&gt;
== API Registry ==&lt;br /&gt;
===bab_getRegistryInstance()===&lt;br /&gt;
:'''function bab_getRegistryInstance()'''&lt;br /&gt;
&lt;br /&gt;
Documentation [[Base de registre]]&lt;br /&gt;
&lt;br /&gt;
== API GET/POST ==&lt;br /&gt;
===bab_rp()===&lt;br /&gt;
:'''function bab_rp($name, $default = &amp;quot;&amp;quot;)'''&lt;br /&gt;
===bab_pp()===&lt;br /&gt;
:'''function bab_pp($name, $default = &amp;quot;&amp;quot;)'''&lt;br /&gt;
===bab_gp()===&lt;br /&gt;
:'''function bab_gp($name, $default = &amp;quot;&amp;quot;)'''&lt;br /&gt;
&lt;br /&gt;
== API Divers ==&lt;br /&gt;
===bab_locale()===&lt;br /&gt;
:'''function bab_locale()'''&lt;br /&gt;
===bab_isMagicQuotesGpcOn()===&lt;br /&gt;
:'''function bab_isMagicQuotesGpcOn()'''&lt;br /&gt;
===bab_getActiveSessions()===&lt;br /&gt;
:'''function bab_getActiveSessions()'''&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=D%C3%A9veloppement_de_modules&amp;diff=3169</id>
		<title>Développement de modules</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=D%C3%A9veloppement_de_modules&amp;diff=3169"/>
				<updated>2008-02-26T07:54:19Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Développement de modules]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Un module d'Ovidentia est une archive qui peut être distribuée et qui améliore ou ajoute des fonctionnalités du portail. Les méthodes de développement utilisées pour les modules sont les mêmes que celles utilisées pour le noyau. De ce fait, les modules utilisent les fonctions disponibles dans le noyau (moteur de templates, gestion des droits ...) et publiées en tant qu'API. Les fonctions ne faisant pas partie des API documentées ne doivent en aucun cas être utilisées. Elles peuvent évoluer dans l'avenir ou changer de comportement.&lt;br /&gt;
&lt;br /&gt;
Les templates d'Ovidentia représentent l'outil qui permet de séparer le code PHP du code HTML ; la gestion des skins d'ovidentia est basée sur ce principe. Les modules sont généralement développés en utilisant cette technologie.&lt;br /&gt;
&lt;br /&gt;
Ce document est un guide qui fourni au développeur toutes les étapes nécessaires à la construction d'un module basique. Le lecteur doit être familiarisé au préalable avec les notions de développement PHP, HTML et CSS.&lt;br /&gt;
&lt;br /&gt;
== Structure du module ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour créer un module, il faut créer les répertoires nécessaires dans l'arborescence d'Ovidentia en utilisant un nom unique pour le module. Pour connaître la disposition des répertoires autorisés dans un module, consultez la page [[Structure des répertoires d'un module]]&lt;br /&gt;
&lt;br /&gt;
Dans le répertoire contenant les fichiers php (programs), il existe des fichiers avec des noms imposés :&lt;br /&gt;
&lt;br /&gt;
* [[Fichiers spécifiques des modules#addonini.php|addonini.php]]&lt;br /&gt;
* [[Fichiers spécifiques des modules#ovml.php|ovml.php]]&lt;br /&gt;
* [[Fichiers spécifiques des modules#history.txt|history.txt]]&lt;br /&gt;
* [[Fichiers spécifiques des modules#init.php|init.php]]&lt;br /&gt;
&lt;br /&gt;
== Gestion de la base de données ==&lt;br /&gt;
&lt;br /&gt;
Le lien avec le serveur de base de données MySQL se fait au travers d'un objet php '''bab_database'''.Le client '''mysql''' de php n'est pas utilisé directement. Cet objet propose quelques fonctions supplémentaires décrites dans la documentation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
* [[Documentation de l'objet bab_database]]&lt;br /&gt;
&lt;br /&gt;
== Les fonctions d'Ovidentia ==&lt;br /&gt;
&lt;br /&gt;
Les fonctions disponibles pour les modules se trouvent dans les fichiers utilit/addonapi.php( Consulter [[API noyau/module]] ).&lt;br /&gt;
Les fonctions des autres fichiers, qui ne sont pas spécifiées dans ce wiki comme disponibles pour les modules, ne doivent pas être utilisées. Elles sont sujettes à modification ou suppression dans les futures versions d'Ovidentia.&lt;br /&gt;
&lt;br /&gt;
== Les variables globales ==&lt;br /&gt;
&lt;br /&gt;
Lors du développement dans le contexte d'un module, certaines variables globales peuvent êtres utilisées.&lt;br /&gt;
&lt;br /&gt;
* [[Liste des variables globales pour les modules]]&lt;br /&gt;
&lt;br /&gt;
== Templates ==&lt;br /&gt;
&lt;br /&gt;
Le moteur de template permet de séparer les données de la présentation. Il utilise un objet PHP pour injecter les données dans un fichier HTML dit '''&amp;quot;template&amp;quot;'''. &lt;br /&gt;
&lt;br /&gt;
* [[Exemple d'utilisation de la fonction bab_printTemplate()]]&lt;br /&gt;
* [[Syntaxe des templates]]&lt;br /&gt;
* [[Nouveau moteur de templates]]&lt;br /&gt;
&lt;br /&gt;
== Droits d'accès ==&lt;br /&gt;
&lt;br /&gt;
Les modules peuvent utiliser l'API ACL ([[Access Control List]]) pour gérer les droits d'accès. Elle permet d'assigner des droits et de vérifier l'accès à un élément en fonction des groupes d'utilisateurs du portail.&lt;br /&gt;
&lt;br /&gt;
* Voir la documentation : [[Access Control List]]&lt;br /&gt;
&lt;br /&gt;
== Utiliser des fonctions avancées d'Ovidentia ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Le gestionnaire d'événements ===&lt;br /&gt;
&lt;br /&gt;
Le gestionnaire d'événements est un outil qui permet de s'enregistrer lors de l'installation du module afin d'être notifié de l'exécution de certaines actions ou à l'inverse, prévenir d'autres modules.&lt;br /&gt;
&lt;br /&gt;
* [[API du gestionnaire d'événement]]&lt;br /&gt;
* [[Communication entre les modules]] (Technologie à l'étude)&lt;br /&gt;
&lt;br /&gt;
=== Proposer un service OVML ===&lt;br /&gt;
&lt;br /&gt;
Permet à un module de fournir des services OVML. Ces services sont implémentés sous forme de containers utilisables pour personnaliser les pages d'accueil avec des données gérées par le module ( dernières publications, dernières mises à jour, etc ... )&lt;br /&gt;
&lt;br /&gt;
* [[Implémentation de containers OVML dans un module]]&lt;br /&gt;
&lt;br /&gt;
=== Envoyer des e-mails ===&lt;br /&gt;
&lt;br /&gt;
Pour envoyer des emails de notification en utilisant la configuration du portail, il faut inclure le fichier de la fonction email d'Ovidentia avec cette syntaxe :&lt;br /&gt;
&lt;br /&gt;
 include_once $babInstallPath.&amp;quot;utilit/mailincl.php&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Ensuite, la fonction bab_mail() permet d'obtenir une instance de l'objet nécessaire à l'envoi des e-mails.&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=D%C3%A9veloppement_de_modules&amp;diff=3168</id>
		<title>Développement de modules</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=D%C3%A9veloppement_de_modules&amp;diff=3168"/>
				<updated>2008-02-26T07:47:53Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Proposer un service OVML */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Développement de modules]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Un module d'Ovidentia est une archive qui peut être distribuée et qui améliore les fonctionnalités du portail. Les méthodes de développement utilisées dans les modules sont les mêmes que celles du noyau ; de ce fait, les modules utilisent les fonctions disponibles dans le noyau (moteur de templates, gestion des droits ...) &lt;br /&gt;
&lt;br /&gt;
Les templates d'Ovidentia représentent l'outil qui permet de séparer le code PHP du code HTML ; la gestion des skins d'ovidentia est basée sur ce principe. Les modules sont généralement développés en utilisant cette technologie.&lt;br /&gt;
&lt;br /&gt;
Ce document est un guide qui fourni au développeur toutes les étapes nécessaires à la construction d'un module basique. Le lecteur doit être familiarisé au préalable avec les notions de développement PHP, HTML et CSS.&lt;br /&gt;
&lt;br /&gt;
== Structure du module ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour créer un module, il faut créer les répertoires nécessaires dans l'arborescence d'Ovidentia en utilisant un nom unique pour le module. Pour connaître la disposition des répertoires autorisés dans un module, consultez la page [[Structure des répertoires d'un module]]&lt;br /&gt;
&lt;br /&gt;
Dans le répertoire contenant les fichiers php (programs), il existe des fichiers avec des noms imposés :&lt;br /&gt;
&lt;br /&gt;
* [[Fichiers spécifiques des modules#addonini.php|addonini.php]]&lt;br /&gt;
* [[Fichiers spécifiques des modules#ovml.php|ovml.php]]&lt;br /&gt;
* [[Fichiers spécifiques des modules#history.txt|history.txt]]&lt;br /&gt;
* [[Fichiers spécifiques des modules#init.php|init.php]]&lt;br /&gt;
&lt;br /&gt;
== Gestion de la base de données ==&lt;br /&gt;
&lt;br /&gt;
Le lien avec le serveur de base de données MySQL se fait au travers d'un objet php '''bab_database'''.Le client '''mysql''' de php n'est pas utilisé directement. Cet objet propose quelques fonctions supplémentaires décrites dans la documentation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
* [[Documentation de l'objet bab_database]]&lt;br /&gt;
&lt;br /&gt;
== Les fonctions d'Ovidentia ==&lt;br /&gt;
&lt;br /&gt;
Les fonctions disponibles pour les modules se trouvent dans les fichiers utilit/addonapi.php( Consulter [[API noyau/module]] ).&lt;br /&gt;
Les fonctions des autres fichiers, qui ne sont pas spécifiées dans ce wiki comme disponibles pour les modules, ne doivent pas être utilisées. Elles sont sujettes à modification ou suppression dans les futures versions d'Ovidentia.&lt;br /&gt;
&lt;br /&gt;
== Les variables globales ==&lt;br /&gt;
&lt;br /&gt;
Lors du développement dans le contexte d'un module, certaines variables globales peuvent êtres utilisées.&lt;br /&gt;
&lt;br /&gt;
* [[Liste des variables globales pour les modules]]&lt;br /&gt;
&lt;br /&gt;
== Templates ==&lt;br /&gt;
&lt;br /&gt;
Le moteur de template permet de séparer les données de la présentation. Il utilise un objet PHP pour injecter les données dans un fichier HTML dit '''&amp;quot;template&amp;quot;'''. &lt;br /&gt;
&lt;br /&gt;
* [[Exemple d'utilisation de la fonction bab_printTemplate()]]&lt;br /&gt;
* [[Syntaxe des templates]]&lt;br /&gt;
* [[Nouveau moteur de templates]]&lt;br /&gt;
&lt;br /&gt;
== Droits d'accès ==&lt;br /&gt;
&lt;br /&gt;
Les modules peuvent utiliser l'API ACL ([[Access Control List]]) pour gérer les droits d'accès. Elle permet d'assigner des droits et de vérifier l'accès à un élément en fonction des groupes d'utilisateurs du portail.&lt;br /&gt;
&lt;br /&gt;
* Voir la documentation : [[Access Control List]]&lt;br /&gt;
&lt;br /&gt;
== Utiliser des fonctions avancées d'Ovidentia ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Le gestionnaire d'événements ===&lt;br /&gt;
&lt;br /&gt;
Le gestionnaire d'événements est un outil qui permet de s'enregistrer lors de l'installation du module afin d'être notifié de l'exécution de certaines actions ou à l'inverse, prévenir d'autres modules.&lt;br /&gt;
&lt;br /&gt;
* [[API du gestionnaire d'événement]]&lt;br /&gt;
* [[Communication entre les modules]] (Technologie à l'étude)&lt;br /&gt;
&lt;br /&gt;
=== Proposer un service OVML ===&lt;br /&gt;
&lt;br /&gt;
Permet à un module de fournir des services OVML. Ces services sont implémentés sous forme de containers utilisables pour personnaliser les pages d'accueil avec des données gérées par le module ( dernières publications, dernières mises à jour, etc ... )&lt;br /&gt;
&lt;br /&gt;
* [[Implémentation de containers OVML dans un module]]&lt;br /&gt;
&lt;br /&gt;
=== Envoyer des e-mails ===&lt;br /&gt;
&lt;br /&gt;
Pour envoyer des emails de notification en utilisant la configuration du portail, il faut inclure le fichier de la fonction email d'Ovidentia avec cette syntaxe :&lt;br /&gt;
&lt;br /&gt;
 include_once $babInstallPath.&amp;quot;utilit/mailincl.php&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Ensuite, la fonction bab_mail() permet d'obtenir une instance de l'objet nécessaire à l'envoi des e-mails.&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=D%C3%A9veloppement_de_modules&amp;diff=3167</id>
		<title>Développement de modules</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=D%C3%A9veloppement_de_modules&amp;diff=3167"/>
				<updated>2008-02-26T07:44:20Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Droits d'accès */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Développement de modules]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Un module d'Ovidentia est une archive qui peut être distribuée et qui améliore les fonctionnalités du portail. Les méthodes de développement utilisées dans les modules sont les mêmes que celles du noyau ; de ce fait, les modules utilisent les fonctions disponibles dans le noyau (moteur de templates, gestion des droits ...) &lt;br /&gt;
&lt;br /&gt;
Les templates d'Ovidentia représentent l'outil qui permet de séparer le code PHP du code HTML ; la gestion des skins d'ovidentia est basée sur ce principe. Les modules sont généralement développés en utilisant cette technologie.&lt;br /&gt;
&lt;br /&gt;
Ce document est un guide qui fourni au développeur toutes les étapes nécessaires à la construction d'un module basique. Le lecteur doit être familiarisé au préalable avec les notions de développement PHP, HTML et CSS.&lt;br /&gt;
&lt;br /&gt;
== Structure du module ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour créer un module, il faut créer les répertoires nécessaires dans l'arborescence d'Ovidentia en utilisant un nom unique pour le module. Pour connaître la disposition des répertoires autorisés dans un module, consultez la page [[Structure des répertoires d'un module]]&lt;br /&gt;
&lt;br /&gt;
Dans le répertoire contenant les fichiers php (programs), il existe des fichiers avec des noms imposés :&lt;br /&gt;
&lt;br /&gt;
* [[Fichiers spécifiques des modules#addonini.php|addonini.php]]&lt;br /&gt;
* [[Fichiers spécifiques des modules#ovml.php|ovml.php]]&lt;br /&gt;
* [[Fichiers spécifiques des modules#history.txt|history.txt]]&lt;br /&gt;
* [[Fichiers spécifiques des modules#init.php|init.php]]&lt;br /&gt;
&lt;br /&gt;
== Gestion de la base de données ==&lt;br /&gt;
&lt;br /&gt;
Le lien avec le serveur de base de données MySQL se fait au travers d'un objet php '''bab_database'''.Le client '''mysql''' de php n'est pas utilisé directement. Cet objet propose quelques fonctions supplémentaires décrites dans la documentation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
* [[Documentation de l'objet bab_database]]&lt;br /&gt;
&lt;br /&gt;
== Les fonctions d'Ovidentia ==&lt;br /&gt;
&lt;br /&gt;
Les fonctions disponibles pour les modules se trouvent dans les fichiers utilit/addonapi.php( Consulter [[API noyau/module]] ).&lt;br /&gt;
Les fonctions des autres fichiers, qui ne sont pas spécifiées dans ce wiki comme disponibles pour les modules, ne doivent pas être utilisées. Elles sont sujettes à modification ou suppression dans les futures versions d'Ovidentia.&lt;br /&gt;
&lt;br /&gt;
== Les variables globales ==&lt;br /&gt;
&lt;br /&gt;
Lors du développement dans le contexte d'un module, certaines variables globales peuvent êtres utilisées.&lt;br /&gt;
&lt;br /&gt;
* [[Liste des variables globales pour les modules]]&lt;br /&gt;
&lt;br /&gt;
== Templates ==&lt;br /&gt;
&lt;br /&gt;
Le moteur de template permet de séparer les données de la présentation. Il utilise un objet PHP pour injecter les données dans un fichier HTML dit '''&amp;quot;template&amp;quot;'''. &lt;br /&gt;
&lt;br /&gt;
* [[Exemple d'utilisation de la fonction bab_printTemplate()]]&lt;br /&gt;
* [[Syntaxe des templates]]&lt;br /&gt;
* [[Nouveau moteur de templates]]&lt;br /&gt;
&lt;br /&gt;
== Droits d'accès ==&lt;br /&gt;
&lt;br /&gt;
Les modules peuvent utiliser l'API ACL ([[Access Control List]]) pour gérer les droits d'accès. Elle permet d'assigner des droits et de vérifier l'accès à un élément en fonction des groupes d'utilisateurs du portail.&lt;br /&gt;
&lt;br /&gt;
* Voir la documentation : [[Access Control List]]&lt;br /&gt;
&lt;br /&gt;
== Utiliser des fonctions avancées d'Ovidentia ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Le gestionnaire d'événements ===&lt;br /&gt;
&lt;br /&gt;
Le gestionnaire d'événements est un outil qui permet de s'enregistrer lors de l'installation du module afin d'être notifié de l'exécution de certaines actions ou à l'inverse, prévenir d'autres modules.&lt;br /&gt;
&lt;br /&gt;
* [[API du gestionnaire d'événement]]&lt;br /&gt;
* [[Communication entre les modules]] (Technologie à l'étude)&lt;br /&gt;
&lt;br /&gt;
=== Proposer un service OVML ===&lt;br /&gt;
&lt;br /&gt;
L'implémentation de conteneurs OVML dans un module qui permet de proposer sur la page d'accueil du portail la possibilité d'afficher les derniers éléments publiés dans le module.&lt;br /&gt;
&lt;br /&gt;
* [[Implémentation de containers OVML dans un module]]&lt;br /&gt;
&lt;br /&gt;
=== Envoyer des e-mails ===&lt;br /&gt;
&lt;br /&gt;
Pour envoyer des emails de notification en utilisant la configuration du portail, il faut inclure le fichier de la fonction email d'Ovidentia avec cette syntaxe :&lt;br /&gt;
&lt;br /&gt;
 include_once $babInstallPath.&amp;quot;utilit/mailincl.php&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Ensuite, la fonction bab_mail() permet d'obtenir une instance de l'objet nécessaire à l'envoi des e-mails.&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=D%C3%A9veloppement_de_modules&amp;diff=3166</id>
		<title>Développement de modules</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=D%C3%A9veloppement_de_modules&amp;diff=3166"/>
				<updated>2008-02-26T07:40:42Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Templates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Développement de modules]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Un module d'Ovidentia est une archive qui peut être distribuée et qui améliore les fonctionnalités du portail. Les méthodes de développement utilisées dans les modules sont les mêmes que celles du noyau ; de ce fait, les modules utilisent les fonctions disponibles dans le noyau (moteur de templates, gestion des droits ...) &lt;br /&gt;
&lt;br /&gt;
Les templates d'Ovidentia représentent l'outil qui permet de séparer le code PHP du code HTML ; la gestion des skins d'ovidentia est basée sur ce principe. Les modules sont généralement développés en utilisant cette technologie.&lt;br /&gt;
&lt;br /&gt;
Ce document est un guide qui fourni au développeur toutes les étapes nécessaires à la construction d'un module basique. Le lecteur doit être familiarisé au préalable avec les notions de développement PHP, HTML et CSS.&lt;br /&gt;
&lt;br /&gt;
== Structure du module ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour créer un module, il faut créer les répertoires nécessaires dans l'arborescence d'Ovidentia en utilisant un nom unique pour le module. Pour connaître la disposition des répertoires autorisés dans un module, consultez la page [[Structure des répertoires d'un module]]&lt;br /&gt;
&lt;br /&gt;
Dans le répertoire contenant les fichiers php (programs), il existe des fichiers avec des noms imposés :&lt;br /&gt;
&lt;br /&gt;
* [[Fichiers spécifiques des modules#addonini.php|addonini.php]]&lt;br /&gt;
* [[Fichiers spécifiques des modules#ovml.php|ovml.php]]&lt;br /&gt;
* [[Fichiers spécifiques des modules#history.txt|history.txt]]&lt;br /&gt;
* [[Fichiers spécifiques des modules#init.php|init.php]]&lt;br /&gt;
&lt;br /&gt;
== Gestion de la base de données ==&lt;br /&gt;
&lt;br /&gt;
Le lien avec le serveur de base de données MySQL se fait au travers d'un objet php '''bab_database'''.Le client '''mysql''' de php n'est pas utilisé directement. Cet objet propose quelques fonctions supplémentaires décrites dans la documentation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
* [[Documentation de l'objet bab_database]]&lt;br /&gt;
&lt;br /&gt;
== Les fonctions d'Ovidentia ==&lt;br /&gt;
&lt;br /&gt;
Les fonctions disponibles pour les modules se trouvent dans les fichiers utilit/addonapi.php( Consulter [[API noyau/module]] ).&lt;br /&gt;
Les fonctions des autres fichiers, qui ne sont pas spécifiées dans ce wiki comme disponibles pour les modules, ne doivent pas être utilisées. Elles sont sujettes à modification ou suppression dans les futures versions d'Ovidentia.&lt;br /&gt;
&lt;br /&gt;
== Les variables globales ==&lt;br /&gt;
&lt;br /&gt;
Lors du développement dans le contexte d'un module, certaines variables globales peuvent êtres utilisées.&lt;br /&gt;
&lt;br /&gt;
* [[Liste des variables globales pour les modules]]&lt;br /&gt;
&lt;br /&gt;
== Templates ==&lt;br /&gt;
&lt;br /&gt;
Le moteur de template permet de séparer les données de la présentation. Il utilise un objet PHP pour injecter les données dans un fichier HTML dit '''&amp;quot;template&amp;quot;'''. &lt;br /&gt;
&lt;br /&gt;
* [[Exemple d'utilisation de la fonction bab_printTemplate()]]&lt;br /&gt;
* [[Syntaxe des templates]]&lt;br /&gt;
* [[Nouveau moteur de templates]]&lt;br /&gt;
&lt;br /&gt;
== Droits d'accès ==&lt;br /&gt;
&lt;br /&gt;
Les modules peuvent utiliser l'interface ACL qui est visible dans les fonctions de base d'Ovidentia. Cela permet d'assigner des droits d'accès à un élément en fonction des groupes d'utilisateurs du portail.&lt;br /&gt;
&lt;br /&gt;
* Voir la documentation : [[Access Control List]]&lt;br /&gt;
&lt;br /&gt;
== Utiliser des fonctions avancées d'Ovidentia ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Le gestionnaire d'événements ===&lt;br /&gt;
&lt;br /&gt;
Le gestionnaire d'événements est un outil qui permet de s'enregistrer lors de l'installation du module afin d'être notifié de l'exécution de certaines actions ou à l'inverse, prévenir d'autres modules.&lt;br /&gt;
&lt;br /&gt;
* [[API du gestionnaire d'événement]]&lt;br /&gt;
* [[Communication entre les modules]] (Technologie à l'étude)&lt;br /&gt;
&lt;br /&gt;
=== Proposer un service OVML ===&lt;br /&gt;
&lt;br /&gt;
L'implémentation de conteneurs OVML dans un module qui permet de proposer sur la page d'accueil du portail la possibilité d'afficher les derniers éléments publiés dans le module.&lt;br /&gt;
&lt;br /&gt;
* [[Implémentation de containers OVML dans un module]]&lt;br /&gt;
&lt;br /&gt;
=== Envoyer des e-mails ===&lt;br /&gt;
&lt;br /&gt;
Pour envoyer des emails de notification en utilisant la configuration du portail, il faut inclure le fichier de la fonction email d'Ovidentia avec cette syntaxe :&lt;br /&gt;
&lt;br /&gt;
 include_once $babInstallPath.&amp;quot;utilit/mailincl.php&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Ensuite, la fonction bab_mail() permet d'obtenir une instance de l'objet nécessaire à l'envoi des e-mails.&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=D%C3%A9veloppement_de_modules&amp;diff=3165</id>
		<title>Développement de modules</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=D%C3%A9veloppement_de_modules&amp;diff=3165"/>
				<updated>2008-02-26T07:40:19Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Templates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Développement de modules]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Un module d'Ovidentia est une archive qui peut être distribuée et qui améliore les fonctionnalités du portail. Les méthodes de développement utilisées dans les modules sont les mêmes que celles du noyau ; de ce fait, les modules utilisent les fonctions disponibles dans le noyau (moteur de templates, gestion des droits ...) &lt;br /&gt;
&lt;br /&gt;
Les templates d'Ovidentia représentent l'outil qui permet de séparer le code PHP du code HTML ; la gestion des skins d'ovidentia est basée sur ce principe. Les modules sont généralement développés en utilisant cette technologie.&lt;br /&gt;
&lt;br /&gt;
Ce document est un guide qui fourni au développeur toutes les étapes nécessaires à la construction d'un module basique. Le lecteur doit être familiarisé au préalable avec les notions de développement PHP, HTML et CSS.&lt;br /&gt;
&lt;br /&gt;
== Structure du module ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour créer un module, il faut créer les répertoires nécessaires dans l'arborescence d'Ovidentia en utilisant un nom unique pour le module. Pour connaître la disposition des répertoires autorisés dans un module, consultez la page [[Structure des répertoires d'un module]]&lt;br /&gt;
&lt;br /&gt;
Dans le répertoire contenant les fichiers php (programs), il existe des fichiers avec des noms imposés :&lt;br /&gt;
&lt;br /&gt;
* [[Fichiers spécifiques des modules#addonini.php|addonini.php]]&lt;br /&gt;
* [[Fichiers spécifiques des modules#ovml.php|ovml.php]]&lt;br /&gt;
* [[Fichiers spécifiques des modules#history.txt|history.txt]]&lt;br /&gt;
* [[Fichiers spécifiques des modules#init.php|init.php]]&lt;br /&gt;
&lt;br /&gt;
== Gestion de la base de données ==&lt;br /&gt;
&lt;br /&gt;
Le lien avec le serveur de base de données MySQL se fait au travers d'un objet php '''bab_database'''.Le client '''mysql''' de php n'est pas utilisé directement. Cet objet propose quelques fonctions supplémentaires décrites dans la documentation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
* [[Documentation de l'objet bab_database]]&lt;br /&gt;
&lt;br /&gt;
== Les fonctions d'Ovidentia ==&lt;br /&gt;
&lt;br /&gt;
Les fonctions disponibles pour les modules se trouvent dans les fichiers utilit/addonapi.php( Consulter [[API noyau/module]] ).&lt;br /&gt;
Les fonctions des autres fichiers, qui ne sont pas spécifiées dans ce wiki comme disponibles pour les modules, ne doivent pas être utilisées. Elles sont sujettes à modification ou suppression dans les futures versions d'Ovidentia.&lt;br /&gt;
&lt;br /&gt;
== Les variables globales ==&lt;br /&gt;
&lt;br /&gt;
Lors du développement dans le contexte d'un module, certaines variables globales peuvent êtres utilisées.&lt;br /&gt;
&lt;br /&gt;
* [[Liste des variables globales pour les modules]]&lt;br /&gt;
&lt;br /&gt;
== Templates ==&lt;br /&gt;
&lt;br /&gt;
Le moteur de template permet de séparer les données de la présentation. Il utilise un objet PHP pour injecter les données dans le un fichier HTML dit '''&amp;quot;template&amp;quot;'''. &lt;br /&gt;
&lt;br /&gt;
* [[Exemple d'utilisation de la fonction bab_printTemplate()]]&lt;br /&gt;
* [[Syntaxe des templates]]&lt;br /&gt;
* [[Nouveau moteur de templates]]&lt;br /&gt;
&lt;br /&gt;
== Droits d'accès ==&lt;br /&gt;
&lt;br /&gt;
Les modules peuvent utiliser l'interface ACL qui est visible dans les fonctions de base d'Ovidentia. Cela permet d'assigner des droits d'accès à un élément en fonction des groupes d'utilisateurs du portail.&lt;br /&gt;
&lt;br /&gt;
* Voir la documentation : [[Access Control List]]&lt;br /&gt;
&lt;br /&gt;
== Utiliser des fonctions avancées d'Ovidentia ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Le gestionnaire d'événements ===&lt;br /&gt;
&lt;br /&gt;
Le gestionnaire d'événements est un outil qui permet de s'enregistrer lors de l'installation du module afin d'être notifié de l'exécution de certaines actions ou à l'inverse, prévenir d'autres modules.&lt;br /&gt;
&lt;br /&gt;
* [[API du gestionnaire d'événement]]&lt;br /&gt;
* [[Communication entre les modules]] (Technologie à l'étude)&lt;br /&gt;
&lt;br /&gt;
=== Proposer un service OVML ===&lt;br /&gt;
&lt;br /&gt;
L'implémentation de conteneurs OVML dans un module qui permet de proposer sur la page d'accueil du portail la possibilité d'afficher les derniers éléments publiés dans le module.&lt;br /&gt;
&lt;br /&gt;
* [[Implémentation de containers OVML dans un module]]&lt;br /&gt;
&lt;br /&gt;
=== Envoyer des e-mails ===&lt;br /&gt;
&lt;br /&gt;
Pour envoyer des emails de notification en utilisant la configuration du portail, il faut inclure le fichier de la fonction email d'Ovidentia avec cette syntaxe :&lt;br /&gt;
&lt;br /&gt;
 include_once $babInstallPath.&amp;quot;utilit/mailincl.php&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Ensuite, la fonction bab_mail() permet d'obtenir une instance de l'objet nécessaire à l'envoi des e-mails.&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=D%C3%A9veloppement_de_modules&amp;diff=3164</id>
		<title>Développement de modules</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=D%C3%A9veloppement_de_modules&amp;diff=3164"/>
				<updated>2008-02-26T07:35:59Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Les fonctions d'Ovidentia */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Développement de modules]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Un module d'Ovidentia est une archive qui peut être distribuée et qui améliore les fonctionnalités du portail. Les méthodes de développement utilisées dans les modules sont les mêmes que celles du noyau ; de ce fait, les modules utilisent les fonctions disponibles dans le noyau (moteur de templates, gestion des droits ...) &lt;br /&gt;
&lt;br /&gt;
Les templates d'Ovidentia représentent l'outil qui permet de séparer le code PHP du code HTML ; la gestion des skins d'ovidentia est basée sur ce principe. Les modules sont généralement développés en utilisant cette technologie.&lt;br /&gt;
&lt;br /&gt;
Ce document est un guide qui fourni au développeur toutes les étapes nécessaires à la construction d'un module basique. Le lecteur doit être familiarisé au préalable avec les notions de développement PHP, HTML et CSS.&lt;br /&gt;
&lt;br /&gt;
== Structure du module ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour créer un module, il faut créer les répertoires nécessaires dans l'arborescence d'Ovidentia en utilisant un nom unique pour le module. Pour connaître la disposition des répertoires autorisés dans un module, consultez la page [[Structure des répertoires d'un module]]&lt;br /&gt;
&lt;br /&gt;
Dans le répertoire contenant les fichiers php (programs), il existe des fichiers avec des noms imposés :&lt;br /&gt;
&lt;br /&gt;
* [[Fichiers spécifiques des modules#addonini.php|addonini.php]]&lt;br /&gt;
* [[Fichiers spécifiques des modules#ovml.php|ovml.php]]&lt;br /&gt;
* [[Fichiers spécifiques des modules#history.txt|history.txt]]&lt;br /&gt;
* [[Fichiers spécifiques des modules#init.php|init.php]]&lt;br /&gt;
&lt;br /&gt;
== Gestion de la base de données ==&lt;br /&gt;
&lt;br /&gt;
Le lien avec le serveur de base de données MySQL se fait au travers d'un objet php '''bab_database'''.Le client '''mysql''' de php n'est pas utilisé directement. Cet objet propose quelques fonctions supplémentaires décrites dans la documentation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
* [[Documentation de l'objet bab_database]]&lt;br /&gt;
&lt;br /&gt;
== Les fonctions d'Ovidentia ==&lt;br /&gt;
&lt;br /&gt;
Les fonctions disponibles pour les modules se trouvent dans les fichiers utilit/addonapi.php( Consulter [[API noyau/module]] ).&lt;br /&gt;
Les fonctions des autres fichiers, qui ne sont pas spécifiées dans ce wiki comme disponibles pour les modules, ne doivent pas être utilisées. Elles sont sujettes à modification ou suppression dans les futures versions d'Ovidentia.&lt;br /&gt;
&lt;br /&gt;
== Les variables globales ==&lt;br /&gt;
&lt;br /&gt;
Lors du développement dans le contexte d'un module, certaines variables globales peuvent êtres utilisées.&lt;br /&gt;
&lt;br /&gt;
* [[Liste des variables globales pour les modules]]&lt;br /&gt;
&lt;br /&gt;
== Templates ==&lt;br /&gt;
&lt;br /&gt;
Le moteur de template est une fonction qui permet la fusion d'un fichier HTML avec des balises spécifiques dit &amp;quot;template&amp;quot; avec un object php. &lt;br /&gt;
&lt;br /&gt;
* [[Exemple d'utilisation de la fonction bab_printTemplate()]]&lt;br /&gt;
* [[Syntaxe des templates]]&lt;br /&gt;
* [[Nouveau moteur de templates]]&lt;br /&gt;
&lt;br /&gt;
== Droits d'accès ==&lt;br /&gt;
&lt;br /&gt;
Les modules peuvent utiliser l'interface ACL qui est visible dans les fonctions de base d'Ovidentia. Cela permet d'assigner des droits d'accès à un élément en fonction des groupes d'utilisateurs du portail.&lt;br /&gt;
&lt;br /&gt;
* Voir la documentation : [[Access Control List]]&lt;br /&gt;
&lt;br /&gt;
== Utiliser des fonctions avancées d'Ovidentia ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Le gestionnaire d'événements ===&lt;br /&gt;
&lt;br /&gt;
Le gestionnaire d'événements est un outil qui permet de s'enregistrer lors de l'installation du module afin d'être notifié de l'exécution de certaines actions ou à l'inverse, prévenir d'autres modules.&lt;br /&gt;
&lt;br /&gt;
* [[API du gestionnaire d'événement]]&lt;br /&gt;
* [[Communication entre les modules]] (Technologie à l'étude)&lt;br /&gt;
&lt;br /&gt;
=== Proposer un service OVML ===&lt;br /&gt;
&lt;br /&gt;
L'implémentation de conteneurs OVML dans un module qui permet de proposer sur la page d'accueil du portail la possibilité d'afficher les derniers éléments publiés dans le module.&lt;br /&gt;
&lt;br /&gt;
* [[Implémentation de containers OVML dans un module]]&lt;br /&gt;
&lt;br /&gt;
=== Envoyer des e-mails ===&lt;br /&gt;
&lt;br /&gt;
Pour envoyer des emails de notification en utilisant la configuration du portail, il faut inclure le fichier de la fonction email d'Ovidentia avec cette syntaxe :&lt;br /&gt;
&lt;br /&gt;
 include_once $babInstallPath.&amp;quot;utilit/mailincl.php&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Ensuite, la fonction bab_mail() permet d'obtenir une instance de l'objet nécessaire à l'envoi des e-mails.&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	<entry>
		<id>https://wiki.ovidentia.fr/index.php?title=D%C3%A9veloppement_de_modules&amp;diff=3163</id>
		<title>Développement de modules</title>
		<link rel="alternate" type="text/html" href="https://wiki.ovidentia.fr/index.php?title=D%C3%A9veloppement_de_modules&amp;diff=3163"/>
				<updated>2008-02-26T07:35:29Z</updated>
		
		<summary type="html">&lt;p&gt;Nouaya : /* Les fonctions d'Ovidentia */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Développement de modules]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Un module d'Ovidentia est une archive qui peut être distribuée et qui améliore les fonctionnalités du portail. Les méthodes de développement utilisées dans les modules sont les mêmes que celles du noyau ; de ce fait, les modules utilisent les fonctions disponibles dans le noyau (moteur de templates, gestion des droits ...) &lt;br /&gt;
&lt;br /&gt;
Les templates d'Ovidentia représentent l'outil qui permet de séparer le code PHP du code HTML ; la gestion des skins d'ovidentia est basée sur ce principe. Les modules sont généralement développés en utilisant cette technologie.&lt;br /&gt;
&lt;br /&gt;
Ce document est un guide qui fourni au développeur toutes les étapes nécessaires à la construction d'un module basique. Le lecteur doit être familiarisé au préalable avec les notions de développement PHP, HTML et CSS.&lt;br /&gt;
&lt;br /&gt;
== Structure du module ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour créer un module, il faut créer les répertoires nécessaires dans l'arborescence d'Ovidentia en utilisant un nom unique pour le module. Pour connaître la disposition des répertoires autorisés dans un module, consultez la page [[Structure des répertoires d'un module]]&lt;br /&gt;
&lt;br /&gt;
Dans le répertoire contenant les fichiers php (programs), il existe des fichiers avec des noms imposés :&lt;br /&gt;
&lt;br /&gt;
* [[Fichiers spécifiques des modules#addonini.php|addonini.php]]&lt;br /&gt;
* [[Fichiers spécifiques des modules#ovml.php|ovml.php]]&lt;br /&gt;
* [[Fichiers spécifiques des modules#history.txt|history.txt]]&lt;br /&gt;
* [[Fichiers spécifiques des modules#init.php|init.php]]&lt;br /&gt;
&lt;br /&gt;
== Gestion de la base de données ==&lt;br /&gt;
&lt;br /&gt;
Le lien avec le serveur de base de données MySQL se fait au travers d'un objet php '''bab_database'''.Le client '''mysql''' de php n'est pas utilisé directement. Cet objet propose quelques fonctions supplémentaires décrites dans la documentation ci-dessous :&lt;br /&gt;
&lt;br /&gt;
* [[Documentation de l'objet bab_database]]&lt;br /&gt;
&lt;br /&gt;
== Les fonctions d'Ovidentia ==&lt;br /&gt;
&lt;br /&gt;
Les fonctions disponibles pour les modules se trouvent dans les fichiers utilit/addonapi.php. Consulter [[API noyau/module]].&lt;br /&gt;
Les fonctions des autres fichiers, qui ne sont pas spécifiées dans ce wiki comme disponibles pour les modules, ne doivent pas être utilisées. Elles sont sujettes à modification ou suppression dans les futures versions d'Ovidentia.&lt;br /&gt;
&lt;br /&gt;
== Les variables globales ==&lt;br /&gt;
&lt;br /&gt;
Lors du développement dans le contexte d'un module, certaines variables globales peuvent êtres utilisées.&lt;br /&gt;
&lt;br /&gt;
* [[Liste des variables globales pour les modules]]&lt;br /&gt;
&lt;br /&gt;
== Templates ==&lt;br /&gt;
&lt;br /&gt;
Le moteur de template est une fonction qui permet la fusion d'un fichier HTML avec des balises spécifiques dit &amp;quot;template&amp;quot; avec un object php. &lt;br /&gt;
&lt;br /&gt;
* [[Exemple d'utilisation de la fonction bab_printTemplate()]]&lt;br /&gt;
* [[Syntaxe des templates]]&lt;br /&gt;
* [[Nouveau moteur de templates]]&lt;br /&gt;
&lt;br /&gt;
== Droits d'accès ==&lt;br /&gt;
&lt;br /&gt;
Les modules peuvent utiliser l'interface ACL qui est visible dans les fonctions de base d'Ovidentia. Cela permet d'assigner des droits d'accès à un élément en fonction des groupes d'utilisateurs du portail.&lt;br /&gt;
&lt;br /&gt;
* Voir la documentation : [[Access Control List]]&lt;br /&gt;
&lt;br /&gt;
== Utiliser des fonctions avancées d'Ovidentia ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Le gestionnaire d'événements ===&lt;br /&gt;
&lt;br /&gt;
Le gestionnaire d'événements est un outil qui permet de s'enregistrer lors de l'installation du module afin d'être notifié de l'exécution de certaines actions ou à l'inverse, prévenir d'autres modules.&lt;br /&gt;
&lt;br /&gt;
* [[API du gestionnaire d'événement]]&lt;br /&gt;
* [[Communication entre les modules]] (Technologie à l'étude)&lt;br /&gt;
&lt;br /&gt;
=== Proposer un service OVML ===&lt;br /&gt;
&lt;br /&gt;
L'implémentation de conteneurs OVML dans un module qui permet de proposer sur la page d'accueil du portail la possibilité d'afficher les derniers éléments publiés dans le module.&lt;br /&gt;
&lt;br /&gt;
* [[Implémentation de containers OVML dans un module]]&lt;br /&gt;
&lt;br /&gt;
=== Envoyer des e-mails ===&lt;br /&gt;
&lt;br /&gt;
Pour envoyer des emails de notification en utilisant la configuration du portail, il faut inclure le fichier de la fonction email d'Ovidentia avec cette syntaxe :&lt;br /&gt;
&lt;br /&gt;
 include_once $babInstallPath.&amp;quot;utilit/mailincl.php&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Ensuite, la fonction bab_mail() permet d'obtenir une instance de l'objet nécessaire à l'envoi des e-mails.&lt;/div&gt;</summary>
		<author><name>Nouaya</name></author>	</entry>

	</feed>