Browse Source

Les outils dont la catégorie est 'devel' (outils de développement) rejoignent automatiquement le menu développement du bandeau privé (SPIP>=3.1).

svn/attic/couteau_suisse/118435
patfr@ifrance.com 3 years ago
parent
commit
ebcde7ec44
  1. 2
      action/action_rapide.php
  2. 2
      action/description_outil.php
  3. 2
      config_outils.php
  4. 2
      cout_define.php
  5. 2
      cout_lancement.php
  6. 644
      cout_pipelines.php
  7. 23
      cout_utils.php
  8. 2
      exec/action_rapide.php
  9. 2
      exec/admin_couteau_suisse.php
  10. 2
      exec/admin_couteau_suisse_old.php
  11. 2
      exec/charger_description_outil.php
  12. 2
      exec/cs_boite_rss.php
  13. 2
      exec/cs_version.php
  14. 2
      exec/description_outil.php
  15. 2
      exec/test_couteau_suisse.php
  16. 9
      inc/cs_outils.php
  17. 2
      inc/description_outil.php
  18. 2
      outils/autorisations_action_rapide.php
  19. 2
      outils/autorisations_config.php
  20. 2
      outils/type_urls_config.php
  21. 4
      paquet.xml
  22. 6
      plugin.xml

2
action/action_rapide.php

@ -4,7 +4,7 @@
# Plugin : Couteau Suisse - Licence : GPL #
# Auteur : Patrice Vanneufville, 2008 #
# Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
# Infos : https://contrib.spip.net/?article2166 #
# Infos : https://contrib.spip.net/?article2166 #
#-----------------------------------------------------#
if (!defined("_ECRIRE_INC_VERSION")) return; // securiser

2
action/description_outil.php

@ -3,7 +3,7 @@
# Plugin : Couteau Suisse - Licence : GPL #
# Auteur : Patrice Vanneufville, 2006 #
# Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
# Infos : https://contrib.spip.net/?article2166 #
# Infos : https://contrib.spip.net/?article2166 #
#-----------------------------------------------------#
if (!defined("_ECRIRE_INC_VERSION")) return;

2
config_outils.php

@ -3,7 +3,7 @@
# Plugin : Couteau Suisse - Licence : GPL #
# Auteur : Patrice Vanneufville, 2006 #
# Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
# Infos : https://contrib.spip.net/?article2166 #
# Infos : https://contrib.spip.net/?article2166 #
#-----------------------------------------------------#
if(!defined("_ECRIRE_INC_VERSION")) return;

2
cout_define.php

@ -3,7 +3,7 @@
# Plugin : Couteau Suisse - Licence : GPL #
# Auteur : Patrice Vanneufville, 2006 #
# Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
# Infos : https://contrib.spip.net/?article2166 #
# Infos : https://contrib.spip.net/?article2166 #
#-----------------------------------------------------#
if(!defined("_ECRIRE_INC_VERSION")) return;

2
cout_lancement.php

@ -3,7 +3,7 @@
# Plugin : Couteau Suisse - Licence : GPL #
# Auteur : Patrice Vanneufville, 2006 #
# Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
# Infos : https://contrib.spip.net/?article2166 #
# Infos : https://contrib.spip.net/?article2166 #
#-----------------------------------------------------#
# Fichier contenant les fonctions utilisees pendant #
# l'execution du plugin. #

644
cout_pipelines.php

