Changeset 82475 in spip-zone


Ignore:
Timestamp:
May 17, 2014, 9:02:59 AM (5 years ago)
Author:
marcimat@…
Message:

Mieux présenter les FACET

Location:
_plugins_/indexer/trunk
Files:
2 edited

Legend:

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

    r82472 r82475  
    6262    <B_facettes>
    6363        <h2>Facettes associées</h2>
    64         <dl>
    6564    <BOUCLE_facettes(DATA){source tableau, #VALEUR}{si #CLE|=={facets}}>
    66             [<dt>(#CLE)</dt>]
    67             [<dt><pre>(#VALEUR*|print_r{1})</pre></dt>]
     65        <h3>#CLE</h3>
     66        <div class='liste'>
     67            <ul class='liste-items'>
     68        <BOUCLE_liste_facettes(DATA){source tableau, #VALEUR}>
     69                <li class='item'>#CLE \(#VALEUR\)</li>
     70        </BOUCLE_liste_facettes>
     71            </ul>
     72        </div>
    6873    </BOUCLE_facettes>
    69         </dl>
    7074    </B_facettes>
    7175</BOUCLE_recherche>
  • _plugins_/indexer/trunk/lib/Sphinx/SphinxQL.php

    r82455 r82475  
    6767
    6868                        $liste['docs']   = array_shift($reponses);
    69                         $liste['facets'] = $reponses;
     69                        $liste['facets'] = $this->parseFacets($reponses);
    7070                        $liste['meta']   = $this->parseMeta($meta->fetchAll(\PDO::FETCH_ASSOC));
    7171                } elseif ($errs = $this->sql->errorInfo()) {
     
    7777
    7878
     79        /**
     80         * Transforme un tableau de FACET en tableau PHP utilisable
     81         *
     82         * @param array $facettes
     83         * @return array
     84        **/
     85        public function parseFacets($facettes) {
     86                $facets = [];
     87                if (is_array($facettes)) {
     88                        foreach($facettes as $facette) {
     89                                foreach ($facette as $i => $desc) {
     90                                        $nb = $desc['count(*)'];
     91                                        unset($desc['count(*)']);
     92                                        $key  = array_keys($desc);
     93                                        $key  = reset($key);
     94                                        $value = array_shift($desc);
     95                                        if (count($desc)) {
     96                                                var_dump($desc);
     97                                                die("Contenu non pris en compte dans FACET !");
     98                                        }
     99                                        if ($i == 0) {
     100                                                $facets[$key] = [];
     101                                        }
     102                                        $facets[$key][$value] = $nb;
     103                                }
     104                        }
     105                }
     106                return $facets;
     107        }
    79108
    80109        /**
Note: See TracChangeset for help on using the changeset viewer.