Recherches backoffice personnalisées

De Wiki.

Il est possible de personnaliser (ajouter) des champs de recherches sur une liste en back-office.

Principe

De même que pour les listes back-office personnalisées, l'inclusion automatisée va chercher un éventuel prepend_script situé dans /include/bo/cms/, à côté des fichiers XML de surcharge des classes. Le nom du prepend_script doit correspondre à prepend.list_ma_classe.php (et il sera automatiquement appelé).

Le prepend_script décrit :

  • Des conditions de recherche sur les parents (FKey) d'une table parente (FKey) de la table courante.
  • Des conditions de recherche sur les enregistrements associés d'une table parente (FKey) de la table courante.
  • Des conditions de recherche sur un champ texte ou varchar (mots clés) d'une table parente (FKey) de la table courante.


Tout ceci est stocké dans une table de hashage php nommée $aSearchCustom qui sera interprétée par le script standard d'affichage des listes.

A noter :

Le système tient compte de l'héritage de classe/table sur la table parente mais nécessite que la classe maitresse (héritée) soit déclarée comme parent au lieu de la classe héritante. Dans le cas des champs de recherche sur FKey, le champ distant déclaré est déclaré sans son préfixe.

Exemple de personnalisation des champs de recherche sur une liste :

 // Array for custom list search filters on parent FKey records
 $aSearchCustom = array();
 
 /////////////////////////////////////////////////
 // Custom FKey search field examples
 
 $aSearchCustom[] = array(	'parent'	=> 'my_parent_table',
 				'fkey'		=> 'my_FKey_distant_field' );
 
 /////////////////////////////////////////////////
 // Custom Asso search field examples
 
 $aSearchCustom[] = array(	'parent'	=> 'my_parent_table',
 				'asso'		=> 'my_distant_asso_table' );
 
 /////////////////////////////////////////////////
 // Custom Text search field examples
 
 $aSearchCustom[] = array(	'parent'	=> 'my_parent_table',
 				'text'		=> 'my_parent_field' );