Bonjour,
Comment augmenter la longueur des « Url propres » ?
Dans la portion de code suivante du fichier « propres.php » (ecrire/urls), j’ai cru que le nombre « 35 » était la limite du nombre de caractères.
Pour un essai, j’ai mis « 50 » à la place.
Ensuite j’efface les Url propres existantes ; mon cache est désactivé mais je le vide quand même (il y a toujours un petit volume fixe de cache qui revient).
Je consulte mes pages (et la base par phpMyAdmin) :
rien n’a changé, les « nouvelles » Url propres ont la même longueur qu’auparavant.
Morceau de code précité modifié, avec le nombre « 50 » au lieu de « 35 » :
// S’il reste trop de caracteres non latins, ou trop peu
// de caracteres latins, utiliser l’id a la place
if (preg_match(",([^a-zA-Z0-9 ].*){5},", $url, $r)
OR strlen($url)<3) {
$url = $type.$id_objet;
}
else {
$mots = preg_split(",[^a-zA-Z0-9]+,", $url);
$url = ‹ ›;
foreach ($mots as $mot) {
if (!$mot) continue;
$url2 = $url.’-’.$mot;
if (strlen($url2) > 50) {
break;
}
$url = $url2;
}
$url = substr($url, 1);
//echo « $url
»;
if (strlen($url) < 2) $url = $type.$id_objet;
}
Quelqu’un l’a déjà fait ?
Merci
frdm
Oui, j'ai fait la même modif que toi et ça a fonctionné (spip 1.9.2a OVH). Je n'ai pas effacé les anciennes url propres de la base, je les ai allongées "à la main", mais les nouvelles url font bien 50 caractères (un peu moins du fait de la coupure des mots)
frdmfrdm a écrit :
Bonjour,
Comment augmenter la longueur des "Url propres" ?
Dans la portion de code suivante du fichier "propres.php" (ecrire/urls), j'ai cru que le nombre "35" était la limite du nombre de caractères.
Pour un essai, j'ai mis "50" à la place.
Ensuite j'efface les Url propres existantes ; mon cache est désactivé mais je le vide quand même (il y a toujours un petit volume fixe de cache qui revient).
Je consulte mes pages (et la base par phpMyAdmin) :
rien n'a changé, les "nouvelles" Url propres ont la même longueur qu'auparavant.
Morceau de code précité modifié, avec le nombre "50" au lieu de "35" :
// S'il reste trop de caracteres non latins, ou trop peu
// de caracteres latins, utiliser l'id a la place
if (preg_match(",([^a-zA-Z0-9 ].*){5},", $url, $r)
OR strlen($url)<3) {
$url = $type.$id_objet;
}
else {
$mots = preg_split(",[^a-zA-Z0-9]+,", $url);
$url = '';
foreach ($mots as $mot) {
if (!$mot) continue;
$url2 = $url.'-'.$mot;
if (strlen($url2) > 50) {
break;
}
$url = $url2;
}
$url = substr($url, 1);
//echo "$url<br>";
if (strlen($url) < 2) $url = $type.$id_objet;
}
Quelqu'un l'a déjà fait ?
Merci
frdm
Mais quid pour les nouveaux articles ?
Tu leur assignes aussi à la main une « Url propre » ?
J’ai utilisé le plugin « Effacer Url propres » pour procéder à l’effacement ; parfaitement fonctionnel lors du changement de titre d’article (ou autre) jusqu’ici : l’effacement est réalisé, et une nouvelle Url propre se crée ensuite, correspondant au nouveau nom assigné.
Mais les nouvelles Url propres créées automatiquement n’augmentent pas de longueur, elles restent limitées à 35 caractères, lorsque l’on change la variable strlen($url2) > 35) pour strlen($url2) > 50) dans le fichier " propres.php", comme j’ai expliqué précédemment.
frdmfrdm
–~–
On 6/10/07, Stéphane <gerl@laposte.net> wrote:
Oui, j’ai fait la même modif que toi et ça a fonctionné (spip 1.9.2a
OVH). Je n’ai pas effacé les anciennes url propres de la base, je les ai
allongées « à la main », mais les nouvelles url font bien 50 caractères
(un peu moins du fait de la coupure des mots)
frdmfrdm a écrit :
Bonjour,
Comment augmenter la longueur des « Url propres » ?
Dans la portion de code suivante du fichier " propres.php" (ecrire/urls),
j’ai cru que le nombre « 35 » était la limite du nombre de caractères.
Pour un essai, j’ai mis « 50 » à la place.
Ensuite j’efface les Url propres existantes ; mon cache est désactivé
mais je le vide quand même (il y a toujours un petit volume fixe de
cache qui revient).
Je consulte mes pages (et la base par phpMyAdmin) :
rien n’a changé, les « nouvelles » Url propres ont la même longueur
qu’auparavant.
Morceau de code précité modifié, avec le nombre « 50 » au lieu de « 35 » :
// S’il reste trop de caracteres non latins, ou trop peu
// de caracteres latins, utiliser l’id a la place
if (preg_match(« ,([^a-zA-Z0-9 ].*){5}, », $url, $r)
OR strlen($url)<3) {
$url = $type.$id_objet;
}
else {
$mots = preg_split(« ,[^a-zA-Z0-9]+, », $url);
$url = ‹ ›;
foreach ($mots as $mot) {
if (!$mot) continue;
$url2 = $url.‹ - ›.$mot;
if (strlen($url2) > 50) {
break;
}
$url = $url2;
}
$url = substr($url, 1);
//echo « $url
»;
if (strlen($url) < 2) $url = $type.$id_objet;
}
Quelqu’un l’a déjà fait ?
Merci
frdm
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip-contrib.net/spikini/FaQ
Le 10/06/07, francois-r. d. m. a écrit :
Mais quid pour les nouveaux articles ?
Tu leur assignes aussi à la main une « Url propre » ?
J’ai utilisé le plugin « Effacer Url propres » pour procéder à l’effacement ; parfaitement fonctionnel lors du changement de titre d’article (ou autre) jusqu’ici : l’effacement est réalisé, et une nouvelle Url propre se crée ensuite, correspondant au nouveau nom assigné.
Mais les nouvelles Url propres créées automatiquement n’augmentent pas de longueur, elles restent limitées à 35 caractères, lorsque l’on change la variable strlen($url2) > 35) pour strlen($url2) > 50) dans le fichier " propres.php", comme j’ai expliqué précédemment.
L’opération inverse , c’est-à-dire la diminution de la longueur par exemple à 20 caractères semble fonctionner, à la création d’un nouvel article.
Y aurait-il un autre traitement sur la longueur ultérieurement ?
–
@plus
Jacques
Pour les lyonnais++ spip-lyon@rezo.net http://spip-party.net/-Lyon-
Remercier Spip et les plugins (Crédits) : http://spip.jermer.fr/?Plugin-plugins-actifs-version-5
Gérer ses squelettes & thèmes en interne : http://spip.jermer.fr/?Spip-1-92a-Plugin-Admin-themes
Les URL des nouveaux articles font bien plus de 35 caractères, automatiquement. J'ai fait la manip il y quelques mois, donc c'est un peu lointain pour moi, mais il me semble que je n'avais rien fais d'autre que de passer de 35 à 50 dans le script.
Au fait, dans ton mes_options.php, c'est bien "propres" qui est mis et pas un autre ? (on ne sait jamais ^^ )
francois-r. d. m. a écrit :
Mais quid pour les nouveaux articles ?
Tu leur assignes aussi à la main une "Url propre" ?
J'ai utilisé le plugin "Effacer Url propres" pour procéder à l'effacement ; parfaitement fonctionnel lors du changement de titre d'article (ou autre) jusqu'ici : l'effacement est réalisé, et une nouvelle Url propre se crée ensuite, correspondant au nouveau nom assigné.
Mais les nouvelles Url propres créées automatiquement n'augmentent pas de longueur, elles restent limitées à 35 caractères, lorsque l'on change la variable strlen($url2) > 35) pour strlen($url2) > 50) dans le fichier " propres.php", comme j'ai expliqué précédemment.
frdmfrdm
--~--
On 6/10/07, *Stéphane* <gerl@laposte.net <mailto:gerl@laposte.net>> wrote:
Oui, j'ai fait la même modif que toi et ça a fonctionné (spip 1.9.2a
OVH). Je n'ai pas effacé les anciennes url propres de la base, je les ai
allongées "à la main", mais les nouvelles url font bien 50 caractères
(un peu moins du fait de la coupure des mots)
frdmfrdm a écrit :
> Bonjour,
>
> Comment augmenter la longueur des "Url propres" ?
>
> Dans la portion de code suivante du fichier " propres.php"
(ecrire/urls),
> j'ai cru que le nombre "35" était la limite du nombre de caractères.
> Pour un essai, j'ai mis "50" à la place.
> Ensuite j'efface les Url propres existantes ; mon cache est
désactivé
> mais je le vide quand même (il y a toujours un petit volume fixe de
> cache qui revient).
> Je consulte mes pages (et la base par phpMyAdmin) :
> rien n'a changé, les "nouvelles" Url propres ont la même longueur
> qu'auparavant.
>
> Morceau de code précité modifié, avec le nombre "50" au lieu de
"35" :
>
> // S'il reste trop de caracteres non latins, ou trop peu
> // de caracteres latins, utiliser l'id a la place
> if (preg_match(",([^a-zA-Z0-9 ].*){5},", $url, $r)
> OR strlen($url)<3) {
> $url = $type.$id_objet;
> }
> else {
> $mots = preg_split(",[^a-zA-Z0-9]+,", $url);
> $url = '';
> foreach ($mots as $mot) {
> if (!$mot) continue;
> $url2 = $url.'-'.$mot;
> if (strlen($url2) > 50) {
> break;
> }
> $url = $url2;
> }
> $url = substr($url, 1);
> //echo "$url<br>";
> if (strlen($url) < 2) $url = $type.$id_objet;
> }
>
> Quelqu'un l'a déjà fait ?
> Merci
> frdm
>
_______________________________________________
liste spip
spip@rezo.net <mailto:spip@rezo.net> - désabonnement :
spip-off@rezo.net <mailto:spip-off@rezo.net>
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip-contrib.net/spikini/FaQ