Le libellé du titre dans l'URL de votre forum phpBB V2

WRInaute discret
lol wai je sais ça, mais je voulais savoir si à tout hazard tu executais le fichier avec un truc de phpbb (dsl je connais je m'y met a phpbb) et paf ça te faisait les modif, on sais jamais !
J'y vais fichier par fichier alors :)
 
WRInaute passionné
Il existe bien EasyMOD qui est censé installer tout seul les MODs compatibles, mais je n'ai jamais réussi à me le procurer :(
 
WRInaute discret
Bonsoir,

Mise à jour vers la v. 0.2.1

2005-04-11 - Version 0.2.1
- added replacement of "'" by $change_space instead of deleting them
- added rewriten link to parent forum in viewtopic.php
 
Nouveau WRInaute
Kaizen a dit:
- added replacement of "'" by $change_space instead of deleting them

De mieux en mieux ton mod Kaizen ! ;-)

* Pour le point plus haut, il faudrait faire la même chose avec /:;.?,!+=><
* Sinon c'est du chippotage, mais parfois l'url se termine comme suit : -.html ce serait bien si on pouvait enlever le - final.

De sorte que si un sujet a pour titre :
toto/titi ?

Actuellement ça donne ça
5622_0-tototiti-.html

Idéalement il faudrait ça
5622_0-toto-titi.html

EDIT autre suggestion :

Là on atteindra le top du top !

* Supprimer les mots de 2 lettres de l'url + une liste de mot paramétrables.

Donc si le titre du topic est :
j'ai mal au dos

L'url sera :
5622_0-mal-dos.html

