Changeset 3843 in spip-zone


Ignore:
Timestamp:
Jul 8, 2006, 5:50:15 PM (15 years ago)
Author:
cedric@…
Message:

reconception pour stockage en table mysql des resultats
les resultats sont demandes par groupe de 100 en fonction des besoins et stocké numérotés dans la table.
la boucle doit reecrire a la volee tous les compteurs, grand_total, ... pour prendre en compte le grand total connu mais pas forcement stocke en base, le compteur_boucle qui correspond aux numero de resultat recuperer, la base locale pouvant avoir des trous ....
Le hash est calculé sur recherche, ce qui est incomplet car il faut prendre en compte la query string de mnogo pour etre exact (sauf numero de page et nombre de resultats par page).
Il ne faut pas utiliser de critere de tri sur la boucle directement, mais passer par les criteres de tri mnogosearch
Il y a un bug potentiel sur la gestion des pages stockées si la boucle demande des resultats a cheval sur deux pages (debut_xxx=95 par exemple).

Location:
_plugins_/_agora_/mnogosearch
Files:
2 added
6 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_agora_/mnogosearch/exec/admin_mnogo.php

    r3775 r3843  
    55function exec_admin_mnogo(){
    66        global $connect_statut,$connect_toutes_rubriques;
     7
     8        include_spip('inc/mnogo_distant');
     9        mnogo_verifier_base();
    710       
    811        include_spip("inc/presentation");
     
    1316       
    1417        debut_boite_info();
    15         echo propre(_L('Cette page permet de configurer l\'interrogation du moteur de recherche mnoGoSearch<br/> Configurez votre mnoGoSearch avec '));
     18        echo propre(_L('Cette page permet de configurer l\'interrogation du moteur de recherche mnoGoSearch<br/> Configurez votre mnoGoSearch avec les exemples fournis dans le repertoire mnogosearch du plugin.'));
    1619        fin_boite_info();
    1720
  • _plugins_/_agora_/mnogosearch/inc/mnogo_distant.php

    r3779 r3843  
    11<?php
    22
    3 function mnogo_querystring(){
     3function mnogo_install(){
     4        mnogo_verifier_base();
     5}
     6
     7function mnogo_uninstall(){
     8}
     9
     10function mnogo_verifier_base(){
     11        $version_base = 0.10;
     12        $current_version = 0.0;
     13        if (   (isset($GLOBALS['meta']['mnogo_base_version']) )
     14                        && (($current_version = $GLOBALS['meta']['mnogo_base_version'])==$version_base))
     15                return;
     16
     17        include_spip('base/mnogo_base');
     18        if ($current_version==0.0){
     19                include_spip('base/create');
     20                include_spip('base/abstract_sql');
     21                creer_base();
     22                ecrire_meta('mnogo_base_version',$current_version=$version_base);
     23        }
     24        ecrire_metas();
     25}
     26       
     27function mnogo_querystring($recherche,$debut,$nombre){
    428        $default_qs=array('q'=>'','m'=>'bool','wm'=>'wrd','sp'=>1,'sy'=>1,'wf'=>'2221','type'=>'','ul'=>'','fmt'=>'xml','np'=>0,'ps'=>10,'GroupBySite'=>'no');
    529        $key_translate = array('recherche'=>'q','site'=>'ul');
    630
    731        foreach($_REQUEST as $key=>$value){
    8                 if ($key=='debut_t'){
    9                         $default_qs['np'] = (int)round($value/$default_qs['ps']);
    10                 }
    1132                if (isset($key_translate[$key]))
    1233                        $key = $key_translate[$key];
     
    1637        $default_qs['fmt'] = 'xml'; // obligatoire
    1738        // remplacer les operateurs ET,AND,OR,OU par leur forme & |
    18         $default_qs['q'] = preg_replace(',\s(ET|AND)\s,',urlencode(' & '),$default_qs['q']);
    19         $default_qs['q'] = preg_replace(',\s(OU|OR)\s,',urlencode(' | '),$default_qs['q']);
     39        $default_qs['q'] = urlencode(mnogo_formate_recherche(urldecode($recherche)));
     40       
     41        // gerer les pages
     42        $default_qs['ps'] = max(100,$nombre);
     43        $default_qs['np'] = (int)floor($debut/$default_qs['ps']);
     44
    2045        $req = "";
    2146        foreach($default_qs as $key=>$value)
     
    2449}
    2550
    26 function mnogo_getresults(){   
     51function mnogo_getresults($recherche, $debut, $nombre){
     52        global $tables_principales;
    2753        global $mnogo_resultats_synthese;
    2854        global $mnogo_resultats;
    2955        $url = isset($GLOBALS['meta']['mnogo_url_search'])?$GLOBALS['meta']['mnogo_url_search']:"";
    30         $qs = mnogo_querystring();
     56        $qs = mnogo_querystring($recherche,$debut,$nombre);
    3157        $url .= (strpos($url,"?")!==FALSE)?"&$qs":"?$qs";
    32 
    33         $offset = 0;
    3458
    3559        $arbre = array();
     
    4064                $arbre = parse_plugin_xml($contenu);
    4165        }
     66        include_spip('inc/date');
    4267        if (isset($arbre['recherche'][0])){
    43                 foreach ($arbre['recherche'][0] as $balise=>$value){
    44                         if ($balise!='resultats')
    45                                 $mnogo_resultats_synthese[preg_replace(',^balise_,i','',$balise)] = applatit_arbre($value);
    46                         if ($balise=='balise_MNOGO_TOTAL')
    47                                 $mnogo_resultats = array_fill (0, $mnogo_resultats_synthese['MNOGO_TOTAL'], NULL );
    48                         if ($balise=='balise_MNOGO_PREMIER')
    49                                 $offset = (int)trim(applatit_arbre($value))-1;
     68                $total = applatit_arbre($arbre['recherche'][0]['balise_MNOGO_TOTAL']);
     69                $premier = intval(applatit_arbre($arbre['recherche'][0]['balise_MNOGO_PREMIER']));
     70                $dernier = intval(applatit_arbre($arbre['recherche'][0]['balise_MNOGO_DERNIER']));
     71                $resume = applatit_arbre($arbre['recherche'][0]['balise_MNOGO_RESUME_RESULTATS']);
     72                // regarder si le resume etait la et a change
     73                $res = spip_query("SELECT * FROM spip_mnogosearch_summary WHERE ".hash_where($recherche));
     74                if ($row = spip_fetch_array($res)){
     75                        $changed = false;
     76                        $changed = $changed OR ($row['total']!=$total);
     77                        $changed = $changed OR ($row['resume_resultats']!=$resume);
     78                        if ($changed){
     79                                spip_query("UPDATE FROM spip_mnogosearch SET valide='non' WHERE ".hash_where($recherche));
     80                                spip_query("UPDATE FROM spip_mnogosearch_summary SET resume_resultats=".spip_abstract_quote($resume).", total=".spip_abstract_quote($total).", maj=NOW(), WHERE ".hash_where($recherche));
     81                        }
    5082                }
    51                 if (isset($arbre['recherche'][0]['resultats'][0]['resultat'])){
     83                else
     84                        spip_query("INSERT INTO spip_mnogosearch_summary SET resume_resultats=".spip_abstract_quote($resume).", total=".spip_abstract_quote($total).", maj=NOW(), hash=0x".mnogo_hash($recherche));
     85
     86                if (isset($arbre['recherche'][0]['resultats'][0]['resultat'][$dernier-$premier])){
     87                        $hashwere = hash_where();
     88                        $value['hash'] = "0x".mnogo_hash($recherche);
    5289                        foreach ($arbre['recherche'][0]['resultats'][0]['resultat'] as $key=>$liste){
    53                                 foreach ($liste as $balise=>$value) {
    54                                         $mnogo_resultats[$key+$offset][preg_replace(',^balise_,i','',$balise)] = applatit_arbre($value);
    55                                 }
     90                                $value['numero'] = $key+$premier;
     91                                $value['titre'] = spip_abstract_quote(applatit_arbre($liste['balise_MNOGO_ITEM_TITRE']));
     92                                $value['points'] = intval(applatit_arbre($liste['balise_MNOGO_ITEM_POINTS']));
     93                                $value['url'] = spip_abstract_quote(applatit_arbre($liste['balise_MNOGO_ITEM_URL']));
     94                                $value['popularite'] = intval(10000*applatit_arbre($liste['balise_MNOGO_ITEM_POPULARITE']));
     95                                $value['descriptif'] = spip_abstract_quote(applatit_arbre($liste['balise_MNOGO_ITEM_DESCRIPTIF']));
     96                                $value['taille'] = intval(applatit_arbre($liste['balise_MNOGO_ITEM_TAILLE']));
     97                                $value['mime_type'] = spip_abstract_quote(applatit_arbre($liste['balise_MNOGO_ITEM_TYPE']));
     98                                $d = applatit_arbre($liste['balise_MNOGO_ITEM_DATE']);
     99                                $d = strtotime($d);
     100                                $value['date'] = spip_abstract_quote(format_mysql_date(date('Y',$d), date('m',$d), date('d',$d), date('h',$d), date('i',$d),date('s',$d)));
     101                                $value['cache_url'] = spip_abstract_quote(applatit_arbre($liste['balise_MNOGO_ITEM_CACHE_URL']));
     102                                $value['valide'] = spip_abstract_quote('oui');
     103                               
     104                                spip_query("REPLACE INTO spip_mnogosearch (".implode(',',array_keys($value)).") VALUES (".implode(',',$value).")");
    56105                        }
    57106                }
  • _plugins_/_agora_/mnogosearch/mnogo_mes_fonctions.php

    r3775 r3843  
    11<?php
     2include_spip('base/mnogo_base');
    23
    3 function balise_MNOGO_RECHERCHE_dist($p) {
    4         $p->code = "mnogo_checkresults()?\$GLOBALS['mnogo_resultats_synthese']['MNOGO_RECHERCHE']:''";
    5         return $p;
    6 }
    74function balise_MNOGO_RESUME_RESULTATS_dist($p) {
    8         $p->code = "mnogo_checkresults()?\$GLOBALS['mnogo_resultats_synthese']['MNOGO_RESUME_RESULTATS']:''";
    9         return $p;
    10 }
    11 function balise_MNOGO_PREMIER_dist($p) {
    12         $p->code = "mnogo_checkresults()?\$GLOBALS['mnogo_resultats_synthese']['MNOGO_PREMIER']:''";
    13         return $p;
    14 }
    15 function balise_MNOGO_DERNIER_dist($p) {
    16         $p->code = "mnogo_checkresults()?\$GLOBALS['mnogo_resultats_synthese']['MNOGO_DERNIER']:''";
     5        $p->code = "isset(\$GLOBALS['mnogo_resultats_synthese']['MNOGO_RESUME_RESULTATS'])?\$GLOBALS['mnogo_resultats_synthese']['MNOGO_RESUME_RESULTATS']:''";
    176        return $p;
    187}
    198function balise_MNOGO_TOTAL_dist($p) {
    20         $p->code = "mnogo_checkresults()?\$GLOBALS['mnogo_resultats_synthese']['MNOGO_TOTAL']:''";
    21         return $p;
    22 }
    23 function balise_MNOGO_SEARCHTIME_dist($p) {
    24         $p->code = "mnogo_checkresults()?\$GLOBALS['mnogo_resultats_synthese']['MNOGO_SEARCHTIME']:''";
     9        $p->code = "isset(\$GLOBALS['mnogo_resultats_synthese']['MNOGO_TOTAL'])?\$GLOBALS['mnogo_resultats_synthese']['MNOGO_TOTAL']:''";
    2510        return $p;
    2611}
    2712
    28 
    29 function balise_MNOGO_ITEM_NUMERO_dist($p) {
    30         $_arg='0';
    31         if ($p->param && !$p->param[0][0]){
    32                 $_arg =  calculer_liste($p->param[0][1],
    33                                                         $p->descr,
    34                                                         $p->boucles,
    35                                                         $p->id_boucle);
    36         }
    37         $p->code = "mnogo_checkresults()?\$GLOBALS['mnogo_resultats'][$_arg]['MNOGO_ITEM_NUMERO']:''";
    38         return $p;
    39 }
    40 function balise_MNOGO_ITEM_TITRE_dist($p) {
    41         $_arg='0';
    42         if ($p->param && !$p->param[0][0]){
    43                 $_arg =  calculer_liste($p->param[0][1],
    44                                                         $p->descr,
    45                                                         $p->boucles,
    46                                                         $p->id_boucle);
    47         }
    48         $p->code = "mnogo_checkresults()?\$GLOBALS['mnogo_resultats'][$_arg]['MNOGO_ITEM_TITRE']:''";
    49         return $p;
    50 }
    51 function balise_MNOGO_ITEM_URL_dist($p) {
    52         $_arg='0';
    53         if ($p->param && !$p->param[0][0]){
    54                 $_arg =  calculer_liste($p->param[0][1],
    55                                                         $p->descr,
    56                                                         $p->boucles,
    57                                                         $p->id_boucle);
    58         }
    59         $p->code = "mnogo_checkresults()?\$GLOBALS['mnogo_resultats'][$_arg]['MNOGO_ITEM_URL']:''";
    60         return $p;
    61 }
    62 function balise_MNOGO_ITEM_POINTS_dist($p) {
    63         $_arg='0';
    64         if ($p->param && !$p->param[0][0]){
    65                 $_arg =  calculer_liste($p->param[0][1],
    66                                                         $p->descr,
    67                                                         $p->boucles,
    68                                                         $p->id_boucle);
    69         }
    70         $p->code = "mnogo_checkresults()?\$GLOBALS['mnogo_resultats'][$_arg]['MNOGO_ITEM_POINTS']:''";
    71         return $p;
    72 }
    73 function balise_MNOGO_ITEM_POPULARITE_dist($p) {
    74         $_arg='0';
    75         if ($p->param && !$p->param[0][0]){
    76                 $_arg =  calculer_liste($p->param[0][1],
    77                                                         $p->descr,
    78                                                         $p->boucles,
    79                                                         $p->id_boucle);
    80         }
    81         $p->code = "mnogo_checkresults()?\$GLOBALS['mnogo_resultats'][$_arg]['MNOGO_ITEM_POPULARITE']:''";
    82         return $p;
    83 }
    84 function balise_MNOGO_ITEM_DESCRIPTIF_dist($p) {
    85         $_arg='0';
    86         if ($p->param && !$p->param[0][0]){
    87                 $_arg =  calculer_liste($p->param[0][1],
    88                                                         $p->descr,
    89                                                         $p->boucles,
    90                                                         $p->id_boucle);
    91         }
    92         $p->code = "mnogo_checkresults()?\$GLOBALS['mnogo_resultats'][$_arg]['MNOGO_ITEM_DESCRIPTIF']:''";
    93         return $p;
    94 }
    95 function balise_MNOGO_ITEM_TAILLE_dist($p) {
    96         $_arg='0';
    97         if ($p->param && !$p->param[0][0]){
    98                 $_arg =  calculer_liste($p->param[0][1],
    99                                                         $p->descr,
    100                                                         $p->boucles,
    101                                                         $p->id_boucle);
    102         }
    103         $p->code = "mnogo_checkresults()?\$GLOBALS['mnogo_resultats'][$_arg]['MNOGO_ITEM_TAILLE']:''";
    104         return $p;
    105 }
    106 function balise_MNOGO_ITEM_TYPE_dist($p) {
    107         $_arg='0';
    108         if ($p->param && !$p->param[0][0]){
    109                 $_arg =  calculer_liste($p->param[0][1],
    110                                                         $p->descr,
    111                                                         $p->boucles,
    112                                                         $p->id_boucle);
    113         }
    114         $p->code = "mnogo_checkresults()?\$GLOBALS['mnogo_resultats'][$_arg]['MNOGO_ITEM_TYPE']:''";
    115         return $p;
    116 }
    117 function balise_MNOGO_ITEM_DATE_dist($p) {
    118         $_arg='0';
    119         if ($p->param && !$p->param[0][0]){
    120                 $_arg =  calculer_liste($p->param[0][1],
    121                                                         $p->descr,
    122                                                         $p->boucles,
    123                                                         $p->id_boucle);
    124         }
    125         $p->code = "mnogo_checkresults()?\$GLOBALS['mnogo_resultats'][$_arg]['MNOGO_ITEM_DATE']:''";
    126         return $p;
    127 }
    128 function balise_MNOGO_ITEM_CACHE_URL_dist($p) {
    129         $_arg='0';
    130         if ($p->param && !$p->param[0][0]){
    131                 $_arg =  calculer_liste($p->param[0][1],
    132                                                         $p->descr,
    133                                                         $p->boucles,
    134                                                         $p->id_boucle);
    135         }
    136         $p->code = "mnogo_checkresults()?\$GLOBALS['mnogo_resultats'][$_arg]['MNOGO_ITEM_CACHE_URL']:''";
    137         return $p;
    138 }
    13913?>
  • _plugins_/_agora_/mnogosearch/mnogo_mes_options.php

    r3775 r3843  
    11<?php
     2define('_MNOGO_LOCAL_CACHE_DELAI',86400);
    23
    3 function mnogo_checkresults(){
    4         global $mnogo_resultats_synthese;
    5         global $mnogo_resultats;
    6         if (!isset($mnogo_resultats_synthese['MNOGO_TOTAL'])){
    7                 include_spip('inc/mnogo_distant');
    8                 mnogo_getresults();
     4//
     5// <BOUCLE(DOCUMENTS)>
     6//
     7function boucle_MNOGOSEARCH_dist($id_boucle, &$boucles) {
     8        $boucle = &$boucles[$id_boucle];
     9        $id_table = $boucle->id_table;
     10        $boucle->from[$id_table] =  "spip_mnogosearch";
     11
     12        $out = calculer_boucle($id_boucle, $boucles);
     13        $out = str_replace("\$Numrows['$id_boucle']['compteur_boucle']++;","\$Numrows['$id_boucle']['compteur_boucle']=\$Pile[\$SP]['numero'];",$out);
     14
     15        $partition = calculer_parties($boucles,$id_boucle);
     16
     17        $partition1 = preg_replace('/(\$nombre_boucle =).*?;/','\\1 10000;',$partition);
     18        $partition_cor = preg_replace('/(\$nombre_boucle =).*?;/',"\\1 \$GLOBALS['mnogo_resultats_synthese']['MNOGO_TOTAL'];",$partition);
     19        $partition_cor .= "
     20        \$Numrows['$id_boucle']['grand_total']=\$GLOBALS['mnogo_resultats_synthese']['MNOGO_TOTAL'];";
     21       
     22        $out = $partition1."
     23        mnogo_checkresults(\$GLOBALS['recherche'],\$debut_boucle,\$fin_boucle-\$debut_boucle+1);
     24        ".str_replace($partition,$partition_cor,$out);
     25        return $out;
     26}
     27
     28// {recherche}
     29// http://www.spip.net/@recherche
     30// gestion du cas ou le critere recherche est applique a la boucle MNOGOSEARCH
     31// sinon renvoi vers la boucle _dist
     32function critere_recherche($idb, &$boucles, $crit) {
     33        global $table_des_tables;
     34        $boucle = &$boucles[$idb];
     35        if ($boucle->id_table=='mnogosearch'){
     36                // Ne pas executer la requete en cas de hash vide
     37                $boucle->hash = "
     38        // RECHERCHE
     39        \$rech_where = hash_where(\$GLOBALS['recherche']);
     40                ";
     41                // et la recherche trouve
     42                $boucle->where[] = '$rech_where';
     43                $boucle->order[] = 'numero';
     44        }
     45        else
     46                critere_recherche_dist($idb, $boucles, $crit);
     47}
     48
     49function mnogo_formate_recherche($recherche){
     50        $recherche = trim($recherche);
     51        $recherche = preg_replace(',\s(ET|AND)\s,',' & ',$recherche);
     52        $recherche = preg_replace(',\s(OU|OR)\s,',' | ',$recherche);
     53        $recherche = preg_replace(',\s(?=\s),','',$recherche);
     54        return $recherche;
     55}
     56
     57function mnogo_hash($recherche=NULL){
     58        if ($recherche==NULL) $recherche = mnogo_formate_recherche(_request('recherche'));
     59        $h = substr(md5($recherche), 0, 16);
     60        return $h;
     61}
     62function hash_where($recherche=NULL){
     63        $h = mnogo_hash($recherche);
     64       
     65        // Attention en MySQL 3.x il faut passer par HEX(hash)
     66        // alors qu'en MySQL 4.1 c'est interdit !
     67        /*$vers = spip_query("SELECT VERSION() AS v");
     68        $vers = spip_fetch_array($vers);
     69        if (substr($vers['v'], 0, 1) >= 4
     70        AND substr($vers['v'], 2, 1) >= 1 )
     71                return "hash='$h'";
     72        else*/
     73        return  "HEX(hash)='$h'";
     74}
     75
     76function mnogo_checkresults($recherche, $debut, $nombre){
     77        if ($recherche!==NULL){
     78                $res = spip_query("SELECT * FROM spip_mnogosearch_summary WHERE ".hash_where($recherche));
     79                // verifier que cette recherche a deja ete faite
     80                $refresh = true;
     81                if ($row = spip_fetch_array($res)){
     82                        if (time()-strtotime($row['maj'])<_MNOGO_LOCAL_CACHE_DELAI)
     83                                $refresh = false;
     84                }
     85                // si oui, verifier que les resultats en memoire correspondent
     86                if (!$refresh){
     87                        $res = spip_query("SELECT numero FROM spip_mnogosearch WHERE numero>=".spip_abstract_quote($debut)
     88                        ." AND numero<=".spip_abstract_quote(min($debut+$nombre,$row['total']))." AND valide='oui' AND ".hash_where($recherche));
     89                        if (spip_num_rows($res)<$nombre)
     90                                $refresh = true;
     91                }
     92                if ($refresh){
     93                        include_spip('inc/mnogo_distant');
     94                        mnogo_getresults($recherche,$debut,$nombre);
     95                        $res = spip_query("SELECT * FROM spip_mnogosearch_summary WHERE ".hash_where($recherche));
     96                        $row = spip_fetch_array($res);
     97                }
     98                $GLOBALS['mnogo_resultats_synthese']['MNOGO_RESUME_RESULTATS'] = $row['resume_resultats'];
     99                $GLOBALS['mnogo_resultats_synthese']['MNOGO_TOTAL'] = $row['total'];
     100        }
     101        else{
     102                $GLOBALS['mnogo_resultats_synthese']['MNOGO_RESUME_RESULTATS'] = '';
     103                $GLOBALS['mnogo_resultats_synthese']['MNOGO_TOTAL'] = '';
    9104        }
    10105        return true;
    11106}
    12107
    13 function retour_balise_MNOGO_RECHERCHE(){
    14         global $mnogo_resultats_synthese;
    15         mnogo_checkresults();   
    16         var_dump($mnogo_resultats_synthese);
    17         return $mnogo_resultats_synthese['MNOGO_RECHERCHE'];
    18 }
    19 
    20 
    21108?>
  • _plugins_/_agora_/mnogosearch/mnogosearch/etc/search.htm

    r3779 r3843  
    8080# Uncomment this line to change Last-Modified format output
    8181# Use strftime function meta variables
    82 DateFormat '%d %m %Y %X %Z'
     82DateFormat '%Y/%m/%d %X %Z'
    8383
    8484# Uncomment this line if you want to generate misspelled
  • _plugins_/_agora_/mnogosearch/testmnogo.html

    r3779 r3843  
    22[(#FORMULAIRE_RECHERCHE_ETENDUE|spip.php?page=testmnogo)]
    33
    4 Recherche ::#MNOGO_RECHERCHE::<br/>
     4<B_test>
     5Recherche ::#RECHERCHE::<br/>
    56Resume ::#MNOGO_RESUME_RESULTATS::<br/>
    6 Resultats de ::#MNOGO_PREMIER::a::#MNOGO_DERNIER::sur un total de ::#MNOGO_TOTAL::<br/>
    7 Temps de recherche ::#MNOGO_SEARCHTIME::s<br/>
    8 <B_t>
    9 [<p class="pagination">(#PAGINATION)</p>]
    10 <BOUCLE_t(TABLEAU){var=mnogo_resultats}{pagination}>
    11 #MNOGO_ITEM_NUMERO{#CLE} - <a href='#MNOGO_ITEM_URL{#CLE}'>#MNOGO_ITEM_TITRE{#CLE}</a><br/>
    12 #MNOGO_ITEM_POINTS{#CLE}<br/>
    13 #MNOGO_ITEM_POPULARITE{#CLE}<br/>
    14 #MNOGO_ITEM_DESCRIPTIF{#CLE}<br/>
    15 #MNOGO_ITEM_TAILLE{#CLE}<br/>
    16 #MNOGO_ITEM_TYPE{#CLE}<br/>
    17 #MNOGO_ITEM_DATE{#CLE}<br/>
    18 <a href='#CONFIG{mnogo_url_search}#MNOGO_ITEM_CACHE_URL{#CLE}'>Copie en cache</a>
     7Nb Resultats ::#MNOGO_TOTAL::<br/>
     8<p class='pagination'>#PAGINATION</p>
     9<BOUCLE_test(MNOGOSEARCH){recherche}{pagination}>
     10#NUMERO - <a href='#URL'>#TITRE</a><br/>
     11#POINTS<br/>
     12#POPULARITE<br/>
     13#DESCRIPTIF<br/>
     14#TAILLE<br/>
     15#MIME_TYPE<br/>
     16#DATE<br/>
     17<a href='#CONFIG{mnogo_url_search}#CACHE_URL'>Copie en cache</a>
    1918<hr/>
    20 </BOUCLE_t>
    21 </B_t>
     19</BOUCLE_test>
     20</B_test>
Note: See TracChangeset for help on using the changeset viewer.