Skip to content
Extraits de code Groupes Projets
Valider eaf2dcc1 rédigé par esj's avatar esj
Parcourir les fichiers

Automatiser la détection des jeux d'URLs symboliques (je l'ai écrit dans la...

Automatiser la détection des jeux d'URLs symboliques (je l'ai écrit dans la doc, je croyais c'était fait). Au passage, un argument optionnel dans find_all_in_path pour pouvoir récurser.
parent ae3354b5
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -12,49 +12,38 @@
if (!defined("_ECRIRE_INC_VERSION")) return;
// Choix du type d'url
include_spip('inc/presentation');
include_spip('inc/config');
function configuration_type_urls_dist()
{
global $spip_lang_right;
$res = '';
// Choix du type d'url
if ($GLOBALS['type_urls'] != 'page') // fixe par mes_options
return '';
$types_dispo = array(
'page' => '<em>page</em> &mdash; <tt>spip.php?article12</tt>',
'html' => '<em>html</em> &mdash; <tt>article12.html</tt>',
'arbo' => '<em>arbo</em> &mdash; <tt>/article/Titre</tt>',
'standard' => '<em>standard</em> &mdash; <tt>article.php3?id_article=12</tt>',
'propres' => '<em>propres</em> &mdash; <tt>Titre-de-l-article</tt>, <tt>-Rubrique-</tt>',
'libres' => '<em>libres</em> &mdash; <tt>Titre-de-l-article</tt>, <tt>Rubrique</tt>',
'propres2' => '<em>propres2</em> &mdash; <tt>Titre-de-l-article.html</tt>, <tt>-Rubrique-.html</tt>',
'propres_qs' => '<em>propres_qs</em> &mdash; <tt>?Titre-de-l-article</tt>'
);
$res .= "<p class='verdana2'>"
$dispo = array();
foreach (find_all_in_path('', 'urls/\w+\.php$', array()) as $f) {
$r = basename($f, '.php');
if ($r == 'index') continue;
include $f;
$exemple = 'URLS_' . strtoupper($r) . '_EXEMPLE';
$exemple = defined($exemple) ? constant($exemple) : '?';
$dispo[$r] = "<em>$r</em> &mdash; <tt>" . $exemple . '</tt>';
}
$res = "<p class='verdana2'>"
. _T('texte_type_urls')
. " "
. "</p>"
. "<div class='verdana2'>"
. afficher_choix('type_urls',
$GLOBALS['meta']['type_urls'],
$types_dispo
)
. afficher_choix('type_urls', $GLOBALS['meta']['type_urls'], $dispo)
. "</div>"
. "<p><em>"._T('texte_type_urls_attention', array('htaccess' => '<tt>.htaccess</tt>'))."</em></p>";
. "<p><em>"
. _T('texte_type_urls_attention', array('htaccess' => '<tt>.htaccess</tt>'))
. "</em></p>";
$res = '<br />'.debut_cadre_trait_couleur("", true, "",
_T('titre_type_urls'))
$res = '<br />'.debut_cadre_trait_couleur("", true, "", _T('titre_type_urls'))
. ajax_action_post('configurer', 'type_urls', 'config_fonctions', '', $res)
. fin_cadre_trait_couleur(true);
......
......@@ -692,14 +692,15 @@ function find_in_path ($file, $dirname='', $include=false) {
// http://doc.spip.org/@find_all_in_path
function find_all_in_path($dir,$pattern){
function find_all_in_path($dir,$pattern, $recurs=false){
$liste_fichiers=array();
$maxfiles = 10000;
// Parcourir le chemin
foreach (creer_chemin() as $d)
if (@is_dir($f = $d.$dir)){
$liste = preg_files($d.$dir,$pattern,$maxfiles-count($liste_fichiers),false);
foreach (creer_chemin() as $d) {
$f = $d.$dir;
if (@is_dir($f)){
$liste = preg_files($f,$pattern,$maxfiles-count($liste_fichiers),$recurs);
foreach($liste as $chemin){
$nom = basename($chemin);
// ne prendre que les fichiers pas deja trouves
......@@ -709,7 +710,7 @@ function find_all_in_path($dir,$pattern){
$liste_fichiers[$nom] = $chemin;
}
}
}
return $liste_fichiers;
}
......@@ -766,7 +767,7 @@ function generer_url_entite($id='', $entite='', $args='', $ancre='', $public=NUL
include_spip('inc/lien');
if (!function_exists($f = 'generer_url_' . $entite)) {
if (!function_exists($f .= '_dist')) $f = '';
}
}
if ($f) return $f($id, $args, $ancre);
// On a ete gentil mais la ....
spip_log("generer_url_entite: entite $entite ($f) inconnue $type");
......
......@@ -12,6 +12,7 @@
if (!defined("_ECRIRE_INC_VERSION")) return; // securiser
define('URLS_ARBO_EXEMPLE', '/article/Titre');
// TODO: une interface permettant de verifier qu'on veut effectivment modifier
// une adresse existante
......
......@@ -33,6 +33,8 @@ pouvez l'editer pour ne conserver que la partie concernant les URLS 'html'.
if (!defined("_ECRIRE_INC_VERSION")) return; // securiser
define('URLS_HTML_EXEMPLE', 'article12.html');
// http://doc.spip.org/@_generer_url_html
function _generer_url_html($type, $id, $args='', $ancre='') {
......
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
......@@ -11,14 +10,14 @@
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return; // securiser
/*
Ce jeu d'URLs est une variation de inc-urls-propres mais les urls
de differents types ne sont PAS distinguees par des marqueurs (_,-,+, etc.) ;
*/
if (!defined("_ECRIRE_INC_VERSION")) return; // securiser
define('URLS_LIBRES_EXEMPLE', 'Titre-de-l-article Rubrique');
if (!defined('_MARQUEUR_URL'))
define('_MARQUEUR_URL', false);
......
......@@ -12,6 +12,8 @@
if (!defined("_ECRIRE_INC_VERSION")) return; // securiser
define('URLS_PAGE_EXEMPLE', 'spip.php?article12');
####### modifications possibles dans ecrire/mes_options
# on peut indiquer '.html' pour faire joli
define ('_terminaison_urls_page', '');
......
......@@ -12,6 +12,8 @@
if (!defined("_ECRIRE_INC_VERSION")) return; // securiser
define('URLS_PROPRES_EXEMPLE', 'Titre-de-l-article -Rubrique-');
// TODO: une interface permettant de verifier qu'on veut effectivment modifier
// une adresse existante
define('CONFIRMER_MODIFIER_URL', false);
......
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
......@@ -11,14 +10,14 @@
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return; // securiser
/*
Ce jeu d'URLs est une variation de inc-urls-propres, qui ajoute
le suffixe '.html' aux adresses ;
*/
if (!defined("_ECRIRE_INC_VERSION")) return; // securiser
define('URLS_PROPRES2_EXEMPLE', 'Titre-de-l-article.html -Rubrique-.html');
if (!defined('_terminaison_urls_propres'))
define ('_terminaison_urls_propres', '.html');
......
<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
......@@ -11,9 +10,9 @@
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return; // securiser
/*
Ce jeu d'URLs est une variante de inc-urls-propres, qui ajoute
le prefixe './?' aux adresses, ce qui permet de l'utiliser en
mode "Query-String", sans .htaccess ;
......@@ -23,9 +22,10 @@ mode "Query-String", sans .htaccess ;
Attention : le mode 'propres_qs' est moins fonctionnel que le mode 'propres' ou
'propres2'. Si vous pouvez utiliser le .htaccess, ces deux derniers modes sont
preferables au mode 'propres_qs'.
*/
if (!defined("_ECRIRE_INC_VERSION")) return; // securiser
define('URLS_PROPRES_QS_EXEMPLE', '?Titre-de-l-article');
if (!defined('_terminaison_urls_propres'))
define ('_terminaison_urls_propres', '');
......
......@@ -14,6 +14,9 @@
## type d'URLs obsolete
if (!defined("_ECRIRE_INC_VERSION")) return; // securiser
define('URLS_STANDARD_EXEMPLE', 'article.php3?id_article=12');
if (!function_exists('generer_url_article')) { // si la place n'est pas prise
// http://doc.spip.org/@generer_url_article
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter