Changeset 82649 in spip-zone


Ignore:
Timestamp:
May 21, 2014, 8:47:56 AM (5 years ago)
Author:
fil@…
Message:

regler le cas de #SPIP_METAS #SPHINX_MESSAGE en dehors de la boucle principale --> tant qu'a faire d'avoir une globale, on le fait carrement ; on trouvera mieux plus tard

Location:
_plugins_/indexer/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/indexer/trunk/content/sphinx2.html

    r82644 r82649  
    1 
     1<ul id=messages>
    22<h1>Test SPHINX 2</h1>
    33
     
    2525<B_filtres>
    2626<h4>Filtres:</h4>
    27 <BOUCLE_filtres(DATA){source tableau, #ARRAY{auteur,Aucun auteur,tag,Aucun tag,annee,Aucune année}}>
    28 [(#ENV{#CLE}|oui)
     27<BOUCLE_filtres(DATA){source tableau, #ARRAY{auteur,Aucun auteur,tag,Aucun tag,annee,Aucune année,stars,Aucune etoile}}>[
     28(#ENV{#CLE}|oui)
    2929        <div>
    3030                <a class="btn btn-mini" href="[(#SELF|parametre_url{#CLE,''})]"><i class="icon-remove"></i> [(#ENV{#CLE}|=={-}|?{#VALEUR,#ENV{#CLE}})]</a>
     
    4444
    4545        <h2>Documents trouvés</h2>
     46
     47        [<p>(#SPHINX_MESSAGE)</p>]
    4648
    4749        [<div><tt>(#SPHINX_QUERY)</tt></div>]
     
    7274        {pagination 10}
    7375>
    74         [(#REM) The hack pour les # SPHINX_* des parties alternatives. ]
    75         #SPHINX_SAVE_META
    7676
    7777        [(#SET{properties,#PROPERTIES|json_decode{1}})]
    7878        <li class='item'>
    7979                <article class='entry article hentry'>
    80                         <strong class='h3-like entry-title'>#SCORE/#GET{max} = [(#SCORE|mult{100}|div{#GET{max}}|intval)%] <a href="#URI">#TITLE</a></strong>
     80                        <strong class='h3-like entry-title'>#SCORE/#GET{max} = [(#SCORE|mult{100}|div{#GET{max}}|intval)%] <a href="#URI">#DATE</a></strong>
    8181                        <p class="publication">
    8282                                [<time pubdate="pubdate" datetime="[(#DATE|date_iso)]">(#DATE|affdate_jourcourt)</time>][<span class="authors"><span class="sep">, </span> <:par_auteur:> (#GET{properties}|table_valeur{authors}|implode{', '})</span>]
     
    9797</B_recherche_sphinx>
    9898        <h2>Pas de résultat pour :</h2>
    99         <pre>#SPHINX_QUERY</pre>
     99        <div><tt>#SPHINX_QUERY</tt></div>
     100        [<p>(#SPHINX_MESSAGE)</p>]
     101
     102        [(#INCLURE{fond=liste/sphinx_metas,meta=#SPHINX_META,env})]
     103
    100104<//B_recherche_sphinx>
     105
     106</ul>
  • _plugins_/indexer/trunk/iterateur/sphinx2.php

    r82648 r82649  
    145145
    146146                $this->runQuery();
     147
    147148        }
    148149
     
    151152                $query  = $this->queryApi->get();
    152153                $result = $this->sphinxQL->allfetsel($query);
     154
     155                $GLOBALS['SphinxSave'][$this->command['id']]['query'] = $query;
     156
    153157                if (!$result) {
    154158                        return false;
     
    166170
    167171                $this->result = $result['query'];
     172
    168173                unset($result['query']['docs']);
    169174
     
    177182
    178183                $this->data = new ArrayObject($result['query']);
     184
     185                $GLOBALS['SphinxSave'][$this->command['id']] = $result['query'];
    179186
    180187                return true;
     
    809816
    810817        $champ = strtolower($champ);
    811         $p->code =
    812                 // iterateur présent ?
    813                 "(isset(\$Iter) ? "
    814                 . "((\$d = \$Iter->getIterator()->getMetaData()) ? \$d['$champ'] : '') : "
    815                 // sinon sauvegarde de #SPHINX_SAVE_META
    816                 . "(isset(\$GLOBALS['SphinxSave']['$b']['$champ']) ? \$GLOBALS['SphinxSave']['$b']['$champ'] : '') )";
     818        $p->code = '$GLOBALS["SphinxSave"]["'.$b.'"]["'.$champ.'"]';
     819
    817820        $p->interdire_scripts = false;
    818821        return $p;
    819822}
    820 
    821 /**
    822  * Sauvegarde les meta données de requête Sphinx pour une
    823  * utilisation ultérieure dans les parties alternatives de la boucle…
    824  *
    825  * - `#SPHINX_SAVE_META`
    826  *
    827  * Permet l'usage dans 'avant' ou 'apres' des boucles Sphinx des
    828  * balises :
    829  *
    830  * - `#SPHINX_QUERY`
    831  * - `#SPHINX_META`
    832  * - `#SPHINX_FACETS`
    833  *
    834  * @param Champ $p
    835  * @return Champ
    836 **/
    837 function balise_SPHINX_SAVE_META_dist($p){
    838         $b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
    839         // doit être dans la partie centrale de la boucle
    840         if ($b === '' || !isset($p->boucles[$b])) {
    841                 $msg = array('zbug_champ_hors_boucle', array('champ' => '#SPHINX_SAVE_META' ));
    842                 erreur_squelette($msg, $p);
    843                 $p->interdire_scripts = true;
    844                 return $p;
    845         }
    846 
    847         $p->code =
    848                   "(!isset(\$GLOBALS['SphinxSave']) ? vide(\$GLOBALS['SphinxSave'] = array()) : '') . "
    849                 . "(!isset(\$GLOBALS['SphinxSave']['$b']) ? vide(\$GLOBALS['SphinxSave']['$b'] = \$iter->getInnerIterator()->getMetaData()) : '')"
    850                 #. " . ('<pre>' . print_r( \$GLOBALS['SphinxSave'] , true) . '</pre>')"
    851                 ;
    852         $p->interdire_scripts = false;
    853         return $p;
    854 }
Note: See TracChangeset for help on using the changeset viewer.