Changeset 74750 in spip-zone


Ignore:
Timestamp:
Aug 14, 2013, 12:25:08 PM (6 years ago)
Author:
jcvilleneuve@…
Message:

corrections pour l'install du groupe "affichage" et de ses mots-clés

Location:
_squelettes_/escal/branche_V3
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • _squelettes_/escal/branche_V3/escal_administrations.php

    r74656 r74750  
    2929    );
    3030   
     31    $maj['1.0.1'] =array(
     32        array('update_groupe_mots')
     33    );
     34   
    3135    include_spip('base/upgrade');
    3236    maj_plugin($nom_meta_base_version, $version_cible, $maj);
    3337    ecrire_meta($nom_meta_base_version,$version_cible);
    34     ecrire_meta();
     38    //ecrire_meta();
    3539}
    3640
     
    4246**/
    4347function escal_vider_tables($nom_meta_base_version) {
    44 
    45     include_spip('inc/config');
    46     $affichage = lire_config('escal/mots_techniques/affichage');
     48    include_spip('escal_fonctions');
    4749   
    48     sql_delete('spip_groupes_mots', sql_in("id_groupe", array($affichage)));
    49     sql_delete('spip_mots', sql_in("id_groupe", array($affichage)));
     50    uninstal_escal();
    5051   
    5152    effacer_meta('escal');
  • _squelettes_/escal/branche_V3/escal_fonctions.php

    r74740 r74750  
    2929
    3030
     31// Description du shema de groupes et mots
     32function shema_escal(){
     33    $schema = array(
     34        'groupes' => array(
     35            array(
     36                'titre'=>'affichage',
     37                'descriptif'=>'Groupe de mots-clés techniques utilisés dans Escal',
     38                'tables_liees'=>'articles,rubriques,syndic',
     39                'minirezo'=>'oui',
     40                'comite'=>'oui'
     41            )   
     42        ),
     43        'mots'=> array(
     44            array(
     45                'titre'=>'pas-au-menu',
     46                'descriptif'=>'pour ne pas afficher une rubrique ou un article dans le menu horizontal',
     47                'type'=>'affichage'
     48                ),
     49            array(
     50                'titre'=>'pas-au-menu-vertical',
     51                'descriptif'=>'Modification dans le descriptif !! pour ne pas afficher une rubrique ou un article dans les menus verticaux',
     52                'type'=>'affichage'
     53            ),
     54            array(
     55                'titre'=>'chrono',
     56                'descriptif'=>'pour afficher les articles d’une rubrique dans les menus en ordre antéchronologique, comportement non transmis aux rubriques-filles',
     57                'type'=>'affichage'
     58            ),
     59            array(
     60                'titre'=>'pas-a-la-une',
     61                'descriptif'=>'pour ne pas afficher une rubrique (et ses articles) ou des articles dans le bloc "les derniers articles ..." de la page d’accueil',
     62                'type'=>'affichage'
     63                ),
     64            array(
     65                'titre'=>'pas-au-plan',
     66                'descriptif'=>'pour ne pas afficher une rubrique (et ses articles) ou des articles dans le bloc "Plan du site" de la page d’accueil',
     67                'type'=>'affichage'
     68            ),
     69            array(
     70                'titre'=>'edito',
     71                'descriptif'=>'pour choisir l’article qui sera affiché dans le bloc "Edito" (noisette inc-edito)',
     72                'type'=>'affichage'
     73            ),
     74            array(
     75                'titre'=>'accueil',
     76                'descriptif'=>'pour choisir l’article affiché en onglet d’accueil (noisette inc-accueil)',
     77                'type'=>'affichage'
     78            ),
     79            array(
     80                'titre'=>'acces-direct',
     81                'descriptif'=>'pour choisir l’article qui sera affiché dans le bloc "Accès direct" (noisette inc-acces_direct)',
     82                'type'=>'affichage'
     83            ),
     84            array(
     85                'titre'=>'annonce',
     86                'descriptif'=>'pour choisir l’article dont le texte sera affiché dans le bloc "Annonce" de la page d’accueil (noisette inc-annonce)',
     87                'type'=>'affichage'
     88            ),
     89            array(
     90                'titre'=>'annonce-defilant',
     91                'descriptif'=>'pour choisir les articles dont le texte sera affiché dans le bloc "Annonces défilantes" de la page d’accueil (noisette inc-annonce_defilant)',
     92                'type'=>'affichage'
     93            ),
     94            array(
     95                'titre'=>'agenda',
     96                'descriptif'=>'pour choisir les articles ou la ou les rubriques dont les articles seront affichés dans l’agenda',
     97                'type'=>'affichage'
     98            ),
     99            array(
     100                'titre'=>'actus',
     101                'descriptif'=>'pour choisir les articles qui seront affichés dans le bloc "Actus" (noisette inc-actus)',
     102                'type'=>'affichage'
     103            ),
     104            array(
     105                'titre'=>'photo-une',
     106                'descriptif'=>'pour choisir les articles dont les images seront affichées dans le bloc "Quelques images au hasard" (noisette inc-photos)',
     107                'type'=>'affichage'
     108            ),
     109            array(
     110                'titre'=>'video-une',
     111                'descriptif'=>'pour choisir les articles dont les vidéos seront affichées dans le bloc "Vidéo" (noisette inc-video_accueil)',
     112                'type'=>'affichage'
     113            ),
     114            array(
     115                'titre'=>'favori',
     116                'descriptif'=>'pour choisir les sites dont les vignettes seront affichées dans le bloc "Sites favoris" (noisette inc-sites_favoris.html)',
     117                'type'=>'affichage'
     118            ),
     119            array(
     120                'titre'=>'site-exclu',
     121                'descriptif'=>'pour exclure des sites dans le bloc "Sur le web" (noisette inc-sites.html)',
     122                'type'=>'affichage'
     123            ),
     124            array(
     125                'titre'=>'forum',
     126                'descriptif'=>'pour choisir le secteur qui sera utilisé pour le forum du site',
     127                'type'=>'affichage'
     128            ),
     129            array(
     130                'titre'=>'annuaire',
     131                'descriptif'=>'pour choisir l’article qui sera utilisé par la page annuaire.html',
     132                'type'=>'affichage'
     133            ),
     134            array(
     135                'titre'=>'RubriqueOnglet',
     136                'descriptif'=>'pour choisir la rubrique qui sera affichée dans les onglets en page d’accueil',
     137                'type'=>'affichage'
     138            ),
     139            array(
     140                'titre'=>'citations',
     141                'descriptif'=>'pour choisir l’article qui servira de réservoir pour les citations dans le pied de page',
     142                'type'=>'affichage'
     143            ),
     144            array(
     145                'titre'=>'mon-article',
     146                'descriptif'=>'pour choisir l’article qui sera affiché dans un onglet du bloc central de la page d’accueil',
     147                'type'=>'affichage'
     148            ),
     149            array(
     150                'titre'=>'special',
     151                'descriptif'=>'pour choisir la rubrique et/ou les articles qui seront affichés dans le bloc à personnaliser (noisette inc-perso.html)',
     152                'type'=>'affichage'
     153            ),
     154            array(
     155                'titre'=>'pas-a-decouvrir',
     156                'descriptif'=>'pour choisir les rubriques et les articles à exclure de l’affichage dans la noisette "A decouvrir" si on choisit "dans tout le site" (inc-decouvrir-articles-sites.html)',
     157                'type'=>'affichage'
     158            )
     159           
     160        )
     161    );
     162   
     163    return $schema;
     164}
     165
     166// Fonction de mise a jour du schema
     167function update_groupe_mots(){
     168    include_spip('action/editer_objet');
     169   
     170    // chargement du array des groupe et mots
     171    $schema = shema_escal();
     172   
     173    // en qu'elle version de escal est on ?
     174    // si on a une meta escal_base_version, c'est qu'on est sur une version avec instalation auto
     175    $meta = lire_config('escal_base_version');
     176   
     177    // si la meta est présente
     178    if($meta!=''){
     179        // Maj des groupes
     180        for ($i= 0 , $nbr_grp = count($schema['groupes']) ; $i < $nbr_grp ; ++$i){
     181            // test si le groupe existe
     182            $grp_titre = $schema['groupes'][$i]['titre'];
     183            $id_grp = sql_getfetsel("id_groupe","spip_groupes_mots","titre='$grp_titre'");
     184            // si pas d'id retournée on inssère
     185            if($id_grp!=''){
     186                //echo "Update le groupe existe déja : ".$id_grp."=> ".$grp_titre."\n";
     187                sql_updateq('spip_groupes_mots', $schema['groupes'][$i], "id_groupe='$id_grp'");
     188            }//sinon on met a jour
     189            else{
     190                //echo "Insert Le groupe n'éxiste pas => ".$grp_titre."\n";
     191                $id = sql_insertq('spip_groupes_mots',$schema['groupes'][$i]);
     192            }
     193           
     194        }   
     195       
     196        //Maj des mots : on boucle sur le tableau mots
     197        for ($i= 0 , $nbr_mot = count($schema['mots']) ; $i < $nbr_mot ; ++$i){
     198            // test la présence du mot sur le champ titre
     199            $titre = $schema['mots'][$i]['titre'];
     200            $id_mot = sql_getfetsel("id_mot","spip_mots","titre='$titre'");
     201            // le titre du mot est déjà présent
     202            if($id_mot!=''){
     203                // echo "Update le mot clef existe déja : ".$id_mot."=> ".$titre."\n";
     204                $test = sql_updateq('spip_mots', $schema['mots'][$i], "titre='$titre'");
     205                objet_modifier('mot',$id_mot,$schema['mots'][$i]);
     206            }else{
     207                // echo "Insert Le mot clef n'éxiste pas => ".$titre."\n";
     208                // on extrait du array le groupe dont dépend le mot
     209                $grp_titre = $schema['mots'][$i]['type'];
     210                $id_grp = sql_getfetsel("id_groupe","spip_groupes_mots","titre='$grp_titre'");
     211                $id_mot = objet_inserer('mot',$id_grp);
     212                objet_modifier('mot',$id_mot,$schema['mots'][$i]);
     213            }
     214        }
     215    }//si pas de meta_base on est sur une install plus ancienne
     216    else{
     217       // on verra plus tard ;-)
     218    }
     219}
     220
     221
    31222/*
    32223 * function install_groupe_mot
    33  * installe le groupe de mots techniques et ses mots clefs
     224 * installe les groupes de mots techniques et leurs mots clefs
    34225 */
    35226function install_groupe_mots() {
    36     // Création du groupe de mot-clef : affichage
    37     $groupe_affichage = sql_insertq('spip_groupes_mots',array(
    38       'titre'=>'affichage',
    39       'descriptif'=>'Groupe de mots-cl&eacute;s techniques utilis&eacute;s dans Escal',
    40       'tables_liees'=>'articles,rubriques,syndic',
    41       'minirezo'=>'oui',
    42       'comite'=>'oui'
    43       ));
    44    
    45     // Création des mots-clefs -----------
    46 
    47     // Mot : pas_au_menu
    48     $pas_au_menu = objet_inserer('mot',$groupe_affichage);
    49     objet_modifier('mot',$pas_au_menu,array(
    50         'titre'=>'pas-au-menu',
    51         'descriptif'=>'pour ne pas afficher une rubrique ou un article dans le menu horizontal'
    52         )
    53     );
    54    
    55     // Mot : pas_au_menu
    56     $pas_au_menu_vertical = objet_inserer('mot',$groupe_affichage);
    57     objet_modifier('mot',$pas_au_menu_vertical,array(
    58         'titre'=>'pas-au-menu-vertical',
    59         'descriptif'=>'pour ne pas afficher une rubrique ou un article dans les menus verticaux'
    60         )
    61     );
    62    
    63     // Mot : chrono
    64     $chrono = objet_inserer('mot',$groupe_affichage);
    65     objet_modifier('mot',$chrono,array(
    66         'titre'=>'chrono',
    67         'descriptif'=>'pour afficher les articles d&rsquo;une rubrique dans les menus en ordre ant&eacute;chronologique, comportement non transmis aux rubriques-filles'
    68         )
    69     );
    70    
    71     // Mot : pas-a-la-une
    72     $pas_a_la_une = objet_inserer('mot',$groupe_affichage);
    73     objet_modifier('mot',$pas_a_la_une,array(
    74         'titre'=>'pas-a-la-une',
    75         'descriptif'=>'pour ne pas afficher une rubrique (et ses articles) ou des articles dans le bloc "les derniers articles ..." de la page d&rsquo;accueil'
    76         )
    77     );
    78    
    79     // Mot : pas-au-plan
    80     $pas_au_plan = objet_inserer('mot',$groupe_affichage);
    81     objet_modifier('mot',$pas_au_plan,array(
    82         'titre'=>'pas-au-plan',
    83         'descriptif'=>'pour ne pas afficher une rubrique (et ses articles) ou des articles dans le bloc "Plan du site" de la page d&rsquo;accueil'
    84         )
    85     );
    86    
    87     // Mot : edito
    88     $edito = objet_inserer('mot',$groupe_affichage);
    89     objet_modifier('mot',$edito,array(
    90         'titre'=>'edito',
    91         'descriptif'=>'pour choisir l&rsquo;article qui sera affich&eacute; dans le bloc "Edito" (noisette inc-edito)'
    92         )
    93     );
    94    
    95     // Mot : accueil
    96     $accueil = objet_inserer('mot',$groupe_affichage);
    97     objet_modifier('mot',$accueil,array(
    98         'titre'=>'accueil',
    99         'descriptif'=>'pour choisir l&rsquo;article affich&eacute; en onglet d&rsquo;accueil (noisette inc-accueil)'
    100         )
    101     );
    102    
    103     // Mot : acces-direct
    104     $acces_direct = objet_inserer('mot',$groupe_affichage);
    105     objet_modifier('mot',$acces_direct,array(
    106         'titre'=>'acces-direct',
    107         'descriptif'=>'pour choisir l&rsquo;article qui sera affich&eacute; dans le bloc "Acc&egrave;s direct" (noisette inc-acces_direct)'
    108         )
    109     );
    110    
    111     // Mot : annonce
    112     $annonce = objet_inserer('mot',$groupe_affichage);
    113     objet_modifier('mot',$annonce,array(
    114         'titre'=>'annonce',
    115         'descriptif'=>'pour choisir l&rsquo;article dont le texte sera affich&eacute; dans le bloc "Annonce" de la page d&rsquo;accueil (noisette inc-annonce)'
    116         )
    117     );
    118    
    119     // Mot : annonce-defilant
    120     $annonce_defilant = objet_inserer('mot',$groupe_affichage);
    121     objet_modifier('mot',$annonce_defilant,array(
    122         'titre'=>'annonce-defilant',
    123         'descriptif'=>'pour choisir les articles dont le texte sera affich&eacute; dans le bloc "Annonces d&eacute;filantes" de la page d&rsquo;accueil (noisette inc-annonce_defilant)'
    124         )
    125     );
    126    
    127     // Mot : agenda
    128     $agenda = objet_inserer('mot',$groupe_affichage);
    129     objet_modifier('mot',$agenda,array(
    130         'titre'=>'agenda',
    131         'descriptif'=>'pour choisir les articles ou la ou les rubriques dont les articles seront affich&eacute;s dans l&rsquo;agenda'
    132         )
    133     );
    134    
    135     // Mot : actus
    136     $actus = objet_inserer('mot',$groupe_affichage);
    137     objet_modifier('mot',$actus,array(
    138         'titre'=>'actus',
    139         'descriptif'=>'pour choisir les articles qui seront affich&eacute;s dans le bloc "Actus" (noisette inc-actus)'
    140         )
    141     );
    142    
    143     // Mot : photo-une
    144     $photo_une = objet_inserer('mot',$groupe_affichage);
    145     objet_modifier('mot',$photo_une,array(
    146         'titre'=>'photo-une',
    147         'descriptif'=>'pour choisir les articles dont les images seront affich&eacute;es dans le bloc "Quelques images au hasard" (noisette inc-photos)'
    148         )
    149     );
    150    
    151     // Mot : video-une
    152     $video_une = objet_inserer('mot',$groupe_affichage);
    153     objet_modifier('mot',$video_une,array(
    154         'titre'=>'video-une',
    155         'descriptif'=>'pour choisir les articles dont les vid&eacute;os seront affich&eacute;es dans le bloc "Vid&eacute;o" (noisette inc-video_accueil)'
    156         )
    157     );
    158    
    159     // Mot : favori
    160     $favori = objet_inserer('mot',$groupe_affichage);
    161     objet_modifier('mot',$favori,array(
    162         'titre'=>'favori',
    163         'descriptif'=>'pour choisir les sites dont les vignettes seront affich&eacute;es dans le bloc "Sites favoris" (noisette inc-sites_favoris.html)'
    164         )
    165     );
    166    
    167     // Mot : site-exclu
    168     $site_exclu = objet_inserer('mot',$groupe_affichage);
    169     objet_modifier('mot',$site_exclu,array(
    170         'titre'=>'site-exclu',
    171         'descriptif'=>'pour exclure des sites dans le bloc "Sur le web" (noisette inc-sites.html)'
    172         )
    173     );
    174    
    175     // Mot : forum
    176     $forum = objet_inserer('mot',$groupe_affichage);
    177     objet_modifier('mot',$forum,array(
    178         'titre'=>'forum',
    179         'descriptif'=>'pour choisir le secteur qui sera utilis&eacute; pour le forum du site'
    180         )
    181     );
    182    
    183     // Mot : annuaire
    184     $annuaire = objet_inserer('mot',$groupe_affichage);
    185     objet_modifier('mot',$annuaire,array(
    186         'titre'=>'annuaire',
    187         'descriptif'=>'pour choisir l&rsquo;article qui sera utilis&eacute; par la page annuaire.html'
    188         )
    189     );
    190    
    191     // Mot : RubriqueOnglet
    192     $RubriqueOnglet = objet_inserer('mot',$groupe_affichage);
    193     objet_modifier('mot',$RubriqueOnglet,array(
    194         'titre'=>'RubriqueOnglet',
    195         'descriptif'=>'pour choisir la rubrique qui sera affich&eacute;e dans les onglets en page d&rsquo;accueil'
    196         )
    197     );
    198    
    199     // Mot : citations
    200     $citations = objet_inserer('mot',$groupe_affichage);
    201     objet_modifier('mot',$citations,array(
    202         'titre'=>'citations',
    203         'descriptif'=>'pour choisir l&rsquo;article qui servira de r&eacute;servoir pour les citations dans le pied de page'
    204         )
    205     );
    206    
    207     // Mot : mon-article
    208     $mon_article = objet_inserer('mot',$groupe_affichage);
    209     objet_modifier('mot',$mon_article,array(
    210         'titre'=>'mon-article',
    211         'descriptif'=>'pour choisir l&rsquo;article qui sera affiché dans un onglet du bloc central de la page d&rsquo;accueil'
    212         )
    213     );
    214    
    215     // Mot : special
    216     $special = objet_inserer('mot',$groupe_affichage);
    217     objet_modifier('mot',$special,array(
    218         'titre'=>'special',
    219         'descriptif'=>'pour choisir la rubrique et/ou les articles qui seront affich&eacute;s dans le bloc &agrave; personnaliser (noisette inc-perso.html)'
    220         )
    221     );
    222    
    223     // Mot : pas-a-decouvrir
    224     $pas_a_decouvrir = objet_inserer('mot',$groupe_affichage);
    225     objet_modifier('mot',$pas_a_decouvrir,array(
    226         'titre'=>'pas-a-decouvrir',
    227         'descriptif'=>'pour choisir les rubriques et les articles &agrave; exclure de l&rsquo;affichage dans la noisette "A decouvrir" si on choisit "dans tout le site" (inc-decouvrir-articles-sites.html)'
    228         )
    229     );
    230    
    231     $result = array(
    232         'affichage'=>$groupe_affichage,
    233         'affichage_mots'=> array(
    234             'pas_au_menu'=>$pas_au_menu,
    235             'pas_au_menu_vertical'=>$pas_au_menu_vertical,
    236             'chrono'=>$chrono,
    237             'pas_a_la_une'=>$pas_a_la_une,
    238             'pas_au_plan'=>$pas_au_plan,
    239             'edito'=>$edito,
    240             'accueil'=>$accueil,
    241             'acces_direct'=>$acces_direct,
    242             'annonce'=>$annonce,
    243             'annonce_defilant'=>$annonce_defilant,
    244             'agenda'=>$agenda,
    245             'actus'=>$actus,
    246             'photo_une'=>$photo_une,
    247             'video_une'=>$video_une,
    248             'favori'=>$favori,
    249             'site_exclu'=>$site_exclu,
    250             'forum'=>$forum,
    251             'annuaire'=>$annuaire,
    252             'RubriqueOnglet'=>$RubriqueOnglet,
    253             'citations'=>$citations,
    254             'mon_article'=>$mon_article,
    255             'special'=>$special,
    256             'pas_a_decouvrir'=>$pas_a_decouvrir
    257             )
    258     );
    259    
    260     ecrire_config('escal/mots_techniques',$result);
    261    
    262     return $result;
    263 }
    264 
    265 
     227    include_spip('action/editer_objet');
     228    // chargement du array des groupe et mots
     229    $schema = shema_escal();
     230    // installation des groupes
     231    for ($i= 0 , $nbr_mot = count($schema['groupes']) ; $i < $nbr_mot ; ++$i){
     232        $id = sql_insertq('spip_groupes_mots',$schema['groupes'][$i]);
     233    }
     234   
     235    // installation des mots
     236    for ($i= 0 , $nbr_mot = count($schema['mots']) ; $i < $nbr_mot ; ++$i){
     237        // on extrait du array le groupe dont dépend le mot
     238        $grp_titre = $schema['mots'][$i]['type'];
     239        $id_grp = sql_getfetsel("id_groupe","spip_groupes_mots","titre='$grp_titre'");
     240        if($id_grp!=''){
     241           $id_mot = objet_inserer('mot',$id_grp);
     242            objet_modifier('mot',$id_mot,$schema['mots'][$i]);
     243        }
     244    }
     245   
     246}
     247
     248// Fonction de désinstalation des groupes et mots de Escal
     249function uninstal_escal(){
     250    // chargement du array des groupe et mots
     251    $schema = shema_escal();
     252    $id_grp = array();
     253    // recuperer les id des groupes
     254    for ($i= 0 , $nbr_mot = count($schema['groupes']) ; $i < $nbr_mot ; ++$i){
     255        $grp_titre = $schema['groupes'][$i]['titre'];
     256        $id_grp = sql_getfetsel("id_groupe","spip_groupes_mots","titre='$grp_titre'");
     257        // désinstaller les mots correspondant a ce groupe
     258        sql_delete("spip_mots","id_groupe='$id_grp'");
     259        sql_delete("spip_groupes_mots","id_groupe='$id_grp'");
     260    }
     261}
    266262
    267263// =======================================================================================================================================
  • _squelettes_/escal/branche_V3/paquet.xml

    r74744 r74750  
    22    prefix="escal"
    33    categorie="squelette"
    4     version="3.72.12"
    5     schema="1.0.0"
     4    version="3.72.13"
     5    schema="1.0.1"
    66    etat="stable"
    77    compatibilite="[2.10.0;["
Note: See TracChangeset for help on using the changeset viewer.