@ -1,315 +1,331 @@
<?php
if(!defined("_ECRIRE_INC_VERSION")) return;
// attention, ici il se peut que le plugin ne soit pas initialise (cas des .js/.css par exemple)
if(defined('_LOG_CS')) cs_log("inclusion de cout_pipelines.php");
// fonction d'erreur indispensable a tous les pipelines
function cs_deferr($f) {
spip_log(_L("Pipeline CS : fonction '$f' non definie !"));
}
/*********
* PRIVE *
*********/
// ajout d'un onglet sur la page de configuration de SPIP<3
function couteau_suisse_ajouter_onglets($flux){
include_spip('inc/autoriser');
$arg = $flux['args']=='configuration' || $flux['args']=='plugins';
// si on est admin...
if($arg && autoriser('configurer', 'cs'))
$flux['data']['couteau_suisse']= new Bouton(cs_icone(24), 'couteau:titre', generer_url_ecrire('admin_couteau_suisse'));
return $flux;
}
function eval_metas_pipelines(&$flux, $pipe){
global $cs_metas_pipelines;
if(isset($cs_metas_pipelines[$pipe])) eval($cs_metas_pipelines[$pipe]);
return $flux;
}
function couteau_suisse_affiche_gauche($flux){
return eval_metas_pipelines($flux, 'affiche_gauche');
}
function couteau_suisse_affiche_droite($flux){
return eval_metas_pipelines($flux, 'affiche_droite');
}
function couteau_suisse_affiche_milieu($flux){
return eval_metas_pipelines($flux, 'affiche_milieu');
}
function couteau_suisse_boite_infos($flux){
return eval_metas_pipelines($flux, 'boite_infos');
}
function couteau_suisse_pre_boucle($flux){
return eval_metas_pipelines($flux, 'pre_boucle');
}
function couteau_suisse_header_prive($flux_){
global $cs_metas_pipelines;
$flux = '';
if(isset($cs_metas_pipelines['header_prive'])) eval($cs_metas_pipelines['header_prive']);
cs_compile_header($flux,'css', '_prive', false); cs_compile_header($flux, 'js', '_prive');
return $flux_ . $flux;
}
/**********
* PUBLIC *
**********/
function couteau_suisse_insert_head_css($flux_ = '', $prive = false){
static $done = false;
if($done) return $flux_;
$done = true;
global $cs_metas_pipelines;
$flux = '';
if(isset($cs_metas_pipelines['insert_head_css'])) eval($cs_metas_pipelines['insert_head_css']);
cs_compile_header($flux, 'css');
return $flux_ . $flux;
}
function couteau_suisse_insert_head($flux_){
global $cs_metas_pipelines;
$flux = '';
if(isset($cs_metas_pipelines['insert_head'])) eval($cs_metas_pipelines['insert_head']);
cs_compile_header($flux, 'js');
return $flux_
. couteau_suisse_insert_head_css() // en cas d'absence de balise #INSERT_HEAD_CSS
. $flux;
}
function couteau_suisse_affichage_final($flux){
eval_metas_pipelines($flux, 'affichage_final');
return cs_nettoie($flux);
}
function couteau_suisse_recuperer_fond($flux){
$fond = &$flux['args']['fond']; $texte = &$flux['data']['texte'];
eval_metas_pipelines($flux, 'recuperer_fond');
$texte = cs_nettoie($texte);
return $flux;
}
/********
* TYPO *
********/
function couteau_suisse_nettoyer_raccourcis_typo($flux){
return eval_metas_pipelines($flux, 'nettoyer_raccourcis_typo');
}
function couteau_suisse_pre_propre($flux){
return eval_metas_pipelines($flux, 'pre_propre');
}
function couteau_suisse_pre_typo($flux){
return eval_metas_pipelines($flux, 'pre_typo');
}
function couteau_suisse_post_propre($flux){
eval_metas_pipelines($flux, 'post_propre');
// tracage des echappements SPIP (<html/><code/><cadre/> etc.) pour les traitements (s'il y en a) venant apres propre()
// Note : SPIP echappe egalement les modeles
if($GLOBALS['cs_post_propre']) {
if(strpos($flux, '<span class="base64"')!==false)
$flux = preg_replace(',<span class="base64"[^>]+></span>,', _CS_HTMLA.'$0'._CS_HTMLB, $flux);
if(strpos($flux, '<div class="base64"')!==false)
$flux = preg_replace(',<div class="base64"[^>]+></div>,', _CS_HTMLA.'$0'._CS_HTMLB, $flux);
}
return $flux;
}
function couteau_suisse_post_typo($flux){
return eval_metas_pipelines($flux, 'post_typo');
}
/********
* BASE *
*******/
function couteau_suisse_pre_edition($flux){
return eval_metas_pipelines($flux, 'pre_edition');
}
function couteau_suisse_post_edition($flux){
return eval_metas_pipelines($flux, 'post_edition');
}
/**********
* DIVERS *
*********/
function couteau_suisse_formulaire_verifier($flux){
return eval_metas_pipelines($flux, 'formulaire_verifier');
}
function couteau_suisse_taches_generales_cron($flux){
return eval_metas_pipelines($flux, 'taches_generales_cron');
}
// pipeline SPIP<2.1
function couteau_suisse_creer_chaine_url($flux){
return eval_metas_pipelines($flux, 'creer_chaine_url');
}
// pipelines SPIP>=2.1
function couteau_suisse_arbo_creer_chaine_url($flux){
return eval_metas_pipelines($flux, 'arbo_creer_chaine_url');
}
function couteau_suisse_propres_creer_chaine_url($flux){
return eval_metas_pipelines($flux, 'propres_creer_chaine_url');
}
// pipelines SPIP>=2.0
function couteau_suisse_declarer_tables_interfaces($flux){
if(function_exists('cs_table_des_traitements')) cs_table_des_traitements($flux['table_des_traitements']);
return eval_metas_pipelines($flux, 'declarer_tables_interfaces');
}
// eux fonctions obsoletes, conservees pour SPIP<3.0 :
// le contenu du sous-menu est gere par les lames elles-memes
function couteau_suisse_bt_toolbox($params) {
global $cs_metas_pipelines;
if(!isset($cs_metas_pipelines['bt_toolbox'])) return $params;
$flux = '';
eval($cs_metas_pipelines['bt_toolbox']);
$tableau_formulaire = '
<table class="spip_barre" style="width: auto; padding: 1px!important; border-top: 0px;" summary="">'
. str_replace(array('@@champ@@','@@span@@'), array($params['champ'], 'span style="vertical-align:75%;"'), $flux) . '
</table>';
$params['flux'] .= produceWharf('couteau_suisse', '', $tableau_formulaire);
return $params;
}
// bouton principal du Couteau Suisse
function couteau_suisse_bt_gadgets($params) {
global $cs_metas_pipelines;
if(!isset($cs_metas_pipelines['bt_toolbox'])) return $params;
$params['flux'] .= bouton_barre_racc("swap_couche('".$GLOBALS['numero_block']['couteau_suisse']."','');", cs_icone(24), _T('couteauprive:raccourcis_barre'), $params['help']);
return $params;
}
function couteau_suisse_porte_plume_barre_pre_charger($flux){
eval_metas_pipelines($flux, 'porte_plume_barre_pre_charger');
$barres = pipeline('porte_plume_cs_pre_charger', array());
$r = array(
"id" => 'couteau_suisse_drop',
"name" => _T('couteau:pp_couteau_suisse_drop'),
"className" => 'couteau_suisse_drop',
"replaceWith" => '',
"display" => true,
);
foreach($barres as $barre=>$menu) {
$r["dropMenu"] = $menu;
$flux[$barre]->ajouterApres('grpCaracteres', $r);
}
return $flux;
}
function couteau_suisse_porte_plume_lien_classe_vers_icone($flux){
global $cs_metas_pipelines;
if (isset($cs_metas_pipelines['porte_plume_lien_classe_vers_icone'])) {
$flux['couteau_suisse_drop'] = 'couteau-19.png';
// chemin des icones-typo de couleur
_chemin(sous_repertoire(_DIR_VAR, 'couteau-suisse'));
eval($cs_metas_pipelines['porte_plume_lien_classe_vers_icone']);
}
return $flux;
}
// pipeline maison : bouton sous un drop Couteau Suisse
function couteau_suisse_porte_plume_cs_pre_charger($flux){
return eval_metas_pipelines($flux, 'porte_plume_cs_pre_charger');
}
// compatibilite avec le plugin Facteur
function couteau_suisse_facteur_pre_envoi($flux){
return eval_metas_pipelines($flux, 'facteur_pre_envoi');
}
// pipeline maison : pre-affichage de la description d'un outil
// flux['outil'] est l'id de l'outil, $flux['actif'] est l'etat de l'outil, flux['texte'] est le texte de description
function couteau_suisse_pre_description_outil($flux) {
global $cs_metas_pipelines;
$id = &$flux['outil']; $texte = &$flux['texte'];
if(isset($cs_metas_pipelines['pre_description_outil']))
eval($cs_metas_pipelines['pre_description_outil']);
return $flux;
}
// A l'issue du telechargement d'un fichier distant
function couteau_suisse_fichier_distant($flux) {
global $cs_metas_pipelines;
if(isset($cs_metas_pipelines['fichier_distant']))
eval($cs_metas_pipelines['fichier_distant']);
return $flux;
}
// callback pour la fonction cs_compile_pipe()
function cs_compile_header_callback($matches) {
if(defined('_LOG_CS')) cs_log(" -- compilation d'un header. Code CSS : ".couper($matches[1], 150));
return cs_recuperer_code($matches[1]);
}
// recherche et compilation par SPIP du contenu d'un fichier .html : <cs_html>contenu</cs_html>
// $type = 'css' ou 'js'
function cs_compile_header(&$flux, $type_, $suffixe='', $rem=true) {
//if(defined('_LOG_CS')) cs_log(" -- recherche de compilations necessaires du header.");
global $cs_metas_pipelines;
if(isset($cs_metas_pipelines[$type = 'header_'.$type_.$suffixe])) {
$header = &$cs_metas_pipelines[$type];
if(strpos($header, '<cs_html>')!==false) {
$header = preg_replace_callback(',<cs_html>(.*)</cs_html>,Ums', 'cs_compile_header_callback', $header);
// sauvegarde en metas
ecrire_meta('tweaks_pipelines', serialize($cs_metas_pipelines));
ecrire_metas();
ecrire_fichier(_DIR_CS_TMP.$type.'.html', "<!-- Fichier de controle $type_ pour le plugin 'Couteau Suisse' -->\n\n$header");
}
$flux .= $header;
}
if($rem)
$flux = strlen(trim($flux))?"\n<!-- Debut CS -->\n$flux\n<!-- Fin CS -->\n\n":"\n<!-- CS vide -->\n\n";
}
// construction d'un hit
// (recherche et compilation par SPIP du contenu d'un fichier .html : <cs_html>contenu</cs_html>)
// $type = 'css' ou 'js'
function cs_header_hit(&$flux, $type, $suffixe='') {
$f = "header$suffixe.$type";
$nom = sous_repertoire(_DIR_VAR,'couteau-suisse') . $f;
$tmp = _DIR_CS_TMP . $f;
if(!file_exists($tmp) || !file_exists($nom) || (defined('_VAR_MODE') && _VAR_MODE=='recalcul') || _request('var_mode')=='recalcul') {
if (lire_fichier(_DIR_CS_TMP."header.$type.html", $t) && strlen($t)) {
if(strpos($t, '<cs_html>')!==false)
$t = preg_replace_callback(',<cs_html>(.*)</cs_html>,Ums', 'cs_compile_header_callback', $t);
ecrire_fichier($nom, $t, true);
ecrire_fichier($tmp, $t, true);
} else {
if(defined('_LOG_CS')) cs_log(" -- fichier $fo illisible. hit non construit");
return;
}
}
switch($type) {
case 'js': $flux .= '<script src="'.$nom.'" type="text/javascript"></script>'; break;
case 'css': include_spip('inc/filtres');
$flux .= '<link rel="stylesheet" href="'.direction_css($nom).'" type="text/css" media="all" />'; break;
}
}
/**
* recupere le resultat du calcul d'une compilation de code de squelette (marcimat)
* $coucou = $this->recuperer_code('[(#AUTORISER{ok}|oui)coucou]');
*/
function cs_recuperer_code(&$code) {//, $contexte=array(), $options = array(), $connect=''){
$fond = _DIR_CS_TMP . md5($code);
$base = $fond . '.html';
if(!file_exists($base) || (defined('_VAR_MODE') && _VAR_MODE=='recalcul') || _request('var_mode')=='recalcul')
ecrire_fichier($base, $code);
include_spip('public/assembler');
$fond = str_replace('../', '', $fond);
// return recuperer_fond($fond, array('fond'=>$fond));
$f = inclure_page($fond, array('fond'=>$fond));
return $f['texte'];
}
/*
if(defined('_LOG_CS')) cs_log("INIT : cout_pipelines, lgr=" . strlen($cs_metas_pipelines['pipelines']));
if(!$GLOBALS['cs_pipelines']) include_once(_DIR_CS_TMP.'pipelines.php');
if(defined('_LOG_CS')) cs_log(' -- sortie de cout_pipelines... cs_pipelines = ' . intval($GLOBALS['cs_pipelines']));
*/
<?php
#-----------------------------------------------------#
# Plugin : Couteau Suisse - Licence : GPL #
# Auteur : Patrice Vanneufville, 2007 #
# Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
# Infos : https://contrib.spip.net/?article2166 #
#-----------------------------------------------------#
# Fichier contenant les fonctions relatives aux #
# pipelines appeles par SPIP. #
#-----------------------------------------------------#
if(!defined("_ECRIRE_INC_VERSION")) return;
// attention, ici il se peut que le plugin ne soit pas initialise (cas des .js/.css par exemple)
if(defined('_LOG_CS')) cs_log("inclusion de cout_pipelines.php");
// fonction d'erreur indispensable a tous les pipelines
function cs_deferr($f) {
spip_log(_L("Pipeline CS : fonction '$f' non definie !"));
}
/*********
* PRIVE *
*********/
// ajout d'un onglet sur la page de configuration de SPIP<3
function couteau_suisse_ajouter_onglets($flux){
include_spip('inc/autoriser');
$arg = $flux['args']=='configuration' || $flux['args']=='plugins';
// si on est admin...
if($arg && autoriser('configurer', 'cs'))
$flux['data']['couteau_suisse']= new Bouton(cs_icone(24), 'couteau:titre', generer_url_ecrire('admin_couteau_suisse'));
return $flux;
}
function eval_metas_pipelines(&$flux, $pipe){
global $cs_metas_pipelines;
if(isset($cs_metas_pipelines[$pipe])) eval($cs_metas_pipelines[$pipe]);
return $flux;
}
function couteau_suisse_affiche_gauche($flux){
return eval_metas_pipelines($flux, 'affiche_gauche');
}
function couteau_suisse_affiche_droite($flux){
return eval_metas_pipelines($flux, 'affiche_droite');
}
function couteau_suisse_affiche_milieu($flux){
return eval_metas_pipelines($flux, 'affiche_milieu');
}
function couteau_suisse_boite_infos($flux){
return eval_metas_pipelines($flux, 'boite_infos');
}
function couteau_suisse_pre_boucle($flux){
return eval_metas_pipelines($flux, 'pre_boucle');
}
function couteau_suisse_header_prive($flux_){
global $cs_metas_pipelines;
$flux = '';
if(isset($cs_metas_pipelines['header_prive'])) eval($cs_metas_pipelines['header_prive']);
cs_compile_header($flux,'css', '_prive', false); cs_compile_header($flux, 'js', '_prive');
return $flux_ . $flux;
}
/**********
* PUBLIC *
**********/
function couteau_suisse_insert_head_css($flux_ = '', $prive = false){
static $done = false;
if($done) return $flux_;
$done = true;
global $cs_metas_pipelines;
$flux = '';
if(isset($cs_metas_pipelines['insert_head_css'])) eval($cs_metas_pipelines['insert_head_css']);
cs_compile_header($flux, 'css');
return $flux_ . $flux;
}
function couteau_suisse_insert_head($flux_){
global $cs_metas_pipelines;
$flux = '';
if(isset($cs_metas_pipelines['insert_head'])) eval($cs_metas_pipelines['insert_head']);
cs_compile_header($flux, 'js');
return $flux_
. couteau_suisse_insert_head_css() // en cas d'absence de balise #INSERT_HEAD_CSS
. $flux;
}
function couteau_suisse_affichage_final($flux){
eval_metas_pipelines($flux, 'affichage_final');
return cs_nettoie($flux);
}
function couteau_suisse_recuperer_fond($flux){
$fond = &$flux['args']['fond']; $texte = &$flux['data']['texte'];
eval_metas_pipelines($flux, 'recuperer_fond');
$texte = cs_nettoie($texte);
return $flux;
}
/********
* TYPO *
********/
function couteau_suisse_nettoyer_raccourcis_typo($flux){
return eval_metas_pipelines($flux, 'nettoyer_raccourcis_typo');
}
function couteau_suisse_pre_propre($flux){
return eval_metas_pipelines($flux, 'pre_propre');
}
function couteau_suisse_pre_typo($flux){
return eval_metas_pipelines($flux, 'pre_typo');
}
function couteau_suisse_post_propre($flux){
eval_metas_pipelines($flux, 'post_propre');
// tracage des echappements SPIP (<html/><code/><cadre/> etc.) pour les traitements (s'il y en a) venant apres propre()
// Note : SPIP echappe egalement les modeles
if($GLOBALS['cs_post_propre']) {
if(strpos($flux, '<span class="base64"')!==false)
$flux = preg_replace(',<span class="base64"[^>]+></span>,', _CS_HTMLA.'$0'._CS_HTMLB, $flux);
if(strpos($flux, '<div class="base64"')!==false)
$flux = preg_replace(',<div class="base64"[^>]+></div>,', _CS_HTMLA.'$0'._CS_HTMLB, $flux);
}
return $flux;
}
function couteau_suisse_post_typo($flux){
return eval_metas_pipelines($flux, 'post_typo');
}
/********
* BASE *
*******/
function couteau_suisse_pre_edition($flux){
return eval_metas_pipelines($flux, 'pre_edition');
}
function couteau_suisse_post_edition($flux){
return eval_metas_pipelines($flux, 'post_edition');
}
/**********
* DIVERS *
*********/
function couteau_suisse_formulaire_verifier($flux){
return eval_metas_pipelines($flux, 'formulaire_verifier');
}
function couteau_suisse_taches_generales_cron($flux){
return eval_metas_pipelines($flux, 'taches_generales_cron');
}
// pipeline SPIP<2.1
function couteau_suisse_creer_chaine_url($flux){
return eval_metas_pipelines($flux, 'creer_chaine_url');
}
// pipelines SPIP>=2.0
function couteau_suisse_declarer_tables_interfaces($flux){
if(function_exists('cs_table_des_traitements')) cs_table_des_traitements($flux['table_des_traitements']);
return eval_metas_pipelines($flux, 'declarer_tables_interfaces');
}
// pipelines SPIP>=2.1
function couteau_suisse_arbo_creer_chaine_url($flux){
return eval_metas_pipelines($flux, 'arbo_creer_chaine_url');
}
function couteau_suisse_propres_creer_chaine_url($flux){
return eval_metas_pipelines($flux, 'propres_creer_chaine_url');
}
// pipelines SPIP>=3.0
function couteau_suisse_ajouter_menus($flux){
return eval_metas_pipelines($flux, 'ajouter_menus');
}
// deux fonctions obsoletes, conservees pour SPIP<3.0 :
// le contenu du sous-menu est gere par les lames elles-memes
function couteau_suisse_bt_toolbox($params) {
global $cs_metas_pipelines;
if(!isset($cs_metas_pipelines['bt_toolbox'])) return $params;
$flux = '';
eval($cs_metas_pipelines['bt_toolbox']);
$tableau_formulaire = '
<table class="spip_barre" style="width: auto; padding: 1px!important; border-top: 0px;" summary="">'
. str_replace(array('@@champ@@','@@span@@'), array($params['champ'], 'span style="vertical-align:75%;"'), $flux) . '
</table>';
$params['flux'] .= produceWharf('couteau_suisse', '', $tableau_formulaire);
return $params;
}
// bouton principal du Couteau Suisse
function couteau_suisse_bt_gadgets($params) {
global $cs_metas_pipelines;
if(!isset($cs_metas_pipelines['bt_toolbox'])) return $params;
$params['flux'] .= bouton_barre_racc("swap_couche('".$GLOBALS['numero_block']['couteau_suisse']."','');", cs_icone(24), _T('couteauprive:raccourcis_barre'), $params['help']);
return $params;
}
function couteau_suisse_porte_plume_barre_pre_charger($flux){
eval_metas_pipelines($flux, 'porte_plume_barre_pre_charger');
$barres = pipeline('porte_plume_cs_pre_charger', array());
$r = array(
"id" => 'couteau_suisse_drop',
"name" => _T('couteau:pp_couteau_suisse_drop'),
"className" => 'couteau_suisse_drop',
"replaceWith" => '',
"display" => true,
);
foreach($barres as $barre=>$menu) {
$r["dropMenu"] = $menu;
$flux[$barre]->ajouterApres('grpCaracteres', $r);
}
return $flux;
}
function couteau_suisse_porte_plume_lien_classe_vers_icone($flux){
global $cs_metas_pipelines;
if (isset($cs_metas_pipelines['porte_plume_lien_classe_vers_icone'])) {
$flux['couteau_suisse_drop'] = 'couteau-19.png';
// chemin des icones-typo de couleur
_chemin(sous_repertoire(_DIR_VAR, 'couteau-suisse'));
eval($cs_metas_pipelines['porte_plume_lien_classe_vers_icone']);
}
return $flux;
}
// pipeline maison : bouton sous un drop Couteau Suisse
function couteau_suisse_porte_plume_cs_pre_charger($flux){
return eval_metas_pipelines($flux, 'porte_plume_cs_pre_charger');
}
// compatibilite avec le plugin Facteur
function couteau_suisse_facteur_pre_envoi($flux){
return eval_metas_pipelines($flux, 'facteur_pre_envoi');
}
// pipeline maison : pre-affichage de la description d'un outil
// flux['outil'] est l'id de l'outil, $flux['actif'] est l'etat de l'outil, flux['texte'] est le texte de description
function couteau_suisse_pre_description_outil($flux) {
global $cs_metas_pipelines;
$id = &$flux['outil']; $texte = &$flux['texte'];
if(isset($cs_metas_pipelines['pre_description_outil']))
eval($cs_metas_pipelines['pre_description_outil']);
return $flux;
}
// A l'issue du telechargement d'un fichier distant
function couteau_suisse_fichier_distant($flux) {
global $cs_metas_pipelines;
if(isset($cs_metas_pipelines['fichier_distant']))
eval($cs_metas_pipelines['fichier_distant']);
return $flux;
}
// callback pour la fonction cs_compile_pipe()
function cs_compile_header_callback($matches) {
if(defined('_LOG_CS')) cs_log(" -- compilation d'un header. Code CSS : ".couper($matches[1], 150));
return cs_recuperer_code($matches[1]);
}
// recherche et compilation par SPIP du contenu d'un fichier .html : <cs_html>contenu</cs_html>
// $type = 'css' ou 'js'
function cs_compile_header(&$flux, $type_, $suffixe='', $rem=true) {
//if(defined('_LOG_CS')) cs_log(" -- recherche de compilations necessaires du header.");
global $cs_metas_pipelines;
if(isset($cs_metas_pipelines[$type = 'header_'.$type_.$suffixe])) {
$header = &$cs_metas_pipelines[$type];
if(strpos($header, '<cs_html>')!==false) {
$header = preg_replace_callback(',<cs_html>(.*)</cs_html>,Ums', 'cs_compile_header_callback', $header);
// sauvegarde en metas
ecrire_meta('tweaks_pipelines', serialize($cs_metas_pipelines));
ecrire_metas();
ecrire_fichier(_DIR_CS_TMP.$type.'.html', "<!-- Fichier de controle $type_ pour le plugin 'Couteau Suisse' -->\n\n$header");
}
$flux .= $header;
}
if($rem)
$flux = strlen(trim($flux))?"\n<!-- Debut CS -->\n$flux\n<!-- Fin CS -->\n\n":"\n<!-- CS vide -->\n\n";
}
// construction d'un hit
// (recherche et compilation par SPIP du contenu d'un fichier .html : <cs_html>contenu</cs_html>)
// $type = 'css' ou 'js'
function cs_header_hit(&$flux, $type, $suffixe='') {
$f = "header$suffixe.$type";
$nom = sous_repertoire(_DIR_VAR,'couteau-suisse') . $f;
$tmp = _DIR_CS_TMP . $f;
if(!file_exists($tmp) || !file_exists($nom) || (defined('_VAR_MODE') && _VAR_MODE=='recalcul') || _request('var_mode')=='recalcul') {
if (lire_fichier(_DIR_CS_TMP."header.$type.html", $t) && strlen($t)) {
if(strpos($t, '<cs_html>')!==false)
$t = preg_replace_callback(',<cs_html>(.*)</cs_html>,Ums', 'cs_compile_header_callback', $t);
ecrire_fichier($nom, $t, true);
ecrire_fichier($tmp, $t, true);
} else {
if(defined('_LOG_CS')) cs_log(" -- fichier $fo illisible. hit non construit");
return;
}
}
switch($type) {
case 'js': $flux .= '<script src="'.$nom.'" type="text/javascript"></script>'; break;
case 'css': include_spip('inc/filtres');
$flux .= '<link rel="stylesheet" href="'.direction_css($nom).'" type="text/css" media="all" />'; break;
}
}
/**
* recupere le resultat du calcul d'une compilation de code de squelette (marcimat)
* $coucou = $this->recuperer_code('[(#AUTORISER{ok}|oui)coucou]');
*/
function cs_recuperer_code(&$code) {//, $contexte=array(), $options = array(), $connect=''){
$fond = _DIR_CS_TMP . md5($code);
$base = $fond . '.html';
if(!file_exists($base) || (defined('_VAR_MODE') && _VAR_MODE=='recalcul') || _request('var_mode')=='recalcul')
ecrire_fichier($base, $code);
include_spip('public/assembler');
$fond = str_replace('../', '', $fond);
// return recuperer_fond($fond, array('fond'=>$fond));
$f = inclure_page($fond, array('fond'=>$fond));
return $f['texte'];
}
// renvoie un bouton permettant d'acceder directement a un outil
function cs_ajouter_menus($id, $titre) {
return new Bouton(chemin_image(cs_icone(16)), $titre, generer_url_ecrire('admin_couteau_suisse', "cmd=descrip&outil=$id#cs_infos"));
}
/*
if(defined('_LOG_CS')) cs_log("INIT : cout_pipelines, lgr=" . strlen($cs_metas_pipelines['pipelines']));
if(!$GLOBALS['cs_pipelines']) include_once(_DIR_CS_TMP.'pipelines.php');
if(defined('_LOG_CS')) cs_log(' -- sortie de cout_pipelines... cs_pipelines = ' . intval($GLOBALS['cs_pipelines']));
*/
?>

