Critère de correspondance pour la recherche SEBLOD

16 vues
29 octobre 2014
Cyril
seblodbyoctopoosinline

 

Un des points essentiels abordés lors de la formation SEBLOD est sa capacité à construire une multitude de type de recherche...

La recherche qui est à mon sens le plus utile et bien pensée est le plugin de champ 'search_generic' qui permet de rechercher dans autant de champ qu'on veut la valeur tapée dans un input type text... mais que faire si l'on ne veut pas qu'il fasse un LIKE mais une recherche EXACT du mot tapé ?

il ne le propose pas car ca devient vite compliqué de faire une recherche du mot EN ENTIER seulement dans un champ de type text... mais pas de souci, tonton LETO va vous montrer comment faire notre petite tambouille :)


Pour la correspondance, il faut modifier le fichier
 /administrator/components/com_cck/helpers/helper_workshop.php

et rajouter la correspondance dans le select :

JHtml::_( 'select.option', 'search_generic_any', JText::_( 'search_generic_any' ) ),//ajout joachim correspondance

DONC maintenant, dans le backOffice Seblod, dans l'onglet 'recherche' de votre 'liste et type de recherche', cliquez sur l'onglet à droite 'correspondance' et choisissez la correspondance que vous venez d'ajouter : 'search_generic_any'

Il faut ensuite modifier le fichier
/plugins/cck_storage/custom/custom.php
ET/OU
 /plugins/cck_storage/standard/standard.php
 (en fonction du champ de recherche, dans le doute, modifiez les deux, on ne fait que des ajouts de code, on ne supprime rien)

et rajouter un cas au switch case :

case 'search_generic_any'://ajout joachim correspondance
                $value=str_replace('+', '\+', $value); // pour pouvoir taper des termes tels que 'C#' dans la recherche
                $value=str_replace('#', '\#', $value);// pour pouvoir taper des termes tels que 'C++' dans la recherche
                
                $separator    =    ( $field->match_value ) ? $field->match_value : ' ';
                $values        =    explode( $separator, $value );
                if ( count( $values ) ) {
                    $fragments    =    array();
                    foreach ( $values as $v ) {
                        if ( strlen( $v ) > 0 ) {
                            $v=str_ireplace(array('e','é','è','ê'), '(e|é|è|ê)', $v);
                            $v=str_ireplace(array('a','à','â'), '(a|à|â)', $v);
                            $v=str_ireplace(array('o','ô','ö'), '(o|ô|ö)', $v);
                            $v=str_ireplace(array('i','î','ï'), '(i|î|ï)', $v);
                            $v=str_ireplace(array('u','û','ü'), '(u|û|ü)', $v);
                            $fragments[]     =    $target.' REGEXP '.JCckDatabase::quote( '[[::]]', false );
                            // $fragments[]     =    $target.'  REGEXP '.JCckDatabase::quote( JCckDatabase::escape( $v, true ).'[^a-zA-Z]|[^a-zA-Z]'.JCckDatabase::escape( $v, true ), false );
                        }
                    }
                    if ( count( $fragments ) ) {
                        $sql    =    '((' . implode( ') OR (', $fragments ) . '))';
                    }
                }
                break;

 

Et voila !!! maintenant, la recherche se fait sur le terme EXACT tapé dans le champ de recherche ! merci qui ? merci Pulsar !!!

 

