Ignore:
Timestamp:
Nov 30, 2011, 3:42:49 PM (8 years ago)
Author:
cedric@…
Message:

Fin du portage pour SPIP3 a minima :
on ne recode pas la page de config en squelette+CVT, ce qui serait le mieux, mais on assure le fonctionnel et la secu
on renomme l'exec pour qu'il soit linke du panneau plugin
on met une icone derivee de fatcow
on insere les css inline uniquement dans la page de config et pas dans tout l'espace prive

File:
1 moved

Legend:

Unmodified
Added
Removed
  • _plugins_/squelettes_par_mots_cle/trunk/exec/configurer_squelettesmots.php

    r55000 r55006  
    1919//    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    2020
    21 function exec_config_chercher_squelettes_mots() {
    22   global $connect_statut, $connect_toutes_rubriques;
    23 
    24   include_spip("inc/presentation");
    25   include_spip ("base/abstract_sql");
    26 
    27   $commencer_page = charger_fonction('commencer_page', 'inc');
     21function exec_configurer_squelettesmots_dist(){
     22
     23        include_spip("inc/presentation");
     24        include_spip("base/abstract_sql");
     25
     26        $commencer_page = charger_fonction('commencer_page', 'inc');
    2827        echo $commencer_page(_T('squelettesmots:titre_page'), "configuration");
    29  
    30 
    31   if ($connect_statut != '0minirezo' OR !$connect_toutes_rubriques) {
    32         echo _T('avis_non_acces_page');
    33         exit;
    34   }
    35 
    36   if ($connect_statut == '0minirezo' AND $connect_toutes_rubriques ) {
    37 
    38         echo '<br><br><br>';
    39 
    40         echo gros_titre(_T('squelettesmots:gros_titre'),'',FALSE);
    41 
    42         echo barre_onglets("configuration", "config_chercher_squelettes_mots");
     28
     29
     30        include_spip('inc/autoriser');
     31        if (!autoriser('configurer', 'squelettesparmot')){
     32                echo _T('avis_non_acces_page');
     33                exit;
     34        }
    4335
    4436        /*Affichage*/
    45         echo debut_gauche('',TRUE);     
    46        
     37        echo debut_gauche('', TRUE);
     38
    4739        echo debut_boite_info(TRUE);
    4840        echo propre(_T('squelettesmots:help'));
    4941        echo fin_boite_info(TRUE);
    50        
    51         echo debut_droite('',TRUE);
    52        
     42
     43        echo debut_droite('', TRUE);
     44
     45        echo gros_titre(_T('squelettesmots:titre_onglet'), '', FALSE);
     46        echo "<p>"._T('squelettesmots:gros_titre')."</p>";
    5347        $config = charger_fonction('config', 'inc');
    5448        $config();
    55         echo avertissement_config();
    56 
     49        #echo avertissement_config();
     50
     51        lire_fichier(find_in_path("squelettesmots.css"),$styles);
     52        echo "<style>$styles</style>";
     53       
    5754        echo debut_cadre_relief("".find_in_path('spip_death.png')."", true);
    58         echo '<form action="'.generer_url_ecrire('config_chercher_squelettes_mots').'" method="post">';
     55        echo '<form action="'.generer_url_ecrire('configurer_squelettesmots').'" method="post">';
    5956
    6057        $groupes_mots = '';
    61         $select = array('id_groupe','titre');
     58        $select = array('id_groupe', 'titre');
    6259        $from = array('spip_groupes_mots');
    6360
    6461        //      include_ecrire('inc_filtres');
    65         $rez = sql_select($select,$from);
    66         while($row = sql_fetch($rez)) {
    67           $groupes_mots[$row['id_groupe']] = extraire_multi($row['titre']);
     62        $rez = sql_select($select, $from);
     63        while ($row = sql_fetch($rez)){
     64                $groupes_mots[$row['id_groupe']] = extraire_multi($row['titre']);
    6865        }
    6966        sql_free($rez);
     
    7168        //TODO: trouver automatiquement ces informations pour toutes les tables avec un jonction sur les mots
    7269        $id_tables = array('articles' => 'id_article',
    73                                            'rubriques' => 'id_rubrique',
    74                                            'breves' => 'id_breve',
    75                                            'sites' => 'id_site');
    76        
     70                           'rubriques' => 'id_rubrique',
     71                           'breves' => 'id_breve',
     72                           'sites' => 'id_site');
     73
    7774
    7875        $fonds = unserialize(lire_meta('SquelettesMots:fond_pour_groupe'));
    7976
    80         $field_fonds = $_REQUEST['fonds'];
    81         $id_groupes = $_REQUEST['tid_groupe'];
    82         $types = $_REQUEST['type'];
    83         $actif = $_REQUEST['actif'];
    84        
     77        $field_fonds = _request('fonds');
     78        $id_groupes = _request('tid_groupe');
     79        $types = _request('type');
     80        $actif = _request('actif');
     81
    8582        /*On transforme les _POST en jolie tableau*/
    86         if($field_fonds) {
    87           $new_fonds = array();
    88           foreach($field_fonds as $index => $fond) {           
    89                 $index = intval($index);
    90                 $fond = addslashes($fond);
    91                 if($actif[$index]) {
    92                   $id_groupe = intval($id_groupes[$index]);
    93                   $type = addslashes($types[$index]);
    94                   $new_fonds[$fond] = array($id_groupe,$type,$id_tables[$type]);
    95                 }
    96           }
    97           $fonds = $new_fonds;
    98         }
    99        
     83        if ($field_fonds){
     84                $new_fonds = array();
     85                foreach ($field_fonds as $index => $fond){
     86                        $index = intval($index);
     87                        $fond = addslashes($fond);
     88                        if ($actif[$index]){
     89                                $id_groupe = intval($id_groupes[$index]);
     90                                $type = addslashes($types[$index]);
     91                                $new_fonds[$fond] = array($id_groupe, $type, $id_tables[$type]);
     92                        }
     93                }
     94                $fonds = $new_fonds;
     95        }
     96
    10097        $index = 0;
    10198        if (is_array($fonds))
    102         foreach($fonds as $fond => $a) {
    103           list($id_groupe,$type,$id_table) = $a;
    104           $index++;
    105           echo '<fieldset class="regle">';
    106           echo '<legend>'._T('squelettesmots:reglei',array('id'=>$index)).'</legend>';
    107           if(!find_in_path($fond.'.html')) {
    108                 echo '<div class="avertissement">';
    109                 echo _T('squelettesmots:avertissement',array('squelette'=>'<em>'.$fond.'.html'.'</em>'));
    110                 echo '</div>';
    111           }
    112           // echo '<div class="champs">';
    113           echo "<input type=\"checkbox\" class=\"actif\" name=\"actif[$index]\" checked=\"true\"/>";
    114           echo "<label for=\"fond_$index\" class=\"fond\">"._T('squelettesmots:fond')."</label>";
    115           echo "<input type=\"text\" name=\"fonds[$index]\" class=\"forml\"  value=\"$fond\" id=\"fond_$index\"/>";
    116           echo "<label for=\"id_groupe_$index\" class=\"id_groupe\">"._T('squelettesmots:groupe')."</label>";
    117           echo "<select name=\"tid_groupe[$index]\" class=\"id_groupe forml\" id=\"id_groupe_$index\">";
    118           foreach($groupes_mots as $id => $titre) {
    119                 echo "<option value=\"$id\"".(($id_groupe == $id)?' selected="true"':'').">$titre</option>";
    120           }
    121           echo '</select>';
    122           echo "<label for=\"type_$index\" class=\"type\">"._T('squelettesmots:type')."</label>";
    123           echo "<select name=\"type[$index]\" class=\"type forml\" id=\"type_$index\">";
    124           foreach($id_tables as $t => $x) {
    125                 echo "<option value=\"$t\"".(($type == $t)?' selected="true"':'').">$t</option>";
    126           }
    127           echo '</select>';
    128           // echo '</div>';
    129           $select1 = array('titre');
    130           $from1 = array('spip_mots AS mots');
    131           $where1 = array("id_groupe=$id_groupe");
    132           $rez =sql_select($select1,$from1,$where1);
    133           $liste_squel = '<ul>';
    134           $ext = 'html'; //On force a html, c'est pas beau, mais je vois pas la solution actuellement.
    135           $cnt_actif = 0;
    136           $cnt_inactif = 0;
    137           while ($r = sql_fetch($rez)) {
    138                 include_spip("inc/charsets");
    139                 $n = translitteration(preg_replace('/["\'.\s]/','_',extraire_multi($r['titre'])));
    140                 if ($squel = find_in_path("$fond-$n.$ext")) {
    141                   $cnt_actif++;
    142                   $liste_squel .= "<li><a href=\"$squel\">$fond-$n.$ext</a></li>";
    143                 } else {
    144                   $cnt_inactif++;
    145                   $liste_squel .= "<li>$fond-$n.$ext</li>";
     99                foreach ($fonds as $fond => $a){
     100                        list($id_groupe, $type, $id_table) = $a;
     101                        $index++;
     102                        echo '<fieldset class="regle">';
     103                        echo '<legend>'._T('squelettesmots:reglei', array('id' => $index)).'</legend>';
     104                        if (!find_in_path($fond.'.html')){
     105                                echo '<div class="avertissement">';
     106                                echo _T('squelettesmots:avertissement', array('squelette' => '<em>'.$fond.'.html'.'</em>'));
     107                                echo '</div>';
     108                        }
     109                        // echo '<div class="champs">';
     110                        echo "<input type=\"checkbox\" class=\"actif\" name=\"actif[$index]\" checked=\"true\"/>";
     111                        echo "<label for=\"fond_$index\" class=\"fond\">"._T('squelettesmots:fond')."</label>";
     112                        echo "<input type=\"text\" name=\"fonds[$index]\" class=\"forml\"  value=\"$fond\" id=\"fond_$index\"/>";
     113                        echo "<label for=\"id_groupe_$index\" class=\"id_groupe\">"._T('squelettesmots:groupe')."</label>";
     114                        echo "<select name=\"tid_groupe[$index]\" class=\"id_groupe forml\" id=\"id_groupe_$index\">";
     115                        foreach ($groupes_mots as $id => $titre){
     116                                echo "<option value=\"$id\"".(($id_groupe==$id) ? ' selected="true"' : '').">$titre</option>";
     117                        }
     118                        echo '</select>';
     119                        echo "<label for=\"type_$index\" class=\"type\">"._T('squelettesmots:type')."</label>";
     120                        echo "<select name=\"type[$index]\" class=\"type forml\" id=\"type_$index\">";
     121                        foreach ($id_tables as $t => $x){
     122                                echo "<option value=\"$t\"".(($type==$t) ? ' selected="true"' : '').">$t</option>";
     123                        }
     124                        echo '</select>';
     125                        // echo '</div>';
     126                        $select1 = array('titre');
     127                        $from1 = array('spip_mots AS mots');
     128                        $where1 = array("id_groupe=".intval($id_groupe));
     129                        $rez = sql_select($select1, $from1, $where1);
     130                        $liste_squel = '<ul>';
     131                        $ext = 'html'; //On force a html, c'est pas beau, mais je vois pas la solution actuellement.
     132                        $cnt_actif = 0;
     133                        $cnt_inactif = 0;
     134                        while ($r = sql_fetch($rez)){
     135                                include_spip("inc/charsets");
     136                                $n = translitteration(preg_replace('/["\'.\s]/', '_', extraire_multi($r['titre'])));
     137                                if ($squel = find_in_path("$fond-$n.$ext")){
     138                                        $cnt_actif++;
     139                                        $liste_squel .= "<li><a href=\"$squel\">$fond-$n.$ext</a></li>";
     140                                } else {
     141                                        $cnt_inactif++;
     142                                        $liste_squel .= "<li>$fond-$n.$ext</li>";
     143                                }
     144                                if ($squel = find_in_path("$fond=$n.$ext")){
     145                                        $cnt_actif++;
     146                                        $liste_squel .= "<li><a href=\"$squel\">$fond=$n.$ext</a></li>";
     147                                } else {
     148                                        $cnt_inactif++;
     149                                        $liste_squel .= "<li>$fond=$n.$ext</li>";
     150                                }
     151                        }
     152                        sql_free($rez);
     153                        $liste_squel .= '</ul>';
     154
     155
     156                        echo '<div class="possible">';
     157                        if ($cnt_actif+$cnt_inactif>0){
     158                                echo bouton_block_depliable(_T('squelettesmots:possibilites', array('total_actif' => $cnt_actif, 'total_inactif' => $cnt_inactif)), false);
     159                                echo debut_block_depliable(false, "regle$index");
     160                                echo $liste_squel;
     161                                echo fin_block();
     162                        }
     163                        echo '</div>';
     164
     165                        echo '</fieldset>';
    146166                }
    147                 if ($squel = find_in_path("$fond=$n.$ext")) {
    148                   $cnt_actif++;
    149                   $liste_squel .= "<li><a href=\"$squel\">$fond=$n.$ext</a></li>";
    150                 } else {
    151                   $cnt_inactif++;
    152                   $liste_squel .= "<li>$fond=$n.$ext</li>";
    153                 }
    154           }
    155           sql_free($rez);
    156           $liste_squel .= '</ul>';
    157 
    158          
    159           echo '<div class="possible">';
    160           if($cnt_actif+$cnt_inactif > 0) {
    161           echo bouton_block_depliable(_T('squelettesmots:possibilites',array('total_actif' => $cnt_actif, 'total_inactif'=>$cnt_inactif)),false);
    162                 echo debut_block_depliable(false,"regle$index");
    163                 echo $liste_squel;
    164                 echo fin_block();
    165           }
    166           echo '</div>';
    167 
    168           echo '</fieldset>';
    169         }
    170        
     167
    171168        $index++;
    172        
     169
    173170        echo '<hr/>';
    174171        echo '<fieldset class="nouvelle regle">';
     
    177174        echo "<label for=\"fond_$index\" class=\"fond\">"._T('squelettesmots:fond')."</label>";
    178175        echo "<input type=\"text\" name=\"fonds[$index]\" class=\"forml\" value=\"article\"/>";
    179        
     176
    180177        echo "<label for=\"id_groupe_$index\" class=\"id_groupe\">"._T('squelettesmots:groupe')."</label>";
    181178        echo "<select name=\"tid_groupe[$index]\" class=\"id_groupe forml\" id=\"id_groupe_$index\">";
    182         foreach($groupes_mots as $id => $titre) {
    183           echo "<option value=\"$id\">$titre</option>";
     179        foreach ($groupes_mots as $id => $titre){
     180                echo "<option value=\"$id\">$titre</option>";
    184181        }
    185182        echo '</select>';
    186183        echo "<label for=\"type_$index\" class=\"type\">"._T('squelettesmots:type')."</label>";
    187184        echo "<select name=\"type[$index]\" class=\"type forml\" id=\"type_$index\">";
    188         foreach($id_tables as $t => $x) {
    189           echo "<option value=\"$t\">$t</option>";
     185        foreach ($id_tables as $t => $x){
     186                echo "<option value=\"$t\">$t</option>";
    190187        }
    191188        echo '</select>';
    192189        echo '</fieldset>';
    193        
     190
    194191        echo '<div style="text-align: right;"><input type="submit" class="fondo" value="'._T('bouton_valider').'"/></div>';
    195192        echo '</form>';
    196193        echo fin_cadre_relief(true);
    197   }
    198  
    199   ecrire_meta('SquelettesMots:fond_pour_groupe',serialize($fonds));
    200   ecrire_metas();
    201  
    202   echo fin_gauche();
    203   echo fin_page();
    204  
     194
     195        ecrire_meta('SquelettesMots:fond_pour_groupe', serialize($fonds));
     196        ecrire_metas();
     197
     198        echo fin_gauche();
     199        echo fin_page();
     200
    205201}
    206202
Note: See TracChangeset for help on using the changeset viewer.