Changeset 82471 in spip-zone


Ignore:
Timestamp:
May 16, 2014, 9:24:11 PM (5 years ago)
Author:
fil@…
Message:

pagination a coups de array_pad() ; attention l'insertion via preg_replace est VRAIMENT a revoir

Location:
_plugins_/indexer/trunk
Files:
2 edited

Legend:

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

    r82470 r82471  
    2525<B_filtres>
    2626<h4>Filtres:</h4>
    27 <BOUCLE_filtres(DATA){source table,#LISTE{auteur,tag,annee}}>[
     27<BOUCLE_filtres(DATA){liste auteur,tag,annee}>[
    2828        <div><a href="[(#SELF|parametre_url{[(#VALEUR)],''})]">x</a> (#ENV{#VALEUR})</div>
    2929]</BOUCLE_filtres>
    3030
    31 <BOUCLE_recherche(DATA) {source SphinxQL, #GET{sql}}>
     31<BOUCLE_recherche(DATA) {source SphinxQL, #GET{sql}, #ENV{debut_documents}}>
    3232
    3333    <B_documents>
    3434        <h2>Liste des documents trouvés</h2>
     35    [<p class="pagination">(#ANCRE_PAGINATION)</p>]
    3536        <dl>
    36     <BOUCLE_documents(DATA){source tableau, #VALEUR}{si #CLE|=={docs}}>
     37    <BOUCLE_documents(DATA){source tableau, #VALEUR}{si #CLE|=={docs}}
     38    {pagination 10}>
    3739            [<dt>#SCORE <a href="[(#URI)]">(#TITLE)</a>
    3840             [<small>(#DATE|affdate_court)</small>]
     
    4244    </BOUCLE_documents>
    4345        </dl>
     46    [<p class="pagination">(#PAGINATION)</p>]
    4447    </B_documents>
    4548
     
    6871</BOUCLE_recherche>
    6972
     73
    7074Debug: <pre>#GET{sql}</pre>
    7175
  • _plugins_/indexer/trunk/inc/sphinxql_to_array.php

    r82376 r82471  
    44
    55
    6 function inc_sphinxql_to_array_dist($u){
    7         include_spip('inc/indexer');
     6function inc_sphinxql_to_array_dist($u, $debut=''){
     7   include_spip('inc/indexer');
     8
     9   // hacks pour la pagination
     10   // attention ce preg_replace est vraiment tres fragileÉÉÉ ˆ revoir TODO.
     11   if ($debut = intval($debut)) {
     12       $u = preg_replace('/ FACET /', " LIMIT $debut,20 FACET ", $u, 1);
     13   }
    814
    915        $sphinx = new Sphinx\SphinxQL(SPHINX_SERVER_HOST, SPHINX_SERVER_PORT);
    1016
    11         return $sphinx->allfetsel($u);
     17        $all = $sphinx->allfetsel($u);
     18
     19        // pagination : rajouter $debut elements videsÉ
     20        if ($debut) $all['docs'] = array_pad($all['docs'], -$debut - count($all['docs']), 0);
     21
     22        $total = $all['meta']['total'];
     23        if ($total > count($all['docs']))
     24                $all['docs'] = array_pad($all['docs'], $total - count($all['docs']), 0);
     25
     26        return $all;
    1227}
    1328
Note: See TracChangeset for help on using the changeset viewer.