3 #-----------------------------------------------------#
4 # Plugin : Couteau Suisse - Licence : GPL #
5 # Auteur : Patrice Vanneufville, 2006 #
6 # Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
7 # Infos : http://www.spip-contrib.net/?article2166 #
8 #-----------------------------------------------------#
11 // outils/mon_outil.php : inclus par les pipelines de l'outil
12 // outils/mon_outil_options.php : inclus par cout_options.php
13 // outils/mon_outil_fonctions.php : inclus par cout_fonctions.php
15 cs_log("inclusion de config_outils.php");
16 //-----------------------------------------------------------------------------//
18 //-----------------------------------------------------------------------------//
21 'id' => 'revision_nbsp',
22 'code:options' => '$GLOBALS["activer_revision_nbsp"] = true; $GLOBALS["test_i18n"] = true ;',
23 'categorie' => 'admin',
28 'nom' => 'radio_desactive_cache3',
30 'radio' => array(1 => 'item_oui', 0 => 'item_non'),
32 // si la variable est egale a 1, on code...
33 // jquery.js et forms_styles.css restent en cache.
34 'code:%s' => "\$fond = isset(\$GLOBALS['fond'])?\$GLOBALS['fond']:_request('page');
35 if (!in_array(\$fond, array('jquery.js','forms_styles.css'))) \$_SERVER['REQUEST_METHOD']='POST';\n",
38 'nom' => 'duree_cache',
40 'defaut' => "24", // 1 jour
41 'code' => "\$GLOBALS['delais']=%s*3600;\n",
44 'nom' => 'duree_cache_mutu',
46 'defaut' => "24", // 1 jour
47 'code' => "define('_DUREE_CACHE_DEFAUT', %s*3600);\n",
50 'nom' => 'quota_cache',
52 'defaut' => 10, // 10 Mo
53 'code' => "\$GLOBALS['quota_cache']=%s;\n",
56 'nom' => 'exceptions_cache',
59 'code:strlen(%s)' => "define('_cache_PERSO', %s);",
61 // balise pour choisir le cache a appliquer aux articles
65 'code:options' => "%%radio_desactive_cache3%%%%duree_cache%%%%duree_cache_mutu%%%%quota_cache%%%%exceptions_cache%%",
66 'categorie' => 'admin',
67 'pipelinecode:insert_head' => 'if(defined(\'_cache_PERSO\')) cs_fixe_cache($GLOBALS[\'delais\']);'
70 // ici on a besoin d'une case input. La variable est : dossier_squelettes
71 // a la toute premiere activation de l'outil, la valeur sera : $GLOBALS['dossier_squelettes']
73 'nom' => 'dossier_squelettes',
75 'defaut' => "\$GLOBALS['dossier_squelettes']",
76 'code' => "\$GLOBALS['dossier_squelettes']=%s;",
79 'id' => 'dossier_squelettes',
80 'code:options' => '%%dossier_squelettes%%',
81 'categorie' => 'admin',
86 'nom' => 'cookie_prefix',
89 'code' => "\$GLOBALS['cookie_prefix']=%s;",
92 'id' => 'cookie_prefix',
93 'code:options' => "%%cookie_prefix%%",
94 'categorie' => 'admin',
99 'id' => 'supprimer_numero',
100 // inserer : $table_des_traitements['TITRE'][]= 'typo(supprimer_numero(%s))';
101 'traitement:TITRE:pre_typo' => 'supprimer_numero',
102 // inserer : $table_des_traitements['NOM'][]= 'typo(supprimer_numero(%s))';
103 'traitement:NOM:pre_typo' => 'supprimer_numero',
104 'categorie' => 'public',
108 'nom' => 'paragrapher',
109 'format' => 'nombre',
110 'radio' => array(1 => 'item_oui', 0 => 'item_non', -1 => 'couteauprive:par_defaut'),
112 'code:%s>=0' => "\$GLOBALS['toujours_paragrapher']=%s;",
115 'id' => 'paragrapher2',
116 'code:options' => '%%paragrapher%%',
117 'categorie' => 'admin',
121 'id' => 'forcer_langue',
122 'code:options' => "\$GLOBALS['forcer_lang']=true;",
123 'categorie' => 'public',
127 'id' => 'insert_head',
128 'code:options' => "\$GLOBALS['spip_pipeline']['affichage_final'] .= '|f_insert_head';",
129 'categorie' => 'spip',
132 // ici on a besoin d'une case input. La variable est : suite_introduction
133 // a la toute premiere activation de l'outil, la valeur sera : ' (...)'
135 'nom' => 'suite_introduction',
136 'format' => 'chaine',
137 'defaut' => '" (...)"',
138 'code' => "define('_INTRODUCTION_SUITE', %s);\n",
141 'nom' => 'lgr_introduction',
142 'format' => 'nombre',
144 'code:%s && %s!=100' => "define('_INTRODUCTION_LGR', %s);\n",
147 'nom' => 'lien_introduction',
148 'format' => 'nombre',
149 'radio' => array(1 => 'item_oui', 0 => 'item_non'),
151 'code' => "define('_INTRODUCTION_LIEN', %s);",
154 'id' => 'introduction',
155 'code:options' => "%%lgr_introduction%%%%suite_introduction%%%%lien_introduction%%",
156 'categorie' => 'spip',
159 // ici on a besoin de deux boutons radio : _T('icone_interface_simple') et _T('icone_interface_complet')
161 'nom' => 'radio_set_options4',
162 'format' => 'chaine',
163 'radio' => array('basiques' => 'icone_interface_simple', 'avancees' => 'icone_interface_complet'),
164 'defaut' => '"avancees"',
165 'code' => "\$_GET['set_options']=\$GLOBALS['set_options']=%s;",
168 'id' => 'set_options',
169 'auteur' => 'Vincent Ramos [contact->mailto:www-lansargues@kailaasa.net]',
170 'code:options' => "%%radio_set_options4%%",
171 'categorie' => 'interface',
172 // pipeline pour retirer en javascript le bouton de controle de l'interface
173 'pipeline:header_prive' => 'set_options_header_prive',
174 // non supporte a partir de la version 1.93
175 'version-max' => '1.9299',
179 'id' => 'simpl_interface',
180 'code:options' => "@define('_ACTIVER_PUCE_RAPIDE', false);",
181 'categorie' => 'interface',
182 'version-min' => '1.9300',
186 'nom' => 'tri_articles',
187 'format' => 'chaine',
189 'date_modif DESC' => 'couteauprive:tri_modif',
190 '0+titre,titre' => 'couteauprive:tri_titre',
191 'date DESC' => 'couteauprive:tri_publi',
192 'perso' => 'couteauprive:tri_perso' ),
194 'defaut' => "'date DESC'", //"'0+titre,titre'",
195 'code:%s!="perso"' => "@define('_TRI_ARTICLES_RUBRIQUE', %s);\n",
198 'nom' => 'tri_perso',
199 'format' => 'chaine',
201 'code:strlen(%s)' => "@define('_TRI_ARTICLES_RUBRIQUE', %s);",
204 'id' => 'tri_articles',
205 'code:options' => "%%tri_articles%%%%tri_perso%%",
206 'categorie' => 'interface',
207 'version-min' => '1.9300',
210 // ici on a besoin de six boutons radio : 'page', 'html', 'propres', 'propres2, ''standard' et 'propres-qs'
211 define('_CS_PROPRE_QS', defined('_SPIP19300')?
'propres_qs':'propres-qs');
213 'nom' => 'radio_type_urls3',
214 'format' => 'chaine',
215 'radio' => array('page' => 'couteauprive:url_page', 'html' => 'couteauprive:url_html', 'propres' => 'couteauprive:url_propres', 'propres2' => 'couteauprive:url_propres2',
216 'standard' => 'couteauprive:url_standard', _CS_PROPRE_QS
=> 'couteauprive:url_propres-qs' ),
218 'defaut' => "'page'",
219 'code' => "\$GLOBALS['type_urls']=%s;\n",
222 'nom' => 'spip_script',
223 'format' => 'chaine',
224 'defaut' => "get_spip_script()",
225 'code' => "define('_SPIP_SCRIPT', %s);",
229 'code:options' => "%%radio_type_urls3%%%%spip_script%%",
230 'categorie' => 'admin',
233 // ici on a besoin de trois boutons radio : _T('couteauprive:js_jamais'), _T('couteauprive:js_defaut') et _T('couteauprive:js_toujours')
235 'nom' => 'radio_filtrer_javascript3',
236 'format' => 'nombre',
237 'radio' => array(-1 => 'couteauprive:js_jamais', 0 => 'couteauprive:js_defaut', 1 => 'couteauprive:js_toujours'),
239 // si la variable est non nulle, on code...
240 'code:%s' => "\$GLOBALS['filtrer_javascript']=%s;",
243 'id' => 'filtrer_javascript',
244 'code:options' => "%%radio_filtrer_javascript3%%",
245 'categorie' => 'admin',
246 'version-min' => '1.9200',
249 // ici on a besoin d'une case input. La variable est : forum_lgrmaxi
250 // a la toute premiere activation de l'outil, la valeur sera : 0 (aucune limite)
252 'nom' => 'forum_lgrmaxi',
253 'format' => 'nombre',
255 'code:%s' => "define('_FORUM_LONGUEUR_MAXI', %s);",
258 'id' => 'forum_lgrmaxi',
259 'code:options' => "%%forum_lgrmaxi%%",
260 'categorie' => 'admin',
261 'version-min' => '1.9200',
265 'id' => 'auteur_forum',
266 'categorie' => 'admin',
268 'code:options' => "@define('_FORUM_OBLIGE_AUTEUR', 'oui');",
269 'pipeline:affichage_final' => 'Auteur_forum_affichage_final',
272 // ici on a besoin de trois boutons radio : _T('couteauprive:par_defaut'), _T('couteauprive:sf_amont') et _T('couteauprive:sf_tous')
274 'nom' => 'radio_suivi_forums3',
275 'format' => 'chaine',
276 'radio' => array('defaut' => 'couteauprive:par_defaut', '_SUIVI_FORUMS_REPONSES' => 'couteauprive:sf_amont', '_SUIVI_FORUM_THREAD' => 'couteauprive:sf_tous'),
277 'defaut' => '"defaut"',
278 // si la variable est differente de 'defaut' alors on codera le define
279 'code:%s!=="defaut"' => "define(%s, true);",
282 'id' => 'suivi_forums',
283 'code:options' => "%%radio_suivi_forums3%%",
284 'categorie' => 'admin',
285 // effectif que dans la version 1.92 (cf : plugin notifications)
286 'version-min' => '1.9200',
287 'version-max' => '1.9299',
291 'nom' => 'spam_mots',
292 'format' => 'chaine',
294 'defaut' => '"sucking blowjob superbabe ejakulation fucking (asses)"',
295 'code' => "define('_spam_MOTS', %s);",
299 'code:options' => '%%spam_mots%%',
300 'categorie' => 'admin',
305 'code:options' => '$ip = substr(md5($ip),0,16);',
306 'categorie' => 'admin',
311 'code:options' => "@define('_SPIP_FLOCK',false);",
312 'categorie' => 'admin',
313 'version-min' => '1.9300',
317 'id' => 'log_couteau_suisse',
322 'code:options' => "\$GLOBALS['xhtml']='sax';",
323 'auteur' => 'Maïeul Rouquette (maieulrouquette@tele2.fr)',
324 'categorie' =>'public',
325 'version-min' => '1.9200',
330 'code:options' => "\$GLOBALS['spip_pipeline']['insert_head'] = str_replace('|f_jQuery', '', \$GLOBALS['spip_pipeline']['insert_head']);",
332 'categorie' =>'public',
333 'version-min' => '1.9200',
338 'format' => 'chaine',
339 'defaut' => '"spip"',
340 'code:strlen(%s)' => ' class=%s',
344 'format' => 'chaine',
345 'defaut' => '"spip"',
346 'code:strlen(%s)' => ' class=%s',
350 'format' => 'chaine',
351 'defaut' => defined('_SPIP19300')?
"'<hr />'":"'<hr class=\"spip\" />'",
352 'code:strlen(%s)' => "\$GLOBALS['ligne_horizontale']=%s;\n",
356 'format' => 'chaine',
357 'defaut' => defined('_SPIP19300')?
"''":"'<h3 class=\"spip\">'",
358 'code:strlen(%s)' => "\$GLOBALS['debut_intertitre']=%s;\n",
362 'format' => 'chaine',
363 'defaut' => defined('_SPIP19300')?
"''":"'</h3>'",
364 'code:strlen(%s)' => "\$GLOBALS['fin_intertitre']=%s;\n",
368 'format' => 'chaine',
370 'code:strlen(%s)' => "\$GLOBALS['debut_italique']=%s;\n",
374 'format' => 'chaine',
376 'code:strlen(%s)' => "\$GLOBALS['fin_italique']=%s;\n",
380 'format' => 'chaine',
381 'defaut' => '"AUTO"',
382 'code:strlen(%s)' => "\$GLOBALS['puce']=%s;",
385 'id' => 'class_spip',
386 'code:options' => "\$GLOBALS['class_spip']='%%style_p%%';\n\$GLOBALS['class_spip_plus']='%%style_h%%';\n%%racc_hr%%%%racc_h1%%%%racc_h2%%%%racc_i1%%%%racc_i2%%%%puce%%",
387 'categorie' => 'public',
389 // avant SPIP 1.93 : <hr/> seulement
390 // et apres : <hr/> + puce
391 (!defined('_SPIP19300')?
'<:class_spip:1:>':'<:class_spip:2:>').
392 // des SPIP 1.91 : les intertitres
394 // des SPIP 1.93 : les italiques + les styles
395 (!defined('_SPIP19300')?
'':'<:class_spip:4:>'),
399 'nom' => 'admin_travaux',
400 'format' => 'nombre',
401 'radio' => array(0 => 'couteauprive:tous', 1 => 'couteauprive:sauf_admin'),
403 'code' => "define('_en_travaux_ADMIN', %s);\n",
406 'nom' => 'message_travaux',
407 'format' => 'chaine',
408 'defaut' => "_T('couteauprive:travaux_prochainement')",
410 'code' => "define('_en_travaux_MESSAGE', %s);\n",
413 'nom' => 'titre_travaux',
414 'format' => 'nombre',
415 'radio' => array(1 => 'couteauprive:travaux_titre', 0 => 'couteauprive:travaux_nom_site'),
417 'code:%s' => "define('_en_travaux_TITRE', %s);",
420 'id' => 'en_travaux',
421 'code:options' => "%%message_travaux%%%%admin_travaux%%%%titre_travaux%%",
422 'categorie' => 'admin',
423 'auteur' => '[Arnaud Ventre->ventrea@gmail.com]',
428 'check' => 'couteauprive:rss_var',
430 'code:%s' => "define('boites_privees_CS', %s);\n",
433 'nom' => 'format_spip',
434 'check' => 'couteauprive:format_spip',
436 'code:%s' => "define('boites_privees_ARTICLES', %s);\n",
439 'nom' => 'stat_auteurs',
440 'check' => 'couteauprive:stat_auteurs',
442 'code:%s' => "define('boites_privees_AUTEURS', %s);\n",
445 'id' => 'boites_privees',
446 'auteur'=>'Pat, Joseph LARMARANGE (format SPIP)',
448 'code:options' => "%%cs_rss%%%%format_spip%%%%stat_auteurs%%",
449 'categorie' => 'interface',
450 'pipeline:affiche_milieu' => 'boites_privees_affiche_milieu',
451 'pipeline:affiche_droite' => 'boites_privees_affiche_droite',
455 'nom' => 'max_auteurs_page',
456 'format' => 'nombre',
458 'code:%s' => "@define('MAX_AUTEURS_PAR_PAGE', %s);\n",
461 'nom' => 'auteurs_0', 'check' => 'info_administrateurs', 'defaut' => 1, 'code:%s' => "'0minirezo',",
464 'nom' => 'auteurs_1', 'check' => 'info_redacteurs', 'defaut' => 1, 'code:%s' => "'1comite',",
467 'nom' => 'auteurs_5', 'check' => 'info_statut_site_4', 'defaut' => 1, 'code:%s' => "'5poubelle',",
470 'nom' => 'auteurs_6', 'check' => 'info_visiteurs', 'defaut' => 0, 'code:%s' => "'6forum',",
473 'nom' => 'auteurs_n', 'check' => 'couteauprive:nouveaux', 'defaut' => 0, 'code:%s' => "'nouveau',",
476 'nom' => 'auteurs_tout_voir',
477 'format' => 'nombre',
478 'radio' => array(1 => 'couteauprive:statuts_tous', 0 => 'couteauprive:statuts_spip'),
481 // 'code:!%s' => "@define('AUTEURS_DEFAUT', join(\$temp_auteurs,','));",
482 'code:!%s' => "if (_request('exec')=='auteurs' && !_request('statut')) \$_GET['statut'] = join(\$temp_auteurs,',');",
483 'code:%s' => "if (_request('exec')=='auteurs' && !_request('statut')) \$_GET['statut'] = '!foo';",
487 'code:options' => "%%max_auteurs_page%%\$temp_auteurs=array(%%auteurs_0%%%%auteurs_1%%%%auteurs_5%%%%auteurs_6%%%%auteurs_n%%); %%auteurs_tout_voir%% unset(\$temp_auteurs);",
488 'categorie' => 'interface',
489 'version-min' => '1.9300',
490 // 'pipeline:affiche_milieu' => 'auteurs_affiche_milieu',
493 //-----------------------------------------------------------------------------//
495 //-----------------------------------------------------------------------------//
499 'auteur' => '[Cedric MORIN->cedric.morin@yterium.com]',
500 'categorie' => 'spip',
504 'id' => 'orientation',
505 'auteur' => 'Pierre Andrews (Mortimer) & IZO',
506 'categorie' => 'spip',
512 'code:options' => "define('_onglets_FIN', '<span class=\'_fooonglets\'></span>');\n@define('_decoupe_SEPARATEUR', '++++');
513 if (isset(\$_GET['var_recherche'])) {
514 include_spip('inc/headers');
515 redirige_par_entete(str_replace('var_recherche=', 'decoupe_recherche=', \$GLOBALS['REQUEST_URI']));
517 'code:css' => "div.pagination {display:block; text-align:center; }
518 div.pagination img { border:0pt none; margin:0pt; padding:0pt; }",
519 // inserer : $table_des_traitements['TEXTE'][]= 'cs_decoupe(propre(%s))';
520 'traitement:TEXTE:post_propre' => 'cs_decoupe',
521 'traitement:TEXTE:pre_propre' => 'cs_onglets',
522 // sans oublier les articles : $table_des_traitements['TEXTE']['articles']= 'cs_decoupe(propre(%s))';
523 'traitement:TEXTE/articles:post_propre' => 'cs_decoupe',
524 'traitement:TEXTE/articles:pre_propre' => 'cs_onglets',
525 'categorie' => 'typo-racc',
526 'pipeline:BT_toolbox' => 'decoupe_BarreTypo',
527 'pipeline:nettoyer_raccourcis_typo' => 'decoupe_nettoyer_raccourcis',
530 // couplage avec l'outil 'decoupe', donc 'sommaire' doit etre place juste apres :
531 // il faut inserer le sommaire dans l'article et ensuite seulement choisir la page
533 'nom' => 'lgr_sommaire',
534 'format' => 'nombre',
536 'code:%s>=9 && %s<=99' => "define('_sommaire_NB_CARACTERES', %s);\n",
539 'nom' => 'auto_sommaire',
540 'format' => 'nombre',
541 'radio' => array(1 => 'item_oui', 0 => 'item_non'),
543 'code:%s' => "define('_sommaire_AUTOMATIQUE', %s);\n",
546 'nom' => 'balise_sommaire',
547 'format' => 'nombre',
548 'radio' => array(1 => 'item_oui', 0 => 'item_non'),
550 'code:%s' => "define('_sommaire_BALISE', %s);",
552 include_spip('inc/filtres');
553 $path = url_absolue(find_in_path(defined('_SPIP19100')?
"img_pack/spip_out.gif":"images/spip_out.gif"));
557 'code:options' => "define('_sommaire_REM', '<span class=\'_foosommaire\'></span>');\ndefine('_sommaire_SANS_SOMMAIRE', '[!sommaire]');\ndefine('_sommaire_AVEC_SOMMAIRE', '[sommaire]');\n%%lgr_sommaire%%%%auto_sommaire%%%%balise_sommaire%%",
558 // s'il y a un sommaire, on cache la navigation haute sur les pages
559 'code:css' => "div.cs_sommaire {display:block; float:right; margin-left:1em; margin-right:0.4em; overflow:auto; z-index:100; max-height:350px; text-align:left;}
560 a.sommaire_ancre {background:transparent url($path) no-repeat scroll left center; padding-left:10px; text-decoration:none; }
561 div.cs_sommaire a:after {display:none;}",
562 'code:jq' => 'if(jQuery("div.cs_sommaire").length) jQuery("div.decoupe_haut").css("display", "none");',
563 // inserer : $table_des_traitements['TEXTE']['article']= 'sommaire_d_article(propre(%s))';
564 'traitement:TEXTE/articles:post_propre' => 'sommaire_d_article',
565 'traitement:CS_SOMMAIRE:post_propre' => 'sommaire_d_article_balise',
566 'traitement:CS_SOMMAIRE:pre_propre' => 'sommaire_supprime_notes',
567 'categorie' => 'typo-corr',
568 'pipeline:nettoyer_raccourcis_typo' => 'sommaire_nettoyer_raccourcis',
571 //-----------------------------------------------------------------------------//
573 //-----------------------------------------------------------------------------//
575 // TODO : gestion du jQuery dans la fonction a revoir ?
577 'id' => 'desactiver_flash',
578 'auteur' => '[Cedric MORIN->cedric.morin@yterium.com]',
579 'categorie' => 'public',
581 'pipeline:affichage_final' => 'InhibeFlash_affichage_final',
585 'nom' => 'radio_target_blank3',
586 'format' => 'nombre',
587 'radio' => array(1 => 'item_oui', 0 => 'item_non'),
589 'code' => '$GLOBALS["tweak_target_blank"]=%s;',
592 'nom' => 'url_glossaire_externe2',
593 'format' => 'chaine',
595 'code:strlen(%s)' => '$GLOBALS["url_glossaire_externe"]=%s;',
598 'id' => 'SPIP_liens',
599 'categorie' => 'public',
602 'code:options' => "%%radio_target_blank3%%\n%%url_glossaire_externe2%%",
603 'code:jq_init' => 'if (%%radio_target_blank3%%) { jQuery("a.spip_out,a.spip_url,a.spip_glossaire",this).attr("target", "_blank"); }',
606 //-----------------------------------------------------------------------------//
608 //-----------------------------------------------------------------------------//
612 'categorie' => 'typo-racc',
613 'pipeline:pre_typo' => 'ToutMulti_pre_typo',
618 'auteur' => '[Jérôme Combaz->http://conseil-recherche-innovation.net/index.php/2000/07/08/72-jerome-combaz]',
619 'categorie' => 'typo-corr',
620 'pipeline:pre_typo' => 'pucesli_pre_typo',
624 'nom' => 'decoration_styles',
625 'format' => 'chaine',
627 'defaut' => '"span.sc = font-variant:small-caps;
628 span.souligne = text-decoration:underline;
629 span.barre = text-decoration:line-through;
630 span.dessus = text-decoration:overline;
631 span.clignote = text-decoration:blink;
632 span.surfluo = background-color:#ffff00; padding:0px 2px;
633 span.surgris = background-color:#EAEAEC; padding:0px 2px;
635 'code' => "define('_decoration_BALISES', %s);",
638 'id' => 'decoration',
639 'auteur' => '[izo@aucuneid.net->http://www.aucuneid.com/bones], Pat',
641 'categorie' => 'typo-racc',
642 'code:options' => "%%decoration_styles%%",
643 'pipeline:pre_typo' => 'decoration_pre_typo',
644 'pipeline:BT_toolbox' => 'decoration_BarreTypo',
648 'nom' => 'couleurs_fonds',
649 'format' => 'nombre',
650 'radio' => array(1 => 'item_oui', 0 => 'item_non' ),
652 'code' => "define('_COULEURS_FONDS', %s);\n",
655 'nom' => 'set_couleurs',
656 'format' => 'nombre',
657 'radio' => array(0 => 'couteauprive:toutes_couleurs', 1 => 'couteauprive:certaines_couleurs'),
660 'code' => "define('_COULEURS_SET', %s);\n",
663 'nom' => 'couleurs_perso',
664 'format' => 'chaine',
666 'defaut' => '"gris, rouge"',
667 'code' => "define('_COULEURS_PERSO', %s);",
671 'auteur' => 'Aurélien PIERARD (idée originale), Pat',
672 'categorie' => 'typo-racc',
674 'pipeline:pre_typo' => 'couleurs_pre_typo',
675 'pipeline:BT_toolbox' => 'couleurs_BarreTypo',
676 'code:options' => "%%couleurs_fonds%%%%set_couleurs%%%%couleurs_perso%%",
677 'code:fonctions' => "// aide le Couteau Suisse a calculer la balise #INTRODUCTION
678 function couleurs_introduire(\$texte) {
679 \$couleurs = unserialize(\$GLOBALS['meta']['cs_couleurs']);
680 \$couleurs = _COULEURS_SET===0?\"\$couleurs[0]|\$couleurs[1]\":\$couleurs[0];
681 return preg_replace(\",\[/?(bg|fond)?\s*(\$couleurs|couleur|color)\],i\", '', \$texte);
683 \$GLOBALS['cs_introduire'][] = 'couleurs_introduire';
687 // outil specifiquement français. D'autres langues peuvent etre ajoutees dans outils/typo_exposants.php
689 'id' => 'typo_exposants',
690 'auteur' => 'Vincent Ramos [contact->www-lansargues@kailaasa.net]',
691 'categorie' => 'typo-corr',
693 'pipeline:post_typo' => 'typo_exposants',
694 'code:css' => 'sup.typo_exposants { font-size:75%; font-variant:normal; vertical-align:super; }',
698 'id' => 'guillemets',
699 'auteur' => 'Vincent Ramos [contact->www-lansargues@kailaasa.net]',
700 'categorie' => 'typo-corr',
701 'pipeline:post_typo' => 'typo_guillemets',
705 'nom' => 'liens_interrogation',
706 'format' => 'nombre',
707 'radio' => array(1 => 'item_oui', 0 => 'item_non'),
709 'code:%s' => "\$GLOBALS['liens_interrogation']=true;\n",
712 'nom' => 'liens_orphelins',
713 'format' => 'nombre',
714 'radio' => array(-1 => 'item_non', 0 => 'couteauprive:basique', 1 => 'couteauprive:etendu'),
716 'code' => '$GLOBALS["liens_orphelins"]=%s;',
718 // attention : liens_orphelins doit etre place avant mailcrypt
720 'id' => 'liens_orphelins',
721 'categorie' => 'typo-corr',
723 'code:options' => '%%liens_interrogation%%%%liens_orphelins%%',
724 'pipeline:pre_propre' => 'liens_orphelins_pipeline',
725 'traitement:EMAIL' => 'expanser_liens(liens_orphelins',
726 'pipeline:pre_typo' => 'interro_pre_typo',
727 'pipeline:post_propre' => 'interro_post_propre',
731 'id' => 'filets_sep',
732 'auteur' => 'FredoMkb',
733 'categorie' => 'typo-racc',
735 'pipeline:pre_typo' => 'filets_sep',
736 'pipeline:BT_toolbox' => 'filets_sep_BarreTypo',
741 'auteur' => 'Sylvain',
742 'categorie' => 'typo-corr',
744 'code:css' => "table.cs_smileys td {text-align:center; font-size:90%; font-weight:bold;}",
745 'pipeline:pre_typo' => 'cs_smileys_pre_typo',
746 'pipeline:BT_toolbox' => 'cs_smileys_BarreTypo',
751 'auteur' => 'BoOz (booz.bloog@laposte.net)',
752 'categorie' => 'typo-racc',
753 'pipeline:pre_typo' => 'chatons_pre_typo',
754 'pipeline:BT_toolbox' => 'chatons_BarreTypo',
758 'nom' => 'glossaire_groupes',
759 'format' => 'chaine',
760 'defaut' => "'Glossaire'",
761 'code' => "\$GLOBALS['glossaire_groupes']=%s;\n",
764 'nom' => 'glossaire_limite',
765 'format' => 'nombre',
767 'code:%s>0' => "define('_GLOSSAIRE_LIMITE', %s);\n",
770 'nom' => 'glossaire_js',
771 'radio' => array(0 => 'couteauprive:glossaire_css', 1 => 'couteauprive:glossaire_js'),
772 'format' => 'nombre',
774 'code:%s' => "define('_GLOSSAIRE_JS', %s);",
778 'categorie' => 'typo-corr',
780 'code:options' => "%%glossaire_limite%%%%glossaire_groupes%%%%glossaire_js%%",
781 // 'traitement:LIEU:post_propre' => 'cs_glossaire',
782 'traitement:TEXTE:post_propre' => 'cs_glossaire',
783 // sans oublier les articles...
784 'traitement:TEXTE/articles:post_propre' => 'cs_glossaire',
785 // et le chapo des articles...
786 'traitement:CHAPO:post_propre' => 'cs_glossaire',
787 // Precaution pour les articles virtuels
788 'traitement:CHAPO:pre_propre' => 'nettoyer_chapo',
789 'code:css' => 'a.cs_glossaire:after {display:none;}',
790 // fonction glossaire_init() codee dans glossaire.js : executee lors du chargement de la page et a chaque hit ajax
791 'code:jq_init' => 'glossaire_init.apply(this);',
794 // attention : mailcrypt doit etre place apres liens_orphelins
797 'categorie' => 'typo-corr',
798 'auteur' => 'Alexis Roussel, Paolo',
801 'pipelinecode:post_propre' => "if(strpos(\$flux, '@')!==false) \$flux=cs_echappe_balises('', 'mailcrypt', \$flux);",
802 'code:js' => "function lancerlien(a,b){ x='ma'+'ilto'+':'+a+'@'+b; return x; }",
803 // jQuery pour remplacer l'arobase image par l'arobase texte
804 'code:jq_init' => "jQuery('span.spancrypt', this).attr('class','cryptOK').html(''+'4;');",
805 'code:css' => 'span.spancrypt {background:transparent url(' . url_absolue(find_in_path('img/mailcrypt/leure.gif'))
806 . ') no-repeat scroll 0.1em center; padding-left:12px; text-decoration:none;}',
807 'traitement:EMAIL' => 'mailcrypt',
810 // attention : liens_en_clair doit etre place apres tous les outils traitant des liens
812 'id' => 'liens_en_clair',
813 'categorie' => 'spip',
815 'pipeline:post_propre' => 'liens_en_clair_post_propre',
816 'code:css' => 'a.spip_out:after {display:none;}',
821 'categorie' => 'typo-racc',
823 // fonction blocs_init() codee dans blocs.js : executee lors du chargement de la page et a chaque hit ajax
824 'code:jq_init' => 'blocs_init.apply(this);',
826 'pipeline:pre_typo' => 'blocs_pre_typo',
827 'pipeline:BT_toolbox' => 'blocs_BarreTypo',
831 'nom' => 'insertions',
832 'format' => 'chaine',
834 'defaut' => '"coeur = cœur
835 manoeuvre = manœuvre
836 (oeuvre(s?|r?)) = œuvre$1
837 (O(E|e)uvre(s?|r?)\b/ = Œuvre$2
839 /\b(c|C|m.c|M.c|rec|Rec)onn?aiss?a(nce|nces|nt|nts|nte|ntes|ble)\b/ = $1onnaissa$2
840 /\boeuf(s?)\b/ = œuf$1
842 'code' => "define('_insertions_LISTE', %s);",
845 'id' => 'insertions',
846 'categorie' => 'typo-corr',
847 'code:options' => "%%insertions%%",
848 'traitement:TEXTE:pre_propre' => 'insertions_pre_propre',
849 'traitement:TEXTE/articles:pre_propre' => 'insertions_pre_propre',
852 // Ajout des outils personnalises
853 if(isset($GLOBALS['mes_outils']))
854 foreach($GLOBALS['mes_outils'] as $id=>$outil) {
856 if(strlen($outil['nom'])) $outil['nom'] = "<i>$outil[nom]</i>";
861 // http://archives.rezo.net/spip-core.mbox/
862 // http://www.spip-contrib.net/Citations
863 // http://www.spip-contrib.net/la-balise-LESMOTS et d'autres balises #MAINTENANT #LESADMINISTRATEURS #LESREDACTEURS #LESVISITEURS
864 // http://www.spip-contrib.net/Ajouter-une-lettrine-aux-articles
865 // http://www.spip-contrib.net/Generation-automatique-de
867 // colorations du code
870 //global $cs_variables; cs_log($cs_variables, 'cs_variables :');