'; include_spip('inc/presentation'); echo debut_cadre_enfonce('', true), icone_horizontale(_T('couteau:titre'), generer_url_ecrire('admin_couteau_suisse'), find_in_path('img/couteau-24.gif'), '', false), fin_cadre_enfonce(true); $ok++; } return isset($GLOBALS['meta']['couteau_suisse_base_version']) AND ($GLOBALS['meta']['couteau_suisse_base_version']>=$t['version_base']) AND isset($GLOBALS['meta']['tweaks_actifs']); break; case 'install': couteau_suisse_upgrade('couteau_suisse_base_version',$t['version_base']); break; case 'uninstall': couteau_suisse_vider_tables('couteau_suisse_base_version'); break; } } } // desinstallation des donnees du plugin function couteau_suisse_vider_tables($nom_meta_base_version) { effacer_meta($nom_meta_base_version); // effacement de toutes les metas du Couteau Suisse foreach(array_keys($GLOBALS['meta']) as $meta) { if(strpos($meta, 'tweaks_') === 0) effacer_meta($meta); if(strpos($meta, 'cs_') === 0) effacer_meta($meta); } ecrire_metas(); # Pour SPIP 1.92 // effacement des repertoires temporaires include_spip('inc/getdocument'); foreach(array(_DIR_CS_TMP, _DIR_VAR.'couteau-suisse') as $dir) if(@file_exists($dir)) effacer_repertoire_temporaire($dir); // fichier RSS temporaire include_spip('cout_define'); @unlink(_CS_TMP_RSS); // retrait de l'inclusion eventuelle dans config/mes_options.php include_spip('cout_utils'); cs_verif_FILE_OPTIONS(false, true); } // installation des tables du plugin et mises a jour function couteau_suisse_upgrade($nom_meta_base_version, $version_cible){ if(defined('_LOG_CS')) cs_log("cout_upgrade($nom_meta_base_version, $version_cible)"); $current_version = 0.0; if( (!isset($GLOBALS['meta'][$nom_meta_base_version])) || (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){ if ($current_version==0.0){ include_spip('base/create'); creer_base(); } if (version_compare($current_version, $tmp='1.0','<')){ echo '

',_T('couteau:titre'),' - Upgrade ',$tmp,'

'; cs_suppr_metas_var('set_options'); cs_suppr_metas_var('radio_set_options3'); cs_suppr_metas_var('radio_set_options', 'radio_set_options4'); cs_suppr_metas_var('radio_type_urls', 'radio_type_urls3'); cs_suppr_metas_var('radio_type_urls2', 'radio_type_urls3'); cs_suppr_metas_var('radio_filtrer_javascript', 'radio_filtrer_javascript3'); cs_suppr_metas_var('radio_filtrer_javascript2', 'radio_filtrer_javascript3'); cs_suppr_metas_var('radio_suivi_forums', 'radio_suivi_forums3'); cs_suppr_metas_var('desactive_cache'); cs_suppr_metas_var('radio_desactive_cache', 'radio_desactive_cache3'); cs_suppr_metas_var('target_blank'); cs_suppr_metas_var('url_glossaire_externe', 'url_glossaire_externe2'); cs_suppr_metas_var(''); effacer_meta('cs_decoupe'); if(defined('_SPIP19300')) { if(@$metas_vars['radio_desactive_cache3']==1) $metas_vars['radio_desactive_cache4']=-1; cs_suppr_metas_var('radio_desactive_cache3'); } foreach(array('cs_decoration', 'cs_decoration_racc', 'cs_smileys', 'cs_smileys_racc', 'cs_chatons', 'cs_chatons_racc', 'cs_jcorner', 'cs_couleurs', 'cs_couleurs_racc', 'cs_filets_sep', 'cs_filets_sep_racc', 'cs_insertions') as $meta) effacer_meta($meta); ecrire_meta($nom_meta_base_version, $current_version=$tmp); } if (version_compare($current_version, $tmp='1.1','<')){ echo '

',_T('couteau:titre'),' - Upgrade ',$tmp,'

'; effacer_meta('tweaks_contribs'); ecrire_meta($nom_meta_base_version, $current_version=$tmp); } ecrire_metas(); } } function cs_suppr_metas_var($meta, $new = false) { global $metas_vars; if(!isset($metas_vars[$meta])) return; if($new) { if(preg_match(',([0-9A-Za-z_-]*)\(('.'[0-9A-Za-z_-]*=[A-Za-z_:-]+\|[0-9A-Za-z_:=>|-]+'.')\),', $metas_vars[$meta], $reg)) $metas_vars[$new] = $reg[1]; else $metas_vars[$new] = $metas_vars[$meta]; } unset($metas_vars[$meta]); } /*******************/ /* PACKS DE CONFIG */ /*******************/ function cout_install_pack($pack, $redirige=false) { global $metas_vars, $metas_outils; $pack = &$GLOBALS['cs_installer'][$pack]; if(is_string($pack) && function_exists($pack)) $pack = $pack(); effacer_meta('tweaks_actifs'); $metas_vars = $metas_outils = array(); foreach(preg_split('%\s*[,|]\s*%', $pack['outils']) as $o) $metas_outils[trim($o)]['actif'] = 1; if(is_array($pack['variables'])) foreach($pack['variables'] as $i=>$v) $metas_vars[$i] = $v; ecrire_meta('tweaks_actifs', serialize($metas_outils)); ecrire_meta('tweaks_variables', serialize($metas_vars)); // tout recompiler if($redirige) cout_exec_redirige(); } // redirige vers la page exec en cours en vue une reinitialisation du Couteau Suisse // si $arg==false alors la redirection ne se fera pas (procedure d'installation par exemple) function cout_exec_redirige($arg='', $recompiler=true) { if($recompiler) { ecrire_metas(); cs_initialisation(true); include_spip('inc/invalideur'); suivre_invalideur("1"); # tout effacer purger_repertoire(_DIR_SKELS); purger_repertoire(_DIR_CACHE); } if($arg!==false) { include_spip('inc/headers'); redirige_par_entete(generer_url_ecrire(_request('exec'), $arg, true)); } } ?>