Augmenter la longueur des "Url propres"

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