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