source: spip-zone/_plugins_/couteau_suisse/config_outils.php @ 34319

Last change on this file since 34319 was 34319, checked in by patfr@…, 10 years ago

[new] Intertitres en image : transforme tous les intertitres « Mon intertitre » en image typographique paramétrable.

  • Taille de la police
  • Couleur de la police
  • Nom du fichier de la police (dossiers polices/)
  • Largeur maximale de la ligne de texte
  • Hauteur de la ligne de texte (éq. à line-height)
  • Espacement autour du texte (éq. à padding)
  • Alignement du texte
File size: 45.2 KB
Line 
1<?php
2
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#-----------------------------------------------------#
9if(!defined("_ECRIRE_INC_VERSION")) return;
10
11// Noter :
12// outils/mon_outil.php : inclus par les pipelines de l'outil
13// outils/mon_outil_options.php : inclus par cout_options.php
14// outils/mon_outil_fonctions.php : inclus par cout_fonctions.php
15
16cs_log("inclusion de config_outils.php");
17//-----------------------------------------------------------------------------//
18//                               options                                       //
19//-----------------------------------------------------------------------------//
20/*
21add_outil( array(
22        'id' => 'revision_nbsp',
23        'code:options' => '$GLOBALS["activer_revision_nbsp"] = true; $GLOBALS["test_i18n"] = true ;',
24        'categorie' => 'admin',
25));
26*/
27
28// ici on a besoin d'une case input. La variable est : dossier_squelettes
29// a la toute premiere activation de l'outil, la valeur sera : $GLOBALS['dossier_squelettes']
30add_variable( array(
31        'nom' => 'dossier_squelettes',
32        'format' => _format_CHAINE,
33        'defaut' => "\$GLOBALS['dossier_squelettes']",
34        'code' => "\$GLOBALS['dossier_squelettes']=%s;",
35));
36add_outil( array(
37        'id' => 'dossier_squelettes',
38        'code:spip_options' => '%%dossier_squelettes%%',
39        'categorie' => 'admin',
40));
41
42/*
43add_variable( array(
44        'nom' => 'cookie_prefix',
45        'format' => _format_CHAINE,
46        'defaut' => "'spip'",
47        'code' => "\$GLOBALS['cookie_prefix']=%s;",
48));
49add_outil( array(
50        'id' => 'cookie_prefix',
51        'code:options' => "%%cookie_prefix%%",
52        'categorie' => 'admin',
53));
54*/
55
56add_outil( array(
57        'id' => 'supprimer_numero',
58        /* inserer :
59                $table_des_traitements['TITRE'][]= 'typo(supprimer_numero(%s))';
60                $table_des_traitements['TYPE']['mots']= 'typo(supprimer_numero(%s))';
61                $table_des_traitements['NOM'][]= 'typo(supprimer_numero(%s))'; */
62        'traitement:TITRE:pre_typo,
63         traitement:TITRE/mots:pre_typo,
64         traitement:NOM:pre_typo,
65         traitement:TYPE/mots:pre_typo' => 'supprimer_numero',
66        'categorie' => 'public',
67));
68
69add_variables( array(
70        'nom' => 'paragrapher',
71        'format' => _format_NOMBRE,
72        'radio' => array(1 => 'item_oui', 0 => 'item_non', -1 => 'couteauprive:par_defaut'),
73        'defaut' => "-1",
74        'code:%s>=0' => "\$GLOBALS['toujours_paragrapher']=%s;",
75));
76add_outil( array(
77        'id' => 'paragrapher2',
78        'code:spip_options' => '%%paragrapher%%',
79        'categorie' => 'admin',
80));
81
82add_outil( array(
83        'id' => 'forcer_langue',
84        'code:spip_options' => "\$GLOBALS['forcer_lang']=true;",
85        'categorie' => 'public',
86));
87
88add_variables( array(
89        'nom' => 'webmestres',
90        'format' => _format_CHAINE,
91        'defaut' => '"1"',
92        'code:strlen(%s)' => "define('_ID_WEBMESTRES', %s);",
93        'code:!strlen(%s)' => "define('_ID_WEBMESTRES', 1);",
94        'pipelinecode:pre_description_outil' => 'if($flux["outil"]=="webmestres")
95                $flux["texte"]=str_replace(array("@_CS_LISTE_WEBMESTRES@","@_CS_LISTE_ADMINS@"),get_liste_administrateurs()),$flux["texte"]);',
96));
97add_outil( array(
98        'id' => 'webmestres',
99        'code:spip_options' => '%%webmestres%%',
100        'categorie' => 'admin',
101        // non supporte avant la version 1.92
102        'version-min' => '1.9200',
103        'autoriser' => "autoriser('webmestre')",
104));
105
106add_outil( array(
107        'id' => 'insert_head',
108        'code:options' => "\$GLOBALS['spip_pipeline']['affichage_final'] .= '|f_insert_head';",
109        'categorie' => 'spip',
110));
111
112// ici on a besoin d'une case input. La variable est : suite_introduction
113// a la toute premiere activation de l'outil, la valeur sera : '&nbsp;(...)'
114add_variables( array(
115        'nom' => 'suite_introduction',
116        'format' => _format_CHAINE,
117        'defaut' => '"&nbsp;(...)"',
118        'code' => "define('_INTRODUCTION_SUITE', %s);\n",
119), array(
120        'nom' => 'lgr_introduction',
121        'format' => _format_NOMBRE,
122        'defaut' => 100,
123        'code:%s && %s!=100' => "define('_INTRODUCTION_LGR', %s);\n",
124), array(
125        'nom' => 'lien_introduction',
126        'format' => _format_NOMBRE,
127        'radio' => array(1 => 'item_oui', 0 => 'item_non'),
128        'defaut' => 0,
129        'code' => "define('_INTRODUCTION_LIEN', %s);",
130));
131add_outil( array(
132        'id' => 'introduction',
133        'code:options' => "%%lgr_introduction%%%%suite_introduction%%%%lien_introduction%%",
134        'categorie' => 'spip',
135));
136
137// ici on a besoin de deux boutons radio : _T('icone_interface_simple') et _T('icone_interface_complet')
138add_variable( array(
139        'nom' => 'radio_set_options4',
140        'format' => _format_CHAINE,
141        'radio' => array('basiques' => 'icone_interface_simple', 'avancees' => 'icone_interface_complet'),
142        'defaut' => '"avancees"',
143        'label' => '@_CS_CHOIX@',
144        'code' => "\$_GET['set_options']=\$GLOBALS['set_options']=%s;",
145));
146add_outil( array(
147        'id' => 'set_options',
148        'auteur'         => 'Vincent Ramos',
149        'code:options' => "%%radio_set_options4%%",
150        'categorie' => 'interface',
151        // pipeline pour retirer en JavaScript le bouton de controle de l'interface
152        'pipeline:header_prive' => 'set_options_header_prive',
153        // non supporte a partir de la version 1.93
154        'version-max' => '1.9299',
155));
156
157// code mort, voir le format xml : outils/interface_config.xml
158
159/*
160add_outil( array(
161        'id' => 'simpl_interface',
162        'code:spip_options' => "define('_ACTIVER_PUCE_RAPIDE', false);",
163        'categorie' => 'interface',
164        'version-min' => '1.9300',
165));
166
167add_outil( array(
168        'id' => 'icone_visiter',
169        'categorie' => 'interface',
170        'pipeline:header_prive' => 'icone_visiter_header_prive',
171));
172
173add_variables( array(
174        'nom' => 'tri_articles',
175        'format' => _format_CHAINE,
176        'radio' => array(
177                'date_modif DESC' => 'couteauprive:tri_modif',
178                '0+titre,titre' => 'couteauprive:tri_titre',
179                'date DESC' => 'couteauprive:tri_publi',
180                'perso' => 'couteauprive:tri_perso' ),
181        'radio/ligne' => 1,
182        'defaut' => "'date DESC'", //"'0+titre,titre'",
183        'label' => '@_CS_CHOIX@',
184        'code:%s!="perso"' => "define('_TRI_ARTICLES_RUBRIQUE', %s);\n",
185), array(
186        'nom' => 'tri_perso',
187        'format' => _format_CHAINE,
188        'defaut' => '',
189        'code:strlen(%s)' => "@define('_TRI_ARTICLES_RUBRIQUE', %s);\n",
190), array(
191        'nom' => 'tri_groupes',
192        'format' => _format_CHAINE,
193        'radio' => array(
194                '0+titre,titre' => 'couteauprive:tri_titre',
195                'id_groupe' => 'couteauprive:tri_publi',
196                'perso' => 'couteauprive:tri_groupe' ),
197        'radio/ligne' => 1,
198        'defaut' => "'id_groupe'", //"'0+titre,titre'",
199        'code:%s!="perso"' => "define('_TRI_GROUPES_MOTS', %s);\n",
200), array(
201        'nom' => 'tri_perso_groupes',
202        'format' => _format_CHAINE,
203        'defaut' => '',
204        'code:strlen(%s)' => "@define('_TRI_GROUPES_MOTS', %s);",
205));
206add_outil( array(
207        'id' => 'tri_articles',
208        'code:spip_options' => "%%tri_articles%%%%tri_perso%%%%tri_groupes%%%%tri_perso_groupes%%",
209        'categorie' => 'interface',
210        'version-min' => '1.9300',
211));
212*/
213
214// ici on a besoin de trois boutons radio : _T('couteauprive:js_jamais'), _T('couteauprive:js_defaut') et _T('couteauprive:js_toujours')
215add_variable( array(
216        'nom' => 'radio_filtrer_javascript3',
217        'format' => _format_NOMBRE,
218        'radio' => array(-1 => 'couteauprive:js_jamais', 0 => 'couteauprive:js_defaut', 1 => 'couteauprive:js_toujours'),
219        'defaut' => 0,
220        'label' => '@_CS_CHOIX@',
221        // si la variable est non nulle, on code...
222        'code:%s' => "\$GLOBALS['filtrer_javascript']=%s;",
223));
224add_outil( array(
225        'id' => 'filtrer_javascript',
226        'code:options' => "%%radio_filtrer_javascript3%%",
227        'categorie' => 'admin',
228        'version-min' => '1.9200',
229));
230
231// ici on a besoin d'une case input. La variable est : forum_lgrmaxi
232// a la toute premiere activation de l'outil, la valeur sera : 0 (aucune limite)
233add_variable( array(
234        'nom' => 'forum_lgrmaxi',
235        'format' => _format_NOMBRE,
236        'defaut' => 0,
237        'code:%s' => "define('_FORUM_LONGUEUR_MAXI', %s);",
238));
239add_outil( array(
240        'id' => 'forum_lgrmaxi',
241        'code:spip_options' => "%%forum_lgrmaxi%%",
242        'categorie' => 'admin',
243        'version-min' => '1.9200',
244));
245
246
247add_variables( array(
248        'nom' => 'logo_Hmax',
249        'format' => _format_NOMBRE,
250        'defaut' => 0,
251        'code:%s' => "@define('_LOGO_MAX_HEIGHT', %s);\n",
252), array(
253        'nom' => 'logo_Wmax',
254        'format' => _format_NOMBRE,
255        'defaut' => 0,
256        'code:%s' => "@define('_LOGO_MAX_WIDTH', %s);\n",
257), array(
258        'nom' => 'logo_Smax',
259        'format' => _format_NOMBRE,
260        'defaut' => 0,
261        'code:%s' => "@define('_LOGO_MAX_SIZE', %s);\n",
262), array(
263        'nom' => 'img_Hmax',
264        'format' => _format_NOMBRE,
265        'defaut' => 0,
266        'code:%s' => "@define('_IMG_MAX_HEIGHT', %s);\n",
267), array(
268        'nom' => 'img_Wmax',
269        'format' => _format_NOMBRE,
270        'defaut' => 0,
271        'code:%s' => "@define('_IMG_MAX_WIDTH', %s);\n",
272), array(
273        'nom' => 'img_Smax',
274        'format' => _format_NOMBRE,
275        'defaut' => 0,
276        'code:%s' => "@define('_IMG_MAX_SIZE', %s);\n",
277), array(
278        'nom' => 'doc_Smax',
279        'format' => _format_NOMBRE,
280        'defaut' => 0,
281        'code:%s' => "@define('_DOC_MAX_SIZE', %s);\n",
282), array(
283        'nom' => 'img_GDmax',
284        'format' => _format_NOMBRE,
285        'defaut' => 0,
286        'code:%s' => "@define('_IMG_GD_MAX_PIXELS', %s);\n",
287), array(
288        'nom' => 'copie_Smax',
289        'format' => _format_NOMBRE,
290        'defaut' => 16,
291        'code' => "@define('_COPIE_LOCALE_MAX_SIZE', %s*1048576);",
292));
293add_outil( array(
294        'id' => 'SPIP_tailles',
295        'code:spip_options' => "%%logo_Hmax%%%%logo_Wmax%%%%logo_Smax%%%%img_Hmax%%%%img_Wmax%%%%img_Smax%%%%doc_Smax%%%%img_GDmax%%%%copie_Smax%%",
296        'categorie' => 'admin',
297));
298
299add_outil( array(
300        'id' => 'previsualisation',
301        'categorie' => 'admin',
302        'auteur' => '[C&eacute;dric Morin->http://www.yterium.net]',
303        'pipeline:pre_boucle' => 'previsu_redac_pre_boucle',
304        'pipeline:boite_infos' => 'previsu_redac_boite_infos',
305        // fichier distant pour les pipelines
306        'distant' => 'http://zone.spip.org/trac/spip-zone/export/32230/_plugins_/previsu_redaction/previsu_redac_pipelines.php',
307        'version-min' => '1.9300',
308));
309
310add_variables( array(
311        'nom' => 'auteur_forum_nom',
312        'check' => 'couteauprive:auteur_forum_nom',
313        'defaut' => 1,
314), array(
315        'nom' => 'auteur_forum_email',
316        'check' => 'couteauprive:auteur_forum_email',
317        'defaut' => 0,
318), array(
319        'nom' => 'auteur_forum_deux',
320        'check' => 'couteauprive:auteur_forum_deux',
321        'defaut' => 0,
322));
323add_outil( array(
324        'id' => 'auteur_forum',
325        'categorie'      => 'admin',
326        'jquery'        => 'oui',
327        'code:jq_init' => 'cs_auteur_forum.apply(this);',
328        'code:js' => "var cs_verif_email = %%auteur_forum_email%%;\nvar cs_verif_nom = %%auteur_forum_nom%%;\nvar cs_verif_deux = %%auteur_forum_deux%%;",
329        'pipelinecode:pre_description_outil' => 'if($flux["outil"]=="auteur_forum") $flux["texte"]=str_replace(array("@_CS_FORUM_NOM@","@_CS_FORUM_EMAIL@"),
330        array(preg_replace(\',:$,\',"",_T("forum_votre_nom")),preg_replace(\',:$,\',"",_T("forum_votre_email"))),$flux["texte"]);',
331));
332
333// ici on a besoin de trois boutons radio : _T('couteauprive:par_defaut'), _T('couteauprive:sf_amont') et _T('couteauprive:sf_tous')
334add_variable( array(
335        'nom' => 'radio_suivi_forums3',
336        'format' => _format_CHAINE,
337        'radio' => array('defaut' => 'couteauprive:par_defaut', '_SUIVI_FORUMS_REPONSES' => 'couteauprive:sf_amont', '_SUIVI_FORUM_THREAD' => 'couteauprive:sf_tous'),
338        'defaut' => '"defaut"',
339        'label' => '@_CS_CHOIX@',
340        // si la variable est differente de 'defaut' alors on codera le define
341        'code:%s!=="defaut"' => "define(%s, true);",
342));
343add_outil( array(
344        'id' => 'suivi_forums',
345        'code:options' => "%%radio_suivi_forums3%%",
346        'categorie' => 'admin',
347        // effectif que dans la version 1.92 (cf : plugin notifications)
348        'version-min' => '1.9200',
349        'version-max' => '1.9299',
350));
351
352add_variable( array(
353        'nom' => 'spam_mots',
354        'format' => _format_CHAINE,
355        'lignes' => 8,
356        'defaut' => '"sucking blowjob superbabe ejakulation fucking (asses)"',
357        'code' => "define('_spam_MOTS', %s);",
358));
359add_outil( array(
360        'id' => 'spam',
361        'code:options' => '%%spam_mots%%',
362        'categorie' => 'admin',
363));
364
365add_outil( array(
366        'id' => 'no_IP',
367        'code:spip_options' => '$ip = substr(md5($ip),0,16);',
368        'categorie' => 'admin',
369));
370
371add_outil( array(
372        'id' => 'flock',
373        'code:spip_options' => "define('_SPIP_FLOCK',false);",
374        'categorie' => 'admin',
375        'version-min' => '1.9300',
376));
377
378add_variables( array(
379        'nom' => 'log_couteau_suisse',
380        'check' => 'couteauprive:cs_log_couteau_suisse',
381        'defaut' => 0,
382), array(
383        'nom' => 'spip_options_on',
384        'check' => 'couteauprive:cs_spip_options_on',
385        'defaut' => 0,
386), array(
387        'nom' => 'distant_off',
388        'check' => 'couteauprive:cs_distant_off',
389        'defaut' => 0,
390        'code:%s' => "define('_CS_PAS_DE_DISTANT','oui');",
391), array(
392        'nom' => 'distant_outils_off',
393        'check' => 'couteauprive:cs_distant_outils_off',
394        'defaut' => 0,
395        'code:%s' => "define('_CS_PAS_D_OUTIL_DISTANT','oui');",
396));
397add_outil( array(
398        'id' => 'cs_comportement',
399        'code:spip_options' => "%%distant_off%% %%distant_outils_off%%",
400        'pipelinecode:pre_description_outil' => 'if($flux["outil"]=="cs_comportement") $flux["texte"]=str_replace(array("@_CS_DIR_TMP@","@_CS_FILE_OPTIONS@"),
401                array(cs_canonicalize(_DIR_RESTREINT_ABS._DIR_TMP),show_file_options()),$flux["texte"]);',
402));
403
404
405add_outil( array(
406        'id' => 'xml',
407        'code:options' => "\$GLOBALS['xhtml']='sax';",
408        'auteur' => 'Ma&iuml;eul Rouquette',
409        'categorie' =>'public',
410        'version-min' => '1.9200',
411));
412
413add_outil( array(
414        'id' => 'f_jQuery',
415        'code:options' => "\$GLOBALS['spip_pipeline']['insert_head'] = str_replace('|f_jQuery', '', \$GLOBALS['spip_pipeline']['insert_head']);",
416        'auteur' => 'Fil',
417        'categorie' =>'public',
418        'version-min' => '1.9200',
419));
420
421add_variables( array(
422        'nom' => 'prive_travaux',
423        'format' => _format_NOMBRE,
424        'radio' => array(0 => 'couteauprive:tous', 1 => 'couteauprive:admins_seuls'),
425        'defaut' => 0,
426        'code:%s' => "define('_en_travaux_PRIVE', %s);\n",
427), array(
428        'nom' => 'admin_travaux',
429        'format' => _format_NOMBRE,
430        'radio' => array(0 => 'couteauprive:tous', 1 => 'couteauprive:sauf_admin', 2 => 'couteauprive:sauf_admin_redac', 3 => 'couteauprive:sauf_identifies'),
431        'radio/ligne' => 1,
432        'defaut' => 0,
433        'code' => "define('_en_travaux_PUBLIC', %s);\n",
434), array(
435        'nom' => 'avertir_travaux',
436        'check' => 'couteauprive:travaux_masquer_avert',
437        'defaut' => 0,
438        'code:%s' => "define('_en_travaux_SANSMSG', %s);\n",
439), array(
440        'nom' => 'message_travaux',
441        'format' => _format_CHAINE,
442        'defaut' => "_T('couteauprive:travaux_prochainement')",
443        'lignes' => 3,
444        'code' => "\$tr_message=%s;\n",
445), array(
446        'nom' => 'titre_travaux',
447        'format' => _format_NOMBRE,
448        'radio' => array(1 => 'couteauprive:travaux_titre', 0 => 'couteauprive:travaux_nom_site'),
449        'defaut' => 1,
450        'code:%s' => "define('_en_travaux_TITRE', %s);",
451));
452add_outil( array(
453        'id' => 'en_travaux',
454        'code:options' => "%%message_travaux%%%%prive_travaux%%%%admin_travaux%%%%avertir_travaux%%%%titre_travaux%%",
455        'categorie' => 'admin',
456        'auteur' => "Arnaud Ventre pour l'id&eacute;e originale",
457        'pipeline:affichage_final' => 'en_travaux_affichage_final',
458        'pipelinecode:pre_description_outil' => 'if($flux["outil"]=="en_travaux") $flux["texte"]=str_replace(array("@_CS_TRAVAUX_TITRE@","@_CS_NOM_SITE@"),
459        array("["._T("info_travaux_titre")."]","[".$GLOBALS["meta"]["nom_site"]."]"),$flux["texte"]);',
460));
461
462add_variables( array(
463        'nom' => 'bp_tri_auteurs',
464        'check' => 'couteauprive:bp_tri_auteurs',
465        'defaut' => 1,
466        'code:%s' => "define('boites_privees_TRI_AUTEURS', %s);\n",
467), array(
468        'nom' => 'bp_urls_propres',
469        'check' => 'couteauprive:bp_urls_propres',
470        'defaut' => 1,
471        'code:%s' => "define('boites_privees_URLS_PROPRES', %s);\n",
472), array(
473        'nom' => 'cs_rss',
474        'check' => 'couteauprive:rss_var',
475        'defaut' => 1,
476        'code:%s' => "define('boites_privees_CS', %s);\n",
477), array(
478        'nom' => 'format_spip',
479        'check' => 'couteauprive:format_spip',
480        'defaut' => 1,
481        'code:%s' => "define('boites_privees_ARTICLES', %s);\n",
482), array(
483        'nom' => 'stat_auteurs',
484        'check' => 'couteauprive:stat_auteurs',
485        'defaut' => 1,
486        'code:%s' => "define('boites_privees_AUTEURS', %s);\n",
487), array(
488        'nom' => 'qui_webmasters',
489        'check' => 'couteauprive:qui_webmestres',
490        'defaut' => 1,
491        'code:%s' => "define('boites_privees_WEBMASTERS', %s);\n",
492));
493add_outil( array(
494        'id' => 'boites_privees',
495        'auteur'=>'Pat, Joseph LARMARANGE (format SPIP)',
496        'contrib' => 2564,
497        'code:options' => "%%cs_rss%%%%format_spip%%%%stat_auteurs%%%%qui_webmasters%%%%bp_urls_propres%%%%bp_tri_auteurs%%",
498        'categorie' => 'interface',
499        'pipeline:affiche_milieu' => 'boites_privees_affiche_milieu',
500        'pipeline:affiche_droite' => 'boites_privees_affiche_droite',
501        'pipeline:affiche_gauche' => 'boites_privees_affiche_gauche',
502        // Pour la constante _CS_RSS_SOURCE
503#       'pipelinecode:pre_description_outil' => 'if($flux["outil"]=="boites_privees") include_spip("cout_define");',
504));
505
506add_variables( array(
507        'nom' => 'max_auteurs_page',
508        'format' => _format_NOMBRE,
509        'defaut' => 30,
510        'code:%s' => "@define('MAX_AUTEURS_PAR_PAGE', %s);\n",
511), array(
512        'nom' => 'auteurs_0',   'check' => 'info_administrateurs',      'defaut' => 1,  'code:%s' => "'0minirezo',",
513), array(
514        'nom' => 'auteurs_1',   'check' => 'info_redacteurs',   'defaut' => 1,  'code:%s' => "'1comite',",
515), array(
516        'nom' => 'auteurs_5',   'check' => 'info_statut_site_4',        'defaut' => 1,  'code:%s' => "'5poubelle',",
517), array(
518        'nom' => 'auteurs_6',   'check' => 'info_visiteurs',    'defaut' => 0,  'code:%s' => "'6forum',",
519), array(
520        'nom' => 'auteurs_n',   'check' => 'couteauprive:nouveaux',     'defaut' => 0,  'code:%s' => "'nouveau',",
521), array(
522        'nom' => 'auteurs_tout_voir',
523        'format' => _format_NOMBRE,
524        'radio' => array(1 => 'couteauprive:statuts_tous', 0 => 'couteauprive:statuts_spip'),
525        'radio/ligne' => 1,
526        'defaut' => 0,
527        'label' => '@_CS_CHOIX@',
528//      'code:!%s' => "@define('AUTEURS_DEFAUT', join(\$temp_auteurs,','));",
529        'code:!%s' => "if(_request('exec')=='auteurs' && !_request('statut')) \$_GET['statut'] = join(\$temp_auteurs,',');",
530        'code:%s' => "if(_request('exec')=='auteurs' && !_request('statut')) \$_GET['statut'] = '!foo';",
531));
532add_outil( array(
533        'id' => 'auteurs',
534        'code:options' => "%%max_auteurs_page%%\$temp_auteurs=array(%%auteurs_0%%%%auteurs_1%%%%auteurs_5%%%%auteurs_6%%%%auteurs_n%%); %%auteurs_tout_voir%% unset(\$temp_auteurs);",
535        'categorie' => 'interface',
536        'version-min' => '1.9300',
537//      'pipeline:affiche_milieu' => 'auteurs_affiche_milieu',
538));
539
540//-----------------------------------------------------------------------------//
541//                               fonctions                                     //
542//-----------------------------------------------------------------------------//
543
544add_outil( array(
545        'id' => 'verstexte',
546        'auteur' => 'C&eacute;dric MORIN',
547        'categorie' => 'spip',
548));
549
550add_outil( array(
551        'id' => 'orientation',
552        'auteur'         => 'Pierre Andrews (Mortimer) &amp; IZO',
553        'categorie' => 'spip',
554));
555
556add_variable( array(
557        'nom' => 'balise_decoupe',
558        'format' => _format_NOMBRE,
559        'radio' => array(1 => 'item_oui', 0 => 'item_non'),
560        'defaut' => 0,
561        'code:%s' => "define('_decoupe_BALISE', %s);\n",
562));
563add_outil( array(
564        'id' => 'decoupe',
565        'contrib'       => 2135,
566        // Le separateur <span class='csfoo xxxx'></span> est supprime en fin de calcul de page
567        'code:options' => "%%balise_decoupe%%define('_onglets_FIN', '<span class=\'csfoo ongl\'></span>');\n@define('_decoupe_SEPARATEUR', '++++');
568if(!defined('_SPIP19300') && isset(\$_GET['var_recherche'])) {
569        include_spip('inc/headers');
570        redirige_par_entete(str_replace('var_recherche=', 'decoupe_recherche=', \$GLOBALS['REQUEST_URI']));
571}",
572        'code:css' => "div.pagination {display:block; text-align:center; }
573div.pagination img { border:0pt none; margin:0pt; padding:0pt; }
574span.cs_pagination_off {color: lightgrey; font-weight: bold; text-decoration: underline;} ",
575        // construction des onglets
576        'code:jq_init' => "onglets_init.apply(this);",
577        // pour les balises #TEXTE : $table_des_traitements['TEXTE'] = 'cs_decoupe(propre(%s))';
578        // pour les articles, breves et rubriques : $table_des_traitements['TEXTE']['articles'] = 'cs_decoupe(propre(%s))';
579        'traitement:TEXTE:post_propre,
580         traitement:TEXTE/articles:post_propre,
581         traitement:TEXTE/breves:post_propre,
582         traitement:TEXTE/rubriques:post_propre' => 'cs_decoupe',
583        // pour les balises #TEXTE : $table_des_traitements['TEXTE'] = 'propre(cs_onglets(%s))';
584        // pour les articles, breves et rubriques : $table_des_traitements['TEXTE']['articles'] = 'propre(cs_onglets(%s))';
585        'traitement:TEXTE:pre_propre,
586         traitement:TEXTE/articles:pre_propre,
587         traitement:TEXTE/breves:pre_propre,
588         traitement:TEXTE/rubriques:pre_propre' => 'cs_onglets',
589        'categorie' => 'typo-racc',
590        'pipeline:nettoyer_raccourcis_typo' => 'decoupe_nettoyer_raccourcis',
591        'pipeline:porte_plume_cs_pre_charger' => 'decoupe_CS_pre_charger',
592        'pipeline:porte_plume_lien_classe_vers_icone' => 'decoupe_PP_icones',
593));
594
595// couplage avec l'outil 'decoupe', donc 'sommaire' doit etre place juste apres :
596// il faut inserer le sommaire dans l'article et ensuite seulement choisir la page
597add_variables( array(
598        'nom' => 'lgr_sommaire',
599        'format' => _format_NOMBRE,
600        'defaut' => 30,
601        'code:%s>=9 && %s<=99' => "define('_sommaire_NB_CARACTERES', %s);\n",
602), array(
603        'nom' => 'auto_sommaire',
604        'format' => _format_NOMBRE,
605        'radio' => array(1 => 'item_oui', 0 => 'item_non'),
606        'defaut' => 1,
607        'code:%s' => "define('_sommaire_AUTOMATIQUE', %s);\n",
608), array(
609        'nom' => 'balise_sommaire',
610        'format' => _format_NOMBRE,
611        'radio' => array(1 => 'item_oui', 0 => 'item_non'),
612        'defaut' => 0,
613        'code:%s' => "define('_sommaire_BALISE', %s);",
614));
615include_spip('inc/filtres');
616add_outil( array(
617        'id' => 'sommaire',
618        'contrib'       => 2378,
619        // Le separateur <span class='csfoo xxxx'></span> est supprime en fin de calcul de page
620        'code:options' => "define('_sommaire_REM', '<span class=\'csfoo somm\'></span>');\ndefine('_CS_SANS_SOMMAIRE', '[!sommaire]');\ndefine('_CS_AVEC_SOMMAIRE', '[sommaire]');\n%%lgr_sommaire%%%%auto_sommaire%%%%balise_sommaire%%",
621        'code:jq' => 'if(jQuery("div.cs_sommaire").length) {
622                // s\'il y a un sommaire, on cache la navigation haute sur les pages
623                jQuery("div.decoupe_haut").css("display", "none");
624                // utilisation des cookies pour conserver l\'etat du sommaire si on quitte la page
625                jQuery.getScript(cs_CookiePlugin, cs_sommaire_cookie);
626        }',
627        'code:jq_init' => 'cs_sommaire_init.apply(this);',
628        // inserer : $table_des_traitements['TEXTE']['articles']= 'sommaire_d_article(propre(%s))';
629        // idem pour les breves et les rubriques
630        'traitement:TEXTE/articles:post_propre,
631         traitement:TEXTE/breves:post_propre,
632         traitement:TEXTE/rubriques:post_propre' => 'sommaire_d_article',
633        'traitement:CS_SOMMAIRE:post_propre' => 'sommaire_d_article_balise',
634        'categorie' => 'typo-corr',
635        'pipeline:nettoyer_raccourcis_typo' => 'sommaire_nettoyer_raccourcis',
636));
637
638// intertitres typo, outil compatible avec 'sommaire' :
639add_variables( array(
640        'nom' => 'i_align',
641        'radio' => array('left' => 'left', 'right' => 'right', 'center' => 'center'),
642        'defaut' => "'left'",
643), array(
644        'nom' => 'i_padding',
645        'format' => _format_NOMBRE,
646        'defaut' => 0,
647), array(
648        'nom' => 'i_hauteur',
649        'format' => _format_NOMBRE,
650        'defaut' => 0,
651), array(
652        'nom' => 'i_largeur',
653        'format' => _format_NOMBRE,
654        'defaut' => 600,
655), array(
656        'nom' => 'i_taille',
657        'format' => _format_NOMBRE,
658        'defaut' => 16,
659), array(
660        'nom' => 'i_couleur',
661        'defaut' => "'black'",
662), array(
663        'nom' => 'i_police',
664        'defaut' => "'dustismo.ttf'",
665));
666add_outil( array(
667        'id' => 'titres_typo',
668        'categorie'   => 'typo-corr',
669        'code:options' => 'define("_titres_typo_ARG", "couleur=%%i_couleur%%,taille=%%i_taille%%,police=%%i_police%%,largeur=%%i_largeur%%,hauteur_ligne=%%i_hauteur%%,padding=%%i_padding%%,align=%%i_align%%");',
670        'pipeline:pre_typo'   => 'titres_typo_pre_typo',
671));
672
673//-----------------------------------------------------------------------------//
674//                               PUBLIC                                        //
675//-----------------------------------------------------------------------------//
676
677// TODO : gestion du jQuery dans la fonction a revoir ?
678add_outil( array(
679        'id' => 'desactiver_flash',
680        'auteur'         => 'C&eacute;dric MORIN',
681        'categorie'      => 'public',
682        'jquery'        => 'oui',
683        // fonction InhibeFlash_init() codee dans desactiver_flash.js : executee lors du chargement de la page et a chaque hit ajax
684        'code:jq_init' => 'InhibeFlash_init.apply(this);',
685));
686
687add_variables( array(
688        'nom' => 'radio_target_blank3',
689        'format' => _format_NOMBRE,
690        'radio' => array(1 => 'item_oui', 0 => 'item_non'),
691        'defaut' => 0,
692        'code' => '$GLOBALS["tweak_target_blank"]=%s;',
693), array(
694        'nom' => 'url_glossaire_externe2',
695        'format' => _format_CHAINE,
696        'defaut' => '""',
697        'code:strlen(%s)' => '$GLOBALS["url_glossaire_externe"]=%s;',
698), array(
699        'nom' => 'enveloppe_mails',
700        'format' => _format_NOMBRE,
701        'radio' => array(1 => 'item_oui', 0 => 'item_non', -1 => 'couteauprive:par_defaut'),
702        'defaut' => -1,
703        // Code pour le CSS
704        'code:%s>0' => 'a.spip_mail:before{content:"\002709" !important;}',
705        'code:%s===0' => 'a.spip_mail:before{content:"" !important;}',
706));
707add_outil( array(
708        'id' => 'SPIP_liens',
709        'categorie' => 'public',
710        'contrib'       => 2443,
711        'jquery'        => 'oui',
712        'description' => '<:SPIP_liens::>'.(defined('_SPIP19300')?'<:SPIP_liens:1:>':''),
713        'code:options' => "%%radio_target_blank3%%\n%%url_glossaire_externe2%%",
714        'code:jq_init' => 'if(%%radio_target_blank3%%) { if(!cs_prive) jQuery("a.spip_out,a.spip_url,a.spip_glossaire",this).attr("target", "_blank"); }',
715        'code:css' => defined('_SPIP19300')?'[[%enveloppe_mails%]]':NULL,
716));
717
718//-----------------------------------------------------------------------------//
719//                               NOISETTES                                     //
720//-----------------------------------------------------------------------------//
721
722add_outil( array(
723        'id' => 'visiteurs_connectes',
724        'auteur' => "Phil d'apr&egrave;s spip-contrib",
725        'categorie' => 'public',
726        'code:options' => "define('_VISITEURS_CONNECTES',1);
727function cs_compter_visiteurs(){ return count(preg_files(_DIR_TMP.'visites/','.')); }
728function action_visiteurs_connectes(){ echo cs_compter_visiteurs(); return true; }",
729        'version-min' => '1.9200', // pour la balise #ARRAY
730        //      une mise a jour toutes les 120 sec ?
731/*      'code:js' => 'function Timer_visiteurs_connectes(){
732                jQuery("span.cs_nb_visiteurs").load("spip.php?action=visiteurs_connectes");
733                setTimeout("Timer_visiteurs_connectes()",120000);                                       
734}',
735        'code:jq' => ' if(jQuery("span.cs_nb_visiteurs").length) Timer_visiteurs_connectes(); ',
736        'jquery' => 'oui',*/
737));
738
739//-----------------------------------------------------------------------------//
740//                               TYPO                                          //
741//-----------------------------------------------------------------------------//
742
743add_outil( array(
744        'id' => 'toutmulti',
745        'categorie'      => 'typo-racc',
746        'pipeline:pre_typo' => 'ToutMulti_pre_typo',
747));
748
749add_variable( array(    // variable utilisee par 'pipelinecode:insert_head'
750        'nom' => 'puceSPIP',
751        'check' => 'couteauprive:puceSPIP',
752        'defaut' => 0,
753        'label' => '@_CS_CHOIX@',
754));
755add_outil( array(
756        'id' => 'pucesli',
757        'auteur'         => "J&eacute;r&ocirc;me Combaz pour l'id&eacute;e originale",
758        'categorie'      => 'typo-corr',
759        'pipelinecode:pre_typo' => 'if(strpos($flux, "-")!==false OR strpos($flux, "*")!==false) $flux = cs_echappe_balises("", "pucesli_remplace", $flux);',
760        'code:options' => 'function pucesli_remplace($texte) {
761        if(%%puceSPIP%%) {$texte = preg_replace(\'/^[*]\s*/m\', \'- \', $texte);}
762        return preg_replace(\'/^-\s*(?![-*#])/m\', \'-* \', $texte);
763}
764if(%%puceSPIP%%) {function pucesli_raccourcis() {return _T(\'couteauprive:puceSPIP_aide\');}}',
765));
766
767add_outil( array(
768    'id' => 'citations_bb',
769    'auteur'    => 'Bertrand Marne, Romy T&ecirc;tue',
770    'categorie' => 'typo-corr',
771        'code:css'      => '/* fr */
772        q:lang(fr):before { content: "\00AB\A0"; }
773        q:lang(fr):after { content: "\A0\00BB"; }
774        q:lang(fr) q:before { content: "\201C"; }
775        q:lang(fr) q:after { content: "\201D"; }
776        q:lang(fr) q q:before { content: "\2018"; }
777        q:lang(fr) q q:after { content: "\2019"; }
778        /* IE */
779        * html q { font-style: italic; }
780        *+html q { font-style: italic; }', 
781    'pipelinecode:pre_propre' => 'if(strpos($flux, "<qu")!==false) $flux=cs_echappe_balises("", "citations_bb_rempl", $flux);',
782        // Remplacer <quote> par <q> quand il n'y a pas de retour a la ligne (3 niveaux, preg sans l'option s)
783    'code:options' => 'function citations_bb_rempl($texte){
784        $texte = preg_replace($a="/<quote>(.*?)<\/quote>/", $b="<q>\$1</q>", $texte);
785        if(strpos($texte, "<qu")!==false) {
786                $texte = preg_replace($a, $b, $texte);
787                if(strpos($texte, "<qu")!==false) $texte = preg_replace($a, $b, $texte);
788        }
789        return $texte;
790}',
791)); 
792
793add_variable( array(
794        'nom' => 'decoration_styles',
795        'format' => _format_CHAINE,
796        'lignes' => 8,
797        'defaut' => '"span.sc = font-variant:small-caps;
798span.souligne = text-decoration:underline;
799span.barre = text-decoration:line-through;
800span.dessus = text-decoration:overline;
801span.clignote = text-decoration:blink;
802span.surfluo = background-color:#ffff00; padding:0px 2px;
803span.surgris = background-color:#EAEAEC; padding:0px 2px;
804fluo = surfluo"',
805        'code' => "define('_decoration_BALISES', %s);",
806));
807add_outil( array(
808        'id' => 'decoration',
809        'auteur'         => 'izo@aucuneid.net, Pat',
810        'contrib'       => 2427,
811        'categorie'      => 'typo-racc',
812        'code:options' => "%%decoration_styles%%",
813        'pipeline:pre_typo' => 'decoration_pre_typo',
814        'pipeline:bt_toolbox' => 'decoration_BarreTypo',
815        'pipeline:porte_plume_barre_pre_charger' => 'decoration_PP_pre_charger',
816        'pipeline:porte_plume_lien_classe_vers_icone' => 'decoration_PP_icones',
817));
818
819add_variables( array(
820        'nom' => 'couleurs_fonds',
821        'format' => _format_NOMBRE,
822        'radio' => array(1 => 'item_oui', 0 => 'item_non' ),
823        'defaut' => 1,
824        'code' => "define('_COULEURS_FONDS', %s);\n",
825), array(
826        'nom' => 'set_couleurs',
827        'format' => _format_NOMBRE,
828        'radio' => array(0 => 'couteauprive:toutes_couleurs', 1 => 'couteauprive:certaines_couleurs'),
829        'radio/ligne' => 1,
830        'defaut' => 0,
831        'code' => "define('_COULEURS_SET', %s);\n",
832), array(
833        'nom' => 'couleurs_perso',
834        'format' => _format_CHAINE,
835        'lignes' => 3,
836        'defaut' => '"gris, rouge"',
837        'code' => "define('_COULEURS_PERSO', %s);",
838));
839add_outil( array(
840        'id' => 'couleurs',
841        'auteur'         => 'Aur&eacute;lien PIERARD (id&eacute;e originale), Pat',
842        'categorie'      => 'typo-racc',
843        'contrib'       => 2427,
844        'pipeline:pre_typo' => 'couleurs_pre_typo',
845        'pipeline:nettoyer_raccourcis_typo' => 'couleurs_nettoyer_raccourcis',
846        'pipeline:bt_toolbox' => 'couleurs_BarreTypo',
847        'pipeline:porte_plume_barre_pre_charger' => 'couleurs_PP_pre_charger',
848        'pipeline:porte_plume_lien_classe_vers_icone' => 'couleurs_PP_icones',
849        'pipeline:pre_description_outil' => 'couleurs_pre_description_outil',
850        'code:options' => "%%couleurs_fonds%%%%set_couleurs%%%%couleurs_perso%%",
851        'code:fonctions' => "// aide le Couteau Suisse a calculer la balise #INTRODUCTION
852include_spip('outils/couleurs');
853\$GLOBALS['cs_introduire'][] = 'couleurs_nettoyer_raccourcis';
854",
855));
856
857// outil essentiellement français. D'autres langues peuvent etre ajoutees dans outils/typo_exposants.php
858add_variable( array(
859        'nom' => 'expo_bofbof',
860        'format' => _format_NOMBRE,
861        'radio' => array(1 => 'item_oui', 0 => 'item_non' ),
862        'defaut' => 0,
863        'code:%s' => "define('_CS_EXPO_BOFBOF', %s);",
864));
865add_outil( array(
866        'id' => 'typo_exposants',
867        'auteur'         => 'Vincent Ramos, Pat',
868        'categorie'      => 'typo-corr',
869        'contrib'       => 1564,
870        'code:options' => '%%expo_bofbof%%',
871        'pipeline:post_typo' => 'typo_exposants',
872        'code:css' => 'sup.typo_exposants { font-size:75%; font-variant:normal; vertical-align:super; }',
873));
874
875add_outil( array(
876        'id' => 'guillemets',
877        'auteur'         => 'Vincent Ramos',
878        'categorie'      => 'typo-corr',
879        'pipeline:post_typo' => 'typo_guillemets',
880));
881
882add_variables( array(
883        'nom' => 'liens_interrogation',
884        'format' => _format_NOMBRE,
885        'radio' => array(1 => 'item_oui', 0 => 'item_non'),
886        'defaut' => 1,
887        'code:%s' => "\$GLOBALS['liens_interrogation']=true;\n",
888), array(
889        'nom' => 'liens_orphelins',
890        'format' => _format_NOMBRE,
891        'radio' => array(-1 => 'item_non', 0 => 'couteauprive:basique', 1 => 'couteauprive:etendu', -2 => 'couteauprive:par_defaut'),
892        'defaut' => 0,
893        'code' => '$GLOBALS["liens_orphelins"]=%s;',
894                // empeche SPIP de convertir les URLs orphelines (URLs brutes)
895        'code:%s<>-2' => defined('_SPIP19300')?"\n\$GLOBALS['spip_pipeline']['pre_liens']=str_replace('|traiter_raccourci_liens','',\$GLOBALS['spip_pipeline']['pre_liens']);
896@define('_EXTRAIRE_LIENS',',^\$,');":'',
897));
898// attention : liens_orphelins doit etre place avant mailcrypt ou liens_en_clair
899add_outil( array(
900        'id' => 'liens_orphelins',
901        'categorie'      => 'typo-corr',
902        'contrib'       => 2443,
903        'code:options' => '%%liens_interrogation%%',
904        'code:spip_options' => '%%liens_orphelins%%',
905        'pipeline:pre_propre' => 'liens_orphelins_pipeline',
906        'traitement:EMAIL' => 'expanser_liens(liens_orphelins',
907        'pipeline:pre_typo'   => 'interro_pre_typo',
908        'pipeline:post_propre'   => 'interro_post_propre',
909));
910
911add_outil( array(
912        'id' => 'filets_sep',
913        'auteur'         => 'FredoMkb',
914        'categorie'      => 'typo-racc',
915        'contrib'       => 1563,
916        'pipeline:pre_typo' => 'filets_sep',
917        'pipeline:bt_toolbox' => 'filets_sep_BarreTypo',
918));
919
920add_outil( array(
921        'id' => 'smileys',
922        'auteur'         => "Sylvain, Pat",
923        'categorie'      => 'typo-corr',
924        'contrib'       => 1561,
925        'code:css' => "table.cs_smileys td {text-align:center; font-size:90%; font-weight:bold;}",
926        'pipeline:pre_typo' => 'cs_smileys_pre_typo',
927        'pipeline:bt_toolbox' => 'cs_smileys_BarreTypo',
928        'pipeline:porte_plume_barre_pre_charger' => 'cs_smileys_PP_pre_charger',
929        'pipeline:porte_plume_lien_classe_vers_icone' => 'cs_smileys_PP_icones',
930));
931
932add_outil( array(
933        'id' => 'chatons',
934        'auteur'         => "BoOz, Pat",
935        'categorie'      => 'typo-racc',
936        'pipeline:pre_typo' => 'chatons_pre_typo',
937        'pipeline:bt_toolbox' => 'chatons_BarreTypo',
938        'pipeline:porte_plume_barre_pre_charger' => 'chatons_PP_pre_charger',
939        'pipeline:porte_plume_lien_classe_vers_icone' => 'chatons_PP_icones',
940));
941
942add_variables( array(
943        'nom' => 'glossaire_groupes',
944        'format' => _format_CHAINE,
945        'defaut' => "'Glossaire'",
946        'code' => "\$GLOBALS['glossaire_groupes']=%s;\n",
947), array(
948        'nom' => 'glossaire_limite',
949        'format' => _format_NOMBRE,
950        'defaut' => 0,
951        'code:%s>0' => "define('_GLOSSAIRE_LIMITE', %s);\n",
952), array(
953        'nom' => 'glossaire_js',
954        'radio' => array(0 => 'couteauprive:glossaire_css', 1 => 'couteauprive:glossaire_js'),
955        'format' => _format_NOMBRE,
956        'defaut' => 1,
957        'code:%s' => "define('_GLOSSAIRE_JS', %s);",
958));
959add_outil( array(
960        'id' => 'glossaire',
961        'categorie'     => 'typo-corr',
962        'contrib'       => 2206,
963        'code:options' => "@define('_CS_SANS_GLOSSAIRE', '[!glossaire]');\n%%glossaire_limite%%%%glossaire_groupes%%%%glossaire_js%%",
964//      'traitement:LIEU:post_propre' => 'cs_glossaire',
965        // sans oublier les articles, les breves et les rubriques :
966        // SPIP ne considere pas que la definition precedente est un tronc commun...
967        // meme traitement au chapo des articles...
968        'traitement:TEXTE:post_propre,
969         traitement:TEXTE/articles:post_propre,
970         traitement:TEXTE/breves:post_propre,
971         traitement:TEXTE/rubriques:post_propre,
972         traitement:CHAPO:post_propre' => 'cs_glossaire',
973        // Precaution pour les articles virtuels
974        'traitement:CHAPO:pre_propre' => 'nettoyer_chapo',
975        // Mise en forme des titres
976        'traitement:TITRE/mots:post_typo' => 'cs_glossaire_titres',
977        'code:css' =>  'a.cs_glossaire:after {display:none;}',
978        // fonction glossaire_init() codee dans glossaire.js : executee lors du chargement de la page et a chaque hit ajax
979        'code:jq_init' => 'glossaire_init.apply(this);',
980        'pipelinecode:nettoyer_raccourcis_typo' => '$flux=str_replace(_CS_SANS_GLOSSAIRE, "", $flux);',
981));
982
983// attention : mailcrypt doit etre place apres liens_orphelins
984add_outil( array(
985        'id' => 'mailcrypt',
986        'categorie'     => 'typo-corr',
987        'auteur'        => "Alexis Roussel, Paolo, Pat",
988        'contrib'       => 2443,
989        'jquery'        => 'oui',
990        'pipelinecode:post_propre' => "if(strpos(\$flux, '@')!==false) \$flux=cs_echappe_balises('', 'mailcrypt', \$flux);",
991        'code:js' => "function lancerlien(a,b){ x='ma'+'ilto'+':'+a+'@'+b; return x; }",
992        // jQuery pour remplacer l'arobase image par l'arobase texte
993        // ... puis arranger un peu le title qui a ete protege
994        'code:jq_init' => "jQuery('span.spancrypt', this).attr('class','cryptOK').html('&#6'+'4;');
995        jQuery(\"a[\"+cs_sel_jQuery+\"title*='..']\", this).each(function () {
996                this.title = this.title.replace(/\.\..t\.\./,'[@]');
997        });",
998        'code:css' => 'span.spancrypt {background:transparent url(' . url_absolue(find_in_path('img/mailcrypt/leure.gif'))
999                . ') no-repeat scroll 0.1em center; padding-left:12px; text-decoration:none;}',
1000        'traitement:EMAIL' => 'mailcrypt',
1001)); 
1002
1003
1004// attention : liens_en_clair doit etre place apres tous les outils traitant des liens
1005add_outil( array(
1006        'id' => 'liens_en_clair',
1007        'categorie'      => 'spip',
1008        'contrib'       => 2443,
1009        'pipeline:post_propre' => 'liens_en_clair_post_propre',
1010        'code:css' => 'a.spip_out:after {display:none;}',
1011)); 
1012
1013add_variables( array(   // variable utilisee par 'pipelinecode:insert_head'
1014        'nom' => 'scrollTo',
1015        'check' => 'couteauprive:jq_scrollTo',
1016        'defaut' => 1,
1017        'format' => _format_NOMBRE,
1018), array(       // variable utilisee par 'pipelinecode:insert_head'
1019        'nom' => 'LocalScroll',
1020        'check' => 'couteauprive:jq_localScroll',
1021        'defaut' => 1,
1022        'format' => _format_NOMBRE,
1023));
1024add_outil( array(
1025        'id' => 'soft_scroller',
1026        'categorie'     => 'public',
1027        'jquery'        => 'oui',
1028        'pipelinecode:insert_head' => 'if(%%scrollTo%%) {$flux.=\'<script src="'.url_absolue(find_in_path("outils/jquery.scrollto.js")).'" type="text/javascript"></script>\'."\n";}
1029if(%%LocalScroll%%) {$flux.=\'<script src="'.url_absolue(find_in_path("outils/jquery.localscroll.js")).'" type="text/javascript"></script>\'."\n";}',
1030        'code:js' => 'function soft_scroller_init() { if(typeof jQuery.localScroll=="function") jQuery.localScroll({hash: true}); }',
1031        'code:jq_init' => 'soft_scroller_init.apply(this);',
1032));
1033
1034// http://www.malsup.com/jquery/corner/
1035add_variables( array(
1036        'nom' => 'jcorner_classes',
1037        'format' => _format_CHAINE,
1038        'lignes' => 10,
1039        'defaut' => defined('_SPIP19300')?'"// coins ronds aux formulaires
1040.formulaire_inscription, .formulaire_forum, .formulaire_ecrire_auteur
1041
1042// colorisation de la dist de SPIP 2.0 en ajoutant un parent
1043\".chapo, .texte\" = wrap(\'<div class=\"jc_parent\" style=\"padding:4px; background-color:#ffe0c0; margin:4px 0;\"></div>\')
1044\".menu\" = wrap(\'<div class=\"jc_parent\" style=\"padding:4px; background-color:lightBlue; margin:4px 0;\"></div>\')
1045
1046// coins ronds aux parents !
1047.jc_parent"'
1048                :'" // coins ronds pour les menus de navigation
1049.rubriques, .breves, .syndic, .forums, .divers
1050
1051 // en couleurs sur l\'accueil
1052.liste-articles li .texte = css(\'background-color\', \'#E0F0F0\') .corner()
1053
1054// colorisation de la dist de SPIP 1.92 en ajoutant un parent
1055\"#contenu .texte\" = wrap(\'<div class=\"jc_parent\" style=\"padding:4px; background-color:#E0F0F0; margin:4px 0;\"></div>\')
1056
1057// coins ronds aux parents !
1058.jc_parent"',
1059        'code' => "define('_jcorner_CLASSES', %s);",
1060), array(       // variable utilisee par 'pipelinecode:insert_head'
1061        'nom' => 'jcorner_plugin',
1062        'check' => 'couteauprive:jcorner_plugin',
1063        'defaut' => 1,
1064        'format' => _format_NOMBRE,
1065));
1066add_outil( array(
1067        'id' => 'jcorner',
1068        'categorie'     => 'public',
1069        'jquery'        => 'oui',
1070        'contrib'       => 2987,
1071        'code:options' => "%%jcorner_classes%%",
1072        'pipelinecode:insert_head' => 'if(%%jcorner_plugin%%) {$flux.=\'<script src="'.url_absolue(find_in_path("outils/jquery.corner.js")).'" type="text/javascript"></script>\'."\n";}',
1073        'pipeline:insert_head' => 'jcorner_insert_head',
1074        // jcorner_init() n'est disponible qu'en partie publique
1075        'code:jq_init' => 'if(typeof jcorner_init=="function") jcorner_init.apply(this);',
1076));
1077
1078add_variables( array(
1079        'nom' => 'insertions',
1080        'format' => _format_CHAINE,
1081        'lignes' => 8,
1082        'defaut' => '"coeur = c&oelig;ur
1083manoeuvre = man&oelig;uvre
1084(oeuvre(s?|r?)) = &oelig;uvre$1
1085(O(E|e)uvre(s?|r?)\b/ = &OElig;uvre$2
1086((h|H)uits) = $1uit
1087/\b(c|C|m.c|M.c|rec|Rec)onn?aiss?a(nce|nces|nt|nts|nte|ntes|ble)\b/ = $1onnaissa$2
1088/\boeuf(s?)\b/ = &oelig;uf$1
1089"',
1090        'code' => "define('_insertions_LISTE', %s);",
1091));
1092add_outil( array(
1093        'id' => 'insertions',
1094        'categorie'      => 'typo-corr',
1095        'code:options' => "%%insertions%%",
1096        'traitement:TEXTE:pre_propre' => 'insertions_pre_propre',
1097        // sans oublier les articles, les breves et les rubriques :
1098        // SPIP ne considere pas que la definition precedente est un tronc commun...
1099        'traitement:TEXTE/articles:pre_propre,
1100         traitement:TEXTE/breves:pre_propre,
1101         traitement:TEXTE/rubriques:pre_propre' => 'insertions_pre_propre',
1102));
1103
1104// le plugin moderation moderee dans le couteau suisse
1105include_spip('inc/charsets');
1106add_outil( array(
1107        'id' => 'moderation_moderee',
1108        'auteur' => 'Yohann(potter64)',
1109        'categorie' => 'admin',
1110        'version-min' => '1.9300',
1111        'code:options' => '%%moderation_admin%%%%moderation_redac%%%%moderation_visit%%',
1112        'code:jq_init' => 'if(window.location.search.match(/page=forum/)!=null) jQuery("legend:contains(\''.addslashes(unicode2charset(html2unicode(_T('bouton_radio_modere_priori')))).'\')", this).next().html(\''.addslashes(_T('couteauprive:moderation_message')).'\');',
1113        'pipeline:pre_edition' => 'moderation_vip',
1114));
1115add_variables( array(
1116        'nom' => 'moderation_admin',
1117        'check' => 'couteauprive:moderation_admins',
1118        'defaut' => 1,
1119        'code:%s' => "define('_MOD_MOD_0minirezo',%s);",
1120), array(
1121        'nom' => 'moderation_redac',
1122        'check' => 'couteauprive:moderation_redacs',
1123        'defaut' => 0,
1124        'code:%s' => "define('_MOD_MOD_1comite',%s);",
1125), array(
1126        'nom' => 'moderation_visit',
1127        'check' => 'couteauprive:moderation_visits',
1128        'defaut' => 0,
1129        'code:%s' => "define('_MOD_MOD_6forum',%s);",
1130));
1131
1132add_outil( array(
1133        'id' => 'titre_parent',
1134        'categorie' => 'spip',
1135        'contrib' => 2900,
1136        'code:options' => '%%titres_etendus%%',
1137));
1138add_variable( array(
1139        'nom' => 'titres_etendus',
1140        'check' => 'couteauprive:titres_etendus',
1141        'format' => _format_NOMBRE,
1142        'radio' => array(1 => 'item_oui', 0 => 'item_non'),
1143        'defaut' => 0,
1144        'code:%s' => "define('_PARENTS_ETENDUS',%s);",
1145));
1146
1147add_outil( array(
1148        'id' => 'corbeille',
1149        'categorie' => 'admin',
1150        'version-min' => '1.9300',
1151        'code:options' => "%%arret_optimisation%%",
1152));
1153add_variable( array(
1154        'nom' => 'arret_optimisation',
1155        'format' => _format_NOMBRE,
1156        'radio' => array(1 => 'item_oui', 0 => 'item_non'),
1157        'defaut' => 0,
1158        'code:%s' => "define('_CORBEILLE_SANS_OPTIM', 1);
1159if(!function_exists('genie_optimiser')) {
1160        // surcharge de la fonction d'optimisation de SPIP (inc/optimiser.php)
1161        function genie_optimiser(\$t='foo'){ include_spip('optimiser','genie'); optimiser_base_une_table(); return -(mktime(2,0,0) + rand(0, 3600*4)); }\n}",
1162));
1163
1164add_outil( array(
1165        'id' => 'trousse_balises',
1166        'categorie' => 'spip',
1167        'contrib' => 3005,
1168));
1169
1170add_outil( array(
1171        'id' => 'horloge',
1172        'categorie' => 'spip',
1173        'contrib' => 2998,
1174        'pipelinecode:insert_head,
1175         pipelinecode:header_prive' => '$flux.=\'<script type="text/javascript" src="\'.generer_url_public(\'cout_dates.js\',\'lang=\'.$GLOBALS[\'spip_lang\']).\'"></script>
1176<script type="text/javascript" src="'.url_absolue(find_in_path("outils/jquery.jclock.js")).'"></script>\'."\n";',
1177        'code:jq_init' => 'jclock_init.apply(this);',
1178));
1179
1180add_outil( array(
1181        'id' => 'maj_auto',
1182        'categorie' => 'admin',
1183        'version-min' => '1.9300',
1184        'contrib' => 3223,
1185));
1186
1187// reglage du nombre de case pour le brouteur
1188add_outil( array(
1189        'id' => 'brouteur',
1190        'categorie' => 'interface',
1191        'code:options' => "%%rubrique_brouteur%%"
1192));
1193add_variable( array(
1194        'nom' => 'rubrique_brouteur',
1195        'format' => _format_NOMBRE,
1196        'defaut' => 20,
1197        'code:%s' => "define('_SPIP_SELECT_RUBRIQUES', %s);"
1198));
1199
1200// Recuperer tous les outils (et leurs variables) de la forme outils/toto_config.xml
1201foreach (find_all_in_path('outils/', '\w+_config\.xml$') as $f) {
1202        add_outils_xml($f);
1203}
1204
1205// Recuperer tous les outils de la forme outils/monoutil_config.php
1206// y compris les lames perso dont on met le nom en italiques
1207foreach (find_all_in_path('outils/', '\w+_config\.php$') as $f) 
1208if(preg_match(',^([^.]*)_config$,', basename($f, '.php'),$regs)){
1209        include $f;
1210        if(function_exists($cs_temp=$regs[1].'_add_outil')) {
1211                $cs_temp = $cs_temp();
1212                $cs_temp['id'] = $regs[1];
1213                if(strlen($cs_temp['nom']) && !preg_match(',couteau_suisse/outils/,', $f))
1214                        $cs_temp['nom'] = "<i>$cs_temp[nom]</i>";
1215                add_outil($cs_temp);
1216        }
1217        if(function_exists($cs_temp='add_variable_'.$regs[1])) add_variable($cs_temp());
1218        if(function_exists($cs_temp='add_variables_'.$regs[1])) add_variables($cs_temp());
1219}
1220
1221// Nettoyage
1222unset($cs_temp);
1223
1224// Ajout des outils personnalises sous forme globale
1225if(isset($GLOBALS['mes_outils'])) {
1226        foreach($GLOBALS['mes_outils'] as $id=>$outil) {
1227                $outil['id'] = $id;
1228                if(strlen($outil['nom'])) $outil['nom'] = "<i>$outil[nom]</i>";
1229                add_outil($outil);
1230        }
1231        unset($GLOBALS['mes_outils']);
1232}
1233
1234// Idees d'ajouts :
1235// http://archives.rezo.net/spip-core.mbox/
1236// http://www.spip-contrib.net/Citations
1237// http://www.spip-contrib.net/la-balise-LESMOTS et d'autres balises #MAINTENANT #LESADMINISTRATEURS #LESREDACTEURS #LESVISITEURS
1238// http://www.spip-contrib.net/Ajouter-une-lettrine-aux-articles
1239// http://www.spip-contrib.net/Generation-automatique-de
1240// http://www.spip-contrib.net/Balise-LOGO-ARTICLE-ORITRAD
1241// boutonstexte
1242
1243//global $cs_variables; cs_log($cs_variables, 'cs_variables :');
1244?>
Note: See TracBrowser for help on using the repository browser.