Différences entre versions de « Personnalisation de la recherche avancée »

De WIKI-BOKEH
Aller à : navigation, rechercher
Ligne 34 : Ligne 34 :
 
* avec un message d'erreur si le fichier de description du formulaire n'est pas correct (cf. infra pour le format du fichier de description)
 
* avec un message d'erreur si le fichier de description du formulaire n'est pas correct (cf. infra pour le format du fichier de description)
  
== Définition des formulaires ==
+
== Propriétés des formulaires ==
  
 
Dans l'administration le menu "Système" > "Formulaires de recherche" vous permet d'accéder à la liste des formulaires personnalisés.
 
Dans l'administration le menu "Système" > "Formulaires de recherche" vous permet d'accéder à la liste des formulaires personnalisés.
Ligne 40 : Ligne 40 :
 
[[Fichier:Admin searchform index.png]]  
 
[[Fichier:Admin searchform index.png]]  
  
=== Propriétés ===
+
Vous pouvez ajouter et modifier vos formulaires à partir de cette liste.
  
 
[[Fichier:Admin searchform edit.png]]  
 
[[Fichier:Admin searchform edit.png]]  
Ligne 53 : Ligne 53 :
 
Un formulaire non publié ne s'affiche que pour les administrateurs.
 
Un formulaire non publié ne s'affiche que pour les administrateurs.
  
=== Format du fichier de description ===
+
== Format du fichier de description ==
  
 
'''ATTENTION: cette section nécessite des connaissances en programmations PHP'''
 
'''ATTENTION: cette section nécessite des connaissances en programmations PHP'''
Ligne 91 : Ligne 91 :
 
[[Fichier:Searchform syntax error.png]]  
 
[[Fichier:Searchform syntax error.png]]  
  
==== Reproduire le formulaire par défaut ====
+
=== Reproduire le formulaire par défaut ===
  
 
Cet objet dispose d'une methode <code>loadDefaults()</code> qui reproduit le comportement du formulaire de recherche avancée par défaut.
 
Cet objet dispose d'une methode <code>loadDefaults()</code> qui reproduit le comportement du formulaire de recherche avancée par défaut.

Version du 3 mai 2018 à 16:04

ATTENTION
En l'état actuel cette fonctionnalité nécessite des connaissances en programmation PHP.

Bokeh propose un formulaire de recherche avancée par défaut.

Recherche avancee.png

Vous pouvez désormais personnaliser ce formulaire et proposer plusieurs formulaires de recherche eux-même personnalisé.

Activation[ ]

La personnalisation de la recherche avancée peut être activée par la variable "CUSTOM_SEARCH_FORM".

Suite à l'activation:

  • un nouveau menu apparait dans l'administration "Système" > "Formulaire de recherche", accessible uniquement aux administrateurs
  • une nouvelle option apparait dans la configuration de l'écran de recherche avancée

Admin menu system customform.png Custom form options.png

Choix des formulaires à afficher[ ]

En tant qu'administrateur, vous pouvez configurer les formulaires à afficher directement à partir de la clef à molette dans l'écran de recherche avancée. Custom form options.png

Le formulaire par défaut de Bokeh est affiché lorsqu'aucun formulaire n'est sélectionné ou si aucun formulaire sélectionné n'est valide.

Si vous êtes connecté en tant qu'administrateur Bokeh affichera toujours les formulaires sélectionnés pour vous permettre de les prévisualiser:

  • avec un message spécifiant que le formulaire n'est pas visible si c'est le cas
  • avec un message d'erreur si le fichier de description du formulaire n'est pas correct (cf. infra pour le format du fichier de description)

Propriétés des formulaires[ ]

Dans l'administration le menu "Système" > "Formulaires de recherche" vous permet d'accéder à la liste des formulaires personnalisés.

Admin searchform index.png

Vous pouvez ajouter et modifier vos formulaires à partir de cette liste.

Admin searchform edit.png

Un formulaire se compose d'un libellé obligatoire qui

  • permettra de le sélectionner dans la configuration de l'écran de recherche avancée
  • servira de libellé de l'onglet affichant le formulaire dans l'écran de recherche avancée

Il se compose aussi d'un fichier de définition obligatoire écrit en PHP et placé dans l'explorateur de fichier (cf. infra pour la description de ce fichier).

Il se compose enfin de la propriété "visible" vous permettant de publier ou dépublier le formulaire sur le site. Un formulaire non publié ne s'affiche que pour les administrateurs.

Format du fichier de description[ ]

ATTENTION: cette section nécessite des connaissances en programmations PHP

Le fichier de description d'un formulaire est au format PHP.

Un fichier de description valide reçoit une variable $form qui représente le formulaire à personnaliser.

Il s'agit d'un objet qui suit l'API de Zend_Form du Zend Framework 1.6 utilisé par Bokeh et lui ajoute des méthodes raccourcis pour faciliter la saisie.

Le script demande au formulaire d'ajouter ou retirer des éléments et des groupes d'éléments.

Exemple:

<?php
$form
  ->addElement('text', 'expression_recherche', ['label' => 'Chercher partout'])
  ->addElement('hidden', 'type_doc', ['value' => 10])
  ->addUniqDisplayGroup('default', ['legend' => 'Critères']);

Explication:

  • ajoute un élément de type text, de nom "expression_recherche" avec un libellé "Chercher partout"
  • ajoute un élément de type hidden, de nom "type_doc" avec une valeur de "10"
  • ajoute tous les éléments définis jusqu'ici dans un group d'élément dont la légende sera "Critères"


Dans ce fichier vous n'avez pas accès à toutes les fonctionnalités de PHP mais seulement à un sous-ensemble nécessaire à la définition des formulaires.

Si votre fichier contient des appels non autorisés le formulaire ne s'affichera pas pour les personnes non connectées et un message d'erreur s'affichera si vous êtes connecté en tant qu'administrateur.

Searchform forbidden call.png

Il en sera de même si votre fichier contient des erreurs de syntaxe.

Searchform syntax error.png

Reproduire le formulaire par défaut[ ]

Cet objet dispose d'une methode loadDefaults() qui reproduit le comportement du formulaire de recherche avancée par défaut. Le détail de cette construction est disponible dans le code source.

<?php
$form->loadDefaults();