Changeset 7691 in spip-zone


Ignore:
Timestamp:
Nov 30, 2006, 5:51:08 PM (12 years ago)
Author:
renato@…
Message:

moved all db writes to action

Location:
_plugins_/_dev_/indicizzazione_tabelle
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_dev_/indicizzazione_tabelle/exec/indicizza_tabella.php

    r7202 r7691  
    1212function exec_indicizza_tabella_dist() {
    1313       
    14         global $tables_principales,$tables_auxiliaires,$INDEX_tables_interdites,$INDEX_elements_objet;
     14        global $tables_principales,$INDEX_tables_interdites,$INDEX_elements_objet;
    1515        include_spip("base/serial");
    16         include_spip("base/auxiliaires");
    1716       
    1817        //carica definizioni da mes_fonctions
     
    2423        }
    2524
    26         $tabelle_standard = array_merge($tables_principales,$tables_auxiliaires);
     25        include_spip("inc/texte");
    2726
    28                
    29         include_spip("inc/texte");
    30         $ok = true;
    3127        $tabella = interdire_scripts(_request("tabella"));
    32         //Controlli di sicurezza
     28        //Controlli di sicurezza, tabella non specificata
    3329        if(!$tabella) {
    3430                indicizza_tabelle_debut_page();
    35                 echo "Errore: tabella non specificata. ";
     31                echo _L("Errore: tabella non specificata. ");
    3632                indicizza_tabelle_fin_page();
    3733                die();
    3834        }
    39         $azione = interdire_scripts(_request("action"));
    40         //Controlli di sicurezza
    41         if($azione!="indicizza" && $azione!="non_indicizza") {
    42                 indicizza_tabelle_debut_page();
    43                 echo "Errore: azione non specificata. ";
    44                 indicizza_tabelle_fin_page();
    45                 die();
    46         }       
    47        
     35
    4836        //Verifiche esistenza definizione tabella e tabelle vietate
    4937        include_spip("inc/indexation");
    50         if((!array_key_exists($tabella,$tabelle_standard) || in_array($tabella,$INDEX_tables_interdites)) ) {
    51                 indicizza_tabelle_debut_page();
    52                 echo "Impossibile eseguire azione $azione sulla tabella $tabella";
    53                 indicizza_tabelle_fin_page();
    54                 die();
     38        if((!array_key_exists($tabella,$tables_principales) || in_array($tabella,$INDEX_tables_interdites)) ) {
     39                //Verifica esistenza tabella non definita da SPIP ma in db
     40                $tabelle_in_db = spip_query("SHOW TABLES");
     41                $trovata = false;
     42                while($tab=spip_fetch_array($tabelle_in_db,SPIP_BOTH)) {
     43                        if($tab[0] == $tabella) {
     44                                $trovata = true;
     45                                break;
     46                        }
     47                }
     48                if(!$trovata) {
     49                        indicizza_tabelle_debut_page();
     50                        echo _L("Tabella $tabella non trovata");
     51                        indicizza_tabelle_fin_page();
     52                        die();
     53                }
    5554        }
    5655       
     56        indicizza_tabelle_debut_page();
     57        $tabelle = array();
     58        $tabelle[] = array("<strong>"._L("Nome Campo")."</strong>","<strong>"._L("Importanza")."</strong>");
     59                       
     60        //recupera descrizione tabella 
     61        $descr = $tables_principales[$tabella];
     62        //Elimina chiave primaria
     63        $chiavi = explode(",",$descr["key"]["PRIMARY KEY"]);
     64        $descr = array_diff(array_keys($descr["field"]),$chiavi);
     65
     66        foreach($descr as $campo) {
     67                $tabelle[] = array($campo,"<input type='text' name='campo[$campo]' value='5' />");
     68        }
     69        $tabelle[] = array("test","<input type='text' name='campo[test]' value='5' />");
    5770       
    58         if($ok===true) {
    59                 //Verifiche di congruenza azioni
    60                 if($azione=="indicizza" && in_array($tabella,liste_index_tables())) {
    61                         indicizza_tabelle_debut_page();
    62                         echo "La tabella $tabella &egrave; gi&agrave; indicizzata";
    63                         indicizza_tabelle_fin_page();   
    64                         die();
    65                 }
    66                 if($azione=="non_indicizza") {
    67                         if(!in_array($tabella,liste_index_tables())) {
    68                                 indicizza_tabelle_debut_page();
    69                                 echo "La tabella $tabella non &egrave; indicizzata";
    70                                 indicizza_tabelle_fin_page();   
    71                                 die();
    72                         } else {
    73                                 indicizza_tabelle_remove_idx_field($tabella);
    74                                 include_spip('inc/headers');
    75                                 redirige_par_entete(generer_url_ecrire("tabelle_aggiuntive"));                                                                 
    76                         }
    77                 }
    78                
    79                
    80                
    81                 include_spip("base/abstract_sql");
    82                 $descr = spip_abstract_showtable($tabella);
    83                 //Elimina chiave primaria
    84                 $chiavi = explode(",",$descr["key"]["PRIMARY KEY"]);
    85                 $campi = array_keys($descr["field"]);
    86                 $descr = array_diff($campi,$chiavi);
     71        $tabelle = afficher_liste_debut_tableau().afficher_liste(array('60%','40%'),$tabelle).afficher_liste_fin_tableau();
     72
     73        $tabelle .= "<input type='submit' value='Invia' name='invia' />";
    8774       
    88                 if(_request("invia") && $azione=="indicizza") {
    89                         switch($azione) {
    90                                 case "indicizza":
    91                                         if(!indicizza_tabelle_verify_fields($tabella,$campi,$descr)) {
    92                                                 indicizza_tabelle_debut_page();
    93                                                 echo $campi;
    94                                                 indicizza_tabelle_fin_page();
    95                                         } else {
    96                                                 indicizza_tabelle_add_idx_field($tabella);
    97                                                 indicizza_tabelle_set_points_fields($tabella,$campi);
    98                                                 include_spip('inc/headers');
    99                                                 redirige_par_entete(generer_url_ecrire("tabelle_aggiuntive"));                                 
    100                                         }
    101                                         break;
    102                         }
     75        echo generer_action_auteur("indicizza",$tabella,'',$tabelle);
     76       
     77        indicizza_tabelle_fin_page();
    10378                       
    104                 } else {
    105                         indicizza_tabelle_debut_page();
    106                         $tabelle = array();
    107                         $tabelle[] = array("<strong>Nome Campo</strong>","<strong>Importanza</strong>");
    108                         echo "<form method='POST' action=''><div>";     
    109                         foreach($descr as $campo) {
    110                                 $tabelle[] = array($campo,"<input type='text' name='campo[$campo]' value='5' />");
    111                         }
    112                        
    113                         if($tabelle)
    114                                 echo afficher_liste_debut_tableau().afficher_liste(array('60%','40%'),$tabelle).afficher_liste_fin_tableau();
    115                
    116                         echo "<input type='submit' value='Invia' name='invia' />";
    117                         echo "</div></form>";
    118                         indicizza_tabelle_fin_page();
    119                 }
    120                        
    121         }
    122 
    12379}
    12480
     
    13793        debut_droite();
    13894       
    139         gros_titre("Indicizzazione tabelle esterne");
     95        gros_titre(_L("Indicizzazione tabelle esterne"));
    14096       
    14197       
    142         debut_cadre_trait_couleur('','','',"Indicizza tabella");
     98        debut_cadre_trait_couleur('','','',_L("Indicizza tabella"));
    14399
    144100}
     
    151107
    152108}
    153 
    154 function indicizza_tabelle_add_idx_field($tabella) {
    155                 spip_query("ALTER TABLE $tabella ADD COLUMN idx enum('', '1', 'non', 'oui', 'idx') NOT NULL default '';");
    156                 update_index_tables();         
    157 }
    158 
    159 function indicizza_tabelle_remove_idx_field($tabella) {
    160                 spip_query("ALTER TABLE $tabella DROP COLUMN idx;");
    161                 update_index_tables();         
    162 }
    163 
    164 
    165 function indicizza_tabelle_set_points_fields($tabella,$campi) {
    166                 global $INDEX_elements_objet;
    167 
    168                 include_spip('inc/meta');
    169                 $INDEX_elements_objet["$tabella"] = $campi;
    170                 ecrire_meta('INDEX_elements_objet',serialize($INDEX_elements_objet));
    171                 ecrire_metas();                 
    172                
    173                 //Aggiorna tabella spip_index e meta index_table per indicizzazione
    174                 update_index_tables();
    175 }
    176 
    177 function indicizza_tabelle_verify_fields($tabella,$campi,$descr) {
    178                 //Verifica sicurezza
    179                 $ok = true;
    180                 $campi = _request("campo");
    181                 if(!is_array($campi)) {
    182                                 $ok=false;
    183                                 $campi = "Errore";                     
    184                 } else
    185                 foreach($campi as $nome => $val) {
    186                         if(!in_array($nome,$descr)) {
    187                                 $ok=false;
    188                                 $campi =  "Campo ".interdire_scripts($nome)." inesistente";
    189                                 break;
    190                         } else {
    191                                 $campi[$nome] = intval($val);
    192                                 if(!$campi[$nome]) {
    193                                         $ok=false;
    194                                         $campi = "Errore";
    195                                         break;                         
    196                                 }
    197                         }
    198                 }
    199                 return $ok;             
    200 }
    201109?>
  • _plugins_/_dev_/indicizzazione_tabelle/exec/tabelle_aggiuntive.php

    r7202 r7691  
    1313
    1414include_spip('inc/presentation');
    15 
     15include_spip('inc/actions');
    1616
    1717function exec_tabelle_aggiuntive_dist() {
     
    8282                        if(!array_key_exists($tab[0],$tabelle_definite)) {
    8383                                $stato = "nodef";
    84                                 //$tabelle_standard[$tab[0]] = spip_abstract_showtable($tab[0],'',"true");
    8584                        } else
    8685                        if(in_array($tab[0],$INDEX_tables_interdites)) {
     
    9796                        }
    9897
    99                 switch($stato) {
    100                        
     98                        switch($stato) {
    10199                        case "nodef":
    102                                 $idx = "<span style='color:red'>tabella non definita in spip</span>";
     100                                $idx = "<div style='color:red'>tabella non definita in spip</div>";
    103101                                //$azioni ="<a href='#'>definisci</a>";
    104102                                $azioni = "";
    105103                                break;
    106104                        case "vietata":
    107                                 $idx = "<span style='color:red'>tabella esclusa dall'indicizzazione</span>";
     105                                $idx = "<div style='color:red'>tabella esclusa dall'indicizzazione</div>";
    108106                                $azioni ="";
    109107                                break;
    110108                        case "noind":
    111                                 $idx = "<span style='color:red'>tabella non indicizzata</span>";
     109                                $idx = "<div style='color:red'>tabella non indicizzata</div>";
    112110                                //if (!array_key_exists($tab[0],$tabelle_standard)) $azioni ="<a href='".generer_url_ecrire("indicizza_tabella","tabella=".rawurlencode($tab[0]))."'>indicizza</a>";
    113                                 $azioni ="<a href='".generer_url_ecrire("indicizza_tabella","tabella=".rawurlencode($tab[0]))."&amp;action=indicizza'>indicizza</a>";
     111                                $azioni ="<a href='".generer_url_ecrire("indicizza_tabella","tabella=".rawurlencode($tab[0]))."'>indicizza</a>";
    114112                                break;
    115113                        case "nocampiind":
     
    120118                                $idx = "tabella indicizzata";
    121119                                //if (!array_key_exists($tab[0],$tabelle_standard)) $azioni ="<a href='#'>elimina indice</a>";
    122                                 $azioni ="<a href='".generer_url_ecrire("indicizza_tabella","tabella=".rawurlencode($tab[0]))."&amp;action=non_indicizza'>elimina indice</a>";
     120                                $azioni ="<a href='".generer_action_auteur("indicizza","-".rawurlencode($tab[0]))."'>elimina indice</a>";
    123121                                break;
    124122                }
Note: See TracChangeset for help on using the changeset viewer.