Changeset 84090 in spip-zone

Timestamp:
Aug 8, 2014, 4:43:21 PM (7 years ago)
Author:
rastapopoulos@…
Message:

Un petit plugin, pas encore terminé (mais bon, dans 1 minutes C'EST LES VACANCES), qui est un outil d'aide à la création de formulaires de recherche/filtrage.

Le but est de pré-coder des choses récurentes.

  • Ça capte le #FORMULAIRE_RECHERCHER_TRUC.
  • Le premier argument DOIT être un URL de redirection.
  • Il faut que le charger() ait une clé "_rechercher_champs" qui est un tableau avec comme clés les champs et comme valeur un tableau vide ou rempli d'options.
  • Pour l'instant la seule option reconnue est multiple => 'oui'.
  • Ça génère automatiquement le traiter() du formulaire en :
    • vidant les anciennes valeurs des champs déclarés comme étant des champs de recherche
    • ajoutant la nouvelle valeur à l'URL uniquement si elle existe

Saisies n'est pas obligatoire mais si on l'utilise ce plugin ajoute aussi des choses :

  • ça change le texte du bouton de validation en "Rechercher" seulement s'il n'est pas déjà défini
  • ça fournit une saisie "rechercher_dans_rubriques" (d'autres viendront peut-être) qui permet de générer un champ pour sélectionner une ou plusieurs rubriques suivant les paramètres (et qui est plus complète et plus dédiée que celle fournie par Saisies)

Pour la saisie :

  • id_parent : pour définir à partir d'où on commence (on peut ne pas le définir si on a donné des id_rubrique précis !)
  • id_rubrique : pour donner un ou plusieurs ids précis
  • id_exclus : pour en exclure
  • niveau : par défaut 1 seul, mais on peut mettre plus pour faire une arbo (ça indente chaque choix)
  • multiple : si on veut choisir plusieurs rubriques
  • type : input OU select (par défaut select) : ça génère soit un select (multiple ou pas) soit des radios (si pas multiple) soit des checkbox (si multiple)
  • si on a choisi "input" ça prend quand même en compte "option_intro" en tant que premier choix vide !
  • ça prend en compte toutes les options des saisies habituelles

Exemple de formulaire complet :
`
function formulaires_rechercher_actualites_saisies_dist($redirect){

$saisies = array(

array(

'saisie' => 'input',
'options' => array(

'nom' => 'recherche',
'label' => 'Recherche libre',
'defaut' => _request('recherche'),

),

),
array(

'saisie' => 'rechercher_dans_rubriques',
'options' => array(

'nom' => 'secteur',
'label' => 'Secteur',
'option_intro' => 'Tous les secteurs',
'id_parent' => 0,
'ids_exclus' => array(),
'id_rubrique' => array(1,2,3),
'niveau' => 2,
'multiple' => 'oui',
'type' => 'input',
'defaut' => _request('secteur'),

),

)

);


return $saisies;

}

function formulaires_rechercher_actualites_charger_dist($redirect){

$contexte = array(

'_rechercher_champs' => array(

'recherche' => array(),
'secteur' => array('multiple' => 'oui'),

),

);


return $contexte;

}
`

Enjoy !

Location:
_plugins_/cvt_rechercher
Files:
9 added

Note: See TracChangeset for help on using the changeset viewer.