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 #-----------------------------------------------------#
9 if (!defined("_ECRIRE_INC_VERSION")) return;
11 # Fichier de configuration pris en compte par config_outils.php et specialement dedie a la configuration des URLs
12 # ---------------------------------------------------------------------------------------------------------------
14 # TODO : implementer les constantes _url_propres_sep_id, _URLS_ARBO_MIN, etc. !!
16 function outils_type_urls_config_dist() {
18 // Ajout de l'outil 'type_urls'
21 'code:spip_options' => "%%radio_type_urls3%%%%spip_script%%
22 switch(\$GLOBALS['type_urls']) {
23 case 'page':%%terminaison_urls_page%%%%separateur_urls_page%%break;
24 case 'propres':%%url_max_propres%%%%debut_urls_propres%%%%terminaison_urls_propres%%%%marqueurs_urls_propres%%break;
25 case 'propres2':%%url_max_propres2%%%%debut_urls_propres2%%%%marqueurs_urls_propres2%%break;
26 case 'libres':%%url_max_libres%%%%debut_urls_libres%%%%terminaison_urls_libres%%break;
27 case 'arbo':%%url_max_arbo%%%%url_arbo_minuscules%%%%url_arbo_sep_id%%%%terminaison_urls_arbo%%%%urls_arbo_sans_type%%break;
28 case 'propres_qs':%%url_max_propres_qs%%%%terminaison_urls_propres_qs%%%%marqueurs_urls_propres_qs%%break;
29 case 'propres-qs':%%url_max_propres_qs%%%%terminaison_urls_propres_qs%%break;
31 'categorie' => 'admin',
32 // TODO : Dependance du plugin "Urls Etendues" sous SPIP 2.1
33 'description' => '<:type_urls::>'
34 // Tronc commun sous SPIP 2.0
35 .(defined('_SPIP19300')?
'<radio_type_urls3 valeur="propres/propres2/libres/arbo/propres_qs"><:type_urls:1:>[[%urls_avec_id%]][[->%urls_avec_id2%]][[->%urls_id_3_chiffres%]][[->%urls_id_sauf_rubriques%]][[->%urls_id_sauf_liste%]]</radio_type_urls3>':''),
37 ?
'pipelinecode:arbo_creer_chaine_url, pipelinecode:propres_creer_chaine_url'
38 :'pipelinecode:creer_chaine_url'
39 => "\$id = \$flux['objet']['id_objet']; \$ok = true;
40 if(%%urls_id_sauf_rubriques%%) {\$ok = strpos(':%%urls_id_sauf_liste%%:',':'.\$flux['objet']['type'].':')===false;}
41 if(%%urls_id_3_chiffres%%) {\$id = sprintf('%03d', \$id);}
42 if(%%urls_avec_id2%%) {@define('_CS_URL_SEP','-'); if(\$ok) \$flux['data']=\$id._CS_URL_SEP.\$flux['data'];}
43 if(%%urls_avec_id%%) {@define('_CS_URL_SEP',','); if(\$ok) \$flux['data'].=_CS_URL_SEP.\$id;}
44 if(%%urls_minuscules%%) {\$flux['data']=strtolower(\$flux['data']);}",
47 // Ajout des variables utilisees ci-dessus
50 // ici on a besoin de boutons radio : 'page', 'html', 'propres', 'propres2, 'arbo', 'libres', 'standard' et 'propres-qs'
52 'nom' => 'radio_type_urls3',
53 'format' => _format_CHAINE
,
54 'radio' => defined('_SPIP19300')
55 // a partir de SPIP 2.0
56 ?
array('page' => 'couteauprive:url_page',
57 'html' => 'couteauprive:url_html',
58 'propres' => 'couteauprive:url_propres',
59 'propres2' => 'couteauprive:url_propres2',
60 'libres'=> 'couteauprive:url_libres',
61 'arbo'=> 'couteauprive:url_arbo',
62 'standard' => 'couteauprive:url_standard',
63 'propres_qs' => 'couteauprive:url_propres_qs')
65 :array('page' => 'couteauprive:url_page',
66 'html' => 'couteauprive:url_html',
67 'propres' => 'couteauprive:url_propres',
68 'propres2' => 'couteauprive:url_propres2',
69 'standard' => 'couteauprive:url_standard',
70 'propres-qs' => 'couteauprive:url_propres-qs'),
73 'code' => "\$GLOBALS['type_urls']=%s;\n",
76 # Utilise par 'page' (toutes les URLs) et 'propre' 'propre2' 'libres' et 'arbo' pour les objets non reconnus
77 # fonction d'appel dans inc/utils.php : get_spip_script()
80 'nom' => 'spip_script',
81 'format' => _format_CHAINE
,
82 'defaut' => "'spip.php'",
83 'code' => "define('_SPIP_SCRIPT', %s);\n",
86 /////////// define('URLS_PAGE_EXEMPLE', 'spip.php?article12'); /////////////////
89 # on peut indiquer '.html' pour faire joli
90 #define ('_terminaison_urls_page', '');
91 # ci-dessous, ce qu'on veut ou presque (de preference pas de '/')
92 # attention toutefois seuls '' et '=' figurent dans les modes de compatibilite
93 #define ('_separateur_urls_page', '');
94 # on peut indiquer '' si on a installe le .htaccess
95 #define ('_debut_urls_page', get_spip_script('./').'?');
99 'nom' => 'terminaison_urls_page',
100 'format' => _format_CHAINE
,
102 'code:strlen(%s)' => "define('_terminaison_urls_page', %s);",
104 'nom' => 'separateur_urls_page',
105 'format' => _format_CHAINE
,
107 'code:strlen(%s)' => "define('_separateur_urls_page', %s);",
110 /////////// define('URLS_ARBO_EXEMPLE', '/article/Titre'); /////////////////
113 'nom' => 'url_arbo_minuscules',
114 'format' => _format_NOMBRE
,
115 'radio' => array(0 => 'item_oui', 1 => 'item_non'),
117 'code:!%s' => "define('_url_arbo_minuscules', %s);",
119 'nom' => 'urls_arbo_sans_type',
120 'format' => _format_NOMBRE
,
121 'radio' => array(0 => 'item_oui', 1 => 'item_non'),
123 'code:%s' => "\n\$GLOBALS['url_arbo_types']=array('rubrique'=>'','article'=>'','breve'=>'','mot'=>'','auteur'=>'','site'=>'');",
125 'nom' => 'url_arbo_sep_id',
126 'format' => _format_CHAINE
,
128 'code' => "define('_url_arbo_sep_id', %s);",
130 'nom' => 'url_max_arbo',
131 'format' => _format_NOMBRE
,
133 'label' => '<:label:url_max_propres:>',
134 'code' => "define('_URLS_ARBO_MAX', %s);",
136 'nom' => 'terminaison_urls_arbo',
137 'format' => _format_CHAINE
,
138 'defaut' => "'.html'",
139 'label' => '<:label:terminaison_urls_page:>',
140 'code' => "define('_terminaison_urls_arbo', %s);",
143 /////////// define('URLS_PROPRES_EXEMPLE', 'Titre-de-l-article -Rubrique-'); /////////////////
146 'nom' => 'terminaison_urls_propres',
147 'format' => _format_CHAINE
,
149 'label' => '<:label:terminaison_urls_page:>',
150 'code:strlen(%s)' => "define('_terminaison_urls_propres', %s);",
152 'nom' => 'url_max_propres',
153 'format' => _format_NOMBRE
,
155 'code' => "define('_URLS_PROPRES_MAX', %s);",
157 'nom' => 'debut_urls_propres',
158 'format' => _format_CHAINE
,
160 'code:strlen(%s)' => "define('_debut_urls_propres', %s);",
162 'nom' => 'marqueurs_urls_propres',
163 'format' => _format_NOMBRE
,
164 'radio' => array(1 => 'item_oui', 0 => 'item_non'),
166 'code:!%s' => "define('_MARQUEUR_URL', false);"
168 'nom' => 'url_max_propres2',
169 'format' => _format_NOMBRE
,
171 'label' => '<:label:url_max_propres:>',
172 'code' => "define('_URLS_PROPRES_MAX', %s);",
174 'nom' => 'debut_urls_propres2',
175 'format' => _format_CHAINE
,
177 'label' => '<:label:debut_urls_propres:>',
178 'code:strlen(%s)' => "define('_debut_urls_propres', %s);",
180 'nom' => 'marqueurs_urls_propres2',
181 'format' => _format_NOMBRE
,
182 'radio' => array(1 => 'item_oui', 0 => 'item_non'),
184 'label' => '<:label:marqueurs_urls_propres:>',
185 'code:!%s' => "define('_MARQUEUR_URL', false);"
187 'nom' => 'terminaison_urls_libres',
188 'format' => _format_CHAINE
,
190 'label' => '<:label:terminaison_urls_page:>',
191 'code:strlen(%s)' => "define('_terminaison_urls_propres', %s);",
193 'nom' => 'url_max_libres',
194 'format' => _format_NOMBRE
,
196 'label' => '<:label:url_max_propres:>',
197 'code' => "define('_URLS_PROPRES_MAX', %s);",
199 'nom' => 'debut_urls_libres',
200 'format' => _format_CHAINE
,
202 'label' => '<:label:debut_urls_propres:>',
203 'code:strlen(%s)' => "define('_debut_urls_propres', %s);",
205 'nom' => 'terminaison_urls_propres_qs',
206 'format' => _format_CHAINE
,
208 'label' => '<:label:terminaison_urls_page:>',
209 'code:strlen(%s)' => "define('_terminaison_urls_propres', %s);",
211 'nom' => 'url_max_propres_qs',
212 'format' => _format_NOMBRE
,
214 'label' => '<:label:url_max_propres:>',
215 'code' => "define('_URLS_PROPRES_MAX', %s);",
217 'nom' => 'marqueurs_urls_propres_qs',
218 'format' => _format_NOMBRE
,
219 'radio' => array(1 => 'item_oui', 0 => 'item_non'),
221 'label' => '<:label:marqueurs_urls_propres:>',
222 'code:!%s' => "define('_MARQUEUR_URL', false);",
226 'nom' => 'urls_minuscules',
227 'check' => 'couteauprive:urls_minuscules',
228 'label' => '@_CS_CHOIX@',
231 'nom' => 'urls_avec_id',
232 'check' => 'couteauprive:urls_avec_id',
235 'nom' => 'urls_avec_id2',
236 'check' => 'couteauprive:urls_avec_id2',
239 'nom' => 'urls_id_3_chiffres',
240 'check' => 'couteauprive:urls_3_chiffres',
243 'nom' => 'urls_id_sauf_rubriques',
244 'check' => 'couteauprive:urls_id_sauf_rubriques',
247 'nom' => 'urls_id_sauf_liste',
248 'format' => _format_CHAINE
,
249 'defaut' => "'rubrique:auteur'",