Changeset 85859 in spip-zone


Ignore:
Timestamp:
Nov 5, 2014, 8:04:52 PM (5 years ago)
Author:
kent1@…
Message:

Enlever du code spécifique pour les anciennes versions

Se rapprocher de inc/rechercher du core

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/fulltext/trunk/inc/rechercher.php

    r85850 r85859  
    44 *  SPIP, Systeme de publication pour l'internet                           *
    55 *                                                                         *
    6  *  Copyright (c) 2001-2011                                                *
     6 *  Copyright (c) 2001-2014                                                *
    77 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
    88 *                                                                         *
     
    2222        if (is_null($liste)) {
    2323                $liste = array();
    24                 if(intval($GLOBALS['spip_version_branche']) > 2){
    25                         // recuperer les tables_objets_sql declarees
    26                         include_spip('base/objets');
    27                         $tables_objets = lister_tables_objets_sql();
    28                         foreach($tables_objets as $t=>$infos){
    29                                 if ($infos['rechercher_champs']){
    30                                         $liste[$infos['type']] = $infos['rechercher_champs'];
    31                                 }
    32                         }
    33                 }
    34                 else {
    35                         $liste =
    36                                 array(
    37                                         'article' => array(
    38                                                 'surtitre' => 5, 'titre' => 8, 'soustitre' => 5, 'chapo' => 3,
    39                                                 'texte' => 1, 'ps' => 1, 'nom_site' => 1, 'url_site' => 1,
    40                                                 'descriptif' => 4
    41                                         ),
    42                                         'breve' => array(
    43                                                 'titre' => 8, 'texte' => 2, 'lien_titre' => 1, 'lien_url' => 1
    44                                         ),
    45                                         'rubrique' => array(
    46                                                 'titre' => 8, 'descriptif' => 5, 'texte' => 1
    47                                         ),
    48                                         'site' => array(
    49                                                 'nom_site' => 5, 'url_site' => 1, 'descriptif' => 3
    50                                         ),
    51                                         'mot' => array(
    52                                                 'titre' => 8, 'texte' => 1, 'descriptif' => 5
    53                                         ),
    54                                         'auteur' => array(
    55                                                 'nom' => 5, 'bio' => 1, 'email' => 1, 'nom_site' => 1, 'url_site' => 1, 'login' => 1
    56                                         ),
    57                                         'forum' => array(
    58                                                 'titre' => 3, 'texte' => 1, 'auteur' => 2, 'email_auteur' => 2, 'nom_site' => 1, 'url_site' => 1
    59                                         ),
    60                                         'document' => array(
    61                                                 'titre' => 3, 'descriptif' => 1, 'contenu' => 1, 'fichier' => 1
    62                                         ),
    63                                         'syndic_article' => array(
    64                                                 'titre' => 5, 'descriptif' => 1
    65                                         ),
    66                                         'signature' => array(
    67                                                 'nom_email' => 2, 'ad_email' => 4,
    68                                                 'nom_site' => 2, 'url_site' => 4,
    69                                                 'message' => 1
    70                                         )
    71                                 );
     24                // recuperer les tables_objets_sql declarees
     25                include_spip('base/objets');
     26                $tables_objets = lister_tables_objets_sql();
     27                foreach($tables_objets as $t=>$infos){
     28                        if ($infos['rechercher_champs']){
     29                                $liste[$infos['type']] = $infos['rechercher_champs'];
     30                        }
    7231                }
    7332                // puis passer dans le pipeline
     
    8544        if (is_null($liste)) {
    8645                $liste = array();
    87                 if(intval($GLOBALS['spip_version_branche']) > 2){
    88                         // recuperer les tables_objets_sql declarees
    89                         include_spip('base/objets');
    90                         $tables_objets = lister_tables_objets_sql();
    91                         foreach($tables_objets as $t=>$infos){
    92                                 if ($infos['rechercher_jointures']){
    93                                         $liste[$infos['type']] = $infos['rechercher_jointures'];
    94                                 }
    95                         }
    96                 }
    97                 else {
    98                         $liste =
    99                                 array(
    100                                 'article' => array(
    101                                         'auteur' => array('nom' => 10),
    102                                         'mot' => array('titre' => 3),
    103                                         'document' => array('titre' => 2, 'descriptif' => 1, 'contenu' => 1)
    104                                 ),
    105                                 'breve' => array(
    106                                         'mot' => array('titre' => 3),
    107                                         'document' => array('titre' => 2, 'descriptif' => 1, 'contenu' => 1)
    108                                 ),
    109                                 'rubrique' => array(
    110                                         'mot' => array('titre' => 3),
    111                                         'document' => array('titre' => 2, 'descriptif' => 1, 'contenu' => 1)
    112                                 ),
    113                                 'document' => array(
    114                                         'mot' => array('titre' => 3)
    115                                 )
    116                         );
     46                // recuperer les tables_objets_sql declarees
     47                include_spip('base/objets');
     48                $tables_objets = lister_tables_objets_sql();
     49                foreach($tables_objets as $t=>$infos){
     50                        if ($infos['rechercher_jointures']){
     51                                $liste[$infos['type']] = $infos['rechercher_jointures'];
     52                        }
    11753                }
    11854                // puis passer dans le pipeline
     
    14278
    14379function expression_recherche($recherche, $options) {
     80        // ne calculer qu'une seule fois l'expression par hit
     81        // (meme si utilisee dans plusieurs boucles)
     82        static $expression = array();
     83        $key = serialize(array($recherche, $options['preg_flags']));
     84        if (isset($expression[$key]))
     85                return $expression[$key];
     86
    14487        $u = $GLOBALS['meta']['pcre_u'];
    14588        include_spip('inc/charsets');
     
    196139        }
    197140
    198         return array($methode, $q, $preg);
     141        return $expression[$key] = array($methode, $q, $preg);
    199142}
    200143
     
    266209                $to_array = charger_fonction('recherche_to_array', 'inc');
    267210                $results[$table] = $to_array($recherche,
    268                         array_merge($options, array('table' => $table))
     211                        array_merge($options, array('table' => $table, 'champs' => $champs))
    269212                );
    270213                ##var_dump($results[$table]);
     
    315258                                }
    316259                                if ($modifs)
    317                                         modifier_contenu($table, $id,
     260                                        objet_modifier_champs($table, $id,
    318261                                                array(
    319262                                                        'champs' => array_keys($modifs),
Note: See TracChangeset for help on using the changeset viewer.