Et dans la liste des mots paramétrables (en dur dans la fonction, faut pas se faire chi## avec une lecture de fichier), on pourra mettre les mots de 3 lettres qui ne servent à rien : les des son ses ...

A chacun après de se faire sa liste.
 
WRInaute discret
Bon, j'ai pris le dernier mod de Kaizen, et Easy mod. J'ai suivit les insctruction, tout s'est déroulé correctement sans erreur.
Par compte, pourquoi lorsque l'on n'est pas loggé, l'id de session est toujours présente dans l'url ? quand google passe, il n'est pas loggé ? donc il a lui aussi les id de session :S Moi pas comprendre ^^

Et pourquoi une fois loggé on a plus les titres dans l'url ? on est comme normal avec un viewforum.php
exemple sur mon forum avec un compte de test que je viens de faire :
login : user
mdp : user
??
 
Nouveau WRInaute
Je pense qu'il faur arréter avec vos usines à gaz. J'espère que toutes vos modifications passeront le cap de la prochaine mise à jour. Vu la fréquence ces derniers temps, ça ne saurait tarder.
 
Nouveau WRInaute
noot a dit:
Je pense qu'il faur arréter avec vos usines à gaz. J'espère que toutes vos modifications passeront le cap de la prochaine mise à jour. Vu la fréquence ces derniers temps, ça ne saurait tarder.
c'est pas usine à gaz du tout, il est tout simple le mode de Kaizen...

Il y a bcp plus compliqué comme mod, comme celui des fichiers attachés.
 
WRInaute passionné
kaizen, je suis un peu paummé la. concretement, qu'est ce qui a changé par rapport a la version de base que j'avais mise en place?
Et a partir d'ou dois-je reprendre les modifs?
 
WRInaute discret
Vu les changements, je te conseillerai de désinstaller la v 0.1 (en faisant une recherche sur "// Search Engine Optimisation Mod" puis d'installer la v. 0.2.0. Quasiment tout le code a changé (c'est par cela que j'ai changé le numéro de version...)
 
WRInaute discret
Fabrice P. a dit:
* Pour le point plus haut, il faudrait faire la même chose avec /:;.?,!+=><
* Sinon c'est du chippotage, mais parfois l'url se termine comme suit : -.html ce serait bien si on pouvait enlever le - final.
* Supprimer les mots de 2 lettres de l'url + une liste de mot paramétrables.

Et dans la liste des mots paramétrables (en dur dans la fonction, faut pas se faire chi## avec une lecture de fichier), on pourra mettre les mots de 3 lettres qui ne servent à rien : les des son ses ...

A chacun après de se faire sa liste.
Je vais regarder tout cela. ;-)
Merci de vos suggestions, c'est vraiment encourageant.
 
WRInaute passionné
Kaizen a dit:
Vu les changements, je te conseillerai de désinstaller la v 0.1 (en faisant une recherche sur "// Search Engine Optimisation Mod" puis d'installer la v. 0.2.0. Quasiment tout le code a changé (c'est par cela que j'ai changé le numéro de version...)

erf erf :'( je vais attendre une version finale avant de me refaire tout le boulot ;)
 
WRInaute discret
Bonjour tous,

Quelques infos / réponses...
(J'écris hors ligne et poste durant les quelques minutes où je peux me connecter. Toutes mes excuses à ceux qui m'ont répondu depuis... Je vous répondrai demain :lol:)

:arrow: nautiljon
l'id de session est toujours présente dans l'url ?
Effectivement, je ne m'occupe pas (encore ?) de ce point dans mon mod. Tourne-toi vers le mod d'AbleToKnow (cité dans l'intro de mon mod) ou vers une méthode donnée dans ce forum. ;-)


Et pourquoi une fois loggé on a plus les titres dans l'url
Dans le changelog de la v. 0.2.0 tu peux lire :
- rewrite urls only for guest (wich improve speed for members)
Ce qui se traduit par :
- ré-écrit les url uniquement pour les invités (ce qui augmente la vitesse pour les membres)

J'ai fait ce changement par rapport à la v. 0.1 car il me semble inutile de "consommer" des ressources du serveur inutilement. Les membres n'ont pas besoin du titre dans les urls, c'est intressant uniquement pour les moteurs de recherche.

À ce propos, il pourrait être interessant de ne faire l'url rewriting uniquement pour les moteurs. Existe-t-il une liste "quasi-exhaustive" des moteurs, que je pourrais utiliser pour les identifier (on ne ré-écrirai plus du tout les urls pour les "visiteurs humains") :?:




:arrow: noot
Je pense qu'il faur arréter avec vos usines à gaz.
J'avoue que j'ai du mal à comprendre. :?
Quelle est "l'usine à gaz" (le mod, les suggestions) ? Pourquoi ?

J'espère que toutes vos modifications passeront le cap de la prochaine mise à jour.
Mêmes questions...



:arrow: Fabrice P.
* Pour le point plus haut, il faudrait faire la même chose avec /:;.?,!+=><
* Sinon c'est du chippotage, mais parfois l'url se termine comme suit : -.html ce serait bien si on pouvait enlever le - final.
C'est fait :arrow: v. 0.2.2
J'ai également remplacé les &gt; &lt; &quot; et &amp; par $change_space.
Au passage merci. :-) Ta seconde suggestion m'a permis de chercher et trouver un moyen plus léger (et donc plus rapide 8) ) de retirer les $change_space en trop.


* Supprimer les mots de 2 lettres de l'url
Je l'ajoute au mod, mais en commentaire (pour un forum consacré à Windows XP, il est bon d'avoir "xp" dans l'url ;-) ). Décommentez-le si vous le souhaitez.

À ce propos, je n'ai pas réussi à mettre cela en une ligne :
Code:
$url_title = preg_replace("/$change_space([a-z_]{1,2})$change_space/",$change_space,$url_title);
$url_title = preg_replace("/$change_space([a-z_]{1,2})$/",$change_space,$url_title);
Je pensais à
Code:
$url_title = preg_replace("/$change_space([a-z_]{1,2})($change_space|$)/",($change_space|$),$url_title);
mais ça ne passe pas.
S'il y a un crack en php qui me lit... ;-)


+ une liste de mot paramétrables.

Et dans la liste des mots paramétrables (en dur dans la fonction, faut pas se faire chi## avec une lecture de fichier), on pourra mettre les mots de 3 lettres qui ne servent à rien : les des son ses ...
Ajoute-les dans la ligne
Code:
$url_title = preg_replace("/(&gt;|&lt;|&quot;|&amp;)/",$change_space,$url_title);
de cette manière
Code:
$url_title = preg_replace("/(&gt;|&lt;|&quot;|&amp;| les | des | son | ses)/",$change_space,$url_title);

Bonne journée à tous.
(au fait, je ne sais pas chez vous, mais ici, c'est 30 degrés à l'ombre depuis le début de la semaine 8) )
 
Nouveau WRInaute
Merci Kaizen !

T'es en train de faire un super truc ! En plus t'es perfectionniste, on va bien s'entendre ! :-)

Kaizen a dit:
À ce propos, je n'ai pas réussi à mettre cela en une ligne :
Code:
$url_title = preg_replace("/$change_space([a-z_]{1,2})$change_space/",$change_space,$url_title);
$url_title = preg_replace("/$change_space([a-z_]{1,2})$/",$change_space,$url_title);
Je pensais à
Code:
$url_title = preg_replace("/$change_space([a-z_]{1,2})($change_space|$)/",($change_space|$),$url_title);
mais ça ne passe pas.
S'il y a un crack en php qui me lit... ;-)
Il y a plus simple ! :-)

Tu modifie la premiere ligne comme ça :

Code:
$url_title = $change_space . strtr($url_title,'áâàäéêèëíîìïóôòöúûùüýçñ','aaaaeeeeiiiioooouuuuycn') . $change_space;

Et du coup tu n'as même plus besoin de la deuxième ligne, tu n'as plus qu'à garder celle-ci :
Code:
$url_title = preg_replace("/$change_space([a-z_]{1,2})$change_space/",$change_space,$url_title);

Une remarque : tu as utilisé la variable $change_space un peu partout. J'y connais pas trop en PHP, mais à mon avis cette souplesse se paie en rapidité. Je pense qu'il eu mieux fallu mettre la variable en dur directement, d'autant qu'elle est pas amener à changer.

Sinon un petit bug : quand on a 2 fois de suite un mot de 2 lettres, il ne remplace que le premier. Je comprends pas trop pourquoi, c'est bizarre comme fonctionnement de preg_replace.

Du coup j'ai modifié ton code comme suit :
Code:
			// Remove one/two-letter words (uncomment next lines if you want to use this function)
			$url_title2 = preg_replace("/\-([a-z]{1,2})\-/", '-', $url_title);
			while ($url_title2 != $url_title) {
				$url_title = $url_title2;
				$url_title2 = preg_replace("/\-([a-z]{1,2})\-/", '-', $url_title);
			}

...

Pour ta suggestion de rewriter que pour les bots, je te suggère le truc suivant : faisons le rewrite uniquement pour les invités que ne gèrent pas lles cookies !

C'est simple et comme ça tu élimines la plupart des invités "humains". En plus ça facilitera les tests ! Car si le rewriting n'est visible que par les robots, bonjour pour tester !

...

Sinon je te suggère de ne pas enlever le SID dans ton mode, puisque d'autres mod le font déjà et que l'explication est sur WebRankInfo. Ca ne sert à rien de refaire ce que d'autres ont déjà fait.

...

Ma petite contribution :

si comme moi vous n'avez pas confiance ds le fichier robots.txt, pas tjs pris en compte par les bots, voici une solution pour ajouter les meta tags robots qui vont bien.

Fichier template\fs2\overall_header.tpl :

(chez vous ce sera subsilver à la place de fs2 et le code ci-dessous peut légèrement changer, car je crois que subsilver est en HTML au lieu de XHTML)

Code:
<?xml version="1.0" encoding="{S_CONTENT_ENCODING}"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html dir="{S_CONTENT_DIRECTION}">
<head>
{FILTER_ROBOTS}
<META name="MSSmartTagsPreventParsing" content="true" />
<meta http-equiv="Content-Type" content="text/html; charset={S_CONTENT_ENCODING}" />
<meta http-equiv="Content-Style-Type" content="text/css" />

Par rapport à la page normale notez l'ajout de
Code:
{FILTER_ROBOTS}
<META name="MSSmartTagsPreventParsing" content="true" />

Fichier includes\page_header.php

ATTENTION mon forum est un sous-domaine sur mon site, donc pour vous iil faudra peut-être remplacer le '/' par '/forum/' et '/index.php' par '/forum/index.php'

Code:
if ( $_SERVER['REQUEST_URI'] == '/' || $_SERVER['REQUEST_URI'] == '/index.php' || strstr ($_SERVER['REQUEST_URI'], '.html') != FALSE )
 	$filter_robots = '<META name="robots" content="index,follow,noarchive" /><META name="msnbot" content="index,follow,noarchive" />';
else
	$filter_robots = '<META name="robots" content="noindex,nofollow,noarchive" /><META name="msnbot" content="noindex,nofollow,noarchive" />';

//
// The following assigns all _common_ variables that may be used at any point
// in a template.
//

$template->assign_vars(array(
	'FILTER_ROBOTS' => $filter_robots,
	'SITENAME' => $board_config['sitename'],

Par rapport à la page normale notez l'ajout de :
Code:
'FILTER_ROBOTS' => $filter_robots
et
Code:
if ( $_SERVER['REQUEST_URI'] == '/' || $_SERVER['REQUEST_URI'] == '/index.php' || strstr ($_SERVER['REQUEST_URI'], '.html') != FALSE )
 	$filter_robots = '<META name="robots" content="index,follow,noarchive" /><META name="msnbot" content="index,follow,noarchive" />';
else
	$filter_robots = '<META name="robots" content="noindex,nofollow,noarchive" /><META name="msnbot" content="noindex,nofollow,noarchive" />';

Et voilà ! Avec ça vous êtes sur que seul la page d'accueil et les bonnes pages du forum avec une bonne url seront indexés. La modif fonctionne uniquement si vous avez appliqué le mode de Kaizen, qui met en .html à la place de .php les pages à indexer.

On peut aller plus loin en coupant l'indexation de certaines rubriques de forum (genre les rubriques bar ou très généralistes, on tout le monde dit des conneries qui n'ont pas nécessairement besoin d'être sur google).

Kaizen si tu veux ajouter ça à ton mod, n'hésites pas.
 
WRInaute discret
Fabrice ?
:D :D :D Excellent !
J'apprécie toujours les coups de main. ;-)

Fabrice P. a dit:
On peut aller plus loin en coupant l'indexation de certaines rubriques de forum (genre les rubriques bar ou très généralistes, on tout le monde dit des conneries qui n'ont pas nécessairement besoin d'être sur google).

Pour ma part, seuls les membres ont accès au bar (et aux forums concernant le développement du site, les suggestions, etc.) , comme ça, pas de problèmes...

Je vais regarder attentivement ce que tu as posté. Bonne soirée ;-)
 
WRInaute passionné
Coucou,
je tiens juste à m'informer d'où en est la version ? Si c'est assez avancé pour pouvoir être utilisé constamment ? :)

( si quelqu'un l'utilise et s'il en est content, si tout est vraiment rewrité, etc .. ;) )
 
WRInaute passionné
Merci ;)

Par contre j'ai un petit souci : si je veux que mes urls indexées pour l'instant soient toujours valables ?
Je mets le htaccess de kaizen, et je garde quoi du mien , et je dois le mettre où ( por repsecter la hiérarchie )

Voilà le mien :

Code:
RewriteEngine On
RewriteRule ^index\-([0-9]*)\.html$ /forum/index.php?c=$1 [L]
RewriteRule ^forum\-([0-9]*)\.html$ /forum/viewforum.php?f=$1 [L]
RewriteRule ^forum\-([0-9]*)\-([0-9]*)\-([0-9]*)\.html$ /forum/viewforum.php?f=$1&topicdays=$2&start=$3 [L]
RewriteRule ^sujet\-([0-9]*)\.html$ /forum/viewtopic.php?t=$1 [L]
RewriteRule ^sujet\-([0-9]*)\-([0-9]*)\.html$ /forum/viewtopic.php?t=$1&start=$2 [L]
RewriteRule ^sujet\-([0-9]*)\(([^()]*)\)\.html$ /forum/viewtopic.php?t=$1&highlight=$2 [L]
RewriteRule ^sujet\-([0-9]*)\-([0-9]*)\-([0-9]*)\-([a-zA-Z]*)\.html$ /forum/viewtopic.php?t=$1&start=$2&postdays=$3&postorder=$4 [L]
RewriteRule ^sujet\-([0-9]*)\-([0-9]*)\-([0-9]*)\-([a-zA-Z]*)\(([^()]*)\)\.html$ /forum/viewtopic.php?t=$1&start=$2&postdays=$3&postorder=$4&highlight=$5 [L]
RewriteRule ^vsujet\-([0-9]*)\.html$ /forum/viewtopic.php?p=$1 [L]
RewriteRule ^prec\-sujet\-([0-9]*)\.html$ /forum/viewtopic.php?t=$1&view=previous [L]
RewriteRule ^suiv\-sujet\-([0-9]*)\.html$ /forum/viewtopic.php?t=$1&view=next [L]
RewriteRule ^profil\-([0-9]*)\.html$ /forum/profile.php?mode=viewprofile&u=$1 [L]
RewriteRule ^categorie\-([0-9]*)\.html$ /forum/index.php\?c=$1 [L]

Voilou, merci :)
 
WRInaute passionné
Bon, j'ai juste un petit problème maintenant ( je me débrouillerai pour le htaccess )

J'ai des topics avec des crochets, guillemets, etc, qui changent de couleur ..

Pourquoi les spans sont - ils mis dans l'URL ? Ce serait possible de les supprimer ?

Exemple : -http://www.aidoforum.com/forum/2410_0-span-style-color-green-nouveaute-span-postez-vos-tutoriaux-sur-aidoforum.html
Je vousdrais supprimer le span-style-color-green ..

possible ? ;)

Merci
 
WRInaute passionné
J'avais pensé à un strtr qui remplacerait les span , green et autres style par rien du tout .. mais en un c'est gênant si le titre d'un topic en comporte, et ca laisserait tout plein de - - - dans l'url ..

Donc j'attends ta modif, merci :mrgreen:
 
Nouveau WRInaute
bonjour,
Avec la premiéres version de ce mod, sur mon herbergeur celeonet sa marche sans problémes, mais chez changer d'hebergeur et j'ai cette erreur!

The requested URL /viewforum.php was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.


Comment sa se fait? J'ai contacter le support et il m'on dis que cela n'avait rien avoir avec le serveur, quelqu'un serait m'aider?
Merci, Keupsonite.

Le Site En Question: Ici
 
WRInaute passionné
keupsonite a dit:
bonjour,
Avec la premiéres version de ce mod, sur mon herbergeur celeonet sa marche sans problémes, mais chez changer d'hebergeur et j'ai cette erreur!

The requested URL /viewforum.php was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.


Comment sa se fait? J'ai contacter le support et il m'on dis que cela n'avait rien avoir avec le serveur, quelqu'un serait m'aider?
Merci, Keupsonite.

Le Site En Question: Ici
Essaie sans les "/" dans tes règles de réécriture :
viewforum.php au lieu de /viewforum.php :wink:
 
Nouveau WRInaute
Dj_Apx a dit:
keupsonite a dit:
bonjour,
Avec la premiéres version de ce mod, sur mon herbergeur celeonet sa marche sans problémes, mais chez changer d'hebergeur et j'ai cette erreur!

The requested URL /viewforum.php was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.


Comment sa se fait? J'ai contacter le support et il m'on dis que cela n'avait rien avoir avec le serveur, quelqu'un serait m'aider?
Merci, Keupsonite.

Le Site En Question: Ici
Essaie sans les "/" dans tes règles de réécriture :
viewforum.php au lieu de /viewforum.php :wink:

Dans le .htaccess?
Merci, Keupsonite.
 
WRInaute passionné
keupsonite a dit:
Dj_Apx a dit:
keupsonite a dit:
bonjour,
Avec la premiéres version de ce mod, sur mon herbergeur celeonet sa marche sans problémes, mais chez changer d'hebergeur et j'ai cette erreur!

The requested URL /viewforum.php was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.


Comment sa se fait? J'ai contacter le support et il m'on dis que cela n'avait rien avoir avec le serveur, quelqu'un serait m'aider?
Merci, Keupsonite.

Le Site En Question: Ici
Essaie sans les "/" dans tes règles de réécriture :
viewforum.php au lieu de /viewforum.php :wink:

Dans le .htaccess?
Merci, Keupsonite.
Oui, dans le .htaccess :wink:
Excuse-moi, je n'aime pas employer des anglicismes comme "Rewrite Rule" quand le français est beaucoup moins barbare pour dire la même chose. :)
 
Nouveau WRInaute
Dj_Apx a dit:
keupsonite a dit:
Dj_Apx a dit:
keupsonite a dit:
bonjour,
Avec la premiéres version de ce mod, sur mon herbergeur celeonet sa marche sans problémes, mais chez changer d'hebergeur et j'ai cette erreur!

The requested URL /viewforum.php was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.


Comment sa se fait? J'ai contacter le support et il m'on dis que cela n'avait rien avoir avec le serveur, quelqu'un serait m'aider?
Merci, Keupsonite.

Le Site En Question: Ici
Essaie sans les "/" dans tes règles de réécriture :
viewforum.php au lieu de /viewforum.php :wink:

Dans le .htaccess?
Merci, Keupsonite.
Oui, dans le .htaccess :wink:
Excuse-moi, je n'aime pas employer des anglicismes comme "Rewrite Rule" quand le français est beaucoup moins barbare pour dire la même chose. :)

J'ai fais comme tu ma dis, maintenant j'ai cette erreurs:

Not Found
The requested URL /home/keupsonite/public_html/forum/viewforum.php was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
 
WRInaute passionné
keupsonite a dit:
J'ai fais comme tu ma dis, maintenant j'ai cette erreurs:

Not Found
The requested URL /home/keupsonite/public_html/forum/viewforum.php was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Pourtant -http://66.246.229.3/~keupsonite/forum/viewforum.php existe, je viens de tester.
essaie avec
/forum/viewtopic.php
forum/viewtopic.php

...
 
WRInaute passionné
achtungbaby a dit:
C'est quoi easymod ?
Un programme qui installe les MODs de façon automatisée.

nautiljon, il faut que tu fasses une mise à jour manuelle (tu cherches le sujet de leur forum où ils indiquent les modifs à faire dans le code source, et soit tu les easymoddes, soit tu le fais avec notepad ou wordpad) :wink:
 
WRInaute discret
hein, euh, quel forum ?
Personne a déjà fait une upgrade d'un phpbb ayant des mods ? je pense que dans l'upgrade il va remplacer des fichiers que le mod pour avoir le titre dans l'url avait modifier. Donc le mieux c'est de faire quoi ? ecraser les fichiers modif par le mod puis rééxecuter le mode par derrière ?
 
WRInaute accro
j'utilise cette version que j'ai conservé :


mi à jour le 4 avril 2005 à 23 h 50

Kaizen a dit:
Bonjour,

Je me suis inspiré de vos posts et de vos remarques sur https://www.webrankinfo.com/forum/t/le-nom-du-titre-dans-lurl-de-votre-forum-phpbb.24693/ pour faire le mod ci-joint.

Par rapport aux mod poposé par Ohax, dont j'ai repris et adapté une partie du code (.htaccess en particulier) :
  • vitesse de traitement amélorée
  • les chiffres contenus dans un titre sont conservés dans l'url
  • le titre apparait sur toutes les pages (celles de type viewtopic.php?t=74505&start=8595 n'étaient pas prisent en charge)

Je n'ai pas traité les aspect SID ni optimistation par supression des liens inutiles pour les invités. Le mod Able2Know.com SEO -http://www.able2know.com/forums/viewtopic.php?t=15132 le fait très bien, bien qu'on puisse aller plus loin encore (contactez-moi si vous êtes interessés)


Un grand merci à Ohax, j'aprécie l'esprit dans lequel tu partages ton travail. ;-)
J'aimerai avoir votre avis sur "la chose". Il serait sympa de faire évoluer le concept pour arriver à quelque chose de poussé.

Code:
############################################################## 
## MOD Title: Search Engine Friendly URLs with Title
## MOD Author: Kaizen < webmaster at teamatic dot net > (Kaizen) http://www.teamatic.net 
## MOD Description: Change urls like viewtopic.php?t=xxxxxx to ftopicxxxxx--title-of-the-topic.html
## 					wich give better search engine visibility
## MOD Version: 0.1.0
## 
## Installation Level: (Intermediate) 
## Installation Time: 10 Minutes 
## Files To Edit: 	includes/functions.php,
##					includes/page_header.php,
##					includes/page_tail,
##					viewforum.php
##					viewtopic.php
##					
## Included Files: (n/a) 
############################################################## 
## For Security Purposes, Please Check: http://www.phpbb.com/mods/ for the 
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code 
## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered 
## in our MOD-Database, located at: http://www.phpbb.com/mods/ 
############################################################## 
## Author Notes: 
## 
## This is BETA version ! Use it at your own risks
##
## In order to improve indexing, you should also take a look to :
##		Able2Know.com SEO - http://www.able2know.com/forums/viewtopic.php?t=15132
## 
## This mod is inspired by and use code shared by the following persons :
## 		Dr DLP 	-	http://forums.phpbb-fr.com/viewtopic_39629.html
## 		Ohax	-	https://www.webrankinfo.com/forum/t/le-nom-du-titre-dans-lurl-de-votre-forum-phpbb.24693/
## Thanks to them.
## 
############################################################## 
## MOD History: 
## 
##   2005-04-03 - Version 0.1.0 
##      - first beta published
## 
############################################################## 
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD 
##############################################################

##############################################################
# Create a file named .htaccess in your forum folder 
# 
# Assuming you phpBB folder is mysite.com/forum use this code (without the "# ")
#
# RewriteEngine On 
# RewriteRule ^forums.* /forum/index.php 
# RewriteRule ^mforum([0-9]*).* /forum/viewforum.php?f=$1&mark=topics 
# RewriteRule ^viewforum([0-9]*)-([0-9]*)-([0-9]*).* /forum/viewforum.php?f=$1&topicdays=$2&start=$3 
# RewriteRule ^forum([0-9]*).* /forum/viewforum.php?f=$1 
# RewriteRule ^ptopic([0-9]*).* /forum/viewtopic.php?t=$1&view=previous 
# RewriteRule ^ntopic([0-9]*).* /forum/viewtopic.php?t=$1&view=next 
# RewriteRule ^stopic([0-9]*)-([0-9]*).* /forum/viewtopic.php?t=$1&watch=topic&start=$2 
# RewriteRule ^utopic([0-9]*)-([0-9]*).* /forum/viewtopic.php?t=$1&unwatch=topic&start=$2 
# 
# RewriteRule ^ftopic([0-9]*)--([0-9]*)--([a-zA-Z]*)--([0-9]*)--.* /forum/viewtopic.php?t=$1&postdays=$2&postorder=$3&start=$4 
# RewriteRule ^ftopic([0-9]*)--([0-9]*)--.* /forum/viewtopic.php?t=$1&start=$2 
# RewriteRule ^ftopic([0-9]*)--.* /forum/viewtopic.php?t=$1 
# RewriteRule ^ftopic([0-9]*)--.html /forum/viewtopic.php?t=$1&start=$2&postdays=$3&postorder=$4&highlight=$5 
# 
# RewriteRule ^setopic([0-9]*)-([a-zA-Z0-9]*).* /forum/viewtopic.php?t=$1&highlight=$2 
# RewriteRule ^sutra([0-9]*).* /forum/viewtopic.php?p=$1 
# RewriteRule ^newtopic([0-9]*).* /forum/viewtopic.php?t=$1&view=newest
#
##############################################################

# 
#-----[ OPEN ]------------------------------------------ 
#
includes/functions.php

# 
#-----[ FIND ]------------------------------------------ 
#
function generate_pagination($base_url, $num_items, $per_page, $start_item, $add_prevnext_text = TRUE)
{
	global $lang;

	$total_pages = ceil($num_items/$per_page);

	if ( $total_pages == 1 )
	{
		return '';
	}

	$on_page = floor($start_item / $per_page) + 1;

	$page_string = '';
	if ( $total_pages > 10 )
	{
		$init_page_max = ( $total_pages > 3 ) ? 3 : $total_pages;

		for($i = 1; $i < $init_page_max + 1; $i++)
		{
			$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . append_sid($base_url . "&amp;start=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a>';
			if ( $i <  $init_page_max )
			{
				$page_string .= ", ";
			}
		}

		if ( $total_pages > 3 )
		{
			if ( $on_page > 1  && $on_page < $total_pages )
			{
				$page_string .= ( $on_page > 5 ) ? ' ... ' : ', ';

				$init_page_min = ( $on_page > 4 ) ? $on_page : 5;
				$init_page_max = ( $on_page < $total_pages - 4 ) ? $on_page : $total_pages - 4;

				for($i = $init_page_min - 1; $i < $init_page_max + 2; $i++)
				{
					$page_string .= ($i == $on_page) ? '<b>' . $i . '</b>' : '<a href="' . append_sid($base_url . "&amp;start=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a>';
					if ( $i <  $init_page_max + 1 )
					{
						$page_string .= ', ';
					}
				}

				$page_string .= ( $on_page < $total_pages - 4 ) ? ' ... ' : ', ';
			}
			else
			{
				$page_string .= ' ... ';
			}

			for($i = $total_pages - 2; $i < $total_pages + 1; $i++)
			{
				$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>'  : '<a href="' . append_sid($base_url . "&amp;start=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a>';
				if( $i <  $total_pages )
				{
					$page_string .= ", ";
				}
			}
		}
	}
	else
	{
		for($i = 1; $i < $total_pages + 1; $i++)
		{
			$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . append_sid($base_url . "&amp;start=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a>';
			if ( $i <  $total_pages )
			{
				$page_string .= ', ';
			}
		}
	}

	if ( $add_prevnext_text )
	{
		if ( $on_page > 1 )
		{
			$page_string = ' <a href="' . append_sid($base_url . "&amp;start=" . ( ( $on_page - 2 ) * $per_page ) ) . '">' . $lang['Previous'] . '</a>&nbsp;&nbsp;' . $page_string;
		}

		if ( $on_page < $total_pages )
		{
			$page_string .= '&nbsp;&nbsp;<a href="' . append_sid($base_url . "&amp;start=" . ( $on_page * $per_page ) ) . '">' . $lang['Next'] . '</a>';
		}

	}

	$page_string = $lang['Goto_page'] . ' ' . $page_string;

	return $page_string;
}
# 
#-----[ REPLACE WITH ]------------------------------------------ 
#

// Start Search Engine Friendly URLs with title mod
function generate_pagination($base_url, $num_items, $per_page, $start_item, $add_prevnext_text = TRUE, $url_title = "")
{
	global $lang;

	$total_pages = ceil($num_items/$per_page);

	if ( $total_pages == 1 )
	{
		return '';
	}

	$on_page = floor($start_item / $per_page) + 1;

	$page_string = '';
	if ( $total_pages > 10 )
	{
		$init_page_max = ( $total_pages > 3 ) ? 3 : $total_pages;

		for($i = 1; $i < $init_page_max + 1; $i++)
		{
			$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . append_sid($base_url . "&amp;start=" . ( ( $i - 1 ) * $per_page ) ) . ($url_title != "" ? "&amp;url_title=" . $url_title : "") .'">' . $i . '</a>';
			if ( $i <  $init_page_max )
			{
				$page_string .= ", ";
			}
		}

		if ( $total_pages > 3 )
		{
			if ( $on_page > 1  && $on_page < $total_pages )
			{
				$page_string .= ( $on_page > 5 ) ? ' ... ' : ', ';

				$init_page_min = ( $on_page > 4 ) ? $on_page : 5;
				$init_page_max = ( $on_page < $total_pages - 4 ) ? $on_page : $total_pages - 4;

				for($i = $init_page_min - 1; $i < $init_page_max + 2; $i++)
				{
					$page_string .= ($i == $on_page) ? '<b>' . $i . '</b>' : '<a href="' . append_sid($base_url . "&amp;start=" . ( ( $i - 1 ) * $per_page ) ) . ($url_title != "" ? "&amp;url_title=" . $url_title : "") . '">' . $i . '</a>';
					if ( $i <  $init_page_max + 1 )
					{
						$page_string .= ', ';
					}
				}

				$page_string .= ( $on_page < $total_pages - 4 ) ? ' ... ' : ', ';
			}
			else
			{
				$page_string .= ' ... ';
			}

			for($i = $total_pages - 2; $i < $total_pages + 1; $i++)
			{
				$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>'  : '<a href="' . append_sid($base_url . "&amp;start=" . ( ( $i - 1 ) * $per_page ) ) . ($url_title != "" ? "&amp;url_title=" . $url_title : "") . '">' . $i . '</a>';
				if( $i <  $total_pages )
				{
					$page_string .= ", ";
				}
			}
		}
	}
	else
	{
		for($i = 1; $i < $total_pages + 1; $i++)
		{
			$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . append_sid($base_url . "&amp;start=" . ( ( $i - 1 ) * $per_page ) ) . ($url_title != "" ? "&amp;url_title=" . $url_title : "") . '">' . $i . '</a>';
			if ( $i <  $total_pages )
			{
				$page_string .= ', ';
			}
		}
	}

	if ( $add_prevnext_text )
	{
		if ( $on_page > 1 )
		{
			$page_string = ' <a href="' . append_sid($base_url . "&amp;start=" . ( ( $on_page - 2 ) * $per_page ) ) . ($url_title != "" ? "&amp;url_title=" . $url_title : "") . '">' . $lang['Previous'] . '</a>&nbsp;&nbsp;' . $page_string;
		}

		if ( $on_page < $total_pages )
		{
			$page_string .= '&nbsp;&nbsp;<a href="' . append_sid($base_url . "&amp;start=" . ( $on_page * $per_page ) ) . ($url_title != "" ? "&amp;url_title=" . $url_title : "") . '">' . $lang['Next'] . '</a>';
		}

	}

	$page_string = $lang['Goto_page'] . ' ' . $page_string;

	return $page_string;
}
/*
function generate_pagination($base_url, $num_items, $per_page, $start_item, $add_prevnext_text = TRUE)
{
	global $lang;

	$total_pages = ceil($num_items/$per_page);

	if ( $total_pages == 1 )
	{
		return '';
	}

	$on_page = floor($start_item / $per_page) + 1;

	$page_string = '';
	if ( $total_pages > 10 )
	{
		$init_page_max = ( $total_pages > 3 ) ? 3 : $total_pages;

		for($i = 1; $i < $init_page_max + 1; $i++)
		{
			$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . append_sid($base_url . "&amp;start=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a>';
			if ( $i <  $init_page_max )
			{
				$page_string .= ", ";
			}
		}

		if ( $total_pages > 3 )
		{
			if ( $on_page > 1  && $on_page < $total_pages )
			{
				$page_string .= ( $on_page > 5 ) ? ' ... ' : ', ';

				$init_page_min = ( $on_page > 4 ) ? $on_page : 5;
				$init_page_max = ( $on_page < $total_pages - 4 ) ? $on_page : $total_pages - 4;

				for($i = $init_page_min - 1; $i < $init_page_max + 2; $i++)
				{
					$page_string .= ($i == $on_page) ? '<b>' . $i . '</b>' : '<a href="' . append_sid($base_url . "&amp;start=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a>';
					if ( $i <  $init_page_max + 1 )
					{
						$page_string .= ', ';
					}
				}

				$page_string .= ( $on_page < $total_pages - 4 ) ? ' ... ' : ', ';
			}
			else
			{
				$page_string .= ' ... ';
			}

			for($i = $total_pages - 2; $i < $total_pages + 1; $i++)
			{
				$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>'  : '<a href="' . append_sid($base_url . "&amp;start=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a>';
				if( $i <  $total_pages )
				{
					$page_string .= ", ";
				}
			}
		}
	}
	else
	{
		for($i = 1; $i < $total_pages + 1; $i++)
		{
			$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . append_sid($base_url . "&amp;start=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a>';
			if ( $i <  $total_pages )
			{
				$page_string .= ', ';
			}
		}
	}

	if ( $add_prevnext_text )
	{
		if ( $on_page > 1 )
		{
			$page_string = ' <a href="' . append_sid($base_url . "&amp;start=" . ( ( $on_page - 2 ) * $per_page ) ) . '">' . $lang['Previous'] . '</a>&nbsp;&nbsp;' . $page_string;
		}

		if ( $on_page < $total_pages )
		{
			$page_string .= '&nbsp;&nbsp;<a href="' . append_sid($base_url . "&amp;start=" . ( $on_page * $per_page ) ) . '">' . $lang['Next'] . '</a>';
		}

	}

	$page_string = $lang['Goto_page'] . ' ' . $page_string;

	return $page_string;
}
*/
// End Search Engine Friendly URLs with title mod

# 
#-----[ OPEN ]------------------------------------------ 
#
includes/page_header.php

# 
#-----[ FIND ]------------------------------------------ 
#
$template->set_filenames(array(
	'overall_header' => ( empty($gen_simple_header) ) ? 'overall_header.tpl' : 'simple_header.tpl')
);

# 
#-----[ AFTER, ADD ]------------------------------------------ 
#
// Start Search Engine Friendly URLs with title mod
ob_start(); 
function replace_mod_rewrite($s) 
{ 
   $urlin = array( 
      "'(?<!/)viewforum.php\?f=([0-9]*)&amp;topicdays=([0-9]*)&amp;start=([0-9]*)'", 
      "'(?<!/)viewforum.php\?f=([0-9]*)&amp;mark=topics'", 
      "'(?<!/)viewforum.php\?f=([0-9]*)'", 

      "'(?<!/)viewtopic.php\?t=([0-9]*)&amp;view=previous'", 
      "'(?<!/)viewtopic.php\?t=([0-9]*)&amp;view=next'", 
      "'(?<!/)viewtopic.php\?t=([0-9]*)&amp;view=newest'", 
	  "'(?<!/)viewtopic.php\?t=([0-9]*)&(?:amp;)watch=topic&(?:amp;)start=([0-9]*)'", 
	  "'(?<!/)viewtopic.php\?t=([0-9]*)&(?:amp;)unwatch=topic&(?:amp;)start=([0-9]*)'", 
     
	  "'(?<!/)viewtopic.php\?t=([0-9]*)&amp;postdays=([0-9]*)&amp;postorder=([a-zA-Z]*)&amp;start=([0-9]*)&amp;url_title=([a-z0-9_\-]*)'", 
	  "'(?<!/)viewtopic.php\?t=([0-9]*)&amp;start=([0-9]*)&amp;postdays=([0-9]*)&amp;postorder=([a-zA-Z]*)&amp;highlight=([a-zA-Z0-9]*)&amp;url_title=([a-z0-9_\-]*)'", 
      "'(?<!/)viewtopic.php\?t=([0-9]*)&amp;start=([0-9]*)&amp;url_title=([a-z0-9_\-]*)'",
	  "'(?<!/)viewtopic.php\?t=([0-9]*)&amp;url_title=([a-z0-9_\-]*)'",
	  
      "'(?<!/)viewtopic.php\?t=([0-9]*)&amp;highlight=([a-zA-Z0-9]*)'", 
      "'(?<!/)viewtopic.php\?t=([0-9]*)'", 
      "'(?<!/)viewtopic.php\?p=([0-9]*)'"); 

   $urlout = array( 
      "viewforum\\1-\\2-\\3.php", 
      "mforum\\1.php", 
      "forum\\1.php", 

      "ptopic\\1.php", 
      "ntopic\\1.php", 
      "newtopic\\1.php", 
      "stopic\\1-\\2.php", 
      "utopic\\1-\\2.php", 
	  
      "ftopic\\1--\\2--\\3--\\4--\\5.html", 
      "ftopic\\1--\\2--\\3--\\4--\\5\\6.html", 
      "ftopic\\1--\\2--\\3.html",
	  "ftopic\\1--0--\\2.html",
	  
      "setopic\\1-\\2.html", 
      "ftopic\\1.php", 
      "sutra\\1.php"); 

   $s = preg_replace($urlin, $urlout, $s); 
   return $s; 
}
// End Search Engine Friendly URLs with title mod

# 
#-----[ OPEN ]------------------------------------------ 
#
includes/page_tail

# 
#-----[ FIND ]------------------------------------------ 
#
$db->sql_close();

# 
#-----[ FIND ]------------------------------------------ 
#
   $gzip_contents = ob_get_contents(); 
   ob_end_clean(); 

# 
#-----[ AFTER, ADD ]------------------------------------------ 
#
 	// Start Search Engine Friendly URLs with title mod
	echo replace_mod_rewrite($contents); 
   	global $dbg_starttime;
	// End Search Engine Friendly URLs with title mod
	


# 
#-----[ OPEN ]------------------------------------------ 
#
viewforum.php

# 
#-----[ FIND ]------------------------------------------ 
#
if( ( $replies + 1 ) > $board_config['posts_per_page'] )
		{
			$total_pages = ceil( ( $replies + 1 ) / $board_config['posts_per_page'] );
			
# 
#-----[ BEFORE, ADD ]------------------------------------------ 
#			
		// Start Search Engine Friendly URLs with title mod
		$change_space = "-"; 
		$url_title = $topic_title; 
		while ($url_title{0} == $change_space){
			$url_title = substr($url_title,1);
		}
		$url_title=strtolower($url_title); 
		$url_title=strtr($url_title,'áâàäéêèëíîìïóôòöúûùüýçñ','aaaaeeeeiiiioooouuuuycn');
		$url_title=ereg_replace(' ',$change_space,$url_title); 
		$url_title=ereg_replace('[^a-z0-9_\-]','',$url_title);
		$url_title=ereg_replace('--','-',$url_title); 
		// End Search Engine Friendly URLs with title mod

# 
#-----[ FIND ]------------------------------------------ 
#
			for($j = 0; $j < $replies + 1; $j += $board_config['posts_per_page'])
			{
				$goto_page .= '<a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=" . $topic_id . "&amp;start=$j") . '">' . $times . '</a>';

# 
#-----[ REPLACE WITH ]------------------------------------------ 
#
			// Start Search Engine Friendly URLs with title mod
			for($j = 0; $j < $replies + 1; $j += $board_config['posts_per_page'])
			{
				$goto_page .= '<a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=" . $topic_id . "&amp;start=" . $j . "&amp;url_title=" . $url_title ) . '">' . $times . '</a>';
			/*
			for($j = 0; $j < $replies + 1; $j += $board_config['posts_per_page'])
			{
				$goto_page .= '<a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=" . $topic_id . "&amp;start=$j") . '">' . $times . '</a>';
			*/
			// End Search Engine Friendly URLs with title mod

# 
#-----[ FIND ]------------------------------------------ 
#
		$view_topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id");

# 
#-----[ REPLACE WITH ]------------------------------------------ 
#
		// Start Search Engine Friendly URLs with title mod
		$view_topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=" . $topic_id . "&amp;url_title=" . $url_title);
		// $view_topic_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id");
		// End Search Engine Friendly URLs with title mod
		
# 
#-----[ OPEN ]------------------------------------------ 
#
viewtopic.php

# 
#-----[ FIND ]------------------------------------------ 
#
		$pagination = ( $highlight != '' ) ? generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&amp;postdays=$post_days&amp;postorder=$post_order&amp;highlight=$highlight", $total_replies, $board_config['posts_per_page'], $start) : generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&amp;postdays=$post_days&amp;postorder=$post_order", $total_replies, $board_config['posts_per_page'], $start);

# 
#-----[ REPLACE WITH ]------------------------------------------ 
#

		// Start Search Engine Friendly URLs with title mod
		$change_space = "-"; 
		$url_title = $topic_title; 
		while ($url_title{0} == $change_space){
			$url_title = substr($url_title,1);
		}
		$url_title=strtolower($url_title); 
		$url_title=strtr($url_title,'áâàäéêèëíîìïóôòöúûùüýçñ','aaaaeeeeiiiioooouuuuycn');
		$url_title=ereg_replace(' ',$change_space,$url_title); 
		$url_title=ereg_replace('[^a-z0-9_\-]','',$url_title);
		$url_title=ereg_replace('--','-',$url_title); 
		
		$pagination = generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=" . $topic_id, $total_replies, $board_config['posts_per_page'], $start, TRUE, $url_title);
		//$pagination = ( $highlight != '' ) ? generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&amp;postdays=$post_days&amp;postorder=$post_order&amp;highlight=$highlight", $total_replies, $board_config['posts_per_page'], $start) : generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&amp;postdays=$post_days&amp;postorder=$post_order", $total_replies, $board_config['posts_per_page'], $start);
		// End Search Engine Friendly URLs with title mod

# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
# EoM

Kaizen a dit:
Pour changer les liens de type
Code:
ftopicX--titre-de-la-page.html (présent sur la page forumX.html)
pour
Code:
ftopicX-0-titre-de-la-page.html (qui donne la pagination)

Dans includes/page_header.php
Remplacer
Code:
"ftopic\\1--\\2.html"
par
Code:
"ftopic\\1--0--\\2.html"

Je met à jour le mod.



mais j'ai noté un bug plus que déplaisant, les topics qui contiennent un "-" ce voient completemment buggés, les derniers messages postés ce voient placés en première position


y aurait-il un moyen de corriger cela? :'(


merci
 
WRInaute passionné
nautiljon a dit:
hein, euh, quel forum ?
Personne a déjà fait une upgrade d'un phpbb ayant des mods ? je pense que dans l'upgrade il va remplacer des fichiers que le mod pour avoir le titre dans l'url avait modifier. Donc le mieux c'est de faire quoi ? ecraser les fichiers modif par le mod puis rééxecuter le mode par derrière ?
Le forum de phpBB.com :roll:

Sinon, si tu veux faire simple, va sur phpBB.com dans la section downloads et chope les fichiers zip contenant les manip à faire à la main pour mettre à jour (et non pas "installation complète" ou "changed files only") :wink:
 
Nouveau WRInaute
Salut Kaizen,

depuis que j'ai installé la version 0.1.1, j'ai plusieurs erreurs 404.
La première, c'est quand on regarde un topic, le lien en haut de la page qui pointe vers ce même topic donne une 404.
La deuxième, c'est après avoir déplacé ou verrouillé un sujet, dans la page de confirmation, quand je clique sur "Cliquez ici pour retourner au sujet de discussion", j'ai une 404.
C'est pénible à la longue.

PS: je n'ai pas installé la version 2 car certains aspects ne m'intéressent pas pour l'instant.
 
WRInaute passionné
dite moi, j'ai installer ce mode sous les conseil d'ohax, et c super etonant oué

mais juste pour chipoté, j'ai 2 petites choses a modifié :

poyur les url des forum j'ai ce type d'url :

f1_0_0-forum-test-1.html, j'aimerais que le f1_0_0 sois f1-0-0 et qu'il se place a la fin, sois le resultat final : forum-test-1-f1-0-0.html

ça serais quand meme mieu non ? ^^ :)

pour les url des topic j'ai ça : 1_0-bienvenue-agrave-phpbb-2.html

j'aimerais avoir ça aussi : bienvenue-agrave-phpbb-2-1-0.html

On pourais m'aiguiller ? ça serais "tp top" :)

big merci
 
WRInaute accro
Kaizen a dit:
Par rapport aux mod poposé par Ohax, dont j'ai repris et adapté une partie du code (.htaccess en particulier) :
  • vitesse de traitement amélorée
  • les chiffres contenus dans un titre sont conservés dans l'url
  • le titre apparait sur toutes les pages (celles de type viewtopic.php?t=74505&start=8595 n'étaient pas prisent en charge)
  • le titre des forums apparait dans l'url
  • seuls les invités ont des url "re-writées"


:wink:
 
WRInaute passionné
merci Ohax lol :)

mais donc si j'ai bien comprit QUE les msg seront referencé, par les page memberliste, fiche de profile, etc ???

c un peu un manque a gagner lol...
 
WRInaute occasionnel
grrrrrrrrr et moi j'ai passé 2h a essayer d'installer ce superbe truc jusqu'a ce que je m'apercoive que free ne permet pas l'url rewriting........ :-(
Ca m'apprendra à me lancer sans rechercher...
 
WRInaute passionné
enfin je suis tout pres du but la :)

mais le viewforum me pose un reel probleme
les truc qui fo replacer n'existent plus dans le fichier :(


si quelqun pourais m'aider ce serait trop geant ....

Code:
<?php
/***************************************************************************
 *                               viewforum.php
 *                            -------------------
 *   begin                : Saturday, Feb 13, 2001
 *   copyright            : (C) 2001 The phpBB Group
 *   email                : support@phpbb.com
 *
 *   $Id: viewforum.php,v 1.139.2.12 2004/03/13 15:08:23 acydburn Exp $
 *
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/


define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);include_once($phpbb_root_path . 'includes/functions_topics_list.'. $phpEx);

//
// Start initial var setup
//
if ( isset($HTTP_GET_VARS[POST_FORUM_URL]) || isset($HTTP_POST_VARS[POST_FORUM_URL]) )
{
	$forum_id = ( isset($HTTP_GET_VARS[POST_FORUM_URL]) ) ? intval($HTTP_GET_VARS[POST_FORUM_URL]) : intval($HTTP_POST_VARS[POST_FORUM_URL]);
}
else if ( isset($HTTP_GET_VARS['forum']))
{
	$forum_id = intval($HTTP_GET_VARS['forum']);
}
else
{
	$forum_id = '';
}

$start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0;

if ( isset($HTTP_GET_VARS['mark']) || isset($HTTP_POST_VARS['mark']) )
{
	$mark_read = (isset($HTTP_POST_VARS['mark'])) ? $HTTP_POST_VARS['mark'] : $HTTP_GET_VARS['mark'];
}
else
{
	$mark_read = '';
}
//
// End initial var setup
//

//
// Check if the user has actually sent a forum ID with his/her request
// If not give them a nice error page.
//
if ( !empty($forum_id) )
{
	$sql = "SELECT *
		FROM " . FORUMS_TABLE . "
		WHERE forum_id = $forum_id";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql);
	}
}
else
{
	message_die(GENERAL_MESSAGE, 'Forum_not_exist');
}

//
// If the query doesn't return any rows this isn't a valid forum. Inform
// the user.
//
if ( !($forum_row = $db->sql_fetchrow($result)) )
{
	message_die(GENERAL_MESSAGE, 'Forum_not_exist');
}

//
// Start session management
//
$userdata = session_pagestart($user_ip, $forum_id);
init_userprefs($userdata);
//
// End session management
//

//
// Start auth check
//
$is_auth = array();
$is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_row);

if ( !$is_auth['auth_read'] || !$is_auth['auth_view'] )
{
	if ( !$userdata['session_logged_in'] )
	{
		$redirect = POST_FORUM_URL . "=$forum_id" . ( ( isset($start) ) ? "&start=$start" : '' );
		redirect(append_sid("login.$phpEx?redirect=viewforum.$phpEx&$redirect", true));
	}
	//
	// The user is not authed to read this forum ...
	//
	$message = ( !$is_auth['auth_view'] ) ? $lang['Forum_not_exist'] : sprintf($lang['Sorry_auth_read'], $is_auth['auth_read_type']);

	message_die(GENERAL_MESSAGE, $message);
}
//
// End of auth check
//

//
// Handle marking posts
//
if ( $mark_read == 'topics' )
{
	if ( $userdata['session_logged_in'] )
	{
		$sql = "SELECT MAX(post_time) AS last_post 
			FROM " . POSTS_TABLE . " 
			WHERE forum_id = $forum_id";
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql);
		}

		if ( $row = $db->sql_fetchrow($result) )
		{
			$tracking_forums = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) : array();
			$tracking_topics = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) : array();

			if ( ( count($tracking_forums) + count($tracking_topics) ) >= 150 && empty($tracking_forums[$forum_id]) )
			{
				asort($tracking_forums);
				unset($tracking_forums[key($tracking_forums)]);
			}

			if ( $row['last_post'] > $userdata['user_lastvisit'] )
			{
				$tracking_forums[$forum_id] = time();

				setcookie($board_config['cookie_name'] . '_f', serialize($tracking_forums), 0, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']);
			}
		}

		$template->assign_vars(array(
			'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id") . '">')
		);
	}

	$message = $lang['Topics_marked_read'] . '<br /><br />' . sprintf($lang['Click_return_forum'], '<a href="' . append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id") . '">', '</a> ');
	message_die(GENERAL_MESSAGE, $message);
}
//
// End handle marking posts
//

$tracking_topics = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) : '';
$tracking_forums = ( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) ) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) : '';

//
// Do the forum Prune
//
if ( $is_auth['auth_mod'] && $board_config['prune_enable'] )
{
	if ( $forum_row['prune_next'] < time() && $forum_row['prune_enable'] )
	{
		include($phpbb_root_path . 'includes/prune.'.$phpEx);
		require($phpbb_root_path . 'includes/functions_admin.'.$phpEx);
		auto_prune($forum_id);
	}
}
//
// End of forum prune
//

//
// Obtain list of moderators of each forum
// First users, then groups ... broken into two queries
//
$sql = "SELECT u.user_id, u.username 
	FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g, " . USERS_TABLE . " u
	WHERE aa.forum_id = $forum_id 
		AND aa.auth_mod = " . TRUE . " 
		AND g.group_single_user = 1
		AND ug.group_id = aa.group_id 
		AND g.group_id = aa.group_id 
		AND u.user_id = ug.user_id 
	GROUP BY u.user_id, u.username  
	ORDER BY u.user_id";
if ( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not query forum moderator information', '', __LINE__, __FILE__, $sql);
}

$moderators = array();
while( $row = $db->sql_fetchrow($result) )
{
	$moderators[] = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . "=" . $row['user_id']) . '">' . $row['username'] . '</a>';
}

$sql = "SELECT g.group_id, g.group_name 
	FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g 
	WHERE aa.forum_id = $forum_id
		AND aa.auth_mod = " . TRUE . " 
		AND g.group_single_user = 0
		AND g.group_type <> ". GROUP_HIDDEN ."
		AND ug.group_id = aa.group_id 
		AND g.group_id = aa.group_id 
	GROUP BY g.group_id, g.group_name  
	ORDER BY g.group_id";
if ( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not query forum moderator information', '', __LINE__, __FILE__, $sql);
}

while( $row = $db->sql_fetchrow($result) )
{
	$moderators[] = '<a href="' . append_sid("groupcp.$phpEx?" . POST_GROUPS_URL . "=" . $row['group_id']) . '">' . $row['group_name'] . '</a>';
}
	
$l_moderators = ( count($moderators) == 1 ) ? $lang['Moderator'] : $lang['Moderators'];
$forum_moderators = ( count($moderators) ) ? implode(', ', $moderators) : $lang['None'];
unset($moderators);

//
// Generate a 'Show topics in previous x days' select box. If the topicsdays var is sent
// then get it's value, find the number of topics with dates newer than it (to properly
// handle pagination) and alter the main query
//
$previous_days = array(0, 1, 7, 14, 30, 90, 180, 364);
$previous_days_text = array($lang['All_Topics'], $lang['1_Day'], $lang['7_Days'], $lang['2_Weeks'], $lang['1_Month'], $lang['3_Months'], $lang['6_Months'], $lang['1_Year']);

if ( !empty($HTTP_POST_VARS['topicdays']) || !empty($HTTP_GET_VARS['topicdays']) )
{
	$topic_days = ( !empty($HTTP_POST_VARS['topicdays']) ) ? intval($HTTP_POST_VARS['topicdays']) : intval($HTTP_GET_VARS['topicdays']);
	$min_topic_time = time() - ($topic_days * 86400);

	$sql = "SELECT COUNT(t.topic_id) AS forum_topics 
		FROM " . TOPICS_TABLE . " t, " . POSTS_TABLE . " p 
		WHERE t.forum_id = $forum_id 
			AND p.post_id = t.topic_last_post_id
			AND p.post_time >= $min_topic_time"; 

	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not obtain limited topics count information', '', __LINE__, __FILE__, $sql);
	}
	$row = $db->sql_fetchrow($result);

	$topics_count = ( $row['forum_topics'] ) ? $row['forum_topics'] : 1;
	$limit_topics_time = "AND p.post_time >= $min_topic_time";

	if ( !empty($HTTP_POST_VARS['topicdays']) )
	{
		$start = 0;
	}
}
else
{
	$topics_count = ( $forum_row['forum_topics'] ) ? $forum_row['forum_topics'] : 1;

	$limit_topics_time = '';
	$topic_days = 0;
}

$select_topic_days = '<select name="topicdays">';
for($i = 0; $i < count($previous_days); $i++)
{
	$selected = ($topic_days == $previous_days[$i]) ? ' selected="selected"' : '';
	$select_topic_days .= '<option value="' . $previous_days[$i] . '"' . $selected . '>' . $previous_days_text[$i] . '</option>';
}
$select_topic_days .= '</select>';


//
// All announcement data, this keeps announcements
// on each viewforum page ...
//
$sql = "SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_time, p.post_username
	FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . USERS_TABLE . " u2
	WHERE t.forum_id = $forum_id 
		AND t.topic_poster = u.user_id
		AND p.post_id = t.topic_last_post_id
		AND p.poster_id = u2.user_id
		AND t.topic_type = " . POST_ANNOUNCE . " 
	ORDER BY t.topic_priority DESC, t.topic_last_post_id DESC ";
if ( !($result = $db->sql_query($sql)) )
{
   message_die(GENERAL_ERROR, 'Could not obtain topic information', '', __LINE__, __FILE__, $sql);
}

$topic_rowset = array();
$total_announcements = 0;
while( $row = $db->sql_fetchrow($result) )
{
	$topic_rowset[] = $row;
	$total_announcements++;
}

$db->sql_freeresult($result);

//
// Grab all the basic data (all topics except announcements)
// for this forum
//
$sql = "SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time 
	FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2, " . USERS_TABLE . " u2
	WHERE t.forum_id = $forum_id
		AND t.topic_poster = u.user_id
		AND p.post_id = t.topic_first_post_id
		AND p2.post_id = t.topic_last_post_id
		AND u2.user_id = p2.poster_id 
		AND t.topic_type <> " . POST_ANNOUNCE . " 
		$limit_topics_time
	ORDER BY t.topic_type DESC, t.topic_priority DESC, p2.post_time DESC
	LIMIT $start, ".$board_config['topics_per_page'];
if ( !($result = $db->sql_query($sql)) )
{
   message_die(GENERAL_ERROR, 'Could not obtain topic information', '', __LINE__, __FILE__, $sql);
}

$total_topics = 0;
while( $row = $db->sql_fetchrow($result) )
{
	$topic_rowset[] = $row;
	$total_topics++;
}

$db->sql_freeresult($result);

//
// Total topics ...
//
$total_topics += $total_announcements;

//
// Define censored word matches
//
$orig_word = array();
$replacement_word = array();
obtain_word_list($orig_word, $replacement_word);

//
// Post URL generation for templating vars
//
$template->assign_vars(array(
	'L_DISPLAY_TOPICS' => $lang['Display_topics'],

	'U_POST_NEW_TOPIC' => append_sid("posting.$phpEx?mode=newtopic&amp;" . POST_FORUM_URL . "=$forum_id"),

	'S_SELECT_TOPIC_DAYS' => $select_topic_days,
	'S_POST_DAYS_ACTION' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=" . $forum_id . "&amp;start=$start"))
);

//
// User authorisation levels output
//
$s_auth_can = ( ( $is_auth['auth_post'] ) ? $lang['Rules_post_can'] : $lang['Rules_post_cannot'] ) . '<br />';
$s_auth_can .= ( ( $is_auth['auth_reply'] ) ? $lang['Rules_reply_can'] : $lang['Rules_reply_cannot'] ) . '<br />';
$s_auth_can .= ( ( $is_auth['auth_edit'] ) ? $lang['Rules_edit_can'] : $lang['Rules_edit_cannot'] ) . '<br />';
$s_auth_can .= ( ( $is_auth['auth_delete'] ) ? $lang['Rules_delete_can'] : $lang['Rules_delete_cannot'] ) . '<br />';
$s_auth_can .= ( ( $is_auth['auth_vote'] ) ? $lang['Rules_vote_can'] : $lang['Rules_vote_cannot'] ) . '<br />';

if ( $is_auth['auth_mod'] )
{
	$s_auth_can .= sprintf($lang['Rules_moderate'], "<a href=\"modcp.$phpEx?" . POST_FORUM_URL . "=$forum_id&amp;start=" . $start . "&amp;sid=" . $userdata['session_id'] . '">', '</a>');
}

//
// Mozilla navigation bar
//
$nav_links['up'] = array(
	'url' => append_sid('index.'.$phpEx),
	'title' => sprintf($lang['Forum_Index'], $board_config['sitename'])
);

//
// Dump out the page header and load viewforum template
//
define('SHOW_ONLINE', true);
$page_title = $lang['View_forum'] . ' - ' . $forum_row['forum_name'];
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

$template->set_filenames(array(
	'body' => 'viewforum_body.tpl')
);
make_jumpbox('viewforum.'.$phpEx);

$template->assign_vars(array(
	'FORUM_ID' => $forum_id,
	'FORUM_NAME' => $forum_row['forum_name'],
	'MODERATORS' => $forum_moderators,
	'POST_IMG' => ( $forum_row['forum_status'] == FORUM_LOCKED ) ? $images['post_locked'] : $images['post_new'],

	'FOLDER_IMG' => $images['folder'],
	'FOLDER_NEW_IMG' => $images['folder_new'],
	'FOLDER_HOT_IMG' => $images['folder_hot'],
	'FOLDER_HOT_NEW_IMG' => $images['folder_hot_new'],
	'FOLDER_LOCKED_IMG' => $images['folder_locked'],
	'FOLDER_LOCKED_NEW_IMG' => $images['folder_locked_new'],
	'FOLDER_STICKY_IMG' => $images['folder_sticky'],
	'FOLDER_STICKY_NEW_IMG' => $images['folder_sticky_new'],
	'FOLDER_ANNOUNCE_IMG' => $images['folder_announce'],
	'FOLDER_ANNOUNCE_NEW_IMG' => $images['folder_announce_new'],

	'L_TOPICS' => $lang['Topics'],
	'L_REPLIES' => $lang['Replies'],
	'L_VIEWS' => $lang['Views'],
	'L_POSTS' => $lang['Posts'],
	'L_LASTPOST' => $lang['Last_Post'], 
	'L_MODERATOR' => $l_moderators, 
	'L_MARK_TOPICS_READ' => $lang['Mark_all_topics'], 
	'L_POST_NEW_TOPIC' => ( $forum_row['forum_status'] == FORUM_LOCKED ) ? $lang['Forum_locked'] : $lang['Post_new_topic'], 
	'L_NO_NEW_POSTS' => $lang['No_new_posts'],
	'L_NEW_POSTS' => $lang['New_posts'],
	'L_NO_NEW_POSTS_LOCKED' => $lang['No_new_posts_locked'], 
	'L_NEW_POSTS_LOCKED' => $lang['New_posts_locked'], 
	'L_NO_NEW_POSTS_HOT' => $lang['No_new_posts_hot'],
	'L_NEW_POSTS_HOT' => $lang['New_posts_hot'],
	'L_ANNOUNCEMENT' => $lang['Post_Announcement'], 
	'L_STICKY' => $lang['Post_Sticky'], 
	'L_POSTED' => $lang['Posted'],
	'L_JOINED' => $lang['Joined'],
	'L_AUTHOR' => $lang['Author'],

	'S_AUTH_LIST' => $s_auth_can, 

	'U_VIEW_FORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL ."=$forum_id"),

	'U_MARK_READ' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&amp;mark=topics"))
);
//
// End header
//

//
// Okay, lets dump out the page ...
//
//-- mod : split topic type ------------------------------------------------------------------------
//-- add
// adjust the item id
for ($i=0; $i < count($topic_rowset); $i++)
{
	$topic_rowset[$i]['topic_id'] = POST_TOPIC_URL . $topic_rowset[$i]['topic_id'];
}

// set the bottom sort option
$footer = $lang['Display_topics'] . ':&nbsp;' . $select_topic_days . '&nbsp;' . ( !empty($s_display_order) ? $s_display_order : '') . '<input type="submit" class="liteoption" value="' . $lang['Go'] . '" name="submit" />';

// send the list
$allow_split_type = true;
$display_nav_tree = false;
topic_list('TOPICS_LIST_BOX', 'topics_list_box', $topic_rowset, '', $allow_split_type, $display_nav_tree, $footer);


//-- delete

//-- fin mod : split topic type --------------------------------------------------------------------
	$topics_count -= $total_announcements;

	$template->assign_vars(array(
		'PAGINATION' => generate_pagination("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&amp;topicdays=$topic_days", $topics_count, $board_config['topics_per_page'], $start),
		'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $board_config['topics_per_page'] ) + 1 ), ceil( $topics_count / $board_config['topics_per_page'] )), 

		'L_GOTO_PAGE' => $lang['Goto_page'])
	);
//-- mod : split topic type ------------------------------------------------------------------------
//-- delete

//-- fin mod : split topic type -----------------------
//
// Parse the page and print
//
$template->pparse('body');

//
// Page footer
//
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>
 
WRInaute discret
- Quels sont les bugs connus de cette version ?
- Comment faire pour éviter un duplicate content avec des pages déjà indexées ?
 
WRInaute impliqué
hehe

Je suis très interéssé par ce mod, surtout avec les url de la verion 2, mais je me demande si les liens rewrité sont encore utilisables pour un utilisateur logué, histoire qu'il puisse utiliser des liens en dur sur d'autre page du site menant a des parties du forum (du type un lien vers un forum particulier sur la home page qui a tout interetà etre ecrit sous sa forme rewrité pour les backlinks).

Voilà

Et merci Kaizen

+++

dcz


PS : ton mod contient :

Code:
############################################################## 
## For Security Purposes, Please Check: http://www.phpbb.com/mods/ for the 
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code 
## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered 
## in our MOD-Database, located at: http://www.phpbb.com/mods/ 
##############################################################

Mais je n'ai rien trouvé sur phpbb.com, si c'est un oubli, ça vaut le coup de mettre la vrai url que tu choisis pour le support ;)
 
WRInaute discret
c un superbe travail et je tien a féliciter son consepteur :wink:
ma question est comme faire pour avoir un script pour les derniers postes sur ma page d'accueil avec des liens en dure
 
WRInaute discret
Personne ne veut répondre à ma question ? Je suppose pourtant qu'il ya pas mal d'utilisateurs dans le même cas que moi (url déjà rewritées .. mais sans titre) ... Je ne voudrais pas perdre le fruit de un an de référencement .. :(
Ce mod avec able2know et je suppose que tout va être boosté non :) ?
les bugs connus (je pourrais peut-être aider si mes compétences me le permettent .. )
 
WRInaute impliqué
yo

De toutes façon, si tu changes tes url, tu va perdre un bonne partie du fruit de ton année de patience referencementesque !!

Un autre mod super pour aider au referencement : SITEMAP MOD, très simple à adapter à un url rewriting simple. DEMO.

C'est pas dit que l'url dans le titre soit réellement plus efficace, webrankinfo n'en fait pas ;)

++

dcz
 
WRInaute discret
En même temps webrankinfo jouit de très nombreux backlinks, de partenaires de choix au PR élevé, etc. etc.
La comparaison n'est donc pas tout-à-fait possible ;)

le mod proposé consiste simplement à créer un ficher xml des derniers topics .. Or j'ai déjà ça sur mon site :)

Je suis persuadé qu'il y a une possibilité de rajouter des flags dans le .htaccess pour signifier un moved permanently ! mais impossible de retrouver lesquels
 
WRInaute passionné
netsba a dit:
c un superbe travail et je tien a féliciter son consepteur :wink:
ma question est comme faire pour avoir un script pour les derniers postes sur ma page d'accueil avec des liens en dure
cherche le MOD "last topics on index" pour phpBB :wink:
 
WRInaute discret
Dj_Apx a dit:
netsba a dit:
c un superbe travail et je tien a féliciter son consepteur :wink:
ma question est comme faire pour avoir un script pour les derniers postes sur ma page d'accueil avec des liens en dure
cherche le MOD "last topics on index" pour phpBB :wink:

je connais ce mod mais le probleme c que toi tu utilise tjr les memes termes dans tes forums (ex debat-25.hmtl)
alors que ici on parle de libelé dans l'url :evil:

je parle biensure d'1 page hors phpbb (ma page d'acceuil du site)
 
WRInaute passionné
netsba a dit:
Dj_Apx a dit:
netsba a dit:
c un superbe travail et je tien a féliciter son consepteur :wink:
ma question est comme faire pour avoir un script pour les derniers postes sur ma page d'accueil avec des liens en dure
cherche le MOD "last topics on index" pour phpBB :wink:

je connais ce mod mais le probleme c que toi tu utilise tjr les memes termes dans tes forums (ex debat-25.hmtl)
alors que ici on parle de libelé dans l'url :evil:

je parle biensure d'1 page hors phpbb (ma page d'acceuil du site)
Je ne crois pas, non...
Mon topic n° 25 a pour url
http://www.djgwada.com/phpBB2/debat-25- ... iddim.html

C'est la fatigue je suppose ? :wink:
J'ai déjà expliqué plusieurs fois comment on modifiait ce MOD, il me semble, pour obtenir des liens comme ceux qui sont présents sur la page d'accueil de mon site.

De plus, pour afficher des liens phpBB sur une page non-phpBB, tu as le choix, soit de faire les requêtes en base de données toi-même, soit d'ouvrir une session phpBB en haut de ton code php, et utiliser le MOD en question. :wink:
 
WRInaute passionné
Ohax, J'ai repris ton post du : Ven Avr 29, 2005 21:42 , Il ne manque pas quelque chose ?

#
#-----[ OPEN ]------------------------------------------
#
includes/page_tail

#
#-----[ FIND ]------------------------------------------
#
$db->sql_close();

ICI

#
#-----[ FIND ]------------------------------------------
#
$gzip_contents = ob_get_contents();
ob_end_clean();

#
#-----[ AFTER, ADD ]------------------------------------------
#
// Start Search Engine Friendly URLs with title mod
echo replace_mod_rewrite($contents);
global $dbg_starttime;
// End Search Engine Friendly URLs with title mod

[EDIT] ceci dit, le mod fonctionne pour moi [/EDIT]
 
WRInaute passionné
après vérif, il semble ne me rester qu'un petit soucis sur le titre affiché dans la page (pas dans l'url) voir ci-dessous :

topic.gif


Vous voyez d'ou cela peut venir ?

De plus j'aimerai remplacer
le " ' " par un " - " dans l'url au lieu de le supprimer.
de même remplacer le guillement (") qui s'affiche "quote" une fois rewrité par un " - " aussi.

Je présume que ça doit se situer également sur le viewforum et viewtopic à ce niveau
// Start Search Engine Friendly URLs with title mod
$change_space = "-";
$url_title = $topic_title;
while ($url_title{0} == $change_space){
$url_title = substr($url_title,1);
}
$url_title=strtolower($url_title);
$url_title=strtr($url_title,'áâàäéêèëíîìïóôòöúûùüýçñ','aaaaeeeeiiiioooouuuuycn');
$url_title=ereg_replace(' ',$change_space,$url_title);
$url_title=ereg_replace('[^a-z0-9_\-]','',$url_title);
$url_title=ereg_replace('--','-',$url_title);

Mais je ne sais pas que remplacer.

J'espère qu'une fois cette correction effectuée, et un sitemap derrière, mon forum se refera reindexer.
 
WRInaute passionné
tu va dans viewtopic_body.tpl et tu vire le lien

:roll: Ouai, dans le fond tu as raison. Ce n'est qu'un titre, il n'est pas necesaire de créer un lien sur la même page.

Et pour le reste tu as une idée ?
 
WRInaute accro
Après

$url_title=ereg_replace('--','-',$url_title);

ajoute

$url_title=ereg_replace('"','-',$url_title);

sinon essaye

$url_title=ereg_replace('/"','-',$url_title);

ou

$url_title=ereg_replace('/"','-',$url_title);



car je croi que le caractère " pose un problème

dans la version que j'avai publié : https://www.webrankinfo.com/forum/t/le-nom-du-titre-dans-lurl-de-votre-forum-phpbb.24693/

j'avai mi

$sujet_nom=ereg_replace('"','',$sujet_nom);

dans ton cas ça devrait être

$sujet_nom=ereg_replace('"','-',$sujet_nom);

mais vu que kaizen na pas gardé le même nom de variable :

$url_title=ereg_replace('"','-',$url_title);



essaye tu verras bien si ça marche :-)

kaizen a gardé quasimment la même structure donc ça ne devrait pas poser de problème ;-)
 
WRInaute passionné
Bon, après moultes essais, j'ai résolu le problème du "
en fait, une fois rexrité, il affichait "quot" exemple "coucou" devenait quotcoucouqote j'ai au final ajouté :

$url_title=ereg_replace('quot','',$url_title);

Ce qui au final me vire le quot

certes si je viens a ecrire un sujet type "forts quotas de...", l'url sera fort-as-de mais peu de mot de la langue française commence par quot.

par contre, toujours pas de solution pour le probleme de l'apostrophe

PS: j'ai essayé tes solutions Ohax.
 
WRInaute passionné
mais bon ça te fait 2 remplacemments d'affilés

Certes mais c'est toujours mieux que de zapper un mot certainement important (puisque entre guillemets) du point de vue référencement :D

quel problème de apostrophe ?

et bien lorsqu'un mot du titre contien un apostrophe, celui-ci une fois rewrité disparrait dans l'url

exemple : titre = Un clin d'oeil à l'alchimie
devient en url = ftopic99999--0--un-clin-doeil-a-lalchimie.html.

Donc ni oeil, ni alchimie ne sont "reconnaissable" par google hors c'est un peu le but de ce mod :?
 
WRInaute passionné
pour le guillemet, il faudrait remplacer &quote; par "-"
Et le faire tout au début des remplacements

Effectivement.

J'avais fait l'essai tout a l'heure mais je ne l'avais placé qu'en fin de remplacement, et ça ne fonctionnais pas. Là je l'ai juste après
while ($url_title{0} == $change_space){
$url_title = substr($url_title,1);
}

et c'est nickel, merci Dj_Apx :wink:

reste l'apostrophe.

Dans un même temps, je modifie le générateur de sitemap de Mumuri pour integrer la pagination (ftopic999--0--titre-dans-lurl) et mon format de rewritting :
.../ftopic--0--titre-dans-lurl.html
au lieu de
.../titre-dans-lurl-vt999.html

[EDIT] Erreur, ce n'est pas le script e Mumuri que j'utilise mais le MOD Sitemap pour phpBB [/EDIT]
 
Nouveau WRInaute
Tyr Ur a dit:
Bonsoir

sur le mod de Kaizen
dans functions.php

$url_title = preg_replace("/(>|<|"|&)/",$change_space,$url_title);

, il me retourne un parse error unexpected &, je ne vois pas quelle police de caractère doit fonctionner ?

puis c'est au tour

$url_title = preg_replace("/[^a-z0-9_\-]/",$change_space,$url_title)

il ne veut pas des crochets, il me retourne un parse error [

je fais les modifs avec DMX

que se passe-t-il svp ?

Merci
 
WRInaute passionné
eh oui si tu mets un guillemet ouvrant
Code:
"
puis nimporte quoi
Code:
/(>|<|
puis encore un guillemet
Code:
"
évidemment que le deuxième guillemet va être considéré comme un guillemet fermant, et php va forcément râler quand tu rajoutes des caractères
Code:
|&)/",$change_space,$url_title);
sans queue ni tête pour lui.


Il faut échapper les guillemets non fermants par une barre oblique inversée (\" au lieu de ").
 
Nouveau WRInaute
ok merci j'essaierais comme tu dis, mais je n'ai fait qu'un copier coller aveugle sans modif d'un mod destiné à phpbb et qui doit fonctionner.
 
Nouveau WRInaute
Hello,

je viens de tenter l'install de SEF_URLs+Title_mod_v0.2.2 qui a l'air TRES interressant, malheureusement pour moi lors de la première modif ca foire en beauté à cause du mod PCP :? (m'a déjà bien embeté ce mod là)

Existe t'il une solution pour ceux qui ont ce mod ??

Je dois dire qu'un oui me dépannerait bien :D huhu

Bonne soirée
 
WRInaute accro
l'url que tu as construite sera trés difficile (voir impossible) à indexer

il suffisait de suivre à la lettre les indications car là je voit vraiment pas ce que tu as fait pour rajouter une variable dans l'url de cette manière
 
WRInaute impliqué
une autre solution

url rewriting + titres pour phpbb v2 + complete SEO toolkit

Bonjour,

Ce mod est assez semblable à tous ceux qui incluent le titre des posts et forums dans l'url mais il a la particularité d'être associé à tout un tas d'autre mod d'optimisation de référencement comme :

- une sitemap google rewrité ;
- un mod qui gère les erreurs (404 etc);
- un mod archive (permettant d'associer encore une serie de liens dur vers les sujets);
- une version de topic anywhere rewrité qui permet de delivrer des liens java script ou RSS sur nimporte quel page web;


Il m'a donc paru interessant de commencer un sujet à ce propos sur webrakinfo.

++

dcz
 
WRInaute discret
imposible de mettre le sitemap de seo avec le mod de ce topic??? ca marche ou pas?? il ya des modifications a faire??

bq de questions mais qui ont leur importance!!
 
WRInaute discret
bonjour a tous,

j'ai installé la version 0.22 qui marche bien. mais voila, j'ai un portail internet(CMS) et dans ma page d'accueil j'ai un module qui appel les derniers messages de forums et je sais pas comment les rewritées??

le site: http://www.tamazight.biz
 
Nouveau WRInaute
Ohax a dit:
l'url que tu as construite sera trés difficile (voir impossible) à indexer
il suffisait de suivre à la lettre les indications car là je voit vraiment pas ce que tu as fait pour rajouter une variable dans l'url de cette manière

Ben je ne sais pas pourquoi, j 'ai commencé directement avec le mod de Kaizen !! Bon alors, j'ai tout désinstallé et je recommence à zéro

J'ai repris le mod de dr Dlp
http://forums.phpbb-fr.com/viewtopic_39629.html puis ton post https://www.webrankinfo.com/forum/t/le-nom-du-titre-dans-lurl-de-votre-forum-phpbb.24693/
là j'obtiens bien le titre du post dans l'url, çà c'est bon.

me reste à rebidouiller pour enlever les underscores.

et dernière chose pourquoi le sujet d'un post n'apparaît pas en titre de page ?

Merci pour l'aide apportée en tout cas

Excellente journée
 
Nouveau WRInaute
Tyr Ur a dit:
Pourquoi le sujet d'un post n'apparaît pas en titre de page ? dans l'url rewritting donné par Dr DLP et Ohax

le titre se met bien dans l'url mais je n'ai pas le titre du post en titre de page

Si jamais vous savez ou bien si vous pouvez me dire où chercher, surtout n'hésitez pas ! ;)
 
WRInaute passionné
Ton fichier templates/Desert/overall_header.tpl
contient ceci :
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html dir="{S_CONTENT_DIRECTION}">
<head>
<meta http-equiv="Content-Type" content="text/html; charset={S_CONTENT_ENCODING}">
<meta http-equiv="Content-Style-Type" content="text/css">
<title>Le Forum de Sagesse Primordiale : Débats, pensées, échanges, citations, Sagesse et Amour</title>
Remplace par :
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html dir="{S_CONTENT_DIRECTION}">
<head>
<meta http-equiv="Content-Type" content="text/html; charset={S_CONTENT_ENCODING}">
<meta http-equiv="Content-Style-Type" content="text/css">
<title>{PAGE_TITLE} sur {SITENAME}</title>
et ça devrait marcher.
 
Nouveau WRInaute
IMPECC , enfin

Un grand merci Dj_Apx, je ne pouvais pas trouver, je ne parle ni le .tpl ni le php couramment

Je vais pouvoir passer à autre chose !
 
Discussions similaires
Haut