23
cout_utils.php

@ -3,7 +3,7 @@
# Plugin : Couteau Suisse - Licence : GPL #
# Auteur : Patrice Vanneufville, 2006 #
# Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
# Infos : https://contrib.spip.net/?article2166 #
# Infos : https://contrib.spip.net/?article2166 #
#-----------------------------------------------------#
# Fichier contenant les fonctions utilisees pendant #
# la configuration du plugin #
@ -355,6 +355,20 @@ function cs_autorisation_alias(&$tab, $autoriser) {
}
}
function cs_nom_outil(&$outil, $traduit=true) {
if($outil['pas_de_nom']) {
// outil classique
$nom = 'couteauprive:'.$outil['id'].':nom'; $nom_traduit = _T($nom);
} else {
// outil au nom defini et traduit
$nom = ''; $nom_traduit = $outil['nom'];
}
// si on trouve une chaine de langue dans le nom traduit, le resultat sera forcement traduit
if(strpos($nom_traduit, '<:')!==false)
return preg_replace_callback(',<:([:a-z0-9_-]+):>,i', create_function('$m','return _T($m[1]);'), $nom_traduit);
return (!$traduit && strlen($nom))?$nom:$nom_traduit;
}
// cree les tableaux $infos_pipelines et $infos_fichiers, puis initialise $cs_metas_pipelines
function cs_initialise_includes($count_metas_outils) {
global $outils, $cs_metas_pipelines;
@ -407,6 +421,12 @@ function cs_initialise_includes($count_metas_outils) {
// rien a faire : $traitements_utilises est rempli par is_traitements_outil()
}
}
// SPIP>=3.1 : en l'absence du pipeline "ajouter_menus" defini dans l'outil,
// ajouter d'office le bouton de menu "developpement" si l'outil est de categorie "devel"
if(defined('_SPIP30100') && $outil['categorie']=='devel' && !isset($outil['pipeline:ajouter_menus']) && !isset($outil['pipelinecode:ajouter_menus'])) {
$infos_pipelines['ajouter_menus']['inline'][] = "if(autoriser('configurer','$inc')) // cs_ajouter_menus('$inc', '$inc:nom', '');
\$flux['menu_developpement']->sousmenu['cs_$inc'] = cs_ajouter_menus($inc, '".attribut_html(cs_nom_outil($outil, false))."');";
}
// recherche des fichiers .css, .css.html, .js et .js.html eventuellement present dans outils/
foreach(array('css', 'js') as $f) {
if($file=find_in_path("outils/$inc.$f")) { lire_fichier($file, $ff); ${'temp_'.$f}[] = $ff; }
@ -730,6 +750,7 @@ function cs_parse_code_js($code) {
} else {
// tant que le webmestre n'a pas poste, on prend la valeur (dynamique) par defaut
$rempl = cs_retire_guillemets(cs_get_defaut($matches[1]));
}
$code = str_replace($matches[0], $rempl, $code);

2
exec/action_rapide.php

@ -3,7 +3,7 @@
# Plugin : Couteau Suisse - Licence : GPL #
# Auteur : Patrice Vanneufville, 2008 #
# Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
# Infos : https://contrib.spip.net/?article2166 #
# Infos : https://contrib.spip.net/?article2166 #
#-----------------------------------------------------#
if (!defined("_ECRIRE_INC_VERSION")) return;

2
exec/admin_couteau_suisse.php

@ -3,7 +3,7 @@
# Plugin : Couteau Suisse - Licence : GPL #
# Auteur : Patrice Vanneufville, 2006 #
# Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
# Infos : https://contrib.spip.net/?article2166 #
# Infos : https://contrib.spip.net/?article2166 #
#-----------------------------------------------------#
if(!defined("_ECRIRE_INC_VERSION")) return;

2
exec/admin_couteau_suisse_old.php

@ -2,7 +2,7 @@
#-----------------------------------------------------#
# Plugin : Couteau Suisse - Licence : GPL #
# Auteur : Patrice Vanneufville, 2006 #
# Infos : https://contrib.spip.net/?article2166 #
# Infos : https://contrib.spip.net/?article2166 #
#-----------------------------------------------------#
// fichier deprecie

2
exec/charger_description_outil.php

@ -3,7 +3,7 @@
# Plugin : Couteau Suisse - Licence : GPL #
# Auteur : Patrice Vanneufville, 2007 #
# Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
# Infos : https://contrib.spip.net/?article2166 #
# Infos : https://contrib.spip.net/?article2166 #
#-----------------------------------------------------#
if (!defined("_ECRIRE_INC_VERSION")) return;

2
exec/cs_boite_rss.php

@ -3,7 +3,7 @@
# Plugin : Couteau Suisse - Licence : GPL #
# Auteur : Patrice Vanneufville, 2007 #
# Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
# Infos : https://contrib.spip.net/?article2166 #
# Infos : https://contrib.spip.net/?article2166 #
#-----------------------------------------------------#
if(!defined("_ECRIRE_INC_VERSION")) return;

2
exec/cs_version.php

@ -3,7 +3,7 @@
# Plugin : Couteau Suisse - Licence : GPL #
# Auteur : Patrice Vanneufville, 2007 #
# Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
# Infos : https://contrib.spip.net/?article2166 #
# Infos : https://contrib.spip.net/?article2166 #
#-----------------------------------------------------#
if (!defined("_ECRIRE_INC_VERSION")) return;

2
exec/description_outil.php

@ -3,7 +3,7 @@
# Plugin : Couteau Suisse - Licence : GPL #
# Auteur : Patrice Vanneufville, 2006 #
# Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
# Infos : https://contrib.spip.net/?article2166 #
# Infos : https://contrib.spip.net/?article2166 #
#-----------------------------------------------------#
if (!defined("_ECRIRE_INC_VERSION")) return;

2
exec/test_couteau_suisse.php

@ -3,7 +3,7 @@
# Plugin : Couteau Suisse - Licence : GPL #
# Auteur : Patrice Vanneufville, 2006 #
# Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
# Infos : https://contrib.spip.net/?article2166 #
# Infos : https://contrib.spip.net/?article2166 #
#---------------------------------------------------------------#
# Cette page teste certaines fonctions presentes dans le plugin #
# Pour rajouter des tests, rdv tout en bas de cette page ! #

9
inc/cs_outils.php

@ -3,7 +3,7 @@
# Plugin : Couteau Suisse - Licence : GPL #
# Auteur : Patrice Vanneufville, 2007 #
# Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
# Infos : https://contrib.spip.net/?article2166 #
# Infos : https://contrib.spip.net/?article2166 #
#-----------------------------------------------------#
# Fichier contenant les fonctions concernant la #
# description des outils. #
@ -29,9 +29,8 @@ function cs_initialisation_d_un_outil($outil_, $description_outil, $modif) {
if(!isset($outil['init_ok'])) {
$outil['init_ok'] = 1;
if(!isset($outil['categorie'])) $outil['categorie'] = 'divers';
if(!isset($outil['nom'])) $outil['nom'] = couteauprive_T($outil['id'].':nom');
if(strpos($outil['nom'], '<:')!==false)
$outil['nom'] = preg_replace_callback(',<:([:a-z0-9_-]+):>,i', create_function('$m','return _T($m[1]);'), $outil['nom']);
$outil['pas_de_nom'] = !isset($outil['nom']);
$outil['nom'] = cs_nom_outil($outil);
// $outil['surcharge'] n'est pas encore renseigne si la fonction d'installation est surchargee
if(isset($outil['surcharge']) || (function_exists($outil_.'_installe') && $outil['surcharge']=1))
$outil['nom'] = $outil['nom'].' *';
@ -371,8 +370,10 @@ function cs_action_fichiers_distants(&$outil, $forcer=false, $tester=false) {
$a = '<ul style="margin:0.6em 0 0.6em 4em;"><li>' . join("</li><li style='margin-top:0.4em;'>", $a) . '</li></ul>';
$b = ($actif || !$erreur)?'rss_actualiser':($erreur?'distant_charger':false);
$b = $b?"\n<p class='cs_sobre'><input class='cs_sobre' type='submit' value=\" ["
. attribut_html(couteauprive_T(''.$b)).']" />' . $reload . '</p>':'';
return ajax_action_auteur('action_rapide', 'fichiers_distants', 'admin_couteau_suisse', "arg=$outil[id]|fichiers_distants&cmd=descrip#cs_action_rapide",
'<p>' . couteauprive_T('distant_aide') . '</p>'
. '<p style="margin-top:1em"><strong>' . definir_puce() . '&nbsp;' . couteauprive_T('detail_fichiers_distant') . '</strong></p>'

2
inc/description_outil.php

@ -3,7 +3,7 @@
# Plugin : Couteau Suisse - Licence : GPL #
# Auteur : Patrice Vanneufville, 2006 #
# Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
# Infos : https://contrib.spip.net/?article2166 #
# Infos : https://contrib.spip.net/?article2166 #
#-----------------------------------------------------#
if(!defined("_ECRIRE_INC_VERSION")) return;

2
outils/autorisations_action_rapide.php

@ -4,7 +4,7 @@
# Plugin : Couteau Suisse - Licence : GPL #
# Auteur : Patrice Vanneufville, 2013 #
# Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
# Infos : https://contrib.spip.net/?article2166 #
# Infos : https://contrib.spip.net/?article2166 #
#-----------------------------------------------------#
if (!defined("_ECRIRE_INC_VERSION")) return;

2
outils/autorisations_config.php

@ -4,7 +4,7 @@
# Plugin : Couteau Suisse - Licence : GPL #
# Auteur : Patrice Vanneufville, 2013 #
# Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
# Infos : https://contrib.spip.net/?article2166 #
# Infos : https://contrib.spip.net/?article2166 #
#-----------------------------------------------------#
if (!defined("_ECRIRE_INC_VERSION")) return;

2
outils/type_urls_config.php

@ -4,7 +4,7 @@
# Plugin : Couteau Suisse - Licence : GPL #
# Auteur : Patrice Vanneufville, 2006 #
# Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
# Infos : https://contrib.spip.net/?article2166 #
# Infos : https://contrib.spip.net/?article2166 #
#-----------------------------------------------------#
if (!defined("_ECRIRE_INC_VERSION")) return;

4
paquet.xml

@ -1,7 +1,7 @@
<paquet
prefix="couteau_suisse"
categorie="maintenance"
version="1.10.03"
version="1.10.04"
etat="stable"
compatibilite="[1.9.2;3.2.*]"
logo="img/couteau-50.gif"
@ -47,6 +47,7 @@
<pipeline nom="formulaire_verifier" inclure="cout_pipelines.php" />
<pipeline nom="taches_generales_cron" inclure="cout_pipelines.php" />
<pipeline nom="declarer_tables_interfaces" inclure="cout_pipelines.php" />
<pipeline nom="ajouter_menus" inclure="cout_pipelines.php" />
<!-- pipelines exterieurs -->
<pipeline nom="porte_plume_barre_pre_charger" inclure="cout_pipelines.php" />
<pipeline nom="porte_plume_lien_classe_vers_icone" inclure="cout_pipelines.php" />
@ -55,7 +56,6 @@
<pipeline nom="pre_description_outil" inclure="cout_pipelines.php" />
<pipeline nom="fichier_distant" inclure="cout_pipelines.php" />
<pipeline nom="porte_plume_cs_pre_charger" inclure="cout_pipelines.php" />
<menu nom="csconfig" titre="couteauprive:titre" parent="menu_configuration" icone="images/couteau-16.png" action ="admin_couteau_suisse" parametres="" />

6
plugin.xml

@ -2,7 +2,7 @@
<nom><multi>[en]Swiss Knife[fr]Le Couteau Suisse[ca]El Ganivet Su&#237;s[ar]&#1587;&#1603;&#1610;&#1606; &#1575;&#1604;&#1580;&#1610;&#1576;[nl]Het Zwitserland Mes[gl]A navalla su&#237;za[es]La Navaja Suiza[de]Schweizer Taschenmesser[tr]&#304;svi&#231;re &#199;ak&#305;s&#305;[br]Ar Gontell Suis[pt_br]Canivete Su&#237;&#231;o[ast]La Navaya Suiza[gl]A navalla su&#237;za[ro]Cu&#355;itul Elve&#355;ian[it]Coltellino Svizzero</multi></nom>
<slogan>... ou plus de fonctionnalit&#233;s pour SPIP !</slogan>
<icon>img/couteau-50.gif</icon>
<version>1.10.03</version>
<version>1.10.04</version>
<version_base>1.11</version_base>
<auteur>Patrice Vanneufville
_ &#169; 2007-2017 - Distribu&#233; sous licence GPL
@ -294,6 +294,10 @@ Compatibilit&#224; : SPIP v1.92x, v2.x.x e v3.0.x
<nom>declarer_tables_interfaces</nom>
<inclure>cout_pipelines.php</inclure>
</pipeline>
<pipeline>
<nom>ajouter_menus</nom>
<inclure>cout_pipelines.php</inclure>
</pipeline>
<necessite id="SPIP" version="[1.9.2;3.2.99]" />
<categorie>maintenance</categorie>
<traduire gestionnaire="salvatore" module="couteau" reference="fr" />

Loading…
Cancel
Save