source: spip-zone/_squelettes_/soyezcreateurs_net/trunk/plugins/soyezcreateurs/base/soyezcreateurs_install.php @ 82680

Last change on this file since 82680 was 82680, checked in by real3t@…, 7 years ago

Pouvoir ne pas faire l'installation de SoyezCréateurs? via un define dans mes_options.php :
define('_BYPASS_SC_INSTALL', true);

File size: 10.7 KB
Line 
1<?php
2/*
3* Configuration de SPIP pour SoyezCreateurs
4* Realisation : RealET : real3t@gmail.com
5* Attention, fichier en UTF-8 sans BOM
6*/
7
8if (!defined('_ECRIRE_INC_VERSION')) return;
9
10include_spip('inc/meta');
11
12/*
13 * Fonction d'installation, mise a jour de la base
14 *
15 * @param unknown_type $nom_meta_base_version
16 * @param unknown_type $version_cible
17 */
18function soyezcreateurs_upgrade($nom_meta_base_version,$version_cible){
19        if (defined('_BYPASS_SC_INSTALL')) return;
20        include_spip('base/soyezcreateurs');
21        $current_version = 0.0;
22        if ((!isset($GLOBALS['meta'][$nom_meta_base_version])) || (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){
23                if (version_compare($current_version,'3.0.20','<')) {
24                        spip_log("SoyezCreateurs maj 3.0.20 Début", "soyezcreateurs_install");
25                        soyezcreateurs_config_site();
26                        soyezcreateurs_config_motsclefs();
27                        // Installation des index FullText si le plugin est présent
28                        $f = chercher_filtre('info_plugin');
29                        if($f('Fulltext', 'est_actif')) {
30                                include_spip('inc/fulltext_exec');
31                                Fulltext_creer_tous();
32                        }
33                        // Installation d'exemples concernant l'agenda si le plugin est actif
34                        if ($f('agenda', 'est_actif')) {
35                                // Réserve le formulaire des événements aux seules rubriques d'Agenda (avec le plugin agenda 2 installé)
36                                sql_update('spip_rubriques INNER JOIN spip_mots_rubriques ON spip_rubriques.id_rubrique = spip_mots_rubriques.id_rubrique INNER JOIN spip_mots ON spip_mots_rubriques.id_mot=spip_mots.id_mot', array('spip_rubriques.agenda' => 1), 'spip_mots.titre='.sql_quote('Agenda'));
37                                include_spip('inc/sc_article');
38                               
39                                $id_rubrique = id_rubrique('900. Agenda');
40                                if ($id_rubrique >0) {
41                                        $date = date('Y-m-d H:i:00');
42                                        create_evenement("900. Agenda", "Installation du site", "Installation du site", $date, $date, "Quand le titre de l'événement est identique au titre de l'article, il n'est pas affiché en plus", 'Votre serveur web.');
43                                        create_evenement("900. Agenda", "Installation du site", "Installé !", $date, $date, "Quand le titre de l'événement est différent du titre de l'article, alors, les 2 titres sont affichés.", '');
44                                        create_evenement("900. Agenda", "Événement exceptionnel", "Événement exceptionnel", date('Y-m-d 20:30:00'), date('Y-m-d 22:30:00'), "Quand l'heure de début est différente de l'heure de fin, c'est un événement avec une durée...", '');
45                                        create_evenement("10. SPIP", "Historique des versions de SPIP", "SPIP 2.1", '2010-04-09', '2010-04-09', "[->http://www.spip.net/fr_article4728.html]", '', 'non');
46                                        create_evenement("10. SPIP", "Historique des versions de SPIP", "SPIP 2.0", '2008-12-13', '2008-12-13', "[->http://www.spip.net/fr_article3784.html]", '', 'non');
47                                        create_evenement("900. Agenda", "Démonstration Agenda", "Démonstration Agenda", '2017-12-13', '2017-12-13', "", '', 'non');
48                                }
49                        }
50                        spip_log("SoyezCreateurs maj 3.0.20 Faite", "soyezcreateurs_install");
51                        ecrire_meta($nom_meta_base_version,$current_version='3.0.20','non');
52                }
53
54                if (version_compare($current_version,'3.0.23','<')) {
55                        spip_log("SoyezCreateurs maj 3.0.23 Début", "soyezcreateurs_install");
56                        // Activer les lames du CouteauSuisse Special SoyezCreateurs
57                        $f = chercher_filtre('info_plugin');
58                        if ($f('couteau_suisse', 'est_actif')) {
59                                include_spip('couteau_suisse_administrations');
60                                cout_install_pack('SoyezCreateurs');
61                                include_spip('outils/boites_privees');
62                                tri_auteurs_verifie_table(true);
63                                cout_exec_redirige(false);
64                        }
65                        spip_log("SoyezCreateurs maj 3.0.23 Faite", "soyezcreateurs_install");
66                        ecrire_meta($nom_meta_base_version,$current_version='3.0.23','non');
67                }
68                if (version_compare($current_version,'3.0.24','<')) {
69                        spip_log("SoyezCreateurs maj 3.0.24 Début", "soyezcreateurs_install");
70                        // Initialisation Sigles du dictionnaire
71                        if (defined('_DIR_PLUGIN_DICTIONNAIRES')) {
72                                include_spip('action/editer_dictionnaire');
73                                $id_dictionnaire = sql_fetsel("id_dictionnaire", "spip_dictionnaires", "titre='"._T('dictionnaire:importer_acronymes_titre')."'");
74                                if (is_array($id_dictionnaire)) {
75                                        $id_dictionnaire = $id_dictionnaire['id_dictionnaire'];
76                                }
77                                if (!$id_dictionnaire) {
78                                        if ($id_dictionnaire = insert_dictionnaire()){
79                                                // On lui met des champs par défaut
80                                                dictionnaire_set($id_dictionnaire, array(
81                                                        'titre' => _T('dictionnaire:importer_acronymes_titre'),
82                                                        'actif' => 1,
83                                                        'descriptif' => _T('dictionnaire:importer_acronymes_descriptif'),
84                                                        'type_defaut' => 'abbr',
85                                                ));
86                                        }
87                                }
88                                if ($id_dictionnaire) {
89                                        $definition = array(
90                                                'id_dictionnaire' => $id_dictionnaire,
91                                                'titre' => 'SPIP',
92                                                'texte' => 'Système de Publication pour un Internet Participatif',
93                                                'type' => 'abbr',
94                                                'casse' => 1,
95                                                'statut' => 'publie',
96                                                'lang' => 'fr'
97                                        );
98                                        $id_definition = sql_fetsel("id_definition", "spip_definitions", "titre='".$definition['titre']."' AND id_dictionnaire=$id_dictionnaire");
99                                        if (!$id_definition) {
100                                                // On crée la définition dans la base SANS calculer le cache
101                                                include_spip('action/editer_definition');
102                                                if ($id_definition = insert_definition()){
103                                                        definition_set($id_definition, $definition, false);
104                                                }
105                                        }
106                                        $definition = array(
107                                                'id_dictionnaire' => $id_dictionnaire,
108                                                'titre' => 'RGAA',
109                                                'texte' => 'Référentiel Général pour l\'Accessibilité des Administrations',
110                                                'type' => 'abbr',
111                                                'casse' => 1,
112                                                'statut' => 'publie',
113                                                'lang' => 'fr'
114                                        );
115                                        $id_definition = sql_fetsel("id_definition", "spip_definitions", "titre='".$definition['titre']."' AND id_dictionnaire=$id_dictionnaire");
116                                        if (!$id_definition) {
117                                                // On crée la définition dans la base SANS calculer le cache
118                                                include_spip('action/editer_definition');
119                                                if ($id_definition = insert_definition()){
120                                                        definition_set($id_definition, $definition, false);
121                                                }
122                                        }
123                                }
124                                // On calcule le cache des définitions une seule fois à la fin
125                                include_spip('inc/dictionnaires');
126                                dictionnaires_lister_definitions(true);
127                               
128                        }
129                        spip_log("SoyezCreateurs maj 3.0.24 Faite", "soyezcreateurs_install");
130                        ecrire_meta($nom_meta_base_version,$current_version='3.0.24','non');
131                }
132                if (version_compare($current_version,'3.0.28','<')) {
133                        spip_log("SoyezCreateurs maj 3.0.28 Début", "soyezcreateurs_install");
134                        // Au cas où : remttre au carré les id_secteur des articles et rubriques.
135                        include_spip('inc/rubriques');
136                        calculer_rubriques();
137                        propager_les_secteurs();
138                        effacer_meta("date_calcul_rubriques");
139                       
140                        spip_log("SoyezCreateurs maj 3.0.28 Faite", "soyezcreateurs_install");
141                        ecrire_meta($nom_meta_base_version,$current_version='3.0.28','non');
142                }
143               
144                if (version_compare($current_version,'3.0.29','<')) {
145                        spip_log("SoyezCreateurs maj 3.0.29 Début", "soyezcreateurs_install");
146                        create_groupe("_FondPage", "Images en fond de page :\n-* Créer autant de mots clefs que de fonds de page désirés\n-* Mettre un logo à ces mots clefs\n-* Possibilité de fixer un fond de page pour :\n-** Une rubrique (et la branche en dessous)\n-** Un type de page particulier (Sommaire, Plan)\n\nSe reporter à la documentation sur [Personnalisation graphique du squelette SoyezCreateurs->http://contrib.spip.net/Personnalisation-graphique-du-squelette-SoyezCreateurs]", "", 'oui', 'non', 'non', 'non', 'oui', 'non', 'non', 'oui', 'non', 'non');
147                       
148                        spip_log("SoyezCreateurs maj 3.0.29 Faite", "soyezcreateurs_install");
149                        ecrire_meta($nom_meta_base_version,$current_version='3.0.29','non');
150                }
151               
152                /*if (version_compare($current_version,'3.0.10','<')) {
153                        create_document('documents/image.jpg', array('objet' => 'article', 'id_objet' => 3), 'image', array('titre' => 'Mon image', 'descriptif' => 'Superbe image'));
154                }
155                */
156                /*
157                #En attente
158                if (version_compare($current_version,'3.0.11','<')) {
159                        create_groupe("_TypeArticle", "Pour indiquer un type spécifique d'article", "Il faut choisir un mot clef dans cette liste pour obtenir un affichage spécifique d'article.\n\nNB : pour rajouter un mot clef \"mc1\", il faut aussi rajouter les squelettes correspondants :\n-* noisettes/articles/typearticle_mc1.html\n-* noisettes/footer/footer_typearticle_mc1.html", 'oui', 'non', 'oui', 'non', 'non', 'non', 'non', 'oui', 'non', 'non');
160                                create_mot("_TypeArticle", "annuaire", "Pour dire que l'article ayant ce mot clef doit utiliser le squelette type des annuaire.", "Affecter ce mot clef à chaque article de l'annuaire.");
161                        ecrire_meta($nom_meta_base_version,$current_version='3.0.11','non');
162                }
163                // A integrer quand SPIP permettra d'avoir des critères optionnels sur un champ de table innexistant
164                // en l'occurrence, remplacer dans le squelette {titre_mot=Agenda} par {agenda=1}
165                if (version_compare($current_version,'2.1.14','<')) {
166                        include_spip('base/soyezcreateurs');
167                        spip_log("SoyezCreateurs maj 2.1.14", "soyezcreateurs_install");
168                        $id_groupe = id_groupe("_Specialisation_Rubrique");
169                        $id_mot = id_mot("Agenda", $id_groupe);
170                        if ($id_mot>0) {
171                                sql_delete("spip_mots", "id_mot=$id_mot");
172                                sql_delete("spip_mots_articles", "id_mot=$id_mot");
173                                sql_delete("spip_mots_rubriques", "id_mot=$id_mot");
174                                sql_delete("spip_mots_syndic", "id_mot=$id_mot");
175                                sql_delete("spip_mots_forum", "id_mot=$id_mot");
176                        }
177                        ecrire_meta($nom_meta_base_version,$current_version='2.1.14','non');
178                }
179                */
180        }
181}
182
183function soyezcreateurs_changer_cfg($cfg) {
184        include_spip('inc/cfg_config'); 
185        foreach ($cfg as $conf => $faire) {
186                $recherche_conf = lire_config('soyezcreateurs/'.$conf);
187                spip_log('cfg = '.$conf.' = '.$recherche_conf.' go','soyezcreateurs_install');
188                if ($faire == 'radio') {
189                        if ($recherche_conf == 'Oui') {
190                                $res = ecrire_config('soyezcreateurs/'.$conf, 'oui');
191                                spip_log('cfg go to '.$faire.'= '.$recherche_conf.' ok','soyezcreateurs_install');
192                        }
193                        else if ($recherche_conf == 'Non') {
194                                $res = ecrire_config('soyezcreateurs/'.$conf, 'non');
195                                spip_log('cfg go to '.$faire.'= '.$recherche_conf.' ok','soyezcreateurs_install');
196                        }
197                }
198                else if ($faire == 'oui_non') {
199                        if ($recherche_conf == 'Non') {
200                                $res = ecrire_config('soyezcreateurs/'.$conf, '');
201                                spip_log('cfg go to '.$faire.'= '.$recherche_conf.' ok','soyezcreateurs_install');
202                        }
203                        else if ($recherche_conf == 'Oui') {
204                                $res = ecrire_config('soyezcreateurs/'.$conf, 'on');
205                                spip_log('cfg go to '.$faire.'= '.$recherche_conf.' ok','soyezcreateurs_install');
206                        }
207                }
208        }
209        return true;
210}
211
212/*
213 * Fonction de desinstallation
214 *
215 * @param unknown_type $nom_meta_base_version
216 */
217function soyezcreateurs_vider_tables($nom_meta_base_version) {
218        effacer_meta('soyezcreateurs');
219        effacer_meta('soyezcreateurs_couleurs');
220        effacer_meta('soyezcreateurs_google');
221        effacer_meta('soyezcreateurs_layout');
222        effacer_meta($nom_meta_base_version);
223}
224?>
Note: See TracBrowser for help on using the repository browser.