<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://mediawiki.ajlsm.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pdechandol</id>
	<title>AJLSM - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.ajlsm.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pdechandol"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.ajlsm.com/wiki/Sp%C3%A9cial:Contributions/Pdechandol"/>
	<updated>2026-11-06T19:16:41Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://mediawiki.ajlsm.com/index.php?title=Impl%C3%A9mentation_de_formulaires_de_recherche_%22fulltext%22_incorpor%C3%A9s_%C3%A0_des_onglets_de_menus&amp;diff=444</id>
		<title>Implémentation de formulaires de recherche &quot;fulltext&quot; incorporés à des onglets de menus</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.ajlsm.com/index.php?title=Impl%C3%A9mentation_de_formulaires_de_recherche_%22fulltext%22_incorpor%C3%A9s_%C3%A0_des_onglets_de_menus&amp;diff=444"/>
		<updated>2012-05-15T09:03:08Z</updated>

		<summary type="html">&lt;p&gt;Pdechandol : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
L&#039;objectif est de créer, dans Pleade, un menu à onglets contenant des formulaires de recherche &amp;quot;fulltext&amp;quot; filtrés.&amp;lt;br /&amp;gt;&lt;br /&gt;
Chaque onglet est soit non-filtré, soit filtré sur le même champ de recherche avec une valeur différente.&amp;lt;br /&amp;gt;&lt;br /&gt;
Les onglets sont générés dynamiquement à partir des valeurs indexées pour le champ de recherche utilisé pour le filtre.&lt;br /&gt;
&lt;br /&gt;
{{important|Cette implémentation est pour le moment mise en place dans le projet {{Pleade}} pour [[Doc/BM-Grenoble|BM-Grenoble]].&amp;lt;br /&amp;gt;&lt;br /&gt;
Sa généralisation et introduction dans Pleade Libre devra être étudiée ultérieurement.&amp;lt;br /&amp;gt;&lt;br /&gt;
Elle sous-entend un gros travail d&#039;adaptation et de généralisation, qui n&#039;est pas fait pour l&#039;instant.}}&lt;br /&gt;
&lt;br /&gt;
== Configuration du menu dans Pleade  ==&lt;br /&gt;
Dans Pleade, c&#039;est le fichier {{path|{{var|$ROOT_PLEADE}}/module-eadeac/conf/menus.xconf}} qui permet de configurer les menus affichés dans les pages.&amp;lt;br /&amp;gt;&lt;br /&gt;
On introduit la configuration du nouveau menu à onglets dans ce fichier avec le fragment suivant :&lt;br /&gt;
&lt;br /&gt;
=== Configuration dans menus.xconf ===&lt;br /&gt;
&lt;br /&gt;
==== Fragment XML ====&lt;br /&gt;
Ci-dessous le fragment XML définissant le système d&#039;onglets dans le menu&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;menu type=&amp;quot;htoptabs&amp;quot; id=&amp;quot;htoptabs&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Définition de la liste des onglets, chacun contenant un formulaire embarqué --&amp;gt;&lt;br /&gt;
		&amp;lt;item type=&amp;quot;list&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;!--+ &lt;br /&gt;
			| Les noeuds &amp;quot;tab&amp;quot; et &amp;quot;tab-repeat&amp;quot; ont les mêmes attributs optionnels :&lt;br /&gt;
			| @field : champ de filtrage si l&#039;on souhaite appliquer un filtre dans le formulaire&lt;br /&gt;
			| @value : valeur de filtrage&lt;br /&gt;
			+--&amp;gt;&lt;br /&gt;
		&amp;lt;tab field=&amp;quot;&amp;quot; value=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Label de l&#039;onglet à générer --&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;&lt;br /&gt;
				&amp;lt;i18n:text key=&amp;quot;menu-search-tabs.simple&amp;quot;&amp;gt;toutes bibliothèques&amp;lt;/i18n:text&amp;gt;&lt;br /&gt;
			&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;!--+&lt;br /&gt;
				| Définition du formulaire embarqué dans l&#039;onglet :&lt;br /&gt;
				| @type : &amp;quot;form-embedded&amp;quot; obligatoire&lt;br /&gt;
				| @ref : nom du formulaire à générer pour l&#039;embarquer dans l&#039;onglet. On doit avoir un fichier &amp;lt;nom&amp;gt;.xconf correspondant&lt;br /&gt;
				| @filtered-by-field : (yes | no) : indique si le formulaire doit être filtré par un champ spécifié dans ce menu.&lt;br /&gt;
				| Si on souhaite filtrer, le filtre est récupéré dans les attributs du noeud &amp;quot;tab&amp;quot; parent. &lt;br /&gt;
				+--&amp;gt;&lt;br /&gt;
			&amp;lt;item id=&amp;quot;search-simple&amp;quot; type=&amp;quot;form-embedded&amp;quot; ref=&amp;quot;bmg-categorie&amp;quot; filtered-by-field=&amp;quot;no&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/tab&amp;gt;&lt;br /&gt;
		&amp;lt;!--+&lt;br /&gt;
			| Définition d&#039;un onglet répété :&lt;br /&gt;
			| @field : nom du champ de filtrage éventuel du formulaire embarqué. Un onglet sera généré pour chaque valeur d&#039;index de ce champ.&lt;br /&gt;
			| @base : nom de la base de documents dans laquelle indexée, utilisé pour aller récupérer les valeurs indexées pour le champ.&lt;br /&gt;
			+--&amp;gt;&lt;br /&gt;
		&amp;lt;tab-repeat field=&amp;quot;categorie&amp;quot; base=&amp;quot;BMG&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- REMARK : le label affiché pour l&#039;onglet est généré automatiquement à partir des valeurs indexées pour le champ --&amp;gt;&lt;br /&gt;
			&amp;lt;!--+&lt;br /&gt;
				| Définition des formulaires embarqués dans les onglets répétés :&lt;br /&gt;
				| @type : &amp;quot;form-embedded&amp;quot; obligatoire&lt;br /&gt;
				| @ref : nom du formulaire à générer pour l&#039;embarquer dans l&#039;onglet. On doit avoir un fichier &amp;lt;nom&amp;gt;.xconf correspondant&lt;br /&gt;
				| @filtered-by-field : (yes | no) : indique si le formulaire doit être filtré par un champ spécifié dans ce menu.&lt;br /&gt;
				| Si on souhaite filtrer, le filtre est porte sur le champ &amp;quot;field&amp;quot; défini dans le noeud &amp;quot;tab-repeat&amp;quot; parent.&lt;br /&gt;
				| La valeur de filtre est la valeur d&#039;index utilisé pour l&#039;onglet.&lt;br /&gt;
				+--&amp;gt;&lt;br /&gt;
			&amp;lt;item id=&amp;quot;search-categorie&amp;quot; type=&amp;quot;form-embedded&amp;quot; ref=&amp;quot;bmg-categorie&amp;quot; filtered-by-field=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/tab-repeat&amp;gt;&lt;br /&gt;
	&amp;lt;/item&amp;gt;		&lt;br /&gt;
&amp;lt;/menu&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Explications et spécifications ====&lt;br /&gt;
Le menu est défini comme les autres menus par un noeud {{tag|menu}} caractérisé par les attributs {{attr|id}} et {{attr|type}}.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ces attributs sont utilisés par la feuille de style XSL {{path|{{var|$ROOT_PLEADE}}/module-eadeac/xsl/search.xsl}} pour associer la configuration du menu au template dédié à son affichage dans les templates de pages Pleade.&lt;br /&gt;
&lt;br /&gt;
Ce menu contient un unique noeud {{tag|item}} définissant le menu à onglets que nous souhaitons construire.&amp;lt;br /&amp;gt;&lt;br /&gt;
Cet item est caractérisé par l&#039;attribut {{attr|type}} avec la valeur spécifique {{cmd|&amp;quot;list&amp;quot;}} dédiée à la définition d&#039;un menu à entrées multiples affichées sous forme d&#039;onglets.&lt;br /&gt;
&lt;br /&gt;
Les onglets du menu sont définis par des noeuds :&lt;br /&gt;
* {{tag|tab}} pour déclarer un unique onglet&lt;br /&gt;
* {{tag|tab-repeat}} pour déclarer des onglets répétés construits suivant le mécanisme suivant : les onglets sont construits dynamiquement à partir des valeurs indexées pour un champ de la base de documents.&lt;br /&gt;
&lt;br /&gt;
Un noeud {{tag|tab}} a les attributs optionnels suivants, qui permettent de caractériser le filtre à appliquer dans le formulaire incorporé :&lt;br /&gt;
*  {{attr|field}} : contient le nom du champ de filtrage&lt;br /&gt;
*  {{attr|value}} : contient la valeur à appliquer au filtre&lt;br /&gt;
&lt;br /&gt;
Un noeud {{tag|tab-repeat}} a les attributs optionnels suivants, qui permettent de caractériser le filtre à appliquer dans le formulaire incorporé à chaque onglet :&lt;br /&gt;
*  {{attr|field}} : contient le nom du champ de filtrage&lt;br /&gt;
*  {{attr|base}} : le nom de la base de documents, utilisée pour récupérer les valeurs d&#039;index du champ de filtrage&lt;br /&gt;
{{notice|La valeur à appliquer au filtre est obligatoirement la valeur d&#039;index du champ correspondant à l&#039;onglet.}}&lt;br /&gt;
&lt;br /&gt;
Un noeud {{tag|tab}} ou {{tag|tab-repeat}} peut contenir les noeuds suivants :&lt;br /&gt;
* {{tag|label}} (optionnel) permettant de définir le libellé cliquable de l&#039;onglet. Ce noeud doit généralement inclure l&#039;appel à une clé i18n, sur le même modèle que tous les autres éléments de menus. Ce noeud n&#039;est pas présent dans les noeuds {{tag|tab-repeat}}. En effet, dans ce cas, les libellés des onglets sont générés dynamiquement pour y faire figurer les valeurs indexées pour le champ de définition des onglets.&lt;br /&gt;
* {{tag|item}} permettant de définir le formulaire construit dynamiquement qui sera incorporé dans l&#039;onglet&lt;br /&gt;
&lt;br /&gt;
Le noeud {{tag|item}} définissant le formulaire de recherche embarqué dans l&#039;onglet est défini par les attributs suivants :&lt;br /&gt;
* {{attr|id}} : un identifiant sur lequel seront construits les IDs nécessaires à la gestion JS des onglets&lt;br /&gt;
* {{attr|type}} : obligatoirement &amp;quot;form-embedded&amp;quot;&lt;br /&gt;
* {{attr|ref}} : le nom du formulaire incorporé dans l&#039;onglet. Ce formulaire est défini par le fichier {{path|{{var|$ROOT_PLEADE}}/module-eadeac/conf/search-forms/nom_formulaire.xconf}} &lt;br /&gt;
* {{attr|filtered-by-field}} : (yes | no) indique si le formulaire incorporé doit être filtré ou pas. Si un filtre doit être appliqué, les paramètres du filtre sont récupérés dans le noeud parent {{tag|tab}} ou {{tag|tab-repeat}} &lt;br /&gt;
&lt;br /&gt;
=== Génération dynamique du menu à onglets ===&lt;br /&gt;
&lt;br /&gt;
La génération des menus configurés dans le fichier {{path|{{var|$ROOT_PLEADE}}/module-eadeac/conf/menus.xconf}} est prise en charge par la feuille de style XSL {{path|{{var|$ROOT_PLEADE}}/commons/xsl/pleade-menus.xsl}}.&amp;lt;br /&amp;gt;&lt;br /&gt;
Cette feuille de style est appliquée sur le fichier de définition de template HTML {{path|{{var|$ROOT_PLEADE}}/theme/module-eadeac-template-search.html}}, qui définit les {{tag|div}} de haut niveau voués à recevoir les éléments de menu.&amp;lt;br/&amp;gt;&lt;br /&gt;
Les templates de la feuille XSL, dédiés à la génération du menu à onglets incorporant des formulaires de recherche, sont caractérisés par l&#039;attribut {{attr|mode}} avec la valeur  {{cmd|&amp;quot;import-form&amp;quot;}}. &amp;lt;br /&amp;gt;&lt;br /&gt;
Ces templates XSL sont en charge de créer les {{tag|div}} HTML, qui recevront le contenu des formulaires incorporés dans les différents onglets.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le contenu HTML des formulaires de recherche sera généré dynamiquement et introduit par AJAX dans les {{tag|div}} précédemment construits.&lt;br /&gt;
&lt;br /&gt;
=== Génération dynamique des formulaires embarqués ===&lt;br /&gt;
&lt;br /&gt;
==== Principe ====&lt;br /&gt;
&lt;br /&gt;
Le contenu HTML des formulaires embarqués est généré en AJAX au chargement de la page {{Pleade}}.&amp;lt;br/&amp;gt;&lt;br /&gt;
La feuille de style XSL {{path|{{var|$ROOT_PLEADE}}/commons/xsl/pleade-aggregate.xsl}} prend en charge l&#039;écriture du code HTML déclarant les entêtes HTML d&#039;une page {{Pleade}}. En particulier, elle appelle un template nommé {{cmd|&amp;quot;more-js&amp;quot;}} destiné à être surchargé pour y ajouter du code Javascript spécifique.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ce template est surchargé dans la feuille de style XSL {{path|{{var|$ROOT_PLEADE}}/commons/xsl/local-pleade-aggregate.xsl}}. On y déclare le code AJAX permettant de générer le contenu des formulaires de recherche embarqués dans le menu à onglets, ainsi que le code de gestion du clic sur un onglet du menu.&lt;br /&gt;
&lt;br /&gt;
==== Requête AJAX de construction du formulaire ====&lt;br /&gt;
&lt;br /&gt;
La requête AJAX invoquée pour générer le contenu des formulaires imbriqués est de la forme : {{{search-form-fragment.xsp?name=bmg-categorie}}}.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le paramètre {{cmd|&amp;quot;name&amp;quot;}} doit contenir le nom du formulaire de recherche à générer. &amp;lt;br/&amp;gt;&lt;br /&gt;
Si on appelle le formulaire {{tag|monFormulaire}}, on a forcément un fichier {{path|{{var|$ROOT_PLEADE}}/module-eadeac/conf/search-forms/monFormulaire.xconf}} décrivant le formulaire de recherche correspondant.&lt;br /&gt;
&lt;br /&gt;
La requête invoquée est &amp;quot;matchée&amp;quot; dans le sitemap : {{path|{{var|$ROOT_PLEADE}}/module-eadeac/module-eadeac.xmap}}.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le traitement appelle la feuille de style XSL {{path|{{var|$ROOT_PLEADE}}/module-eadeac/xsl/local-search-fragment.xsl}} qui est en charge de générer le fragment HTML décrivant le formulaire de recherche &#039;&#039;&#039;sans aucun bouton ni label de champ&#039;&#039;&#039;. En effet, pour insérer les formulaires de recherche dans le menu à onglets, nous n&#039;avons pas besoin qu&#039;ils contiennent ni les labels de champs de recherche, ni les boutons de validation du formulaire.&lt;br /&gt;
&lt;br /&gt;
{{notice|la génération standard d&#039;un formulaire de recherche est prise en charge par la feuille de style XSL {{path|{{var|$ROOT_PLEADE}}/module-eadeac/xsl/search.xsl}}. }}&lt;br /&gt;
&lt;br /&gt;
[[category:BM-Grenoble]]&lt;br /&gt;
[[category:Pleade]]&lt;br /&gt;
[[category:Menu]]&lt;br /&gt;
[[category:Formulaire]]&lt;/div&gt;</summary>
		<author><name>Pdechandol</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.ajlsm.com/index.php?title=Impl%C3%A9mentation_de_formulaires_de_recherche_%22fulltext%22_incorpor%C3%A9s_%C3%A0_des_onglets_de_menus&amp;diff=443</id>
		<title>Implémentation de formulaires de recherche &quot;fulltext&quot; incorporés à des onglets de menus</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.ajlsm.com/index.php?title=Impl%C3%A9mentation_de_formulaires_de_recherche_%22fulltext%22_incorpor%C3%A9s_%C3%A0_des_onglets_de_menus&amp;diff=443"/>
		<updated>2012-05-15T08:49:51Z</updated>

		<summary type="html">&lt;p&gt;Pdechandol : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
L&#039;objectif est de créer, dans Pleade, un menu à onglets contenant des formulaires de recherche &amp;quot;fulltext&amp;quot; filtrés.&amp;lt;br /&amp;gt;&lt;br /&gt;
Chaque onglet est soit non-filtré, soit filtré sur le même champ de recherche avec une valeur différente.&amp;lt;br /&amp;gt;&lt;br /&gt;
Les onglets sont générés dynamiquement à partir des valeurs indexées pour le champ de recherche utilisé pour le filtre.&lt;br /&gt;
&lt;br /&gt;
{{important|Cette implémentation est pour le moment mise en place dans le projet {{Pleade}} pour [[Doc/BM-Grenoble|BM-Grenoble]].&amp;lt;br /&amp;gt;&lt;br /&gt;
Sa généralisation et introduction dans Pleade Libre devra être étudiée ultérieurement.&amp;lt;br /&amp;gt;&lt;br /&gt;
Elle sous-entend un gros travail d&#039;adaptation et de généralisation, qui n&#039;est pas fait pour l&#039;instant.}}&lt;br /&gt;
&lt;br /&gt;
== Configuration du menu dans Pleade  ==&lt;br /&gt;
Dans Pleade, c&#039;est le fichier {{path|{{var|$ROOT_PLEADE}}/module-eadeac/conf/menus.xconf}} qui permet de configurer les menus affichés dans les pages.&amp;lt;br /&amp;gt;&lt;br /&gt;
On introduit la configuration du nouveau menu à onglets dans ce fichier avec le fragment suivant :&lt;br /&gt;
&lt;br /&gt;
=== Configuration dans menus.xconf ===&lt;br /&gt;
&lt;br /&gt;
==== Fragment XML ====&lt;br /&gt;
Ci-dessous le fragment XML définissant le système d&#039;onglets dans le menu&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;menu type=&amp;quot;htoptabs&amp;quot; id=&amp;quot;htoptabs&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Définition de la liste des onglets, chacun contenant un formulaire embarqué --&amp;gt;&lt;br /&gt;
		&amp;lt;item type=&amp;quot;list&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;!--+ &lt;br /&gt;
			| Les noeuds &amp;quot;tab&amp;quot; et &amp;quot;tab-repeat&amp;quot; ont les mêmes attributs optionnels :&lt;br /&gt;
			| @field : champ de filtrage si l&#039;on souhaite appliquer un filtre dans le formulaire&lt;br /&gt;
			| @value : valeur de filtrage&lt;br /&gt;
			+--&amp;gt;&lt;br /&gt;
		&amp;lt;tab field=&amp;quot;&amp;quot; value=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Label de l&#039;onglet à générer --&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;&lt;br /&gt;
				&amp;lt;i18n:text key=&amp;quot;menu-search-tabs.simple&amp;quot;&amp;gt;toutes bibliothèques&amp;lt;/i18n:text&amp;gt;&lt;br /&gt;
			&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;!--+&lt;br /&gt;
				| Définition du formulaire embarqué dans l&#039;onglet :&lt;br /&gt;
				| @type : &amp;quot;form-embedded&amp;quot; obligatoire&lt;br /&gt;
				| @ref : nom du formulaire à générer pour l&#039;embarquer dans l&#039;onglet. On doit avoir un fichier &amp;lt;nom&amp;gt;.xconf correspondant&lt;br /&gt;
				| @filtered-by-field : (yes | no) : indique si le formulaire doit être filtré par un champ spécifié dans ce menu.&lt;br /&gt;
				| Si on souhaite filtrer, le filtre est récupéré dans les attributs du noeud &amp;quot;tab&amp;quot; parent. &lt;br /&gt;
				+--&amp;gt;&lt;br /&gt;
			&amp;lt;item id=&amp;quot;search-simple&amp;quot; type=&amp;quot;form-embedded&amp;quot; ref=&amp;quot;bmg-categorie&amp;quot; filtered-by-field=&amp;quot;no&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/tab&amp;gt;&lt;br /&gt;
		&amp;lt;!--+&lt;br /&gt;
			| Définition d&#039;un onglet répété :&lt;br /&gt;
			| @field : nom du champ de filtrage éventuel du formulaire embarqué. Un onglet sera généré pour chaque valeur d&#039;index de ce champ.&lt;br /&gt;
			| @base : nom de la base de documents dans laquelle indexée, utilisé pour aller récupérer les valeurs indexées pour le champ.&lt;br /&gt;
			+--&amp;gt;&lt;br /&gt;
		&amp;lt;tab-repeat field=&amp;quot;categorie&amp;quot; base=&amp;quot;BMG&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- REMARK : le label affiché pour l&#039;onglet est généré automatiquement à partir des valeurs indexées pour le champ --&amp;gt;&lt;br /&gt;
			&amp;lt;!--+&lt;br /&gt;
				| Définition des formulaires embarqués dans les onglets répétés :&lt;br /&gt;
				| @type : &amp;quot;form-embedded&amp;quot; obligatoire&lt;br /&gt;
				| @ref : nom du formulaire à générer pour l&#039;embarquer dans l&#039;onglet. On doit avoir un fichier &amp;lt;nom&amp;gt;.xconf correspondant&lt;br /&gt;
				| @filtered-by-field : (yes | no) : indique si le formulaire doit être filtré par un champ spécifié dans ce menu.&lt;br /&gt;
				| Si on souhaite filtrer, le filtre est porte sur le champ &amp;quot;field&amp;quot; défini dans le noeud &amp;quot;tab-repeat&amp;quot; parent.&lt;br /&gt;
				| La valeur de filtre est la valeur d&#039;index utilisé pour l&#039;onglet.&lt;br /&gt;
				+--&amp;gt;&lt;br /&gt;
			&amp;lt;item id=&amp;quot;search-categorie&amp;quot; type=&amp;quot;form-embedded&amp;quot; ref=&amp;quot;bmg-categorie&amp;quot; filtered-by-field=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/tab-repeat&amp;gt;&lt;br /&gt;
	&amp;lt;/item&amp;gt;		&lt;br /&gt;
&amp;lt;/menu&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Explications et spécifications ====&lt;br /&gt;
Le menu est défini comme les autres menus par un noeud {{tag|menu}} caractérisé par les attributs {{attr|id}} et {{attr|type}}.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ces attributs sont utilisés par la feuille de style XSL {{path|{{var|$ROOT_PLEADE}}/module-eadeac/xsl/search.xsl}} pour associer la configuration du menu au template dédié à son affichage dans les templates de pages Pleade.&lt;br /&gt;
&lt;br /&gt;
Ce menu contient un unique noeud {{tag|item}} définissant le menu à onglets que nous souhaitons construire.&amp;lt;br /&amp;gt;&lt;br /&gt;
Cet item est caractérisé par l&#039;attribut {{attr|type}} avec la valeur spécifique {{cmd|&amp;quot;list&amp;quot;}} dédiée à la définition d&#039;un menu à entrées multiples affichées sous forme d&#039;onglets.&lt;br /&gt;
&lt;br /&gt;
Les onglets du menu sont définis par des noeuds :&lt;br /&gt;
* {{tag|tab}} pour déclarer un unique onglet&lt;br /&gt;
* {{tag|tab-repeat}} pour déclarer des onglets répétés construits suivant le mécanisme suivant : les onglets sont construits dynamiquement à partir des valeurs indexées pour un champ de la base de documents.&lt;br /&gt;
&lt;br /&gt;
Un noeud {{tag|tab}} a les attributs optionnels suivants, qui permettent de caractériser le filtre à appliquer dans le formulaire incorporé :&lt;br /&gt;
*  {{attr|field}} : contient le nom du champ de filtrage&lt;br /&gt;
*  {{attr|value}} : contient la valeur à appliquer au filtre&lt;br /&gt;
&lt;br /&gt;
Un noeud {{tag|tab-repeat}} a les attributs optionnels suivants, qui permettent de caractériser le filtre à appliquer dans le formulaire incorporé à chaque onglet :&lt;br /&gt;
*  {{attr|field}} : contient le nom du champ de filtrage&lt;br /&gt;
*  {{attr|base}} : le nom de la base de documents, utilisée pour récupérer les valeurs d&#039;index du champ de filtrage&lt;br /&gt;
{{remarque|La valeur à appliquer au filtre est obligatoirement la valeur d&#039;index du champ correspondant à l&#039;onglet.}}&lt;br /&gt;
&lt;br /&gt;
Un noeud {{tag|tab}} ou {{tag|tab-repeat}} peut contenir les noeuds suivants :&lt;br /&gt;
* {{tag|label}} (optionnel) permettant de définir le libellé cliquable de l&#039;onglet. Ce noeud doit généralement inclure l&#039;appel à une clé i18n, sur le même modèle que tous les autres éléments de menus. Ce noeud n&#039;est pas présent dans les noeuds {{tag|tab-repeat}}. En effet, dans ce cas, les libellés des onglets sont générés dynamiquement pour y faire figurer les valeurs indexées pour le champ de définition des onglets.&lt;br /&gt;
* {{tag|item}} permettant de définir le formulaire construit dynamiquement qui sera incorporé dans l&#039;onglet&lt;br /&gt;
&lt;br /&gt;
Le noeud {{tag|item}} définissant le formulaire de recherche embarqué dans l&#039;onglet est défini par les attributs suivants :&lt;br /&gt;
* {{attr|id}} : un identifiant sur lequel seront construits les IDs nécessaires à la gestion JS des onglets&lt;br /&gt;
* {{attr|type}} : obligatoirement &amp;quot;form-embedded&amp;quot;&lt;br /&gt;
* {{attr|ref}} : le nom du formulaire incorporé dans l&#039;onglet. Ce formulaire est défini par le fichier {{path|{{var|$ROOT_PLEADE}}/module-eadeac/conf/search-forms/nom_formulaire.xconf}} &lt;br /&gt;
* {{attr|filtered-by-field}} : (yes | no) indique si le formulaire incorporé doit être filtré ou pas. Si un filtre doit être appliqué, les paramètres du filtre sont récupérés dans le noeud parent {{tag|tab}} ou {{tag|tab-repeat}} &lt;br /&gt;
&lt;br /&gt;
=== Génération dynamique du menu à onglets ===&lt;br /&gt;
&lt;br /&gt;
La génération des menus configurés dans le fichier {{path|{{var|$ROOT_PLEADE}}/module-eadeac/conf/menus.xconf}} est prise en charge par la feuille de style XSL {{path|{{var|$ROOT_PLEADE}}/commons/xsl/pleade-menus.xsl}}.&amp;lt;br /&amp;gt;&lt;br /&gt;
Cette feuille de style est appliquée sur le fichier de définition de template HTML {{path|{{var|$ROOT_PLEADE}}/theme/module-eadeac-template-search.html}}, qui définit les {{tag|div}} de haut niveau voués à recevoir les éléments de menu.&amp;lt;br/&amp;gt;&lt;br /&gt;
Les templates de la feuille XSL, dédiés à la génération du menu à onglets incorporant des formulaires de recherche, sont caractérisés par l&#039;attribut {{attr|mode}} avec la valeur  {{cmd|&amp;quot;import-form&amp;quot;}}. &amp;lt;br /&amp;gt;&lt;br /&gt;
Ces templates XSL sont en charge de créer les {{tag|div}} HTML, qui recevront le contenu des formulaires incorporés dans les différents onglets.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le contenu HTML des formulaires de recherche sera généré dynamiquement et introduit par AJAX dans les {{tag|div}} précédemment construits.&lt;br /&gt;
&lt;br /&gt;
=== Génération dynamique des formulaires embarqués ===&lt;br /&gt;
&lt;br /&gt;
==== Principe ====&lt;br /&gt;
&lt;br /&gt;
Le contenu HTML des formulaires embarqués est généré en AJAX au chargement de la page {{Pleade}}.&amp;lt;br/&amp;gt;&lt;br /&gt;
La feuille de style XSL {{path|{{var|$ROOT_PLEADE}}/commons/xsl/pleade-aggregate.xsl}} prend en charge l&#039;écriture du code HTML déclarant les entêtes HTML d&#039;une page {{Pleade}}. En particulier, elle appelle un template nommé {{cmd|&amp;quot;more-js&amp;quot;}} destiné à être surchargé pour y ajouter du code Javascript spécifique.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ce template est surchargé dans la feuille de style XSL {{path|{{var|$ROOT_PLEADE}}/commons/xsl/local-pleade-aggregate.xsl}}. On y déclare le code AJAX permettant de générer le contenu des formulaires de recherche embarqués dans le menu à onglets, ainsi que le code de gestion du clic sur un onglet du menu.&lt;br /&gt;
&lt;br /&gt;
==== Requête AJAX de construction du formulaire ====&lt;br /&gt;
&lt;br /&gt;
La requête AJAX invoquée pour générer le contenu des formulaires imbriqués est de la forme : {{{search-form-fragment.xsp?name=bmg-categorie}}}.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le paramètre {{cmd|&amp;quot;name&amp;quot;}} doit contenir le nom du formulaire de recherche à générer. &amp;lt;br/&amp;gt;&lt;br /&gt;
Si on appelle le formulaire {{tag|monFormulaire}}, on a forcément un fichier {{path|{{var|$ROOT_PLEADE}}/module-eadeac/conf/search-forms/monFormulaire.xconf}} décrivant le formulaire de recherche correspondant.&lt;br /&gt;
&lt;br /&gt;
La requête invoquée est &amp;quot;matchée&amp;quot; dans le sitemap : {{path|{{var|$ROOT_PLEADE}}/module-eadeac/module-eadeac.xmap}}.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le traitement appelle la feuille de style XSL {{path|{{var|$ROOT_PLEADE}}/module-eadeac/xsl/local-search-fragment.xsl}} qui est en charge de générer le fragment HTML décrivant le formulaire de recherche &#039;&#039;&#039;sans aucun bouton ni label de champ&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[category:BM-Grenoble]]&lt;br /&gt;
[[category:Pleade]]&lt;br /&gt;
[[category:Menu]]&lt;br /&gt;
[[category:Formulaire]]&lt;/div&gt;</summary>
		<author><name>Pdechandol</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.ajlsm.com/index.php?title=Impl%C3%A9mentation_de_formulaires_de_recherche_%22fulltext%22_incorpor%C3%A9s_%C3%A0_des_onglets_de_menus&amp;diff=403</id>
		<title>Implémentation de formulaires de recherche &quot;fulltext&quot; incorporés à des onglets de menus</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.ajlsm.com/index.php?title=Impl%C3%A9mentation_de_formulaires_de_recherche_%22fulltext%22_incorpor%C3%A9s_%C3%A0_des_onglets_de_menus&amp;diff=403"/>
		<updated>2012-05-14T13:42:52Z</updated>

		<summary type="html">&lt;p&gt;Pdechandol : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
L&#039;objectif est de créer, dans Pleade, un menu à onglets contenant des formulaires de recherche &amp;quot;fulltext&amp;quot; filtrés.&amp;lt;br /&amp;gt;&lt;br /&gt;
Chaque onglet est soit non-filtré, soit filtré sur le même champ de recherche avec une valeur différente.&amp;lt;br /&amp;gt;&lt;br /&gt;
Les onglets sont générés dynamiquement à partir des valeurs indexées pour le champ de recherche utilisé pour le filtre.&lt;br /&gt;
&lt;br /&gt;
{{important|Cette implémentation est pour le moment mise en place dans le projet {{Pleade}} pour [[Doc/BM-Grenoble|BM-Grenoble]].&amp;lt;br /&amp;gt;&lt;br /&gt;
Sa généralisation et introduction dans Pleade Libre devra être étudiée ultérieurement.&amp;lt;br /&amp;gt;&lt;br /&gt;
Elle sous-entend un gros travail d&#039;adaptation et de généralisation, qui n&#039;est pas fait pour l&#039;instant.}}&lt;br /&gt;
&lt;br /&gt;
== Configuration du menu dans Pleade  ==&lt;br /&gt;
Dans Pleade, c&#039;est le fichier {{path|{{var|$ROOT_PLEADE}}/module-eadeac/conf/menus.xconf}} qui permet de configurer les menus affichés dans les pages.&amp;lt;br /&amp;gt;&lt;br /&gt;
On introduit la configuration du nouveau menu à onglets dans ce fichier avec le fragment suivant :&lt;br /&gt;
&lt;br /&gt;
=== Configuration dans menus.xconf ===&lt;br /&gt;
&lt;br /&gt;
==== Fragment XML ====&lt;br /&gt;
Ci-dessous le fragment XML définissant le système d&#039;onglets dans le menu&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;menu type=&amp;quot;htoptabs&amp;quot; id=&amp;quot;htoptabs&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Définition de la liste des onglets, chacun contenant un formulaire embarqué --&amp;gt;&lt;br /&gt;
		&amp;lt;item type=&amp;quot;list&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;!--+ &lt;br /&gt;
			| Les noeuds &amp;quot;tab&amp;quot; et &amp;quot;tab-repeat&amp;quot; ont les mêmes attributs optionnels :&lt;br /&gt;
			| @field : champ de filtrage si l&#039;on souhaite appliquer un filtre dans le formulaire&lt;br /&gt;
			| @value : valeur de filtrage&lt;br /&gt;
			+--&amp;gt;&lt;br /&gt;
		&amp;lt;tab field=&amp;quot;&amp;quot; value=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Label de l&#039;onglet à générer --&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;&lt;br /&gt;
				&amp;lt;i18n:text key=&amp;quot;menu-search-tabs.simple&amp;quot;&amp;gt;toutes bibliothèques&amp;lt;/i18n:text&amp;gt;&lt;br /&gt;
			&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;!--+&lt;br /&gt;
				| Définition du formulaire embarqué dans l&#039;onglet :&lt;br /&gt;
				| @type : &amp;quot;form-embedded&amp;quot; obligatoire&lt;br /&gt;
				| @ref : nom du formulaire à générer pour l&#039;embarquer dans l&#039;onglet. On doit avoir un fichier &amp;lt;nom&amp;gt;.xconf correspondant&lt;br /&gt;
				| @filtered-by-field : (yes | no) : indique si le formulaire doit être filtré par un champ spécifié dans ce menu.&lt;br /&gt;
				| Si on souhaite filtrer, le filtre est récupéré dans les attributs du noeud &amp;quot;tab&amp;quot; parent. &lt;br /&gt;
				+--&amp;gt;&lt;br /&gt;
			&amp;lt;item id=&amp;quot;search-simple&amp;quot; type=&amp;quot;form-embedded&amp;quot; ref=&amp;quot;bmg-categorie&amp;quot; filtered-by-field=&amp;quot;no&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/tab&amp;gt;&lt;br /&gt;
		&amp;lt;!--+&lt;br /&gt;
			| Définition d&#039;un onglet répété :&lt;br /&gt;
			| @field : nom du champ de filtrage éventuel du formulaire embarqué. Un onglet sera généré pour chaque valeur d&#039;index de ce champ.&lt;br /&gt;
			| @base : nom de la base de documents dans laquelle indexée, utilisé pour aller récupérer les valeurs indexées pour le champ.&lt;br /&gt;
			+--&amp;gt;&lt;br /&gt;
		&amp;lt;tab-repeat field=&amp;quot;categorie&amp;quot; base=&amp;quot;BMG&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- REMARK : le label affiché pour l&#039;onglet est généré automatiquement à partir des valeurs indexées pour le champ --&amp;gt;&lt;br /&gt;
			&amp;lt;!--+&lt;br /&gt;
				| Définition des formulaires embarqués dans les onglets répétés :&lt;br /&gt;
				| @type : &amp;quot;form-embedded&amp;quot; obligatoire&lt;br /&gt;
				| @ref : nom du formulaire à générer pour l&#039;embarquer dans l&#039;onglet. On doit avoir un fichier &amp;lt;nom&amp;gt;.xconf correspondant&lt;br /&gt;
				| @filtered-by-field : (yes | no) : indique si le formulaire doit être filtré par un champ spécifié dans ce menu.&lt;br /&gt;
				| Si on souhaite filtrer, le filtre est porte sur le champ &amp;quot;field&amp;quot; défini dans le noeud &amp;quot;tab-repeat&amp;quot; parent.&lt;br /&gt;
				| La valeur de filtre est la valeur d&#039;index utilisé pour l&#039;onglet.&lt;br /&gt;
				+--&amp;gt;&lt;br /&gt;
			&amp;lt;item id=&amp;quot;search-categorie&amp;quot; type=&amp;quot;form-embedded&amp;quot; ref=&amp;quot;bmg-categorie&amp;quot; filtered-by-field=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/tab-repeat&amp;gt;&lt;br /&gt;
	&amp;lt;/item&amp;gt;		&lt;br /&gt;
&amp;lt;/menu&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Explications et spécifications ====&lt;br /&gt;
Le menu est défini comme les autres menus par un noeud {{tag|menu}} caractérisé par les attributs {{attr|id}} et {{attr|type}}.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ces attributs sont utilisés par la feuille de style XSL {{path|{{var|$ROOT_PLEADE}}/module-eadeac/xsl/search.xsl}} pour associer la configuration du menu au template dédié à son affichage dans les templates de pages Pleade.&lt;br /&gt;
&lt;br /&gt;
Ce menu contient un unique noeud {{tag|item}} définissant le menu à onglets que nous souhaitons construire.&amp;lt;br /&amp;gt;&lt;br /&gt;
Cet item est caractérisé par l&#039;attribut {{attr|type}} avec la valeur spécifique {{cmd|&amp;quot;list&amp;quot;}} dédiée à la définition d&#039;un menu à entrées multiples affichées sous forme d&#039;onglets.&lt;br /&gt;
&lt;br /&gt;
Les onglets du menu sont définis par des noeuds :&lt;br /&gt;
* {{tag|tab}} pour déclarer un unique onglet&lt;br /&gt;
* {{tag|tab-repeat}} pour déclarer des onglets répétés construits suivant le mécanisme suivant : les onglets sont construits dynamiquement à partir des valeurs indexées pour un champ de la base de documents.&lt;br /&gt;
&lt;br /&gt;
Un noeud {{tag|tab}} a les attributs optionnels suivants, qui permettent de caractériser le filtre à appliquer dans le formulaire incorporé :&lt;br /&gt;
*  {{attr|field}} : contient le nom du champ de filtrage&lt;br /&gt;
*  {{attr|value}} : contient la valeur à appliquer au filtre&lt;br /&gt;
&lt;br /&gt;
Un noeud {{tag|tab-repeat}} a les attributs optionnels suivants, qui permettent de caractériser le filtre à appliquer dans le formulaire incorporé à chaque onglet :&lt;br /&gt;
*  {{attr|field}} : contient le nom du champ de filtrage&lt;br /&gt;
*  {{attr|base}} : le nom de la base de documents, utilisée pour récupérer les valeurs d&#039;index du champ de filtrage&lt;br /&gt;
{{remarque|La valeur à appliquer au filtre est obligatoirement la valeur d&#039;index du champ correspondant à l&#039;onglet.}}&lt;br /&gt;
&lt;br /&gt;
Un noeud {{tag|tab}} ou {{tag|tab-repeat}} peut contenir les noeuds suivants :&lt;br /&gt;
* {{tag|label}} (optionnel) permettant de définir le libellé cliquable de l&#039;onglet. Ce noeud doit généralement inclure l&#039;appel à une clé i18n, sur le même modèle que tous les autres éléments de menus. Ce noeud n&#039;est pas présent dans les noeuds {{tag|tab-repeat}}. En effet, dans ce cas, les libellés des onglets sont générés dynamiquement pour y faire figurer les valeurs indexées pour le champ de définition des onglets.&lt;br /&gt;
* {{tag|item}} permettant de définir le formulaire construit dynamiquement qui sera incorporé dans l&#039;onglet&lt;br /&gt;
&lt;br /&gt;
Le noeud {{tag|item}} définissant le formulaire de recherche embarqué dans l&#039;onglet est défini par les attributs suivants :&lt;br /&gt;
* {{attr|id}} : un identifiant sur lequel seront construits les IDs nécessaires à la gestion JS des onglets&lt;br /&gt;
* {{attr|type}} : obligatoirement &amp;quot;form-embedded&amp;quot;&lt;br /&gt;
* {{attr|ref}} : le nom du formulaire incorporé dans l&#039;onglet. Ce formulaire est défini par le fichier {{path|{{var|$ROOT_PLEADE}}/module-eadeac/conf/search-forms/nom_formulaire.xconf}} &lt;br /&gt;
* {{attr|filtered-by-field}} : (yes | no) indique si le formulaire incorporé doit être filtré ou pas. Si un filtre doit être appliqué, les paramètres du filtre sont récupérés dans le noeud parent {{tag|tab}} ou {{tag|tab-repeat}} &lt;br /&gt;
&lt;br /&gt;
=== Génération dynamique du menu à onglets ===&lt;br /&gt;
&lt;br /&gt;
La génération des menus configurés dans le fichier {{path|{{var|$ROOT_PLEADE}}/module-eadeac/conf/menus.xconf}} est prise en charge par la feuille de style XSL {{path|{{var|$ROOT_PLEADE}}/commons/xsl/pleade-menus.xsl}}.&amp;lt;br /&amp;gt;&lt;br /&gt;
Cette feuille de style est appliquée sur le fichier de définition de template HTML {{path|{{var|$ROOT_PLEADE}}/theme/module-eadeac-template-search.html}}, qui définit les {{tag|div}} de haut niveau voués à recevoir les éléments de menu.&amp;lt;br/&amp;gt;&lt;br /&gt;
Les templates de la feuille XSL, dédiés à la génération du menu à onglets incorporant des formulaires de recherche, sont caractérisés par l&#039;attribut {{attr|mode}} avec la valeur  {{cmd|&amp;quot;import-form&amp;quot;}}. &amp;lt;br /&amp;gt;&lt;br /&gt;
Ces templates XSL sont en charge de créer les {{tag|div}} HTML, qui recevront le contenu des formulaires incorporés dans les différents onglets.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le contenu HTML des formulaires de recherche sera généré dynamiquement et introduit par AJAX dans les {{tag|div}} précédemment construits.&lt;br /&gt;
&lt;br /&gt;
=== Génération dynamique des formulaires embarqués ===&lt;br /&gt;
&lt;br /&gt;
Le contenu HTML des formulaires embarqués est généré en AJAX au chargement de la page {{Pleade}}.&amp;lt;br/&amp;gt;&lt;br /&gt;
La feuille de style XSL {{path|{{var|$ROOT_PLEADE}}/commons/xsl/pleade-aggregate.xsl}} prend en charge l&#039;écriture du code HTML déclarant les entêtes HTML d&#039;une page {{Pleade}}. En particulier, elle appelle un template nommé {{cmd|&amp;quot;more-js&amp;quot;}} destiné à être surchargé pour y ajouter du code Javascript spécifique.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ce template est surchargé dans la feuille de style XSL {{path|{{var|$ROOT_PLEADE}}/commons/xsl/local-pleade-aggregate.xsl}}. On y déclare le code AJAX permettant de générer le contenu des formulaires de recherche embarqués dans le menu à onglets, ainsi que le code de gestion du clic sur un onglet du menu.&lt;br /&gt;
&lt;br /&gt;
[[category:BM-Grenoble]]&lt;br /&gt;
[[category:Pleade]]&lt;br /&gt;
[[category:Menu]]&lt;br /&gt;
[[category:Formulaire]]&lt;/div&gt;</summary>
		<author><name>Pdechandol</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.ajlsm.com/index.php?title=Impl%C3%A9mentation_de_formulaires_de_recherche_%22fulltext%22_incorpor%C3%A9s_%C3%A0_des_onglets_de_menus&amp;diff=373</id>
		<title>Implémentation de formulaires de recherche &quot;fulltext&quot; incorporés à des onglets de menus</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.ajlsm.com/index.php?title=Impl%C3%A9mentation_de_formulaires_de_recherche_%22fulltext%22_incorpor%C3%A9s_%C3%A0_des_onglets_de_menus&amp;diff=373"/>
		<updated>2012-05-14T12:34:46Z</updated>

		<summary type="html">&lt;p&gt;Pdechandol : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
L&#039;objectif est de créer, dans Pleade, un menu à onglets contenant des formulaires de recherche &amp;quot;fulltext&amp;quot; filtrés.&amp;lt;br /&amp;gt;&lt;br /&gt;
Chaque onglet est soit non-filtré, soit filtré sur le même champ de recherche avec une valeur différente.&amp;lt;br /&amp;gt;&lt;br /&gt;
Les onglets sont générés dynamiquement à partir des valeurs indexées pour le champ de recherche utilisé pour le filtre.&lt;br /&gt;
&lt;br /&gt;
{{important|Cette implémentation est pour le moment mise en place dans le projet {{Pleade}} pour [[Doc/BM-Grenoble|BM-Grenoble]].&amp;lt;br /&amp;gt;&lt;br /&gt;
Sa généralisation et introduction dans Pleade Libre devra être étudiée ultérieurement.&amp;lt;br /&amp;gt;&lt;br /&gt;
Elle sous-entend un gros travail d&#039;adaptation et de généralisation, qui n&#039;est pas fait pour l&#039;instant.}}&lt;br /&gt;
&lt;br /&gt;
== Configuration du menu dans Pleade  ==&lt;br /&gt;
Dans Pleade, c&#039;est le fichier {{path|{{var|$ROOT_PLEADE}}/module-eadeac/conf/menus.xconf}} qui permet de configurer les menus affichés dans les pages.&amp;lt;br /&amp;gt;&lt;br /&gt;
On introduit la configuration du nouveau menu à onglets dans ce fichier avec le fragment suivant :&lt;br /&gt;
&lt;br /&gt;
=== Configuration dans menus.xconf ===&lt;br /&gt;
&lt;br /&gt;
==== Fragment XML ====&lt;br /&gt;
Ci-dessous le fragment XML définissant le système d&#039;onglets dans le menu&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;menu type=&amp;quot;htoptabs&amp;quot; id=&amp;quot;htoptabs&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Définition de la liste des onglets, chacun contenant un formulaire embarqué --&amp;gt;&lt;br /&gt;
		&amp;lt;item type=&amp;quot;list&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;!--+ &lt;br /&gt;
			| Les noeuds &amp;quot;tab&amp;quot; et &amp;quot;tab-repeat&amp;quot; ont les mêmes attributs optionnels :&lt;br /&gt;
			| @field : champ de filtrage si l&#039;on souhaite appliquer un filtre dans le formulaire&lt;br /&gt;
			| @value : valeur de filtrage&lt;br /&gt;
			+--&amp;gt;&lt;br /&gt;
		&amp;lt;tab field=&amp;quot;&amp;quot; value=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Label de l&#039;onglet à générer --&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;&lt;br /&gt;
				&amp;lt;i18n:text key=&amp;quot;menu-search-tabs.simple&amp;quot;&amp;gt;toutes bibliothèques&amp;lt;/i18n:text&amp;gt;&lt;br /&gt;
			&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;!--+&lt;br /&gt;
				| Définition du formulaire embarqué dans l&#039;onglet :&lt;br /&gt;
				| @type : &amp;quot;form-embedded&amp;quot; obligatoire&lt;br /&gt;
				| @ref : nom du formulaire à générer pour l&#039;embarquer dans l&#039;onglet. On doit avoir un fichier &amp;lt;nom&amp;gt;.xconf correspondant&lt;br /&gt;
				| @filtered-by-field : (yes | no) : indique si le formulaire doit être filtré par un champ spécifié dans ce menu.&lt;br /&gt;
				| Si on souhaite filtrer, le filtre est récupéré dans les attributs du noeud &amp;quot;tab&amp;quot; parent. &lt;br /&gt;
				+--&amp;gt;&lt;br /&gt;
			&amp;lt;item id=&amp;quot;search-simple&amp;quot; type=&amp;quot;form-embedded&amp;quot; ref=&amp;quot;bmg-categorie&amp;quot; filtered-by-field=&amp;quot;no&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/tab&amp;gt;&lt;br /&gt;
		&amp;lt;!--+&lt;br /&gt;
			| Définition d&#039;un onglet répété :&lt;br /&gt;
			| @field : nom du champ de filtrage éventuel du formulaire embarqué. Un onglet sera généré pour chaque valeur d&#039;index de ce champ.&lt;br /&gt;
			| @base : nom de la base de documents dans laquelle indexée, utilisé pour aller récupérer les valeurs indexées pour le champ.&lt;br /&gt;
			+--&amp;gt;&lt;br /&gt;
		&amp;lt;tab-repeat field=&amp;quot;categorie&amp;quot; base=&amp;quot;BMG&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- REMARK : le label affiché pour l&#039;onglet est généré automatiquement à partir des valeurs indexées pour le champ --&amp;gt;&lt;br /&gt;
			&amp;lt;!--+&lt;br /&gt;
				| Définition des formulaires embarqués dans les onglets répétés :&lt;br /&gt;
				| @type : &amp;quot;form-embedded&amp;quot; obligatoire&lt;br /&gt;
				| @ref : nom du formulaire à générer pour l&#039;embarquer dans l&#039;onglet. On doit avoir un fichier &amp;lt;nom&amp;gt;.xconf correspondant&lt;br /&gt;
				| @filtered-by-field : (yes | no) : indique si le formulaire doit être filtré par un champ spécifié dans ce menu.&lt;br /&gt;
				| Si on souhaite filtrer, le filtre est porte sur le champ &amp;quot;field&amp;quot; défini dans le noeud &amp;quot;tab-repeat&amp;quot; parent.&lt;br /&gt;
				| La valeur de filtre est la valeur d&#039;index utilisé pour l&#039;onglet.&lt;br /&gt;
				+--&amp;gt;&lt;br /&gt;
			&amp;lt;item id=&amp;quot;search-categorie&amp;quot; type=&amp;quot;form-embedded&amp;quot; ref=&amp;quot;bmg-categorie&amp;quot; filtered-by-field=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/tab-repeat&amp;gt;&lt;br /&gt;
	&amp;lt;/item&amp;gt;		&lt;br /&gt;
&amp;lt;/menu&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Explications et spécifications ====&lt;br /&gt;
Le menu est défini comme les autres menus par un noeud {{tag|menu}} caractérisé par les attributs {{attr|id}} et {{attr|type}}.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ces attributs sont utilisés par la feuille de style XSL {{path|{{var|$ROOT_PLEADE}}/module-eadeac/xsl/search.xsl}} pour associer la configuration du menu au template dédié à son affichage dans les templates de pages Pleade.&lt;br /&gt;
&lt;br /&gt;
Ce menu contient un unique noeud {{tag|item}} définissant le menu à onglets que nous souhaitons construire.&amp;lt;br /&amp;gt;&lt;br /&gt;
Cet item est caractérisé par l&#039;attribut {{attr|type}} avec la valeur spécifique {{cmd|&amp;quot;list&amp;quot;}} dédiée à la définition d&#039;un menu à entrées multiples affichées sous forme d&#039;onglets.&lt;br /&gt;
&lt;br /&gt;
Les onglets du menu sont définis par des noeuds :&lt;br /&gt;
* {{tag|tab}} pour déclarer un unique onglet&lt;br /&gt;
* {{tag|tab-repeat}} pour déclarer des onglets répétés construits suivant le mécanisme suivant : les onglets sont construits dynamiquement à partir des valeurs indexées pour un champ de la base de documents.&lt;br /&gt;
&lt;br /&gt;
Un noeud {{tag|tab}} a les attributs optionnels suivants, qui permettent de caractériser le filtre à appliquer dans le formulaire incorporé :&lt;br /&gt;
*  {{attr|field}} : contient le nom du champ de filtrage&lt;br /&gt;
*  {{attr|value}} : contient la valeur à appliquer au filtre&lt;br /&gt;
&lt;br /&gt;
Un noeud {{tag|tab-repeat}} a les attributs optionnels suivants, qui permettent de caractériser le filtre à appliquer dans le formulaire incorporé à chaque onglet :&lt;br /&gt;
*  {{attr|field}} : contient le nom du champ de filtrage&lt;br /&gt;
*  {{attr|base}} : le nom de la base de documents, utilisée pour récupérer les valeurs d&#039;index du champ de filtrage&lt;br /&gt;
{{remarque|La valeur à appliquer au filtre est obligatoirement la valeur d&#039;index du champ correspondant à l&#039;onglet.}}&lt;br /&gt;
&lt;br /&gt;
Un noeud {{tag|tab}} ou {{tag|tab-repeat}} peut contenir les noeuds suivants :&lt;br /&gt;
* {{tag|label}} (optionnel) permettant de définir le libellé cliquable de l&#039;onglet. Ce noeud doit généralement inclure l&#039;appel à une clé i18n, sur le même modèle que tous les autres éléments de menus. Ce noeud n&#039;est pas présent dans les noeuds {{tag|tab-repeat}}. En effet, dans ce cas, les libellés des onglets sont générés dynamiquement pour y faire figurer les valeurs indexées pour le champ de définition des onglets.&lt;br /&gt;
* {{tag|item}} permettant de définir le formulaire construit dynamiquement qui sera incorporé dans l&#039;onglet&lt;br /&gt;
&lt;br /&gt;
Le noeud {{tag|item}} définissant le formulaire de recherche embarqué dans l&#039;onglet est défini par les attributs suivants :&lt;br /&gt;
* {{attr|id}} : un identifiant sur lequel seront construits les IDs nécessaires à la gestion JS des onglets&lt;br /&gt;
* {{attr|type}} : obligatoirement &amp;quot;form-embedded&amp;quot;&lt;br /&gt;
* {{attr|ref}} : le nom du formulaire incorporé dans l&#039;onglet. Ce formulaire est défini par le fichier {{path|{{var|$ROOT_PLEADE}}/module-eadeac/conf/search-forms/nom_formulaire.xconf}} &lt;br /&gt;
* {{attr|filtered-by-field}} : (yes | no) indique si le formulaire incorporé doit être filtré ou pas. Si un filtre doit être appliqué, les paramètres du filtre sont récupérés dans le noeud parent {{tag|tab}} ou {{tag|tab-repeat}} &lt;br /&gt;
&lt;br /&gt;
=== Génération dynamique du menu à onglets ===&lt;br /&gt;
&lt;br /&gt;
La génération des menus configurés dans le fichier {{path|{{var|$ROOT_PLEADE}}/module-eadeac/conf/menus.xconf}} est prise en charge par la feuille de style XSL {{path|{{var|$ROOT_PLEADE}}/commons/xsl/pleade-menus.xsl}}.&amp;lt;br /&amp;gt;&lt;br /&gt;
Les templates dédiés à la génération du menu à onglets incorporant des formulaires de recherche sont caractérisés par l&#039;attribut {{attr|mode}} avec la valeur  {{cmd|&amp;quot;import-form&amp;quot;}}. &amp;lt;br /&amp;gt;&lt;br /&gt;
Ces templates sont en charge de créer les {{tag|div}} HTML, qui recevront le contenu des formulaires incorporés dans les différents onglets.&amp;lt;br/&amp;gt;&lt;br /&gt;
Le contenu HTML des formulaires de recherche sera généré dynamiquement et introduit par AJAX dans les {{tag|div}} prévus.&lt;br /&gt;
&lt;br /&gt;
=== Génération dynamique des formulaires embarqués ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:BM-Grenoble]]&lt;br /&gt;
[[category:Pleade]]&lt;br /&gt;
[[category:Menu]]&lt;br /&gt;
[[category:Formulaire]]&lt;/div&gt;</summary>
		<author><name>Pdechandol</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.ajlsm.com/index.php?title=Impl%C3%A9mentation_de_formulaires_de_recherche_%22fulltext%22_incorpor%C3%A9s_%C3%A0_des_onglets_de_menus&amp;diff=372</id>
		<title>Implémentation de formulaires de recherche &quot;fulltext&quot; incorporés à des onglets de menus</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.ajlsm.com/index.php?title=Impl%C3%A9mentation_de_formulaires_de_recherche_%22fulltext%22_incorpor%C3%A9s_%C3%A0_des_onglets_de_menus&amp;diff=372"/>
		<updated>2012-05-14T09:55:08Z</updated>

		<summary type="html">&lt;p&gt;Pdechandol : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
L&#039;objectif est de créer, dans Pleade, un menu à onglets contenant des formulaires de recherche &amp;quot;fulltext&amp;quot; filtrés.&amp;lt;br /&amp;gt;&lt;br /&gt;
Chaque onglet est soit non-filtré, soit filtré sur le même champ de recherche avec une valeur différente.&amp;lt;br /&amp;gt;&lt;br /&gt;
Les onglets sont générés dynamiquement à partir des valeurs indexées pour le champ de recherche utilisé pour le filtre.&lt;br /&gt;
&lt;br /&gt;
{{important|Cette implémentation est pour le moment mise en place dans le projet {{Pleade}} pour [[Doc/BM-Grenoble|BM-Grenoble]].&amp;lt;br /&amp;gt;&lt;br /&gt;
Sa généralisation et introduction dans Pleade Libre devra être étudiée ultérieurement.&amp;lt;br /&amp;gt;&lt;br /&gt;
Elle sous-entend un gros travail d&#039;adaptation et de généralisation, qui n&#039;est pas fait pour l&#039;instant.}}&lt;br /&gt;
&lt;br /&gt;
== Configuration du menu dans Pleade  ==&lt;br /&gt;
Dans Pleade, c&#039;est le fichier {{path|{{var|$ROOT_PLEADE}}/module-eadeac/conf/menus.xconf}} qui permet de configurer les menus affichés dans les pages.&amp;lt;br /&amp;gt;&lt;br /&gt;
On introduit la configuration du nouveau menu à onglets dans ce fichier avec le fragment suivant :&lt;br /&gt;
&lt;br /&gt;
=== Configuration dans menus.xconf ===&lt;br /&gt;
&lt;br /&gt;
==== Fragment XML ====&lt;br /&gt;
Ci-dessous le fragment XML définissant le système d&#039;onglets dans le menu&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;menu type=&amp;quot;htoptabs&amp;quot; id=&amp;quot;htoptabs&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Définition de la liste des onglets, chacun contenant un formulaire embarqué --&amp;gt;&lt;br /&gt;
		&amp;lt;item type=&amp;quot;list&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;!--+ &lt;br /&gt;
			| Les noeuds &amp;quot;tab&amp;quot; et &amp;quot;tab-repeat&amp;quot; ont les mêmes attributs optionnels :&lt;br /&gt;
			| @field : champ de filtrage si l&#039;on souhaite appliquer un filtre dans le formulaire&lt;br /&gt;
			| @value : valeur de filtrage&lt;br /&gt;
			+--&amp;gt;&lt;br /&gt;
		&amp;lt;tab field=&amp;quot;&amp;quot; value=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Label de l&#039;onglet à générer --&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;&lt;br /&gt;
				&amp;lt;i18n:text key=&amp;quot;menu-search-tabs.simple&amp;quot;&amp;gt;toutes bibliothèques&amp;lt;/i18n:text&amp;gt;&lt;br /&gt;
			&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;!--+&lt;br /&gt;
				| Définition du formulaire embarqué dans l&#039;onglet :&lt;br /&gt;
				| @type : &amp;quot;form-embedded&amp;quot; obligatoire&lt;br /&gt;
				| @ref : nom du formulaire à générer pour l&#039;embarquer dans l&#039;onglet. On doit avoir un fichier &amp;lt;nom&amp;gt;.xconf correspondant&lt;br /&gt;
				| @filtered-by-field : (yes | no) : indique si le formulaire doit être filtré par un champ spécifié dans ce menu.&lt;br /&gt;
				| Si on souhaite filtrer, le filtre est récupéré dans les attributs du noeud &amp;quot;tab&amp;quot; parent. &lt;br /&gt;
				+--&amp;gt;&lt;br /&gt;
			&amp;lt;item id=&amp;quot;search-simple&amp;quot; type=&amp;quot;form-embedded&amp;quot; ref=&amp;quot;bmg-categorie&amp;quot; filtered-by-field=&amp;quot;no&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/tab&amp;gt;&lt;br /&gt;
		&amp;lt;!--+&lt;br /&gt;
			| Définition d&#039;un onglet répété :&lt;br /&gt;
			| @field : nom du champ de filtrage éventuel du formulaire embarqué. Un onglet sera généré pour chaque valeur d&#039;index de ce champ.&lt;br /&gt;
			| @base : nom de la base de documents dans laquelle indexée, utilisé pour aller récupérer les valeurs indexées pour le champ.&lt;br /&gt;
			+--&amp;gt;&lt;br /&gt;
		&amp;lt;tab-repeat field=&amp;quot;categorie&amp;quot; base=&amp;quot;BMG&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- REMARK : le label affiché pour l&#039;onglet est généré automatiquement à partir des valeurs indexées pour le champ --&amp;gt;&lt;br /&gt;
			&amp;lt;!--+&lt;br /&gt;
				| Définition des formulaires embarqués dans les onglets répétés :&lt;br /&gt;
				| @type : &amp;quot;form-embedded&amp;quot; obligatoire&lt;br /&gt;
				| @ref : nom du formulaire à générer pour l&#039;embarquer dans l&#039;onglet. On doit avoir un fichier &amp;lt;nom&amp;gt;.xconf correspondant&lt;br /&gt;
				| @filtered-by-field : (yes | no) : indique si le formulaire doit être filtré par un champ spécifié dans ce menu.&lt;br /&gt;
				| Si on souhaite filtrer, le filtre est porte sur le champ &amp;quot;field&amp;quot; défini dans le noeud &amp;quot;tab-repeat&amp;quot; parent.&lt;br /&gt;
				| La valeur de filtre est la valeur d&#039;index utilisé pour l&#039;onglet.&lt;br /&gt;
				+--&amp;gt;&lt;br /&gt;
			&amp;lt;item id=&amp;quot;search-categorie&amp;quot; type=&amp;quot;form-embedded&amp;quot; ref=&amp;quot;bmg-categorie&amp;quot; filtered-by-field=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/tab-repeat&amp;gt;&lt;br /&gt;
	&amp;lt;/item&amp;gt;		&lt;br /&gt;
&amp;lt;/menu&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Explications et spécifications ====&lt;br /&gt;
Le menu est défini comme les autres menus par un noeud {{tag|menu}} caractérisé par les attributs {{attr|id}} et {{attr|type}}.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ces attributs sont utilisés par la feuille de style XSL {{path|/module-eadeac/xsl/search.xsl}} pour associer la configuration du menu au template dédié à son affichage dans les templates de pages Pleade.&lt;br /&gt;
&lt;br /&gt;
Ce menu contient un unique noeud {{tag|item}} définissant le menu à onglets que nous souhaitons construire.&amp;lt;br /&amp;gt;&lt;br /&gt;
Cet item est caractérisé par l&#039;attribut {{attr|type}} avec la valeur spécifique {{cmd|&amp;quot;list&amp;quot;}} dédiée à la définition d&#039;un menu à entrées multiples affichées sous forme d&#039;onglets.&lt;br /&gt;
&lt;br /&gt;
Les onglets du menu sont définis par des noeuds :&lt;br /&gt;
* {{tag|tab}} pour déclarer un unique onglet&lt;br /&gt;
* {{tag|tab-repeat}} pour déclarer des onglets répétés construits suivant le mécanisme suivant : les onglets sont construits dynamiquement à partir des valeurs indexées pour un champ de la base de documents.&lt;br /&gt;
&lt;br /&gt;
Un noeud {{tag|tab}} a les attributs optionnels suivants, qui permettent de caractériser le filtre à appliquer dans le formulaire incorporé :&lt;br /&gt;
*  {{attr|field}} : contient le nom du champ de filtrage&lt;br /&gt;
*  {{attr|value}} : contient la valeur à appliquer au filtre&lt;br /&gt;
&lt;br /&gt;
Un noeud {{tag|tab-repeat}} a les attributs optionnels suivants, qui permettent de caractériser le filtre à appliquer dans le formulaire incorporé à chaque onglet :&lt;br /&gt;
*  {{attr|field}} : contient le nom du champ de filtrage&lt;br /&gt;
*  {{attr|base}} : le nom de la base de documents, utilisée pour récupérer les valeurs d&#039;index du champ de filtrage&lt;br /&gt;
{{remarque|La valeur à appliquer au filtre est obligatoirement la valeur d&#039;index du champ correspondant à l&#039;onglet.}}&lt;br /&gt;
&lt;br /&gt;
Un noeud {{tag|tab}} ou {{tag|tab-repeat}} peut contenir les noeuds suivants :&lt;br /&gt;
* {{tag|label}} (optionnel) permettant de définir le libellé cliquable de l&#039;onglet. Ce noeud doit généralement inclure l&#039;appel à une clé i18n, sur le même modèle que tous les autres éléments de menus. Ce noeud n&#039;est pas présent dans les noeuds {{tag|tab-repeat}}. En effet, dans ce cas, les libellés des onglets sont générés dynamiquement pour y faire figurer les valeurs indexées pour le champ de définition des onglets.&lt;br /&gt;
* {{tag|item}} permettant de définir le formulaire construit dynamiquement qui sera incorporé dans l&#039;onglet&lt;br /&gt;
&lt;br /&gt;
Le noeud {{tag|item}} définissant le formulaire de recherche embarqué dans l&#039;onglet est défini par les attributs suivants :&lt;br /&gt;
* {{attr|id}} : un identifiant sur lequel seront construits les IDs nécessaires à la gestion JS des onglets&lt;br /&gt;
* {{attr|type}} : obligatoirement &amp;quot;form-embedded&amp;quot;&lt;br /&gt;
* {{attr|ref}} : le nom du formulaire incorporé dans l&#039;onglet. Ce formulaire est défini par le fichier {{path|/module-eadeac/conf/search-forms/nom_formulaire.xconf}}&lt;br /&gt;
* {{attr|filtered-by-field}} : (yes | no) indique si le formulaire incorporé doit être filtré ou pas. Si un filtre doit être appliqué, les paramètres du filtre sont récupérés dans le noeud parent {{tag|tab}} ou {{tag|tab-repeat}} &lt;br /&gt;
&lt;br /&gt;
=== Génération dynamique du menu à onglets ===&lt;br /&gt;
&lt;br /&gt;
La génération des menus configurés dans le fichier {{path|{{var|$ROOT_PLEADE}}/module-eadeac/conf/menus.xconf}} est prise en charge par la feuille de style XSL {{path|/commons/xsl/pleade-menus.xsl}}.&amp;lt;br /&amp;gt;&lt;br /&gt;
Les templates dédiés à la génération du menu à onglets incorporant des formulaires de recherche sont caractérisés par l&#039;attribut {{attr|mode}} avec la valeur  {{cmd|&amp;quot;import-form&amp;quot;}}&lt;br /&gt;
&lt;br /&gt;
=== Génération dynamique des formulaires embarqués ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:BM-Grenoble]]&lt;br /&gt;
[[category:Pleade]]&lt;br /&gt;
[[category:Menu]]&lt;br /&gt;
[[category:Formulaire]]&lt;/div&gt;</summary>
		<author><name>Pdechandol</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.ajlsm.com/index.php?title=Impl%C3%A9mentation_de_formulaires_de_recherche_%22fulltext%22_incorpor%C3%A9s_%C3%A0_des_onglets_de_menus&amp;diff=371</id>
		<title>Implémentation de formulaires de recherche &quot;fulltext&quot; incorporés à des onglets de menus</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.ajlsm.com/index.php?title=Impl%C3%A9mentation_de_formulaires_de_recherche_%22fulltext%22_incorpor%C3%A9s_%C3%A0_des_onglets_de_menus&amp;diff=371"/>
		<updated>2012-05-14T09:49:45Z</updated>

		<summary type="html">&lt;p&gt;Pdechandol : /* Génération dynamique du menu à onglets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
L&#039;objectif est de créer, dans Pleade, un menu à onglets contenant des formulaires de recherche &amp;quot;fulltext&amp;quot; filtrés.&amp;lt;br /&amp;gt;&lt;br /&gt;
Chaque onglet est soit non-filtré, soit filtré sur le même champ de recherche avec une valeur différente.&amp;lt;br /&amp;gt;&lt;br /&gt;
Les onglets sont générés dynamiquement à partir des valeurs indexées pour le champ de recherche utilisé pour le filtre.&lt;br /&gt;
&lt;br /&gt;
{{important|Cette implémentation est pour le moment mise en place dans le projet {{Pleade}} pour [[Doc/BM-Grenoble|BM-Grenoble]].&amp;lt;br /&amp;gt;&lt;br /&gt;
Sa généralisation et introduction dans Pleade Libre devra être étudiée ultérieurement.&amp;lt;br /&amp;gt;&lt;br /&gt;
Elle sous-entend un gros travail d&#039;adaptation et de généralisation, qui n&#039;est pas fait pour l&#039;instant.}}&lt;br /&gt;
&lt;br /&gt;
== Configuration du menu dans Pleade  ==&lt;br /&gt;
Dans Pleade, c&#039;est le fichier {{path|{{var|$ROOT_PLEADE}}/module-eadeac/conf/menus.xconf}} qui permet de configurer les menus affichés dans les pages.&amp;lt;br /&amp;gt;&lt;br /&gt;
On introduit la configuration du nouveau menu à onglets dans ce fichier avec le fragment suivant :&lt;br /&gt;
&lt;br /&gt;
=== Configuration dans menus.xconf ===&lt;br /&gt;
&lt;br /&gt;
==== Fragment XML ====&lt;br /&gt;
Ci-dessous le fragment XML définissant le système d&#039;onglets dans le menu&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;menu type=&amp;quot;htoptabs&amp;quot; id=&amp;quot;htoptabs&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Définition de la liste des onglets, chacun contenant un formulaire embarqué --&amp;gt;&lt;br /&gt;
		&amp;lt;item type=&amp;quot;list&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;!--+ &lt;br /&gt;
			| Les noeuds &amp;quot;tab&amp;quot; et &amp;quot;tab-repeat&amp;quot; ont les mêmes attributs optionnels :&lt;br /&gt;
			| @field : champ de filtrage si l&#039;on souhaite appliquer un filtre dans le formulaire&lt;br /&gt;
			| @value : valeur de filtrage&lt;br /&gt;
			+--&amp;gt;&lt;br /&gt;
		&amp;lt;tab field=&amp;quot;&amp;quot; value=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Label de l&#039;onglet à générer --&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;&lt;br /&gt;
				&amp;lt;i18n:text key=&amp;quot;menu-search-tabs.simple&amp;quot;&amp;gt;toutes bibliothèques&amp;lt;/i18n:text&amp;gt;&lt;br /&gt;
			&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;!--+&lt;br /&gt;
				| Définition du formulaire embarqué dans l&#039;onglet :&lt;br /&gt;
				| @type : &amp;quot;form-embedded&amp;quot; obligatoire&lt;br /&gt;
				| @ref : nom du formulaire à générer pour l&#039;embarquer dans l&#039;onglet. On doit avoir un fichier &amp;lt;nom&amp;gt;.xconf correspondant&lt;br /&gt;
				| @filtered-by-field : (yes | no) : indique si le formulaire doit être filtré par un champ spécifié dans ce menu.&lt;br /&gt;
				| Si on souhaite filtrer, le filtre est récupéré dans les attributs du noeud &amp;quot;tab&amp;quot; parent. &lt;br /&gt;
				+--&amp;gt;&lt;br /&gt;
			&amp;lt;item id=&amp;quot;search-simple&amp;quot; type=&amp;quot;form-embedded&amp;quot; ref=&amp;quot;bmg-categorie&amp;quot; filtered-by-field=&amp;quot;no&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/tab&amp;gt;&lt;br /&gt;
		&amp;lt;!--+&lt;br /&gt;
			| Définition d&#039;un onglet répété :&lt;br /&gt;
			| @field : nom du champ de filtrage éventuel du formulaire embarqué. Un onglet sera généré pour chaque valeur d&#039;index de ce champ.&lt;br /&gt;
			| @base : nom de la base de documents dans laquelle indexée, utilisé pour aller récupérer les valeurs indexées pour le champ.&lt;br /&gt;
			+--&amp;gt;&lt;br /&gt;
		&amp;lt;tab-repeat field=&amp;quot;categorie&amp;quot; base=&amp;quot;BMG&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- REMARK : le label affiché pour l&#039;onglet est généré automatiquement à partir des valeurs indexées pour le champ --&amp;gt;&lt;br /&gt;
			&amp;lt;!--+&lt;br /&gt;
				| Définition des formulaires embarqués dans les onglets répétés :&lt;br /&gt;
				| @type : &amp;quot;form-embedded&amp;quot; obligatoire&lt;br /&gt;
				| @ref : nom du formulaire à générer pour l&#039;embarquer dans l&#039;onglet. On doit avoir un fichier &amp;lt;nom&amp;gt;.xconf correspondant&lt;br /&gt;
				| @filtered-by-field : (yes | no) : indique si le formulaire doit être filtré par un champ spécifié dans ce menu.&lt;br /&gt;
				| Si on souhaite filtrer, le filtre est porte sur le champ &amp;quot;field&amp;quot; défini dans le noeud &amp;quot;tab-repeat&amp;quot; parent.&lt;br /&gt;
				| La valeur de filtre est la valeur d&#039;index utilisé pour l&#039;onglet.&lt;br /&gt;
				+--&amp;gt;&lt;br /&gt;
			&amp;lt;item id=&amp;quot;search-categorie&amp;quot; type=&amp;quot;form-embedded&amp;quot; ref=&amp;quot;bmg-categorie&amp;quot; filtered-by-field=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/tab-repeat&amp;gt;&lt;br /&gt;
	&amp;lt;/item&amp;gt;		&lt;br /&gt;
&amp;lt;/menu&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Explications et spécifications ====&lt;br /&gt;
Le menu est défini comme les autres menus par un noeud {{tag|menu}} caractérisé par les attributs {{attr|id}} et {{attr|type}}.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ces attributs sont utilisés par la feuille de style XSL {{path|/module-eadeac/xsl/search.xsl}} pour associer la configuration du menu au template dédié à son affichage dans les templates de pages Pleade.&lt;br /&gt;
&lt;br /&gt;
Ce menu contient un unique noeud {{tag|item}} définissant le menu à onglets que nous souhaitons construire.&amp;lt;br /&amp;gt;&lt;br /&gt;
Cet item est caractérisé par l&#039;attribut {{attr|type}} avec la valeur spécifique {{cmd|&amp;quot;list&amp;quot;}} dédiée à la définition d&#039;un menu à entrées multiples affichées sous forme d&#039;onglets.&lt;br /&gt;
&lt;br /&gt;
Les onglets du menu sont définis par des noeuds :&lt;br /&gt;
* {{tag|tab}} pour déclarer un unique onglet&lt;br /&gt;
* {{tag|tab-repeat}} pour déclarer des onglets répétés construits suivant le mécanisme suivant : les onglets sont construits dynamiquement à partir des valeurs indexées pour un champ de la base de documents.&lt;br /&gt;
&lt;br /&gt;
Un noeud {{tag|tab}} a les attributs optionnels suivants, qui permettent de caractériser le filtre à appliquer dans le formulaire incorporé :&lt;br /&gt;
*  {{attr|field}} : contient le nom du champ de filtrage&lt;br /&gt;
*  {{attr|value}} : contient la valeur à appliquer au filtre&lt;br /&gt;
&lt;br /&gt;
Un noeud {{tag|tab-repeat}} a les attributs optionnels suivants, qui permettent de caractériser le filtre à appliquer dans le formulaire incorporé à chaque onglet :&lt;br /&gt;
*  {{attr|field}} : contient le nom du champ de filtrage&lt;br /&gt;
*  {{attr|base}} : le nom de la base de documents, utilisée pour récupérer les valeurs d&#039;index du champ de filtrage&lt;br /&gt;
{{remarque|La valeur à appliquer au filtre est obligatoirement la valeur d&#039;index du champ correspondant à l&#039;onglet.}}&lt;br /&gt;
&lt;br /&gt;
Un noeud {{tag|tab}} ou {{tag|tab-repeat}} peut contenir les noeuds suivants :&lt;br /&gt;
* {{tag|label}} (optionnel) permettant de définir le libellé cliquable de l&#039;onglet. Ce noeud doit généralement inclure l&#039;appel à une clé i18n, sur le même modèle que tous les autres éléments de menus. Ce noeud n&#039;est pas présent dans les noeuds {{tag|tab-repeat}}. En effet, dans ce cas, les libellés des onglets sont générés dynamiquement pour y faire figurer les valeurs indexées pour le champ de définition des onglets.&lt;br /&gt;
* {{tag|item}} permettant de définir le formulaire construit dynamiquement qui sera incorporé dans l&#039;onglet&lt;br /&gt;
&lt;br /&gt;
Le noeud {{tag|item}} définissant le formulaire de recherche embarqué dans l&#039;onglet est défini par les attributs suivants :&lt;br /&gt;
* {{attr|id}} : un identifiant sur lequel seront construits les IDs nécessaires à la gestion JS des onglets&lt;br /&gt;
* {{attr|type}} : obligatoirement &amp;quot;form-embedded&amp;quot;&lt;br /&gt;
* {{attr|ref}} : le nom du formulaire incorporé dans l&#039;onglet. Ce formulaire est défini par le fichier {{path|/module-eadeac/conf/search-forms/nom_formulaire.xconf}}&lt;br /&gt;
* {{attr|filtered-by-field}} : (yes | no) indique si le formulaire incorporé doit être filtré ou pas. Si un filtre doit être appliqué, les paramètres du filtre sont récupérés dans le noeud parent {{tag|tab}} ou {{tag|tab-repeat}} &lt;br /&gt;
&lt;br /&gt;
=== Génération dynamique du menu à onglets ===&lt;br /&gt;
&lt;br /&gt;
La génération des menus configurés dans le fichier TOCONTINUE&lt;br /&gt;
&lt;br /&gt;
=== Génération dynamique des formulaires embarqués ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:BM-Grenoble]]&lt;br /&gt;
[[category:Pleade]]&lt;br /&gt;
[[category:Menu]]&lt;br /&gt;
[[category:Formulaire]]&lt;/div&gt;</summary>
		<author><name>Pdechandol</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.ajlsm.com/index.php?title=Impl%C3%A9mentation_de_formulaires_de_recherche_%22fulltext%22_incorpor%C3%A9s_%C3%A0_des_onglets_de_menus&amp;diff=296</id>
		<title>Implémentation de formulaires de recherche &quot;fulltext&quot; incorporés à des onglets de menus</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.ajlsm.com/index.php?title=Impl%C3%A9mentation_de_formulaires_de_recherche_%22fulltext%22_incorpor%C3%A9s_%C3%A0_des_onglets_de_menus&amp;diff=296"/>
		<updated>2012-05-04T14:41:49Z</updated>

		<summary type="html">&lt;p&gt;Pdechandol : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
L&#039;objectif est de créer, dans Pleade, un menu à onglets contenant des formulaires de recherche &amp;quot;fulltext&amp;quot; filtrés.&amp;lt;br /&amp;gt;&lt;br /&gt;
Chaque onglet est soit non-filtré, soit filtré sur le même champ de recherche avec une valeur différente.&amp;lt;br /&amp;gt;&lt;br /&gt;
Les onglets sont générés dynamiquement à partir des valeurs indexées pour le champ de recherche utilisé pour le filtre.&lt;br /&gt;
&lt;br /&gt;
{{important|Cette implémentation est pour le moment mise en place dans le projet {{Pleade}} pour [[Doc/BM-Grenoble|BM-Grenoble]].&amp;lt;br /&amp;gt;&lt;br /&gt;
Sa généralisation et introduction dans Pleade Libre devra être étudiée ultérieurement.&amp;lt;br /&amp;gt;&lt;br /&gt;
Elle sous-entend un gros travail d&#039;adaptation et de généralisation, qui n&#039;est pas fait pour l&#039;instant.}}&lt;br /&gt;
&lt;br /&gt;
== Configuration du menu dans Pleade  ==&lt;br /&gt;
Dans Pleade, c&#039;est le fichier {{path|{{var|$ROOT_PLEADE}}/module-eadeac/conf/menus.xconf}} qui permet de configurer les menus affichés dans les pages.&amp;lt;br /&amp;gt;&lt;br /&gt;
On introduit la configuration du nouveau menu à onglets dans ce fichier avec le fragment suivant :&lt;br /&gt;
&lt;br /&gt;
=== Configuration dans menus.xconf ===&lt;br /&gt;
&lt;br /&gt;
==== Fragment XML ====&lt;br /&gt;
Ci-dessous le fragment XML définissant le système d&#039;onglets dans le menu&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;menu type=&amp;quot;htoptabs&amp;quot; id=&amp;quot;htoptabs&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Définition de la liste des onglets, chacun contenant un formulaire embarqué --&amp;gt;&lt;br /&gt;
		&amp;lt;item type=&amp;quot;list&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;!--+ &lt;br /&gt;
			| Les noeuds &amp;quot;tab&amp;quot; et &amp;quot;tab-repeat&amp;quot; ont les mêmes attributs optionnels :&lt;br /&gt;
			| @field : champ de filtrage si l&#039;on souhaite appliquer un filtre dans le formulaire&lt;br /&gt;
			| @value : valeur de filtrage&lt;br /&gt;
			+--&amp;gt;&lt;br /&gt;
		&amp;lt;tab field=&amp;quot;&amp;quot; value=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Label de l&#039;onglet à générer --&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;&lt;br /&gt;
				&amp;lt;i18n:text key=&amp;quot;menu-search-tabs.simple&amp;quot;&amp;gt;toutes bibliothèques&amp;lt;/i18n:text&amp;gt;&lt;br /&gt;
			&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;!--+&lt;br /&gt;
				| Définition du formulaire embarqué dans l&#039;onglet :&lt;br /&gt;
				| @type : &amp;quot;form-embedded&amp;quot; obligatoire&lt;br /&gt;
				| @ref : nom du formulaire à générer pour l&#039;embarquer dans l&#039;onglet. On doit avoir un fichier &amp;lt;nom&amp;gt;.xconf correspondant&lt;br /&gt;
				| @filtered-by-field : (yes | no) : indique si le formulaire doit être filtré par un champ spécifié dans ce menu.&lt;br /&gt;
				| Si on souhaite filtrer, le filtre est récupéré dans les attributs du noeud &amp;quot;tab&amp;quot; parent. &lt;br /&gt;
				+--&amp;gt;&lt;br /&gt;
			&amp;lt;item id=&amp;quot;search-simple&amp;quot; type=&amp;quot;form-embedded&amp;quot; ref=&amp;quot;bmg-categorie&amp;quot; filtered-by-field=&amp;quot;no&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/tab&amp;gt;&lt;br /&gt;
		&amp;lt;!--+&lt;br /&gt;
			| Définition d&#039;un onglet répété :&lt;br /&gt;
			| @field : nom du champ de filtrage éventuel du formulaire embarqué. Un onglet sera généré pour chaque valeur d&#039;index de ce champ.&lt;br /&gt;
			| @base : nom de la base de documents dans laquelle indexée, utilisé pour aller récupérer les valeurs indexées pour le champ.&lt;br /&gt;
			+--&amp;gt;&lt;br /&gt;
		&amp;lt;tab-repeat field=&amp;quot;categorie&amp;quot; base=&amp;quot;BMG&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- REMARK : le label affiché pour l&#039;onglet est généré automatiquement à partir des valeurs indexées pour le champ --&amp;gt;&lt;br /&gt;
			&amp;lt;!--+&lt;br /&gt;
				| Définition des formulaires embarqués dans les onglets répétés :&lt;br /&gt;
				| @type : &amp;quot;form-embedded&amp;quot; obligatoire&lt;br /&gt;
				| @ref : nom du formulaire à générer pour l&#039;embarquer dans l&#039;onglet. On doit avoir un fichier &amp;lt;nom&amp;gt;.xconf correspondant&lt;br /&gt;
				| @filtered-by-field : (yes | no) : indique si le formulaire doit être filtré par un champ spécifié dans ce menu.&lt;br /&gt;
				| Si on souhaite filtrer, le filtre est porte sur le champ &amp;quot;field&amp;quot; défini dans le noeud &amp;quot;tab-repeat&amp;quot; parent.&lt;br /&gt;
				| La valeur de filtre est la valeur d&#039;index utilisé pour l&#039;onglet.&lt;br /&gt;
				+--&amp;gt;&lt;br /&gt;
			&amp;lt;item id=&amp;quot;search-categorie&amp;quot; type=&amp;quot;form-embedded&amp;quot; ref=&amp;quot;bmg-categorie&amp;quot; filtered-by-field=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/tab-repeat&amp;gt;&lt;br /&gt;
	&amp;lt;/item&amp;gt;		&lt;br /&gt;
&amp;lt;/menu&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Explications et spécifications ====&lt;br /&gt;
Le menu est défini comme les autres menus par un noeud {{tag|menu}} caractérisé par les attributs {{attr|id}} et {{attr|type}}.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ces attributs sont utilisés par la feuille de style XSL {{path|/module-eadeac/xsl/search.xsl}} pour associer la configuration du menu au template dédié à son affichage dans les templates de pages Pleade.&lt;br /&gt;
&lt;br /&gt;
Ce menu contient un unique noeud {{tag|item}} définissant le menu à onglets que nous souhaitons construire.&amp;lt;br /&amp;gt;&lt;br /&gt;
Cet item est caractérisé par l&#039;attribut {{attr|type}} avec la valeur spécifique {{cmd|&amp;quot;list&amp;quot;}} dédiée à la définition d&#039;un menu à entrées multiples affichées sous forme d&#039;onglets.&lt;br /&gt;
&lt;br /&gt;
Les onglets du menu sont définis par des noeuds :&lt;br /&gt;
* {{tag|tab}} pour déclarer un unique onglet&lt;br /&gt;
* {{tag|tab-repeat}} pour déclarer des onglets répétés construits suivant le mécanisme suivant : les onglets sont construits dynamiquement à partir des valeurs indexées pour un champ de la base de documents.&lt;br /&gt;
&lt;br /&gt;
Un noeud {{tag|tab}} a les attributs optionnels suivants, qui permettent de caractériser le filtre à appliquer dans le formulaire incorporé :&lt;br /&gt;
*  {{attr|field}} : contient le nom du champ de filtrage&lt;br /&gt;
*  {{attr|value}} : contient la valeur à appliquer au filtre&lt;br /&gt;
&lt;br /&gt;
Un noeud {{tag|tab-repeat}} a les attributs optionnels suivants, qui permettent de caractériser le filtre à appliquer dans le formulaire incorporé à chaque onglet :&lt;br /&gt;
*  {{attr|field}} : contient le nom du champ de filtrage&lt;br /&gt;
*  {{attr|base}} : le nom de la base de documents, utilisée pour récupérer les valeurs d&#039;index du champ de filtrage&lt;br /&gt;
{{remarque|La valeur à appliquer au filtre est obligatoirement la valeur d&#039;index du champ correspondant à l&#039;onglet.}}&lt;br /&gt;
&lt;br /&gt;
Un noeud {{tag|tab}} ou {{tag|tab-repeat}} peut contenir les noeuds suivants :&lt;br /&gt;
* {{tag|label}} (optionnel) permettant de définir le libellé cliquable de l&#039;onglet. Ce noeud doit généralement inclure l&#039;appel à une clé i18n, sur le même modèle que tous les autres éléments de menus. Ce noeud n&#039;est pas présent dans les noeuds {{tag|tab-repeat}}. En effet, dans ce cas, les libellés des onglets sont générés dynamiquement pour y faire figurer les valeurs indexées pour le champ de définition des onglets.&lt;br /&gt;
* {{tag|item}} permettant de définir le formulaire construit dynamiquement qui sera incorporé dans l&#039;onglet&lt;br /&gt;
&lt;br /&gt;
Le noeud {{tag|item}} définissant le formulaire de recherche embarqué dans l&#039;onglet est défini par les attributs suivants :&lt;br /&gt;
* {{attr|id}} : un identifiant sur lequel seront construits les IDs nécessaires à la gestion JS des onglets&lt;br /&gt;
* {{attr|type}} : obligatoirement &amp;quot;form-embedded&amp;quot;&lt;br /&gt;
* {{attr|ref}} : le nom du formulaire incorporé dans l&#039;onglet. Ce formulaire est défini par le fichier {{path|/module-eadeac/conf/search-forms/nom_formulaire.xconf}}&lt;br /&gt;
* {{attr|filtered-by-field}} : (yes | no) indique si le formulaire incorporé doit être filtré ou pas. Si un filtre doit être appliqué, les paramètres du filtre sont récupérés dans le noeud parent {{tag|tab}} ou {{tag|tab-repeat}} &lt;br /&gt;
&lt;br /&gt;
=== Génération dynamique du menu à onglets ===&lt;br /&gt;
&lt;br /&gt;
=== Génération dynamique des formulaires embarqués ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:BM-Grenoble]]&lt;br /&gt;
[[category:Pleade]]&lt;br /&gt;
[[category:Menu]]&lt;br /&gt;
[[category:Formulaire]]&lt;/div&gt;</summary>
		<author><name>Pdechandol</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.ajlsm.com/index.php?title=Impl%C3%A9mentation_de_formulaires_de_recherche_%22fulltext%22_incorpor%C3%A9s_%C3%A0_des_onglets_de_menus&amp;diff=275</id>
		<title>Implémentation de formulaires de recherche &quot;fulltext&quot; incorporés à des onglets de menus</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.ajlsm.com/index.php?title=Impl%C3%A9mentation_de_formulaires_de_recherche_%22fulltext%22_incorpor%C3%A9s_%C3%A0_des_onglets_de_menus&amp;diff=275"/>
		<updated>2012-05-04T13:00:35Z</updated>

		<summary type="html">&lt;p&gt;Pdechandol : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
L&#039;objectif est de créer, dans Pleade, un menu à onglets contenant des formulaires de recherche &amp;quot;fulltext&amp;quot; filtrés.&amp;lt;br /&amp;gt;&lt;br /&gt;
Chaque onglet est soit non-filtré, soit filtré sur le même champ de recherche avec une valeur différente.&amp;lt;br /&amp;gt;&lt;br /&gt;
Les onglets sont générés dynamiquement à partir des valeurs indexées pour le champ de recherche utilisé pour le filtre.&lt;br /&gt;
&lt;br /&gt;
{{important|Cette implémentation est pour le moment mise en place dans le projet {{Pleade}} pour [[Doc/BM-Grenoble|BM-Grenoble]].&amp;lt;br /&amp;gt;&lt;br /&gt;
Sa généralisation et introduction dans Pleade Libre devra être étudiée ultérieurement.&amp;lt;br /&amp;gt;&lt;br /&gt;
Elle sous-entend un gros travail d&#039;adaptation et de généralisation, qui n&#039;est pas fait pour l&#039;instant.}}&lt;br /&gt;
&lt;br /&gt;
== Configuration du menu dans Pleade  ==&lt;br /&gt;
Dans Pleade, c&#039;est le fichier {{path|{{var|$ROOT_PLEADE}}/module-eadeac/conf/menus.xconf}} qui permet de configurer les menus affichés dans les pages.&amp;lt;br /&amp;gt;&lt;br /&gt;
On introduit la configuration du nouveau menu à onglets dans ce fichier avec le fragment suivant :&lt;br /&gt;
&lt;br /&gt;
=== Configuration dans menus.xconf ===&lt;br /&gt;
&lt;br /&gt;
==== Fragment XML ====&lt;br /&gt;
Ci-dessous le fragment XML définissant le système d&#039;onglets dans le menu&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;menu type=&amp;quot;htoptabs&amp;quot; id=&amp;quot;htoptabs&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Définition de la liste des onglets, chacun contenant un formulaire embarqué --&amp;gt;&lt;br /&gt;
		&amp;lt;item type=&amp;quot;list&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;!--+ &lt;br /&gt;
			| Les noeuds &amp;quot;tab&amp;quot; et &amp;quot;tab-repeat&amp;quot; ont les mêmes attributs optionnels :&lt;br /&gt;
			| @field : champ de filtrage si l&#039;on souhaite appliquer un filtre dans le formulaire&lt;br /&gt;
			| @value : valeur de filtrage&lt;br /&gt;
			+--&amp;gt;&lt;br /&gt;
		&amp;lt;tab field=&amp;quot;&amp;quot; value=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Label de l&#039;onglet à générer --&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;&lt;br /&gt;
				&amp;lt;i18n:text key=&amp;quot;menu-search-tabs.simple&amp;quot;&amp;gt;toutes bibliothèques&amp;lt;/i18n:text&amp;gt;&lt;br /&gt;
			&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;!--+&lt;br /&gt;
				| Définition du formulaire embarqué dans l&#039;onglet :&lt;br /&gt;
				| @type : &amp;quot;form-embedded&amp;quot; obligatoire&lt;br /&gt;
				| @ref : nom du formulaire à générer pour l&#039;embarquer dans l&#039;onglet. On doit avoir un fichier &amp;lt;nom&amp;gt;.xconf correspondant&lt;br /&gt;
				| @filtered-by-field : (yes | no) : indique si le formulaire doit être filtré par un champ spécifié dans ce menu.&lt;br /&gt;
				| Si on souhaite filtrer, le filtre est récupéré dans les attributs du noeud &amp;quot;tab&amp;quot; parent. &lt;br /&gt;
				+--&amp;gt;&lt;br /&gt;
			&amp;lt;item id=&amp;quot;search-simple&amp;quot; type=&amp;quot;form-embedded&amp;quot; ref=&amp;quot;bmg-categorie&amp;quot; filtered-by-field=&amp;quot;no&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/tab&amp;gt;&lt;br /&gt;
		&amp;lt;!--+&lt;br /&gt;
			| Définition d&#039;un onglet répété :&lt;br /&gt;
			| @field : nom du champ de filtrage éventuel du formulaire embarqué. Un onglet sera généré pour chaque valeur d&#039;index de ce champ.&lt;br /&gt;
			| @base : nom de la base de documents dans laquelle indexée, utilisé pour aller récupérer les valeurs indexées pour le champ.&lt;br /&gt;
			+--&amp;gt;&lt;br /&gt;
		&amp;lt;tab-repeat field=&amp;quot;categorie&amp;quot; base=&amp;quot;BMG&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- REMARK : le label affiché pour l&#039;onglet est généré automatiquement à partir des valeurs indexées pour le champ --&amp;gt;&lt;br /&gt;
			&amp;lt;!--+&lt;br /&gt;
				| Définition des formulaires embarqués dans les onglets répétés :&lt;br /&gt;
				| @type : &amp;quot;form-embedded&amp;quot; obligatoire&lt;br /&gt;
				| @ref : nom du formulaire à générer pour l&#039;embarquer dans l&#039;onglet. On doit avoir un fichier &amp;lt;nom&amp;gt;.xconf correspondant&lt;br /&gt;
				| @filtered-by-field : (yes | no) : indique si le formulaire doit être filtré par un champ spécifié dans ce menu.&lt;br /&gt;
				| Si on souhaite filtrer, le filtre est porte sur le champ &amp;quot;field&amp;quot; défini dans le noeud &amp;quot;tab-repeat&amp;quot; parent.&lt;br /&gt;
				| La valeur de filtre est la valeur d&#039;index utilisé pour l&#039;onglet.&lt;br /&gt;
				+--&amp;gt;&lt;br /&gt;
			&amp;lt;item id=&amp;quot;search-categorie&amp;quot; type=&amp;quot;form-embedded&amp;quot; ref=&amp;quot;bmg-categorie&amp;quot; filtered-by-field=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/tab-repeat&amp;gt;&lt;br /&gt;
	&amp;lt;/item&amp;gt;		&lt;br /&gt;
&amp;lt;/menu&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Explications et spécifications ====&lt;br /&gt;
Le menu est défini comme les autres menus par un noeud {{cmd|&amp;lt;menu&amp;gt;}} caractérisé par les attributs {{cmd|@id}} et {{cmd|@type}}.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ces attributs sont utilisés par la feuille de style XSL {{path|/module-eadeac/xsl/search.xsl}} pour associer la configuration du menu au template dédié à son affichage dans les templates de pages Pleade.&lt;br /&gt;
&lt;br /&gt;
Ce menu contient un unique noeud {{cmd|&amp;lt;item&amp;gt;}} définissant le menu à onglets que nous souhaitons construire.&amp;lt;br /&amp;gt;&lt;br /&gt;
Cet item est caractérisé par l&#039;attribut {{cmd|@type}} avec la valeur spécifique {{cmd|&amp;quot;list&amp;quot;}} dédiée à la définition d&#039;un menu à entrées multiples affichées sous forme d&#039;onglets.&lt;br /&gt;
&lt;br /&gt;
Les onglets du menu sont définis par des noeuds :&lt;br /&gt;
* {{cmd|&amp;lt;tab&amp;gt;}} pour déclarer un unique onglet&lt;br /&gt;
* {{cmd|&amp;lt;tab-repeat&amp;gt;}} pour déclarer des onglets répétés construits suivant le mécanisme suivant : les onglets sont construits dynamiquement à partir des valeurs indexées pour un champ de la base de documents.&lt;br /&gt;
&lt;br /&gt;
Un noeud {{cmd|&amp;lt;tab&amp;gt;}} a les attributs optionnels suivants, qui permettent de caractériser le filtre à appliquer dans le formulaire incorporé :&lt;br /&gt;
*  {{cmd|@field}} : contient le nom du champ de filtrage&lt;br /&gt;
*  {{cmd|@value}} : contient la valeur à appliquer au filtre&lt;br /&gt;
&lt;br /&gt;
Un noeud {{cmd|&amp;lt;tab-repeat&amp;gt;}} a les attributs optionnels suivants, qui permettent de caractériser le filtre à appliquer dans le formulaire incorporé à chaque onglet :&lt;br /&gt;
*  {{cmd|@field}} : contient le nom du champ de filtrage&lt;br /&gt;
*  {{cmd|@base}} : le nom de la base de documents, utilisée pour récupérer les valeurs d&#039;index du champ de filtrage&lt;br /&gt;
{{remarque|La valeur à appliquer au filtre est obligatoirement la valeur d&#039;index du champ correspondant à l&#039;onglet.}}&lt;br /&gt;
&lt;br /&gt;
Un noeud {{cmd|&amp;lt;tab&amp;gt;}} ou {{cmd|&amp;lt;tab-repeat&amp;gt;}} peut contenir les noeuds suivants :&lt;br /&gt;
* {{cmd|&amp;lt;label&amp;gt;}} (optionnel) permettant de définir le libellé cliquable de l&#039;onglet. Ce noeud doit généralement inclure l&#039;appel à une clé i18n, sur le même modèle que tous les autres éléments de menus. Ce noeud n&#039;est pas présent dans les noeuds {{cmd|&amp;lt;tab-repeat&amp;gt;}}. En effet, dans ce cas, les libellés des onglets sont générés dynamiquement pour y faire figurer les valeurs indexées pour le champ de définition des onglets.&lt;br /&gt;
* {{cmd|&amp;lt;item&amp;gt;}} permettant de définir le formulaire construit dynamiquement qui sera incorporé dans l&#039;onglet&lt;br /&gt;
&lt;br /&gt;
Le noeud {{cmd|&amp;lt;item&amp;gt;}} définissant le formulaire de recherche embarqué dans l&#039;onglet est défini par les attributs suivants :&lt;br /&gt;
* {{cmd|@id}} : un identifiant sur lequel seront construits les IDs nécessaires à la gestion JS des onglets&lt;br /&gt;
* {{cmd|@type}} : obligatoirement &amp;quot;form-embedded&amp;quot;&lt;br /&gt;
* {{cmd|@ref}} : le nom du formulaire incorporé dans l&#039;onglet. Ce formulaire est défini par le fichier {{path|/module-eadeac/conf/search-forms/nom_formulaire.xconf}}&lt;br /&gt;
* {{cmd|@filtered-by-field}} : (yes | no) indique si le formulaire incorporé doit être filtré ou pas. Si un filtre doit être appliqué, les paramètres du filtre sont récupérés dans le noeud parent {{cmd|&amp;lt;tab&amp;gt;}} ou {{cmd|&amp;lt;tab-repeat&amp;gt;}} &lt;br /&gt;
&lt;br /&gt;
[[category:BM-Grenoble]]&lt;br /&gt;
[[category:Pleade]]&lt;br /&gt;
[[category:Menu]]&lt;br /&gt;
[[category:Formulaire]]&lt;/div&gt;</summary>
		<author><name>Pdechandol</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.ajlsm.com/index.php?title=Impl%C3%A9mentation_de_formulaires_de_recherche_%22fulltext%22_incorpor%C3%A9s_%C3%A0_des_onglets_de_menus&amp;diff=274</id>
		<title>Implémentation de formulaires de recherche &quot;fulltext&quot; incorporés à des onglets de menus</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.ajlsm.com/index.php?title=Impl%C3%A9mentation_de_formulaires_de_recherche_%22fulltext%22_incorpor%C3%A9s_%C3%A0_des_onglets_de_menus&amp;diff=274"/>
		<updated>2012-05-04T12:59:45Z</updated>

		<summary type="html">&lt;p&gt;Pdechandol : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
L&#039;objectif est de créer, dans Pleade, un menu à onglets contenant des formulaires de recherche &amp;quot;fulltext&amp;quot; filtrés.&amp;lt;br /&amp;gt;&lt;br /&gt;
Chaque onglet est soit non-filtré, soit filtré sur le même champ de recherche avec une valeur différente.&amp;lt;br /&amp;gt;&lt;br /&gt;
Les onglets sont générés dynamiquement à partir des valeurs indexées pour le champ de recherche utilisé pour le filtre.&lt;br /&gt;
&lt;br /&gt;
{{important|Cette implémentation est pour le moment mise en place dans le projet {{Pleade}} pour [[Doc/BM-Grenoble|BM-Grenoble]].&amp;lt;br /&amp;gt;&lt;br /&gt;
Sa généralisation et introduction dans Pleade Libre devra être étudiée ultérieurement.&amp;lt;br /&amp;gt;&lt;br /&gt;
Elle sous-entend un gros travail d&#039;adaptation et de généralisation, qui n&#039;est pas fait pour l&#039;instant.}}&lt;br /&gt;
&lt;br /&gt;
== Configuration du menu dans Pleade  ==&lt;br /&gt;
Dans Pleade, c&#039;est le fichier {{path|{{var|$ROOT_PLEADE}}/module-eadeac/conf/menus.xconf}} qui permet de configurer les menus affichés dans les pages.&amp;lt;br /&amp;gt;&lt;br /&gt;
On introduit la configuration du nouveau menu à onglets dans ce fichier avec le fragment suivant :&lt;br /&gt;
&lt;br /&gt;
=== Configuration dans menus.xconf ===&lt;br /&gt;
&lt;br /&gt;
==== Fragment XML ====&lt;br /&gt;
Ci-dessous le fragment XML définissant le système d&#039;onglets dans le menu&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;menu type=&amp;quot;htoptabs&amp;quot; id=&amp;quot;htoptabs&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Définition de la liste des onglets, chacun contenant un formulaire embarqué --&amp;gt;&lt;br /&gt;
		&amp;lt;item type=&amp;quot;list&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;!--+ &lt;br /&gt;
			| Les noeuds &amp;quot;tab&amp;quot; et &amp;quot;tab-repeat&amp;quot; ont les mêmes attributs optionnels :&lt;br /&gt;
			| @field : champ de filtrage si l&#039;on souhaite appliquer un filtre dans le formulaire&lt;br /&gt;
			| @value : valeur de filtrage&lt;br /&gt;
			+--&amp;gt;&lt;br /&gt;
		&amp;lt;tab field=&amp;quot;&amp;quot; value=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Label de l&#039;onglet à générer --&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;&lt;br /&gt;
				&amp;lt;i18n:text key=&amp;quot;menu-search-tabs.simple&amp;quot;&amp;gt;toutes bibliothèques&amp;lt;/i18n:text&amp;gt;&lt;br /&gt;
			&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;!--+&lt;br /&gt;
				| Définition du formulaire embarqué dans l&#039;onglet :&lt;br /&gt;
				| @type : &amp;quot;form-embedded&amp;quot; obligatoire&lt;br /&gt;
				| @ref : nom du formulaire à générer pour l&#039;embarquer dans l&#039;onglet. On doit avoir un fichier &amp;lt;nom&amp;gt;.xconf correspondant&lt;br /&gt;
				| @filtered-by-field : (yes | no) : indique si le formulaire doit être filtré par un champ spécifié dans ce menu.&lt;br /&gt;
				| Si on souhaite filtrer, le filtre est récupéré dans les attributs du noeud &amp;quot;tab&amp;quot; parent. &lt;br /&gt;
				+--&amp;gt;&lt;br /&gt;
			&amp;lt;item id=&amp;quot;search-simple&amp;quot; type=&amp;quot;form-embedded&amp;quot; ref=&amp;quot;bmg-categorie&amp;quot; filtered-by-field=&amp;quot;no&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/tab&amp;gt;&lt;br /&gt;
		&amp;lt;!--+&lt;br /&gt;
			| Définition d&#039;un onglet répété :&lt;br /&gt;
			| @field : nom du champ de filtrage éventuel du formulaire embarqué. Un onglet sera généré pour chaque valeur d&#039;index de ce champ.&lt;br /&gt;
			| @base : nom de la base de documents dans laquelle indexée, utilisé pour aller récupérer les valeurs indexées pour le champ.&lt;br /&gt;
			+--&amp;gt;&lt;br /&gt;
		&amp;lt;tab-repeat field=&amp;quot;categorie&amp;quot; base=&amp;quot;BMG&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- REMARK : le label affiché pour l&#039;onglet est généré automatiquement à partir des valeurs indexées pour le champ --&amp;gt;&lt;br /&gt;
			&amp;lt;!--+&lt;br /&gt;
				| Définition des formulaires embarqués dans les onglets répétés :&lt;br /&gt;
				| @type : &amp;quot;form-embedded&amp;quot; obligatoire&lt;br /&gt;
				| @ref : nom du formulaire à générer pour l&#039;embarquer dans l&#039;onglet. On doit avoir un fichier &amp;lt;nom&amp;gt;.xconf correspondant&lt;br /&gt;
				| @filtered-by-field : (yes | no) : indique si le formulaire doit être filtré par un champ spécifié dans ce menu.&lt;br /&gt;
				| Si on souhaite filtrer, le filtre est porte sur le champ &amp;quot;field&amp;quot; défini dans le noeud &amp;quot;tab-repeat&amp;quot; parent.&lt;br /&gt;
				| La valeur de filtre est la valeur d&#039;index utilisé pour l&#039;onglet.&lt;br /&gt;
				+--&amp;gt;&lt;br /&gt;
			&amp;lt;item id=&amp;quot;search-categorie&amp;quot; type=&amp;quot;form-embedded&amp;quot; ref=&amp;quot;bmg-categorie&amp;quot; filtered-by-field=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/tab-repeat&amp;gt;&lt;br /&gt;
	&amp;lt;/item&amp;gt;		&lt;br /&gt;
&amp;lt;/menu&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Explications et spécifications ====&lt;br /&gt;
Le menu est défini comme les autres menus par un noeud {{cmd|&amp;lt;menu&amp;gt;}} caractérisé par les attributs {{cmd|@id}} et {{cmd|@type}}.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ces attributs sont utilisés par la feuille de style XSL {{path|/module-eadeac/xsl/search.xsl}} pour associer la configuration du menu au template dédié à son affichage dans les templates de pages Pleade.&lt;br /&gt;
&lt;br /&gt;
Ce menu contient un unique noeud {{cmd|&amp;lt;item&amp;gt;}} définissant le menu à onglets que nous souhaitons construire.&amp;lt;br /&amp;gt;&lt;br /&gt;
Cet item est caractérisé par l&#039;attribut {{cmd|@type}} avec la valeur spécifique {{cmd|&amp;quot;list&amp;quot;}} dédiée à la définition d&#039;un menu à entrées multiples affichées sous forme d&#039;onglets.&lt;br /&gt;
&lt;br /&gt;
Les onglets du menu sont définis par des noeuds :&lt;br /&gt;
* {{cmd|&amp;lt;tab&amp;gt;}} pour déclarer un unique onglet&lt;br /&gt;
* {{cmd|&amp;lt;tab-repeat&amp;gt;}} pour déclarer des onglets répétés construits suivant le mécanisme suivant : les onglets sont construits dynamiquement à partir des valeurs indexées pour un champ de la base de documents.&lt;br /&gt;
&lt;br /&gt;
Un noeud {{cmd|&amp;lt;tab&amp;gt;}} a les attributs optionnels suivants, qui permettent de caractériser le filtre à appliquer dans le formulaire incorporé :&lt;br /&gt;
*  {{cmd|@field}} : contient le nom du champ de filtrage&lt;br /&gt;
*  {{cmd|@value}} : contient la valeur à appliquer au filtre&lt;br /&gt;
&lt;br /&gt;
Un noeud {{cmd|&amp;lt;tab-repeat&amp;gt;}} a les attributs optionnels suivants, qui permettent de caractériser le filtre à appliquer dans le formulaire incorporé à chaque onglet :&lt;br /&gt;
*  {{cmd|@field}} : contient le nom du champ de filtrage&lt;br /&gt;
*  {{cmd|@base}} : le nom de la base de documents, utilisée pour récupérer les valeurs d&#039;index du champ de filtrage&lt;br /&gt;
{{remarque|La valeur à appliquer au filtre est obligatoirement la valeur d&#039;index du champ correspondant à l&#039;onglet.}}&lt;br /&gt;
&lt;br /&gt;
Un noeud {{cmd|&amp;lt;tab&amp;gt;}} ou {{cmd|&amp;lt;tab-repeat&amp;gt;}} peut contenir les noeuds suivants :&lt;br /&gt;
* {{cmd|&amp;lt;label&amp;gt;}} (optionnel) permettant de définir le libellé cliquable de l&#039;onglet. Ce noeud doit généralement inclure l&#039;appel à une clé i18n, sur le même modèle que tous les autres éléments de menus. Ce noeud n&#039;est pas présent dans les noeuds {{cmd|&amp;lt;tab-repeat&amp;gt;}}. En effet, dans ce cas, les libellés des onglets sont générés dynamiquement pour y faire figurer les valeurs indexées pour le champ de définition des onglets.&lt;br /&gt;
* {{cmd|&amp;lt;item&amp;gt;}} permettant de définir le formulaire construit dynamiquement qui sera incorporé dans l&#039;onglet&lt;br /&gt;
&lt;br /&gt;
Le noeud {{cmd|&amp;lt;item&amp;gt;}} définissant le formulaire de recherche embarqué dans l&#039;onglet est défini par les attributs suivants :&lt;br /&gt;
* {{cmd|@id}} : un identifiant sur lequel seront construits les IDs nécessaires à la gestion JS des onglets&lt;br /&gt;
* {{cmd|@type}} : obligatoirement &amp;quot;form-embedded&amp;quot;&lt;br /&gt;
* {{cmd|@ref}} : le nom du formulaire incorporé dans l&#039;onglet. Ce formulaire est défini par le fichier {{path|/module-eadeac/conf/search-forms/&amp;lt;ref&amp;gt;.xconf}}&lt;br /&gt;
* {{cmd|@filtered-by-field}} : (yes | no) indique si le formulaire incorporé doit être filtré ou pas. Si un filtre doit être appliqué, les paramètres du filtre sont récupérés dans le noeud parent {{cmd|&amp;lt;tab&amp;gt;}} ou {{cmd|&amp;lt;tab-repeat&amp;gt;}} &lt;br /&gt;
&lt;br /&gt;
[[category:BM-Grenoble]]&lt;br /&gt;
[[category:Pleade]]&lt;br /&gt;
[[category:Menu]]&lt;br /&gt;
[[category:Formulaire]]&lt;/div&gt;</summary>
		<author><name>Pdechandol</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.ajlsm.com/index.php?title=Impl%C3%A9mentation_de_formulaires_de_recherche_%22fulltext%22_incorpor%C3%A9s_%C3%A0_des_onglets_de_menus&amp;diff=273</id>
		<title>Implémentation de formulaires de recherche &quot;fulltext&quot; incorporés à des onglets de menus</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.ajlsm.com/index.php?title=Impl%C3%A9mentation_de_formulaires_de_recherche_%22fulltext%22_incorpor%C3%A9s_%C3%A0_des_onglets_de_menus&amp;diff=273"/>
		<updated>2012-05-04T12:40:17Z</updated>

		<summary type="html">&lt;p&gt;Pdechandol : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
L&#039;objectif est de créer, dans Pleade, un menu à onglets contenant des formulaires de recherche &amp;quot;fulltext&amp;quot; filtrés.&amp;lt;br /&amp;gt;&lt;br /&gt;
Chaque onglet est soit non-filtré, soit filtré sur le même champ de recherche avec une valeur différente.&amp;lt;br /&amp;gt;&lt;br /&gt;
Les onglets sont générés dynamiquement à partir des valeurs indexées pour le champ de recherche utilisé pour le filtre.&lt;br /&gt;
&lt;br /&gt;
{{important|Cette implémentation est pour le moment mise en place dans le projet {{Pleade}} Pour [[Doc/BM-Grenoble|BM-Grenoble]].&amp;lt;br /&amp;gt;&lt;br /&gt;
Sa généralisation et introduction dans Pleade Libre devra être étudiée ultérieurement.&amp;lt;br /&amp;gt;&lt;br /&gt;
Elle sous-entend un gros travail d&#039;adaptation et de généralisation, qui n&#039;est pas fait pour l&#039;instant.}}&lt;br /&gt;
&lt;br /&gt;
== Configuration du menu dans Pleade  ==&lt;br /&gt;
Dans Pleade, c&#039;est le fichier {{path|{{var|$ROOT_PLEADE}}/module-eadeac/conf/menus.xconf}} qui permet de configurer les menus affichés dans les pages.&amp;lt;br /&amp;gt;&lt;br /&gt;
On introduit la configuration du nouveau menu à onglets dans ce fichier avec le fragment suivant :&lt;br /&gt;
&lt;br /&gt;
=== Configuration dans menus.xconf ===&lt;br /&gt;
&lt;br /&gt;
==== Fragment XML ====&lt;br /&gt;
Ci-dessous le fragment XML définissant le système d&#039;onglets dans le menu&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;menu type=&amp;quot;htoptabs&amp;quot; id=&amp;quot;htoptabs&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Définition de la liste des onglets, chacun contenant un formulaire embarqué --&amp;gt;&lt;br /&gt;
		&amp;lt;item type=&amp;quot;list&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;!--+ &lt;br /&gt;
			| Les noeuds &amp;quot;tab&amp;quot; et &amp;quot;tab-repeat&amp;quot; ont les mêmes attributs optionnels :&lt;br /&gt;
			| @field : champ de filtrage si l&#039;on souhaite appliquer un filtre dans le formulaire&lt;br /&gt;
			| @value : valeur de filtrage&lt;br /&gt;
			+--&amp;gt;&lt;br /&gt;
		&amp;lt;tab field=&amp;quot;&amp;quot; value=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Label de l&#039;onglet à générer --&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;&lt;br /&gt;
				&amp;lt;i18n:text key=&amp;quot;menu-search-tabs.simple&amp;quot;&amp;gt;toutes bibliothèques&amp;lt;/i18n:text&amp;gt;&lt;br /&gt;
			&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;!--+&lt;br /&gt;
				| Définition du formulaire embarqué dans l&#039;onglet :&lt;br /&gt;
				| @type : &amp;quot;form-embedded&amp;quot; obligatoire&lt;br /&gt;
				| @ref : nom du formulaire à générer pour l&#039;embarquer dans l&#039;onglet. On doit avoir un fichier &amp;lt;nom&amp;gt;.xconf correspondant&lt;br /&gt;
				| @filtered-by-field : (yes | no) : indique si le formulaire doit être filtré par un champ spécifié dans ce menu.&lt;br /&gt;
				| Si on souhaite filtrer, le filtre est récupéré dans les attributs du noeud &amp;quot;tab&amp;quot; parent. &lt;br /&gt;
				+--&amp;gt;&lt;br /&gt;
			&amp;lt;item id=&amp;quot;search-simple&amp;quot; type=&amp;quot;form-embedded&amp;quot; ref=&amp;quot;bmg-categorie&amp;quot; filtered-by-field=&amp;quot;no&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/tab&amp;gt;&lt;br /&gt;
		&amp;lt;!--+&lt;br /&gt;
			| Définition d&#039;un onglet répété :&lt;br /&gt;
			| @field : nom du champ de filtrage éventuel du formulaire embarqué. Un onglet sera généré pour chaque valeur d&#039;index de ce champ.&lt;br /&gt;
			| @base : nom de la base de documents dans laquelle indexée, utilisé pour aller récupérer les valeurs indexées pour le champ.&lt;br /&gt;
			+--&amp;gt;&lt;br /&gt;
		&amp;lt;tab-repeat field=&amp;quot;categorie&amp;quot; base=&amp;quot;BMG&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- REMARK : le label affiché pour l&#039;onglet est généré automatiquement à partir des valeurs indexées pour le champ --&amp;gt;&lt;br /&gt;
			&amp;lt;!--+&lt;br /&gt;
				| Définition des formulaires embarqués dans les onglets répétés :&lt;br /&gt;
				| @type : &amp;quot;form-embedded&amp;quot; obligatoire&lt;br /&gt;
				| @ref : nom du formulaire à générer pour l&#039;embarquer dans l&#039;onglet. On doit avoir un fichier &amp;lt;nom&amp;gt;.xconf correspondant&lt;br /&gt;
				| @filtered-by-field : (yes | no) : indique si le formulaire doit être filtré par un champ spécifié dans ce menu.&lt;br /&gt;
				| Si on souhaite filtrer, le filtre est porte sur le champ &amp;quot;field&amp;quot; défini dans le noeud &amp;quot;tab-repeat&amp;quot; parent.&lt;br /&gt;
				| La valeur de filtre est la valeur d&#039;index utilisé pour l&#039;onglet.&lt;br /&gt;
				+--&amp;gt;&lt;br /&gt;
			&amp;lt;item id=&amp;quot;search-categorie&amp;quot; type=&amp;quot;form-embedded&amp;quot; ref=&amp;quot;bmg-categorie&amp;quot; filtered-by-field=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/tab-repeat&amp;gt;&lt;br /&gt;
	&amp;lt;/item&amp;gt;		&lt;br /&gt;
&amp;lt;/menu&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Explications et spécifications ====&lt;br /&gt;
Le menu est défini comme les autres menus par un noeud {{cmd|&amp;lt;menu&amp;gt;}} caractérisé par les attributs {{cmd|@id}} et {{cmd|@type}}.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ces attributs sont utilisés par la feuille de style XSL {{path|/module-eadeac/xsl/search.xsl}} pour associer la configuration du menu au template dédié à son affichage dans les templates de pages Pleade.&lt;br /&gt;
&lt;br /&gt;
Ce menu contient un unique noeud {{cmd|&amp;lt;item&amp;gt;}} définissant le menu à onglets que nous souhaitons construire.&amp;lt;br /&amp;gt;&lt;br /&gt;
Cet item est caractérisé par l&#039;attribut {{cmd|@type}} avec la valeur spécifique {{cmd|&amp;quot;list&amp;quot;}} dédiée à la définition d&#039;un menu à entrées multiples affichées sous forme d&#039;onglets.&lt;br /&gt;
&lt;br /&gt;
Les onglets du menu sont définis par des noeuds :&lt;br /&gt;
* {{cmd|&amp;lt;tab&amp;gt;}} pour déclarer un unique onglet&lt;br /&gt;
* {{cmd|&amp;lt;tab-repeat&amp;gt;}} pour déclarer des onglets répétés construits suivant le mécanisme suivant : les onglets sont construits dynamiquement à partir des valeurs indexées pour un champ de la base de documents.&lt;br /&gt;
&lt;br /&gt;
Un noeud {{cmd|&amp;lt;tab&amp;gt;}} a les attributs optionnels suivants, qui permettent de caractériser le filtre à appliquer dans le formulaire incorporé :&lt;br /&gt;
*  {{cmd|@field}} : contient le nom du champ de filtrage&lt;br /&gt;
*  {{cmd|@value}} : contient la valeur à appliquer au filtre&lt;br /&gt;
&lt;br /&gt;
Un noeud {{cmd|&amp;lt;tab-repeat&amp;gt;}} a les attributs optionnels suivants, qui permettent de caractériser le filtre à appliquer dans le formulaire incorporé à chaque onglet :&lt;br /&gt;
*  {{cmd|@field}} : contient le nom du champ de filtrage&lt;br /&gt;
*  {{cmd|@base}} : le nom de la base de documents, utilisée pour récupérer les valeurs d&#039;index du champ de filtrage&lt;br /&gt;
{{remarque|La valeur à appliquer au filtre est obligatoirement la valeur d&#039;index du champ correspondant à l&#039;onglet.}}&lt;br /&gt;
&lt;br /&gt;
Un noeud {{cmd|&amp;lt;tab&amp;gt;}} ou {{cmd|&amp;lt;tab-repeat&amp;gt;}} peut contenir les noeuds suivants :&lt;br /&gt;
* {{cmd|&amp;lt;label&amp;gt;}} (optionnel) permettant de définir le libellé cliquable de l&#039;onglet. Ce noeud doit généralement inclure l&#039;appel à une clé i18n, sur le même modèle que tous les autres éléments de menus. Ce noeud n&#039;est pas présent dans les noeuds {{cmd|&amp;lt;tab-repeat&amp;gt;}}. En effet, dans ce cas, les libellés des onglets sont générés dynamiquement pour y faire figurer les valeurs indexées pour le champ de définition des onglets.&lt;br /&gt;
* {{cmd|&amp;lt;item&amp;gt;}} permettant de définir le formulaire construit dynamiquement qui sera incorporé dans l&#039;onglet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:BM-Grenoble]]&lt;br /&gt;
[[category:Pleade]]&lt;br /&gt;
[[category:Menu]]&lt;br /&gt;
[[category:Formulaire]]&lt;/div&gt;</summary>
		<author><name>Pdechandol</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.ajlsm.com/index.php?title=Impl%C3%A9mentation_de_formulaires_de_recherche_%22fulltext%22_incorpor%C3%A9s_%C3%A0_des_onglets_de_menus&amp;diff=266</id>
		<title>Implémentation de formulaires de recherche &quot;fulltext&quot; incorporés à des onglets de menus</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.ajlsm.com/index.php?title=Impl%C3%A9mentation_de_formulaires_de_recherche_%22fulltext%22_incorpor%C3%A9s_%C3%A0_des_onglets_de_menus&amp;diff=266"/>
		<updated>2012-05-04T10:14:56Z</updated>

		<summary type="html">&lt;p&gt;Pdechandol : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:BM-Grenoble/Pleade]]&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
L&#039;objectif est de créer, dans Pleade, un menu à onglets contenant des formulaires de recherche &amp;quot;fulltext&amp;quot; filtrés.&amp;lt;br /&amp;gt;&lt;br /&gt;
Chaque onglet est soit non-filtré, soit filtré sur le même champ de recherche avec une valeur différente.&amp;lt;br /&amp;gt;&lt;br /&gt;
Les onglets sont générés dynamiquement à partir des valeurs indexées pour le champ de recherche utilisé pour le filtre.&lt;br /&gt;
&lt;br /&gt;
{{important|Cette implémentation est pour le moment mise en place dans le projet {{Pleade}} Pour [[Doc/BM-Grenoble|BM-Grenoble]].&amp;lt;br /&amp;gt;&lt;br /&gt;
Sa généralisation et introduction dans Pleade Libre devra être étudiée ultérieurement.&amp;lt;br /&amp;gt;&lt;br /&gt;
Elle sous-entend un gros travail d&#039;adaptation et de généralisation, qui n&#039;est pas fait pour l&#039;instant.}}&lt;br /&gt;
&lt;br /&gt;
== Configuration du menu dans Pleade  ==&lt;br /&gt;
Dans Pleade, c&#039;est le fichier {{path|{{var|PLEADE}}/module-eadeac/menus.xconf}} qui permet de configurer les menus affichés dans les pages.&amp;lt;br /&amp;gt;&lt;br /&gt;
On introduit la configuration du nouveau menu à onglets dans ce fichier avec le fragment suivant :&lt;br /&gt;
&lt;br /&gt;
=== Configuration dans menus.xconf ===&lt;br /&gt;
&lt;br /&gt;
==== Fragment XML ====&lt;br /&gt;
Ci-dessous le fragment XML définissant le système d&#039;onglets dans le menu&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;menu type=&amp;quot;htoptabs&amp;quot; id=&amp;quot;htoptabs&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Définition de la liste des onglets, chacun contenant un formulaire embarqué --&amp;gt;&lt;br /&gt;
		&amp;lt;item type=&amp;quot;list&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;!--+ &lt;br /&gt;
			| Les noeuds &amp;quot;tab&amp;quot; et &amp;quot;tab-repeat&amp;quot; ont les mêmes attributs optionnels :&lt;br /&gt;
			| @field : champ de filtrage si l&#039;on souhaite appliquer un filtre dans le formulaire&lt;br /&gt;
			| @value : valeur de filtrage&lt;br /&gt;
			+--&amp;gt;&lt;br /&gt;
		&amp;lt;tab field=&amp;quot;&amp;quot; value=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Label de l&#039;onglet à générer --&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;&lt;br /&gt;
				&amp;lt;i18n:text key=&amp;quot;menu-search-tabs.simple&amp;quot;&amp;gt;toutes bibliothèques&amp;lt;/i18n:text&amp;gt;&lt;br /&gt;
			&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;!--+&lt;br /&gt;
				| Définition du formulaire embarqué dans l&#039;onglet :&lt;br /&gt;
				| @type : &amp;quot;form-embedded&amp;quot; obligatoire&lt;br /&gt;
				| @ref : nom du formulaire à générer pour l&#039;embarquer dans l&#039;onglet. On doit avoir un fichier &amp;lt;nom&amp;gt;.xconf correspondant&lt;br /&gt;
				| @filtered-by-field : (yes | no) : indique si le formulaire doit être filtré par un champ spécifié dans ce menu.&lt;br /&gt;
				| Si on souhaite filtrer, le filtre est récupéré dans les attributs du noeud &amp;quot;tab&amp;quot; parent. &lt;br /&gt;
				+--&amp;gt;&lt;br /&gt;
			&amp;lt;item id=&amp;quot;search-simple&amp;quot; type=&amp;quot;form-embedded&amp;quot; ref=&amp;quot;bmg-categorie&amp;quot; filtered-by-field=&amp;quot;no&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/tab&amp;gt;&lt;br /&gt;
		&amp;lt;!--+&lt;br /&gt;
			| Définition d&#039;un onglet répété :&lt;br /&gt;
			| @field : nom du champ de filtrage éventuel du formulaire embarqué. Un onglet sera généré pour chaque valeur d&#039;index de ce champ.&lt;br /&gt;
			| @base : nom de la base de documents dans laquelle indexée, utilisé pour aller récupérer les valeurs indexées pour le champ.&lt;br /&gt;
			+--&amp;gt;&lt;br /&gt;
		&amp;lt;tab-repeat field=&amp;quot;categorie&amp;quot; base=&amp;quot;BMG&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- REMARK : le label affiché pour l&#039;onglet est généré automatiquement à partir des valeurs indexées pour le champ --&amp;gt;&lt;br /&gt;
			&amp;lt;!--+&lt;br /&gt;
				| Définition des formulaires embarqués dans les onglets répétés :&lt;br /&gt;
				| @type : &amp;quot;form-embedded&amp;quot; obligatoire&lt;br /&gt;
				| @ref : nom du formulaire à générer pour l&#039;embarquer dans l&#039;onglet. On doit avoir un fichier &amp;lt;nom&amp;gt;.xconf correspondant&lt;br /&gt;
				| @filtered-by-field : (yes | no) : indique si le formulaire doit être filtré par un champ spécifié dans ce menu.&lt;br /&gt;
				| Si on souhaite filtrer, le filtre est porte sur le champ &amp;quot;field&amp;quot; défini dans le noeud &amp;quot;tab-repeat&amp;quot; parent.&lt;br /&gt;
				| La valeur de filtre est la valeur d&#039;index utilisé pour l&#039;onglet.&lt;br /&gt;
				+--&amp;gt;&lt;br /&gt;
			&amp;lt;item id=&amp;quot;search-categorie&amp;quot; type=&amp;quot;form-embedded&amp;quot; ref=&amp;quot;bmg-categorie&amp;quot; filtered-by-field=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/tab-repeat&amp;gt;&lt;br /&gt;
	&amp;lt;/item&amp;gt;		&lt;br /&gt;
&amp;lt;/menu&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Explications et spécifications ====&lt;/div&gt;</summary>
		<author><name>Pdechandol</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.ajlsm.com/index.php?title=Impl%C3%A9mentation_de_formulaires_de_recherche_%22fulltext%22_incorpor%C3%A9s_%C3%A0_des_onglets_de_menus&amp;diff=265</id>
		<title>Implémentation de formulaires de recherche &quot;fulltext&quot; incorporés à des onglets de menus</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.ajlsm.com/index.php?title=Impl%C3%A9mentation_de_formulaires_de_recherche_%22fulltext%22_incorpor%C3%A9s_%C3%A0_des_onglets_de_menus&amp;diff=265"/>
		<updated>2012-05-04T10:06:34Z</updated>

		<summary type="html">&lt;p&gt;Pdechandol : Page créée avec « category:BM-Grenoble/Pleade  == Objectif == L&amp;#039;objectif est de créer, dans Pleade, un menu à onglets contenant des formulaires de recherche &amp;quot;fulltext&amp;quot; filtrés.&amp;lt;br /&amp;gt;... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:BM-Grenoble/Pleade]]&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
L&#039;objectif est de créer, dans Pleade, un menu à onglets contenant des formulaires de recherche &amp;quot;fulltext&amp;quot; filtrés.&amp;lt;br /&amp;gt;&lt;br /&gt;
Chaque onglet est soit non-filtré, soit filtré sur le même champ de recherche avec une valeur différente.&amp;lt;br /&amp;gt;&lt;br /&gt;
Les onglets sont générés dynamiquement à partir des valeurs indexées pour le champ de recherche utilisé pour le filtre.&lt;br /&gt;
&lt;br /&gt;
== Configuration du menu dans Pleade  ==&lt;br /&gt;
Dans Pleade, c&#039;est le fichier {{path|{{var|PLEADE}}/module-eadeac/menus.xconf}} qui permet de configurer les menus affichés dans les pages.&amp;lt;br /&amp;gt;&lt;br /&gt;
On introduit la configuration du nouveau menu à onglets dans ce fichier avec le fragment suivant :&lt;br /&gt;
&lt;br /&gt;
=== Configuration dans menus.xconf ===&lt;br /&gt;
&lt;br /&gt;
==== Fragment XML ====&lt;br /&gt;
Ci-dessous le fragment XML définissant le système d&#039;onglets dans le menu&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;menu type=&amp;quot;htoptabs&amp;quot; id=&amp;quot;htoptabs&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Définition de la liste des onglets, chacun contenant un formulaire embarqué --&amp;gt;&lt;br /&gt;
		&amp;lt;item type=&amp;quot;list&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;!--+ &lt;br /&gt;
			| Les noeuds &amp;quot;tab&amp;quot; et &amp;quot;tab-repeat&amp;quot; ont les mêmes attributs optionnels :&lt;br /&gt;
			| @field : champ de filtrage si l&#039;on souhaite appliquer un filtre dans le formulaire&lt;br /&gt;
			| @value : valeur de filtrage&lt;br /&gt;
			+--&amp;gt;&lt;br /&gt;
		&amp;lt;tab field=&amp;quot;&amp;quot; value=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Label de l&#039;onglet à générer --&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;&lt;br /&gt;
				&amp;lt;i18n:text key=&amp;quot;menu-search-tabs.simple&amp;quot;&amp;gt;toutes bibliothèques&amp;lt;/i18n:text&amp;gt;&lt;br /&gt;
			&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;!--+&lt;br /&gt;
				| Définition du formulaire embarqué dans l&#039;onglet :&lt;br /&gt;
				| @type : &amp;quot;form-embedded&amp;quot; obligatoire&lt;br /&gt;
				| @ref : nom du formulaire à générer pour l&#039;embarquer dans l&#039;onglet. On doit avoir un fichier &amp;lt;nom&amp;gt;.xconf correspondant&lt;br /&gt;
				| @filtered-by-field : (yes | no) : indique si le formulaire doit être filtré par un champ spécifié dans ce menu.&lt;br /&gt;
				| Si on souhaite filtrer, le filtre est récupéré dans les attributs du noeud &amp;quot;tab&amp;quot; parent. &lt;br /&gt;
				+--&amp;gt;&lt;br /&gt;
			&amp;lt;item id=&amp;quot;search-simple&amp;quot; type=&amp;quot;form-embedded&amp;quot; ref=&amp;quot;bmg-categorie&amp;quot; filtered-by-field=&amp;quot;no&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/tab&amp;gt;&lt;br /&gt;
		&amp;lt;!--+&lt;br /&gt;
			| Définition d&#039;un onglet répété :&lt;br /&gt;
			| @field : nom du champ de filtrage éventuel du formulaire embarqué. Un onglet sera généré pour chaque valeur d&#039;index de ce champ.&lt;br /&gt;
			| @base : nom de la base de documents dans laquelle indexée, utilisé pour aller récupérer les valeurs indexées pour le champ.&lt;br /&gt;
			+--&amp;gt;&lt;br /&gt;
		&amp;lt;tab-repeat field=&amp;quot;categorie&amp;quot; base=&amp;quot;BMG&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- REMARK : le label affiché pour l&#039;onglet est généré automatiquement à partir des valeurs indexées pour le champ --&amp;gt;&lt;br /&gt;
			&amp;lt;!--+&lt;br /&gt;
				| Définition des formulaires embarqués dans les onglets répétés :&lt;br /&gt;
				| @type : &amp;quot;form-embedded&amp;quot; obligatoire&lt;br /&gt;
				| @ref : nom du formulaire à générer pour l&#039;embarquer dans l&#039;onglet. On doit avoir un fichier &amp;lt;nom&amp;gt;.xconf correspondant&lt;br /&gt;
				| @filtered-by-field : (yes | no) : indique si le formulaire doit être filtré par un champ spécifié dans ce menu.&lt;br /&gt;
				| Si on souhaite filtrer, le filtre est porte sur le champ &amp;quot;field&amp;quot; défini dans le noeud &amp;quot;tab-repeat&amp;quot; parent.&lt;br /&gt;
				| La valeur de filtre est la valeur d&#039;index utilisé pour l&#039;onglet.&lt;br /&gt;
				+--&amp;gt;&lt;br /&gt;
			&amp;lt;item id=&amp;quot;search-categorie&amp;quot; type=&amp;quot;form-embedded&amp;quot; ref=&amp;quot;bmg-categorie&amp;quot; filtered-by-field=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/tab-repeat&amp;gt;&lt;br /&gt;
	&amp;lt;/item&amp;gt;		&lt;br /&gt;
&amp;lt;/menu&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Explications et spécifications ====&lt;/div&gt;</summary>
		<author><name>Pdechandol</name></author>
	</entry>
</feed>