Forum pragmaMx France 10 Février 2012 à 03:40:53 *
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.


Connexion avec identifiant et mot de passe
 
Accueil Aide Rechercher
Pages: [1] 2   Bas de page
Imprimer
Auteur Fil de discussion: Rewriting amélioré forum smf (titre des posts dans les url)  (Lu 10015 fois)
Diabolo
Administrateur
Ultra membre Mx
******
Hors ligne Hors ligne

Messages: 5480



« le: 09 Mars 2008 à 14:46:46 »

Slt,
Suite à ce post
http://www.pragmamx.fr/Forum-topic-1597.html

Je suis tombé sur celui là
http://www.mich-tipps.de/Forum-top-mod_rewrite-SMF-fuer-PragmaMx-266.html#new

Y a qui ont essayé  ?

Par contre pour cette partie de code:
Code:
$umlaute = array(
"ä",
"ü",
"ü",
"ö",
"Ä",
"Ü",
"Ö",
"ß",
"ß",
"Ü",
"ß",
"ä",
"&",
"""
);

$ersetzung = array(
"ae",
"ue",
"ue",
"oe",
"ae",
"ue",
"oe",
"ss",
"ss",
"Ue",
"ss",
"ae",
"und",
"-"
);

Remplacer par:
Code:
// Umlaute
$umlaute = array("À", "Á", "Â", "Ã", "Ä", "Å", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î",
"Ï", "Ò", "Ó", "Ô", "Õ", "Ö", "Ù", "Ú", "Û", "Ü", "Ý", "à", "á", "â", "ã", "ä", "å", "ç",
"è", "é", "ê", "ë", "ì", "í" ,"î", "ï", "ð", "ò", "ó", "ô", "õ", "ö", "ù", "ú", "û", "ü", "ý", "ÿ", "&");
$ersetzung = array("A", "A", "A", "A", "A", "A", "C", "E", "E", "E", "E", "I", "I", "I", "I",
"O", "O", "O", "O", "O", "U", "U", "U", "U", "Y", "a", "a", "a", "a", "a", "a", "c", "e", "e",
"e", "e", "i", "i", "i", "i", "o", "o", "o", "o", "o", "o", "u", "u", "u", "u", "y", "y", "et");

je vais essayé de mon coté voir ce que ça donne  Clin d'oeil
Journalisée

..:: Veuillez consulter les règles du forum ::..- Avez-vous consulté notre documentation avant de poser votre question ?-Pas de support en MP ou par courriel, le forum est là pour ça !Nouvelle question=Nouveau Sujet
le Chaland
Beta-Testeur
Membre Senior Mx
****
Hors ligne Hors ligne

Messages: 284



« Répondre #1 le: 09 Mars 2008 à 20:48:40 »

Tu nous tiens au courant   ? bien joué
Journalisée
angecris
Membre Héroïque Mx
*****
Hors ligne Hors ligne

Messages: 512



« Répondre #2 le: 20 Octobre 2009 à 00:03:19 »

UP  bien joué
Journalisée

http://www.ntfrance.org site dedié au jeu de simulation auto GTR
Diabolo
Administrateur
Ultra membre Mx
******
Hors ligne Hors ligne

Messages: 5480



« Répondre #3 le: 20 Octobre 2009 à 00:19:36 »

Quelqu'un à réessayé ?

Je traduit rapide le post de mich tips:

fleche Activer le mod rewrite sur pragmaMx (Panel admin>configuration)
http://www.pragmamx.fr/Content-pid-36.html


->Rajouter les règles suivantes dans votre .htaccess après les règles de # Your_Account Modul par exemple
Code:
##Regles pour smf Forum
RewriteRule ^(Forum)-cat-(.*)-([0-9]+).html$ modules.php?name=$1&board=$3 [L]
RewriteRule ^(Forum)-top-(.*)-([0-9]+).html$ modules.php?name=$1&topic=$3 [L]
RewriteRule ^(Forum)-top-(.*)-([0-9]+)-start-(.*).html$ modules.php?name=$1&topic=$3.$4[L]


fleche Ensuite dans modules/Forum/mx_functions.php
recherchez le code suivant:
Code:
if (isset($dynachanges)) {
            $smfContent = str_replace(array_keys($dynachanges), array_values($dynachanges), $smfContent);
        }
    }
Attention ce code est présent 2 fois c'est la deuxième fois qui nous intéresse (environ ligne 1560 pour mon cas)

et juste après rajouter le code suivant en ayant pris soin au préalable de chnager le préfixe de stables dans cette portion de code: mx_ à remplacer par le préfie de vos tables ex: mx123456_  (cf panel admin de pragmaMx>configuration)

Code:
// Start mod_rewrite SMF 1.1.5
// Umlaute
$umlaute = array("À", "Á", "Â", "Ã", "Ä", "Å", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î",
"Ï", "Ò", "Ó", "Ô", "Õ", "Ö", "Ù", "Ú", "Û", "Ü", "Ý", "à", "á", "â", "ã", "ä", "å", "ç",
"è", "é", "ê", "ë", "ì", "í" ,"î", "ï", "ð", "ò", "ó", "ô", "õ", "ö", "ù", "ú", "û", "ü", "ý", "ÿ", "&");
$ersetzung = array("A", "A", "A", "A", "A", "A", "C", "E", "E", "E", "E", "I", "I", "I", "I",
"O", "O", "O", "O", "O", "U", "U", "U", "U", "Y", "a", "a", "a", "a", "a", "a", "c", "e", "e",
"e", "e", "i", "i", "i", "i", "o", "o", "o", "o", "o", "o", "u", "u", "u", "u", "y", "y", "et");

$html = array("Forum-board-", ".html");
$html_ersetzung = array("", "");
$html_t = array("Forum-topic-", ".html");
$html_ersetzung_t = array("", "");

//Forum Kategorien
preg_match_all('#Forum-board-(\d*).html#', $smfContent, $forum, PREG_SET_ORDER);
foreach ($forum as $forum1){

$forum2[0] = str_replace($html, $html_ersetzung, "".$forum1[0]."");
$abfrage = "SELECT name, ID_BOARD FROM mx_smf_boards WHERE ID_BOARD = '$forum2[0]'";
   $ergebnis = mysql_query($abfrage);
   while($row = mysql_fetch_array($ergebnis))
     {

$titel_forum_rewrite = $row["name"];
$titel_forum_rewrite = str_replace($umlaute, $ersetzung, $titel_forum_rewrite);
$titel_forum_rewrite = preg_replace('#\W#', "-", $titel_forum_rewrite);
$titel_forum_rewrite = preg_replace('#---#', "-", $titel_forum_rewrite);
$titel_forum_rewrite = preg_replace('#--#', "-", $titel_forum_rewrite);
$titel_forum_fert = "Forum-cat-";
$titel_forum_fert.= "$titel_forum_rewrite-";
$titel_forum_fert.= $forum2[0];
$titel_forum_fert.= ".html";
$replace = "#".$forum1[0]."(?!\d)#";
$smfContent = preg_replace($replace, $titel_forum_fert, $smfContent);
}

}
preg_match_all('#Forum-topic-(\d*).html#', $smfContent, $forum_t, PREG_SET_ORDER);
foreach ($forum_t as $forum1_t){

$forum2_t[0] = str_replace($html_t, $html_ersetzung_t, "".$forum1_t[0]."");
$abfrage = "SELECT subject, ID_TOPIC FROM mx_smf_messages WHERE ID_TOPIC = '$forum2_t[0]'";
   $ergebnis = mysql_query($abfrage);
   while($row = mysql_fetch_array($ergebnis))
     {

$titel_forum_rewrite_t = $row["subject"];
$titel_forum_rewrite_t = str_replace($umlaute, $ersetzung, $titel_forum_rewrite_t);
$titel_forum_rewrite_t = preg_replace('#\W#', "-", $titel_forum_rewrite_t);
$titel_forum_rewrite_t = preg_replace('#---#', "-", $titel_forum_rewrite_t);
$titel_forum_rewrite_t = preg_replace('#--#', "-", $titel_forum_rewrite_t);
$titel_forum_fert_t = "Forum-top-";
$titel_forum_fert_t.= "$titel_forum_rewrite_t-";
$titel_forum_fert_t.= $forum2_t[0];
$titel_forum_fert_t.= ".html";
$replace = "#".$forum1_t[0]."(?!\d)#";
$smfContent = preg_replace($replace, $titel_forum_fert_t, $smfContent);

        }
    }
preg_match_all('#Forum-topic-(\d*)-start-msg(\d*).html#', $smfContent, $forum_to, PREG_SET_ORDER);
foreach ($forum_to as $forum1_to){
$ersetz_for_new = "-start-msg$forum1_to[2].html";
$html_to = array("Forum-topic-", $ersetz_for_new);
$html_ersetzung_to = array("", "");

$forum2_to[0] = str_replace($html_to, $html_ersetzung_to, "".$forum1_to[0]."");

$abfrage = "SELECT subject, ID_TOPIC FROM mx_smf_messages WHERE ID_TOPIC = '$forum2_to[0]'";
   $ergebnis = mysql_query($abfrage);
   while($row = mysql_fetch_array($ergebnis))
     {

$titel_forum_rewrite_to = $row["subject"];
$titel_forum_rewrite_to = str_replace($umlaute, $ersetzung, $titel_forum_rewrite_to);
$titel_forum_rewrite_to = preg_replace('#\W#', "-", $titel_forum_rewrite_to);
$titel_forum_rewrite_to = preg_replace('#---#', "-", $titel_forum_rewrite_to);
$titel_forum_rewrite_to = preg_replace('#--#', "-", $titel_forum_rewrite_to);
$titel_forum_fert_to = "Forum-top-";
$titel_forum_fert_to.= "$titel_forum_rewrite_to-";
$titel_forum_fert_to.= $forum2_to[0];
$titel_forum_fert_to.= ".html";
$replace = "#".$forum1_to[0]."(?!\d)#";
$smfContent = preg_replace($replace, $titel_forum_fert_to, $smfContent);

        }
    }

preg_match_all('#Forum-topic-(\d*)-start-msg(\d*)-boardseen.html#', $smfContent, $forum_to1, PREG_SET_ORDER);
foreach ($forum_to1 as $forum1_to1){
$ersetz_for_new1 = "-start-msg$forum1_to1[1]-boardseen.html";

$html_to1 = array("Forum-topic-", $ersetz_for_new1);
$html_ersetzung_to1 = array("", "");

$forum2_to1[0] = str_replace($html_to1, $html_ersetzung_to1, "".$forum1_to1[0]."");
$abfrage = "SELECT subject, ID_TOPIC FROM mx_smf_messages WHERE ID_TOPIC = '$forum2_to1[0]'";
   $ergebnis = mysql_query($abfrage);
   while($row = mysql_fetch_array($ergebnis))
     {

$titel_forum_rewrite_to1 = $row["subject"];
$titel_forum_rewrite_to1 = str_replace($umlaute, $ersetzung, $titel_forum_rewrite_to1);
$titel_forum_rewrite_to1 = preg_replace('#\W#', "-", $titel_forum_rewrite_to1);
$titel_forum_rewrite_to1 = preg_replace('#---#', "-", $titel_forum_rewrite_to1);
$titel_forum_rewrite_to1 = preg_replace('#--#', "-", $titel_forum_rewrite_to1);
$titel_forum_fert_to1 = "Forum-top-";
$titel_forum_fert_to1.= "$titel_forum_rewrite_to1-";
$titel_forum_fert_to1.= $forum2_to1[0];
$replace = "#".$forum1_to1[0]."(?!\d)#";
$smfContent = preg_replace($replace, $titel_forum_fert_to1, $smfContent);

        }
    }
preg_match_all('#Forum-topic-(\d*)-start-new.html#', $smfContent, $forum_to_new, PREG_SET_ORDER);
foreach ($forum_to_new as $forum1_to_new){


$html_to_new = array("Forum-topic-", "-start-new.html");
$html_ersetzung_to_new = array("", "");

$forum2_to_new[0] = str_replace($html_to_new, $html_ersetzung_to_new, "".$forum1_to_new[0]."");

$abfrage = "SELECT subject, ID_TOPIC FROM mx_smf_messages WHERE ID_TOPIC = '$forum2_to_new[0]'";
   $ergebnis = mysql_query($abfrage);
   while($row = mysql_fetch_array($ergebnis))
     {

$titel_forum_rewrite_to_new = $row["subject"];
$titel_forum_rewrite_to_new = str_replace($umlaute, $ersetzung, $titel_forum_rewrite_to_new);
$titel_forum_rewrite_to_new = preg_replace('#\W#', "-", $titel_forum_rewrite_to_new);
$titel_forum_rewrite_to_new = preg_replace('#---#', "-", $titel_forum_rewrite_to_new);
$titel_forum_rewrite_to_new = preg_replace('#--#', "-", $titel_forum_rewrite_to_new);
$titel_forum_fert_to_new = "Forum-top-";
$titel_forum_fert_to_new.= "$titel_forum_rewrite_to_new-";
$titel_forum_fert_to_new.= $forum2_to_new[0];
$titel_forum_fert_to_new.= ".html";
$replace = "#".$forum1_to_new[0]."(?!\d)#";
$smfContent = preg_replace($replace, $titel_forum_fert_to_new, $smfContent);

        }
    }
// Ende mod_rewrite SMF 1.1.5

Note: ce rewriting nécessite des ressources serveur supplémentaires.

J'ajoute que nous avons un addons (titre dans l'url) pour les modules news, annuaire et download
http://www.pragmamx.org/Downloads-op-view-lid-747.html

avec dans le pack mx_modrewrite.php
cette portion de code
Code:
// Umlaute
$umlaute = array(
"ä",
"ü",
"ö",
"Ä",
"Ü",
"Ö",
"ß",
"ñ",
"ó",
"ô",
"í",
"á",
"ú",
"é",
"ê",
"ã",
"ç",
"û",
"è",
"à",
"ë",
"î"
);

$ersetzung = array(
"ae",
"ue",
"oe",
"Ae",
"Ue",
"Oe",
"ss",
"n",
"o",
"o",
"i",
"a",
"u",
"e",
"e",
"a",
"c",
"u",
"e",
"a",
"e",
"i"
);

qu'il faut remplacer pour s'adapter au français, cf ci-dessus
« Dernière édition: 20 Octobre 2009 à 23:48:43 par Diabolo » Journalisée

..:: Veuillez consulter les règles du forum ::..- Avez-vous consulté notre documentation avant de poser votre question ?-Pas de support en MP ou par courriel, le forum est là pour ça !Nouvelle question=Nouveau Sujet
stefvar
Team
Membre Senior Mx
******
Hors ligne Hors ligne

Messages: 270



« Répondre #4 le: 20 Octobre 2009 à 07:26:50 »

Bonjour,

Très intéressant que tout cela, je m'en vais voir ce que cela donne  Clin d'oeil
Journalisée

Je ne réponds pas aux messages privés, merci, Bises
stefvar
Team
Membre Senior Mx
******
Hors ligne Hors ligne

Messages: 270



« Répondre #5 le: 20 Octobre 2009 à 08:28:30 »

Re,
Je viens de mettre le tout en place et cela semble fonctionner correctement. Je vais laisser tourner quelque temps pour voir le résultat dans la durée.
Par contre, il ne faut pas remplacer le deuxième code :
Code:
        if (isset($dynachanges)) {
            $smfContent = str_replace(array_keys($dynachanges), array_values($dynachanges), $smfContent);
        }
    }
Mais AJOUTER après celui-ci.
Pour ceux qui voudrait le mettre en place, pensez à remplacer le préfixe des tables "mx_" présents dans le code par celui qui vous est propre si différent  Clin d'oeil
Journalisée

Je ne réponds pas aux messages privés, merci, Bises
Diabolo
Administrateur
Ultra membre Mx
******
Hors ligne Hors ligne

Messages: 5480



« Répondre #6 le: 20 Octobre 2009 à 23:49:01 »

Ok j'ai corrigé mon post  Clin d'oeil

Sinon concernant new, dl et wl, ce sera inclus en natif dans une version futur de pragmaMx avec un nouveau systeme de rewrite respect
« Dernière édition: 20 Octobre 2009 à 23:51:03 par Diabolo » Journalisée

..:: Veuillez consulter les règles du forum ::..- Avez-vous consulté notre documentation avant de poser votre question ?-Pas de support en MP ou par courriel, le forum est là pour ça !Nouvelle question=Nouveau Sujet
stefvar
Team
Membre Senior Mx
******
Hors ligne Hors ligne

Messages: 270



« Répondre #7 le: 21 Octobre 2009 à 08:47:15 »

Bonjour,

Petit retour après 24 heures d'utilisation pour dire que le système est efficace, très efficace même. La prise en compte des messages et autres par les moteurs de recherche s'en trouve diviser au moins par deux.
Certes la méthode employés génère des requêtes supplémentaires mais il n'en demeure pas moins ingénieux dans son principe.
Dès que j'ai un peu de temps de libre, je regarderai ce que cela donne pour d'autres modules actuellement non pris en compte  Clin d'oeil
Journalisée

Je ne réponds pas aux messages privés, merci, Bises
HollowMac
Membre Senior Mx
****
Hors ligne Hors ligne

Messages: 256



« Répondre #8 le: 21 Octobre 2009 à 20:03:16 »

Pour ma part, il faut bien remplacer le code et non ajouter après. D'ailleurs, si j'ajoute après, il y a une erreur : une parenthèse en trop dans le code où il faut juste rajouter après.

Mais le remplacement des caractères accentués par leurs homologues non accentués ne marche toujours pas pour moi (j'avais déjà ce mod).
Journalisée

Youkoulélé !
angecris
Membre Héroïque Mx
*****
Hors ligne Hors ligne

Messages: 512



« Répondre #9 le: 22 Octobre 2009 à 23:10:45 »

Bonjour,

Petit retour après 24 heures d'utilisation pour dire que le système est efficace, très efficace même. La prise en compte des messages et autres par les moteurs de recherche s'en trouve diviser au moins par deux.
Certes la méthode employés génère des requêtes supplémentaires mais il n'en demeure pas moins ingénieux dans son principe.
Dès que j'ai un peu de temps de libre, je regarderai ce que cela donne pour d'autres modules actuellement non pris en compte  Clin d'oeil

Tu veux plutot dire multiplie par 2
Journalisée

http://www.ntfrance.org site dedié au jeu de simulation auto GTR
stefvar
Team
Membre Senior Mx
******
Hors ligne Hors ligne

Messages: 270



« Répondre #10 le: 23 Octobre 2009 à 09:04:50 »

Bonjour,

Non non, c'est bien divisé, en cela, c'est la durée avant que n'apparaisse une information dans un moteur de recherche dont je faisais allusion  Clin d'oeil
Journalisée

Je ne réponds pas aux messages privés, merci, Bises
shorty
Membre Senior Mx
****
Hors ligne Hors ligne

Messages: 367


La communauté de Troc et d'échanges francophone


« Répondre #11 le: 26 Octobre 2009 à 11:13:47 »

Salut à tous !  respect
Je voulais savoir si quelqu'un saurait comment faire pour rewriter plusieurs Forums smf (avec les règles améliorées).
Sa marche impec pour le premier Forum mais  pour les autres. (j'ai le rewriting sans les titres).
J'ai éssayé de modif le htacces mais apparement sa ne suffit pas.
Est-ce que quelqu'un aurait une idée ?
Journalisée

stefvar
Team
Membre Senior Mx
******
Hors ligne Hors ligne

Messages: 270



« Répondre #12 le: 26 Octobre 2009 à 14:25:50 »

Bonjour,

Qu'entends tu par "plusieurs forums", c'est plusieurs module forum ou ou plusieurs forums dans le même module ?
Si c'est ce dernier cas, il n'y a rien de spécifique à faire si ce n'est suivre les instructions. Tout les forums seront pris en compte, seul le bloc n'aura pas la ré-écriture avancée.
Journalisée

Je ne réponds pas aux messages privés, merci, Bises
shorty
Membre Senior Mx
****
Hors ligne Hors ligne

Messages: 367


La communauté de Troc et d'échanges francophone


« Répondre #13 le: 26 Octobre 2009 à 23:56:42 »

Je parle de plusieurs forums.
Le bridge permet d'installer autant de Forums que l'on veut.
 Sa fonctionne que sur le premier installé.
Journalisée

stefvar
Team
Membre Senior Mx
******
Hors ligne Hors ligne

Messages: 270



« Répondre #14 le: 27 Octobre 2009 à 07:14:48 »

Bonjour,

Je suppose que lorsque l'on a installé plusieurs forums, la ré-écriture d'origine doit différer entre les forums, numétotation, lette supplémentaire je ne sais pas mais différence il doit y avoir.
C'est sur ce différence qu'il faut agir au niveau du code ajouté pour la ré-écriture avancée en ajoutant les fameuses différences pour que le tout fonctionne.
Journalisée

Je ne réponds pas aux messages privés, merci, Bises
Pages: [1] 2   Haut de page
Imprimer
Forum pragmaMx France  |  Modules spécifiques & Blocs  |  Forum SMF (Modérateurs: Diabolo, kroms, phi56360)  |  Fil de discussion: Rewriting amélioré forum smf (titre des posts dans les url)
 
Aller à:  

Powered by SMF 1.1.15 | SMF © 2006-2009, Simple Machines

Plus