Changeset 18814 in spip-zone


Ignore:
Timestamp:
Feb 27, 2008, 11:01:29 PM (12 years ago)
Author:
dominique.lepaisant@…
Message:

Réécrirure du fichier "recherchemulticriteres.html" : suppression du php et écriture tout en spip. Adaptation du texte au multilinguisme.

Location:
_plugins_/_dev_/recherche_multicriteres
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_dev_/recherche_multicriteres/base/rec_mc_table.php

    r18776 r18814  
     1<?php
     2######################################################################
     3# RECHERCHE MULTI-CRITERES                                           #
     4# Auteur: Dominique (Dom) Lepaisant - Octobre 2007                   #
     5# Adaptation de la contrib de Paul Sanchez - Netdeveloppeur          #
     6# http://www.netdeveloppeur.com                                      #
     7# Ce programme est un logiciel libre distribue sous licence GNU/GPL. #
     8# Pour plus de details voir le fichier COPYING.txt                   #
     9######################################################################
    110<?php
    211######################################################################
     
    1221global $tables_auxiliaires;
    1322global $tables_jointures;
     23
     24        $table_des_tables['rmc_rubs_groupes'] = 'rmc_rubs_groupes';
    1425
    1526$spip_rmc_rubs_groupes = array(
     
    4051                        );
    4152$spip_rmc_mots_exclus_key = array(
    42                         "KEY id_mot_exclu" => "id_mot_exclu"
     53                        "PRIMARY KEY" => "id_mot_exclu,id_rubrique"
    4354                        );
    4455
    45 $tables_principales['spip_rmc_rubs_groupes'] = array(
     56
     57$tables_auxiliaires['spip_rmc_rubs_groupes'] = array(
    4658                        'field' => &$spip_rmc_rubs_groupes,
    4759                        'key' => &$spip_rmc_rubs_groupes_key
     
    5567                        'key' => &$spip_rmc_mots_exclus_key
    5668                        );
     69$tables_jointures['spip_rubrique'][]= 'rmc_rub_groupes';
    5770$tables_jointures['spip_groupes_mots'][]= 'rmc_rubs_groupes';
    58 $tables_jointures['spip_rubrique'][]= 'rmc_rub_groupes';
     71$tables_jointures['spip_rmc_rubs_groupes'][]= 'groupes_mots';
     72$tables_jointures['spip_rmc_rubs_groupes'][]= 'rubrique';
     73$tables_jointures['spip_mots'][]= 'spip_rmc_mots_exclus';
     74$tables_jointures['spip_groupes_mots'][]= 'spip_rmc_mots_exclus';?>
    5975
    60 ?>
    61 
  • _plugins_/_dev_/recherche_multicriteres/lang/rmc_fr.php

    r18683 r18814  
    1212//A
    1313'aide' => 'AIDE en ligne',
    14 
     14'aide_select_multi' =>'Maintenez la touche clavier &laquo;&nbsp;<abbr title="Controle">Ctrl</abbr>&nbsp;&raquo; enfonc&eacute;e pour s&eacute;lectionner plusieurs crit&egrave;res.',
     15'articles_date' =>'Chercher les articles de',
    1516//B
    1617
     
    5051'insert_nb_colonnes_rub' =>'Nombre de colonnes affich&eacute;es pour la recherche par rubrique <i><small>( Affichage de la recherche page rubrique )</small></i>',
    5152
     53//J
     54'jours' =>'jours',
     55
     56//L
     57'liste_mots' =>'Listes des mots-cl&eacute;s',
     58'limiter_recherche_rub' =>'Recherche limit&eacute;e &agrave; la rubrique en cours',
     59
    5260//M
     61'mois' =>'mois',
    5362'mot_exclu' =>'Mot exclu',
    5463'mot_exclure' =>'Exclure ce mot',
     64'mots_tous_presents' =>'Tous les mots doivent &ecirc;tre pr&eacute;sents',
     65
     66//O
     67'options_recherche' =>'Options de recherche',
    5568
    5669//R
     
    8194'titre_config_public' =>'Configuration de l\'affichage publique.',
    8295'titre_page_admin' =>'Recherche Multi-crit&egrave;res',
    83 
     96'tous' =>'tous',
    8497//Z
    8598'z' =>'z'
  • _plugins_/_dev_/recherche_multicriteres/lisezmoi.txt

    r18690 r18814  
    1313+---------------------------------------+
    14141 - Comme pour tous les plugins Spip, décompacter le contenu de l'archive dans le dossier "Plugins" situé à la racine du site.
    15 2 - Dans l'interface privée du site, valider le plugin "Recherche Multi-critères" [Onglet "Configuration" -> "Gestion des plugins").
    16 3 - Ouvrir la page de configuration du plugin en cliquant sur l'icône "Recherche Multi-critères" (deux petites clés). Ceci provoque l'installation des tables dans la base de données
     152 - Dans l'interface privée du site, valider le plugin "Recherche Multi-critères" (Onglet "Configuration" -> "Gestion des plugins").
     163 - Ouvrir la page de configuration du plugin en cliquant sur l'icône "Recherche Multi-critères" (deux petites clés).
    17174 - Configurer le plugin.
    1818
    1919+---------------------------------------+
    20 | AFFICHAGE PUBLIQUE                    |
     20| AFFICHAGE PUBLIC                    |
    2121+---------------------------------------+
    2222Pour une recherche sur tout le site (sans possibilité de reduire à une rubrique)
     
    2828| DESCRIPTION                           |
    2929+---------------------------------------+
    30 Ce plugin permet d'efectuer une recherche d'articles en selectionnant un ou plusieurs mots clé. La recherche retournera la liste d'articles associés à ces mots clé.
     30Ce plugin permet d'effectuer une recherche d'articles en sélectionnant un ou plusieurs mots-clé. La recherche retournera la liste d'articles associés à ces mots-clé.
    3131Deux types de recherche sont proposés :
    32321 - Effectuer une recherche sur tout le site en affichant le formulaire de recherche dans n'importe quelle page du site (ou sur une page dédiée)
    33332 - Effectuer une recherche en affichant le formulaire de recherche dans une page rubrique (ou autre permettant de récupérer l'id_rubrique)
    3434
    35 Dans les deux cas, vous pouvez configurer les groupes de mots apparaissant dans le formulaire de recherche, ains que le nombre de colonnes pour l'affichage publique.
     35Dans les deux cas, vous pouvez configurer les groupes de mots apparaissant dans le formulaire de recherche, ains que le nombre de colonnes pour l'affichage public.
    3636
    3737Vous pouvez rechercher les articles associés à tous les mots ou non (et/ou)
     
    4343+---------------------------------------+
    4444- Supprimer de la recherche un ou plusieurs mots des groupes validés. [FAIT]
    45 - Configuration dans l'espace privé de l'affichage publique (styles: taille de police, couleur, etc...)[FAIT mais à revoir pour utilisation CFG]
    46 - Modifier l'écriture des scripts publiques pour tendre vers une écriture plus spipienne.
     45- Configuration dans l'espace privé de l'affichage public (styles: taille de police, couleur, etc...)[FAIT mais à revoir pour utilisation CFG]
     46- Modifier l'écriture des scripts publics pour tendre vers une écriture plus spipienne.[EN COURS]
    4747- Différencier la configuration de la recherche "Pour tout le site" de la recherche "Par rubrique" (est-ce bien utile ?)
    48 - Supprimer les tables de la base à la désinstallation du plugin
    49 - Offrir une alternative à l'affichage des mots clé sur le formulaire de recherche (checkbox avec ou sans logo)
    50 - Adapter l'ecriture des textes de l'affichage publique pour le multi linguisme (dossier lang)
     48- Supprimer les tables de la base à la désinstallation du plugin. [FAIT]
     49- Offrir une alternative à l'affichage des mots-clé sur le formulaire de recherche (checkbox avec ou sans logo)
     50- Etendre la recherche aux rubrique, sites, brèves, etc... (offrir le choix)
     51- Adapter l'ecriture des textes de l'affichage public pour le multi linguisme (dossier lang)[EN COURS]
    5152- Traduire en anglais, espagnol, italien, ... (javanais bifluoré++ et autres...)
    5253- + Moults bricoles  ...
  • _plugins_/_dev_/recherche_multicriteres/modeles/recherchemulticriteres.html

    r18776 r18814  
    1 <?php
    2 /***************************************************************************\
    3  *  Recherche multicritères par mots-clés SPIP                             *
    4  *                                                                         *
    5  *  Copyright (c) 2005                                                     *
    6  *  Paul Sanches - http://www.netdeveloppeur.com                           *
    7  *  Adresse de publication de la contribution :                            *
    8  *  http://www.netdeveloppeur.com                                          *
    9  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
    10  *  Pour plus de details voir le fichier COPYING.txt                       *
    11 \***************************************************************************/
    12 ?>
    13 <BOUCLE_rubrique_search(RUBRIQUES) {id_rubrique}>
    14 <?php
    15         $id_rubrique = '[(#ID_RUBRIQUE|texte_script)]';
    16 ?>
    17 </BOUCLE_rubrique_search>
    18 <?php
    19         if(!isset($id_rubrique)){
    20                 $id_rubrique = 0;
    21         }
    22                
    23         $sql =  "SELECT spip_groupes_mots.id_groupe, spip_groupes_mots.titre AS titregroupe, spip_mots.id_mot,spip_mots.titre AS titremot ";
    24         $sql .= "FROM spip_rmc_rubs_groupes INNER JOIN spip_groupes_mots ON spip_rmc_rubs_groupes.id_groupe = spip_groupes_mots.id_groupe ";
    25         $sql .= "INNER JOIN spip_mots ON spip_mots.id_groupe  = spip_groupes_mots.id_groupe ";
    26         $sql .= "WHERE id_rubrique = $id_rubrique ";
    27         $sql .= "GROUP BY spip_groupes_mots.id_groupe,spip_groupes_mots.titre, spip_mots.id_mot,spip_mots.titre ";
    28         $sql .= "ORDER BY spip_groupes_mots.titre,spip_mots.titre";
    29                
    30         $result = mysql_query($sql);
    31         if ($result) {
    32                 $id_grp_prec = 0;
    33                 $i = 0;
    34                 $sql1 = "SELECT colonnes AS nbcol, colonnes_rub AS nbcol_rub, taille_police AS taille, taille_police_rub AS taille_rub, couleur_police AS coul, couleur_police_rub AS coul_rub, couleur_bordure AS bord, couleur_bordure_rub AS bord_rub FROM spip_rmc_rubs_groupes_conf";
    35                 $result1 = spip_query($sql1);
    36                 $row1 = mysql_fetch_assoc($result1);
    37                 extract($row1);
    38                 if($id_rubrique != 0){
    39                         $nbcol = $nbcol_rub;
    40                         $taille = $taille_rub;
    41                         $coul = $coul_rub;
    42                         $bord = $bord_rub;
    43                 }
    44                 $nbselcreate = 0;
    45                 $nbline = 0;
    46                 while ($row = mysql_fetch_assoc($result)) {
    47                         extract($row);
     1######################################################################
     2# RECHERCHE MULTI-CRITERES                                           #
     3# Auteur: Dominique (Dom) Lepaisant - Stephanie De Nadaï - Fev 2008  #
     4# Adaptation de la contrib de Paul Sanchez - Netdeveloppeur          #
     5# http://www.netdeveloppeur.com                                      #
     6# Ce programme est un logiciel libre distribue sous licence GNU/GPL. #
     7# Pour plus de details voir le fichier COPYING.txt                   #
     8######################################################################
     9#INSERT_HEAD [(#REM) n'est pas utile]
     10
     11[(#REM) On recupere l'id rubrique et on lui attribue 0 s'il n'existe pas ]
     12<B_rmc_rubrique><BOUCLE_rmc_rubrique(RUBRIQUES){id_rubrique}> </BOUCLE_rmc_rubrique>
     13        #SET{idrub,#ID_RUBRIQUE}
     14</B_rmc_rubrique>
     15        #SET{idrub,0}
     16<//B_rmc_rubrique>
     17
     18<BOUCLE_format(SPIP_RMC_RUBS_GROUPES_CONF)>
     19        [(#GET{idrub}|!={0}|?{#SET(nbcol,#COLONNE_RUB),#SET(nbcol,#COLONNE)}
     20        [(#GET{idrub}|!={0}|?{#SET(taille,#TAILLE_POLICE_RUB),#SET(taille,#TAILLE_POLICE)}
     21        [(#GET{idrub}|!={0}|?{#SET(coul,#COULEUR_POLICE_RUB),#SET(coul,#COULEUR_POLICE)}
     22        [(#GET{idrub}|!={0}|?{#SET(bord,#COULEUR_BORDURE_RUB),#SET(bord,#COULEUR_BORDURE)}
     23</BOUCLE_format>
     24
     25<form action="spip.php?page=rec_mc_result" method="post" id="form_mc" name="form_mc">
     26        <input type="hidden" name="id_rubrique" value="#GET{idrub}" />
     27        <div class="multicriteres" style="color:<?=$coul?>;">
     28                <h2><:rmc:titre_page_admin:></h2></div>
     29                <fieldset><legend><:rmc:liste_mots:></legend>
     30                <p><em><:rmc:aide_select_multi:></em></p>
     31                <div class="liste_mc" style="color:#GET{coul}; background-color:#GET{bord}">
     32
     33                        [(#REM) On recherche les groupes de mots attribues à la rubrique en cours ou au secteur]
     34                        <BOUCLE_rmc_groupesparrubrique(SPIP_RMC_RUBS_GROUPES){id_rubrique=#GET{idrub}}>
     35                                <div>
     36                                        <p>
     37                                        <BOUCLE_groupes(GROUPES_MOTS){id_groupe}{par titre}>
     38                                        <label for="#TITRE">#TITRE</label>
     39                                        </p>
     40                                        <select name="idmot[]" id="#TITRE" multiple="multiple" class="sel_mc">
     41                                                [(#REM) On boucle sur les mots du groupe]
     42                                                <BOUCLE_mots(MOTS){id_groupe}{par titre}>
     43                                                [(#REM) on cherche si le mot est exclu]
     44                                                <B_mots_exclus><BOUCLE_mots_exclus(SPIP_RMC_MOTS_EXCLUS){id_rubrique=#GET{idrub}}{id_mot_exclu=#ID_MOT}>
     45                                                </BOUCLE_mots_exclus></B_mots_exclus>
     46                                                [(#REM) titre du mot]
     47                                                <option value="#_mots:ID_MOT">#_mots:TITRE </option>
     48                                                <//B_mots_exclus>
     49                                                </BOUCLE_mots>
     50                                        </select
     51                                        </BOUCLE_groupes>
     52                                </div>
     53                                [(#REM)ici, on peut ajouter un <br avec un style "clear:both;" conditionné au nb de colonnes]
     54                        </BOUCLE_rmc_groupesparrubrique>
     55                </div>
     56        </div>
     57        <fieldset class="options_mc">
     58                <legend><:rmc:options_recherche:></legend>
     59                <p>
     60                        <label for="nbjour"><:rmc:articles_date:></label>
     61                        <select id="nbjour" name="nbjour">
     62                                <option value="0" selected="selected">- <:rmc:tous:></option>
     63                                <option value="7">- 7 <:rmc:jours:></option>
     64                                <option value="30">- 1 <:rmc:mois:></option>
     65                                <option value="9O">- 3 <:rmc:mois:></option>
     66                                <option value="365">- 12 <:rmc:mois:></option>
     67                        </select>
     68                </p>
    4869                       
    49                         if ($id_groupe != $id_grp_prec) {
    50                                 $i++;
     70                [(#GET{idrub}|!={0}|?{<p><label for="onlyrub"><:rmc:limiter_recherche_rub:><input type="checkbox" value="1" name="onlyrub" id="onlyrub" /></label></p>,''})]
    5171                               
    52                                 if ($id_grp_prec != 0) {       
    53 ?>     
    54                                         </select>
    55 <?php                   // if / else utile ?
    56                                         if ($nbselcreate == $nbcol) {
    57                                                         $nbselcreate = 0;
    58 ?>
    59                                                         </div>
    60 <?php
    61                                         } else {
    62 ?>
    63                                                 </div>
    64 <?php
    65                                         }                                               
    66                                 } else {
    67 ?>     
    68                                 <form action="spip.php?page=rec_mc_result" method="post" id="form_mc" name="form_mc">
    69                                         <input type="hidden" name="id_rubrique" value="<?=$id_rubrique?>" />
    70                                         <div class="multicriteres" style="color:<?=$coul?>;">
    71                                                 <h2>Recherche multi-crit&egrave;res</h2></div>
    72                                                 <fieldset><legend>Listes des mots-cl&eacute;s </legend>
    73                                                 <p><em>Maintenez la touche clavier &laquo;&nbsp;<abbr title="Controle">Ctrl</abbr>&nbsp;&raquo; enfonc&eacute;e pour s&eacute;lectionner plusieurs crit&egrave;res.</em></p>
    74                                        
    75                
    76                                         <div class="liste_mc" style="color:<?=$coul?>; background-color:<?=$bord?>">
    77 <?php
    78                                 }
    79                 // if / else utile ? :
    80                                 if ($nbselcreate == 0) {
    81                                         $nbselcreate += 1 ;
    82 ?>     
    83 <?php
    84                                 } else {
    85                                         $nbselcreate += 1 ;
    86                                 }
    87 ?>
    88                                         <div>
    89                                        
    90                                                 <p>
    91                                                         <label for="idmot<?=$i?>"><?=$titregroupe?></label></p>
    92                                                 <select name="idmot[]" id="idmot<?=$i?>" multiple="multiple" class="sel_mc">
    93 <?php
    94                         }
    95                         $s = "SELECT id_mot_exclu FROM spip_rmc_mots_exclus WHERE id_mot_exclu=$id_mot AND id_rubrique=$id_rubrique";
    96                        
    97                         $r = spip_query($s);
    98                        
    99                         $rw = spip_fetch_array($r);
    100                        
    101                         if($rw['id_mot_exclu'] != $id_mot) {
    102 ?>
    103                                         <option value="<?=$id_mot?>"><?php echo supprimer_numero($titremot); ?></option>
    104 <?php
    105                         }
    106                         $id_grp_prec = $id_groupe;
    107                 }
    108        
    109                 if ($id_grp_prec != 0) {
    110 ?>
    111                                 </select>
    112                         </div>
    113 <?php
    114                                                                 # utile ? :
    115                         if ($nbline != 0) {
    116                                 while ($nbselcreate != $nbcol && $nbselcreate != 0) {
    117                                         $nbselcreate += 1;
    118 ?>
    119                                         <!--td bgcolor="#FFFFFF">&nbsp;</td-->
    120 <?php
    121                                 }
    122                         }                                       # fin utile ?
    123 ?>
    124                        
    125                         </div></fieldset>
    126                         <fieldset class="options_mc">
    127                         <legend>Options de recherche</legend>
    128                                 <p>
    129                                         <label for="nbjour">Chercher les articles de</label>
    130                                         <select id="nbjour" name="nbjour">
    131                                                 <option value="0" selected="selected">- tous</option>
    132                                                 <option value="7">- 7 jours</option>
    133                                                 <option value="30">- 1 mois</option>
    134                                                 <option value="9O">- 3 mois</option>
    135                                                 <option value="365">- 12 mois</option>
    136                                         </select></p>
    137 <?php
    138                         if ($id_rubrique != 0) {
    139 ?>
    140                                 <p>
    141                                         <label for="onlyrub">Recherche limit&eacute;e &agrave; la rubrique en cours
    142                                         <input type="checkbox" value="1" name="onlyrub" id="onlyrub" /></label></p>
    143 <?php
    144                         }
    145 ?>
    146                                 <p>
    147                                         <label for="allword">Tous les mots doivent &ecirc;tre pr&eacute;sents
    148                                         <input type="checkbox" value="1" id="allword" name="allword" /></label></p>     
    149                         </fieldset>
    150                         <p>
    151                                 <input type="hidden" value="<?=$id_rubrique?>" name="rubnum" />
    152                                 <input type="submit" value="Envoyer" class="button_mc" />
    153                                 <input type="reset" name="annuler" value="Annuler" class="submit button_mc" /></p>
    154                 <p class="copyleft_mc"><a href="http://www.netdeveloppeur.com">D&eacute;velopp&eacute; par Net Developpeur</a></p>
    155                 </form>
    156 <?php
    157                 }
    158                 mysql_free_result($result);
    159                
    160         } else {
    161                 echo "<hr />";
    162                 echo "il n'y a pas de groupe de mots associ&eacute;s &agrave; cette rubrique : $id_rubrique<br>";
    163                 echo "<hr />"; 
    164         }
    165 ?>
     72                <p>
     73                        <label for="allword"><:rmc:mots_tous_presents:>
     74                        <input type="checkbox" value="1" id="allword" name="allword" /></label></p>     
     75        </fieldset>
     76        <p>
     77                <input type="hidden" value="#GET{idrub}" name="rubnum" />
     78                <input type="submit" value="Envoyer" class="button_mc" />
     79                <input type="reset" name="annuler" value="Annuler" class="submit button_mc" /></p>
     80</form>
Note: See TracChangeset for help on using the changeset viewer.