(vous pouvez tout aussi bien me suivre sur google + (because que ca fait rudemment plaisir)  : 

 mon compte google +

 

Merciii

CMS Day: Joomla pour les projets du secteur public
Soirée CMS open-source en PHP
Projets multi langues et multi sites avec Seblod
Indiegogo: contrôle de version avancé avec SEBLOD
Pulsar présente JOOMLA à AGORA CMS
Transformer un article en contenu SEBLOD
Quelles extensions choisir pour son site joomla ?
Les solutions e-commerce avec Joomla!
Joomla 4 : professionnalisation et performance
JoomlaDay 2015: Joomla! pour les applis pro
Pulsar présente son expertise SEBLOD au JoomlaDay 2013
Pulsar et Joomla pour les sites évolués au JoomlaDay 2014
Super BreadCrumb for Joomla 1.5 1.6 & 1.7
Pulsar présente le CMS Joomla! au club STARINUX
Pourquoi nous avons ajouté WordPress à notre offre
Joomla! fête ses 10 ans!
Pulsar présente le projet pour la Sorbonne au JoomlaDay!
Sites multi langues mobiles avec Joomla et Seblod
Joomla et les CCK
Pulsar primé pour le site de la Sorbonne
Personnalisation du backoffice de Joomla!
Gestion Electronique de Documents sur mesure
3 nouvelles extensions Joomla! de Pulsar dans la JED
Correctif de Pulsar dans le routeur de Joomla
Ajouter Cufon à votre site Joomla!:
l'AFUJ exposant au salon Open Source Summit 2015
Pulsar, sponsor OR du JoomlaDay 2017
Override joomla du template 'category' lié à un menu
Joomla! meilleur CMS PHP Open Source
Import shipping pour hikashop
SOBI Pro: le menu principal ne s'affiche pas
Pulsar sponsor OR du JoomlaBusiness 2015
Elections 2016 ... le CMS Joomla! encore
Plugin merge css/js pour Joomla
JCEmediabox et css js compress
Ajouter une icône d'édition dans une liste SEBLOD
Fenêtre coulissante avec Joomla et Seblod
Workflow et formulaires faciles avec Joomla! et Seblod 3/4
Comparaison des CCKs pour Joomla!
Les avantages de Joomla! face à Drupal
Pulsar gagne l'appel d'offre de la Sorbonne
Une agence web Joomla! au Drupagora
Developpements pour la Bibliotheque Mazarine
Nouveau site de Pulsar avec Seblod!
L'agence Pulsar sponsorise le JoomlaDay 2015
Comprendre les droits et niveaux d'accès de Joomla!
Astuces PHP lazy load sous joomla seblod warp
Advanced module manager et page d'accueil
Pulsar au JoomlaDay 2014: Chaine de production
Entrées grisées avec la mention [extrait] dans DOCMAN
Les solutions multi sites avec Joomla!
JoomlaDay 2015: Pulsar y était!
Un nouveau routeur pour Joomla!
Pulsar sponsor du Joomladay
Chargement Joomla avec Mootools de Google
Workflows généralisés avec Joomla! et Seblod (partie 4)
Pulsar, le JoomlaDay et Israël
GED Open Source simple pour les PME
Multisites, multilangues et multidevices pour la SORBONNE
Comprendre le stockage des données avec SEBLOD
Joomla meilleur cms open source 2011
Joomla! présent au salon AGORA CMS 2016
Joomla! à nouveau élu meilleur CMS 2017
Workflow Joomla! évolué avec Seblod 2/4
Plugin de cache Joomla : les images ne s'affichent pas
SEBLOD: supprimer un script à moindre coût
Ajouter le bouton DOCLINK avec Jevents et SobiPro
Les nouveautés de Joomla! 4
SEBLOD et J2store au JoomlaDay Israël 2017
Workflows évolués pour Joomla! avec Seblod 1/4
Développement multi sites avec Joomla et Seblod
Paramètres hikashop des items de menu
sh404SEF: URLs n'apparaissent pas
Pulsar présente le JoomlaBusiness à l'AFUP
Monétisez votre workflow avec Joomla!
Astuce: suppression des éléments Seblod
Pulsar developpe la passerelle Joomla LUCENE SOLR
Pulsar forme au CCK SEBLOD pour Joomla!
Pulsar certifie ses formateurs Joomla!
Référencement naturel, cocons sémantiques et Joomla!
Chasse aux bugs des templates Warp
Job board intégré à votre site Joomla!
Edition front end avec Hikashop et Virtuemart
Extensions Joomla: accessibilité, menu vertical et réseaux sociaux
Virtuemart: flèches quantité ne fonctionnent pas
Optimisation et vitesse de votre site Joomla!
Pulsar au JoomlaDay Israel 2016
E-commerce avec Seblod
com_search joomla 2.5 recherche sans accents
Pulsar présente le job board du nouveau site web Dynamique Emploi
Sommaire automatique pour Joomla