Help - Search - Member List - Calendar
Full Version: [Traité]URL rewritting et SDK
IPBR-FR > Entraide > Forums dédiés aux mods majeures > IPB SDK
jona
Salut à tous,

Quelqu'un aurait t'il une idée pour faire une URL rewritting avec le SDK sur ce code la :

CODE

<?
require_once "forums/sdk/ipbsdk_class.inc.php"; // Include SDK Functions and Files
$SDK =& new IPBSDK();
if ($topics = $SDK->list_forum_topics ($forumid, array("limit" => "20", "start" => "0", "order" => "desc", "orderby" => "start_date"), TRUE)) {
if (count($topics)) {
 foreach ($topics as $i) {
    echo '<img src="images/newpost11px.gif"><a href="http://www.fousdexbox.com/a_actu_topic.php?num='.$i['tid'].'"target="_blank">'.$i['title'].'</a><br />';
 }
}
}
else {
echo 'Erreur: '.$SDK->sdk_error();
}
?>


D'avance merci
jona
Pour rappel une URL rewriting permet de tranformer :

ce lien
QUOTE
http://www.fousdexbox.com/a_actu_topic.php?num=1910


en
QUOTE
http://www.fousdexbox.com/xbox360-seagate-1910.html


Le tout à la volée
Fabien
Je ne comprend pas vraiment le problème.

Il suffit de faire la réécriture comme pour tout autre script smile.gif
jona
Justement mon problème est bien la réécriture. Car dans ce cas précis il faut réecrire la ligne de code qui donne le liens mais aussi crée un fichier htacces qui redécode le tout à la volé.

Et comme j'ai pas tout pigé comment faire pour faire l'URL rewriting. Je me suis dit peut être quelqu'un l'as déjà fait sur un forum IPB sur la base technique du SDK.

Voici quelques adresses qui explique ce qu'est une URL rewriting

http://www.webmaster-experience.net

www.webrankinfo.com (forum)

L'idée dans mon cas est de tranformer l'adresse qui s'affiche normalement par le titre du post grace au SDK. Je chope bien sûr le titre du post sans soucis avec ce code grâce au SDK
CODE
$i['title'].

Mais comment donner comm nom de la page virtuelle, le titre du post en question et comment le faire interpreter par un htaccess ensuite...

C'est plus clair la ?

A ce qui se demanderait pourquoi tant de complication sachez que l'objectif est d'être mieux référencé par les moteurs de recherche.
Fabien
Au niveau du code php, je mettrai ça :
CODE

<?
require_once "forums/sdk/ipbsdk_class.inc.php"; // Include SDK Functions and Files
$SDK =& new IPBSDK();
if ($topics = $SDK->list_forum_topics ($forumid, array("limit" => "20", "start" => "0", "order" => "desc", "orderby" => "start_date"), TRUE)) {
if (count($topics)) {
 foreach ($topics as $i) {
    echo '<img src="images/newpost11px.gif"><a href="'.$i['title'].'-'.$i['tid'].'.html" target="_blank">'.$i['title'].'</a><br />';
 }
}
}
else {
echo 'Erreur: '.$SDK->sdk_error();
}
?>


Pour le .htaccess, je mettrai ça :
CODE
RewriteEngine On

RewriteRule ^(.*)-([0-9]*)\.html$ a_actu_topic.php?num=$2
jona
je vais l'essayer cela et je te dis.

Merci
jona
Ca fonctionne merci reste plus qu'a résoudre le soucis des espaces dans les liens car il transforme un espace dans le titre par "%20". Et aussi les accents dans les titres.

J'ai une petite idée sur le sujet je vais essayer si ca marche j'éditerais ce post pour dire comment faire tongue.gif
Fabien
Pour les accents, avec la fonction str_replace ça doit se faire. Pour les espaces, je sais pas si avec str_replace ça marche.

Edit: Si tu veux mettre tous les caractères en minuscules, y'a la fonction strtolower.


PS: Je me demande si ce sujet ne devrait pas être déplacé dans "Programmation". unsure.gif
Youp3
QUOTE(Fabien @ samedi 11 juin 2005 à 17:31)
PS: Je me demande si ce sujet ne devrait pas être déplacé dans "Programmation". unsure.gif
*


Le début est en rapport avec le SDK donc non.

La fin est plus litigieuse mais on ne va pas couper le sujet en deux. Il est bien là où il est wink.gif
jona
QUOTE(Fabien @ samedi 11 juin 2005 à 17:31)
Pour les accents, avec la fonction str_replace ça doit se faire. Pour les espaces, je sais pas si avec str_replace ça marche.
*


C'est bie à cela que je pensait quand je disais j'ai une petite idée en fait je pensait à un code dans ce genre :

CODE

function format($a){
 $a = str_replace('é', 'e', $a);
 $b = str_replace('à', 'a', $a);
 $c = str_replace('è', 'e', $b);
 $d = str_replace('ê', 'e', $c);
 $e = str_replace('ë', 'e', $d);
 $f = str_replace(' ', '-', $e);
 /* ... */
 echo $f;
}


reste à l'intégrer ensuite au code provenant du SDK et mes premiers essais sont pas concluant du tout.

Si tu veux voir ce que donne en réeel sans cette fonction d remplacement RDV sur cette page clique sur les liens dans XBOX ou XBOX 360 : www.fousdexbox.com
prolag
Bonjour,
tu a quoi comme probleme donc ?
jona
ce code marche pas avec ma fonction format. J'ai plus aucune liste qui s'affiche :
CODE
<?
function format($a){
$a = str_replace('é', 'e', $a);
$b = str_replace('à', 'a', $a);
$c = str_replace('è', 'e', $b);
$d = str_replace('ê', 'e', $c);
$e = str_replace('ë', 'e', $d);
$f = str_replace(' ', '-', $e);
/* ... */
echo $f;

require_once "forums/sdk/ipbsdk_class.inc.php"; // Include SDK Functions and Files
$SDK =& new IPBSDK();
if ($topics = $SDK->list_forum_topics ($forumid, array("limit" => "20", "start" => "0", "order" => "desc", "orderby" => "start_date"), TRUE)) {
if (count($topics)) {
foreach ($topics as $i) {

   echo '<img src="images/newpost11px.gif"><a href="'format(.$i['title']).'-'.$i['tid'].'.html" target="_blank">'.$i['title'].'</a><br />';
}
}
}

else {
echo 'Erreur: '.$SDK->sdk_error();
}
?>
Fabien
Je comprend pas quoi tu change de variable à chaque fois pour le str_replace.

Essaye ça :
CODE
<?
function format($a){
$a = str_replace('é', 'e', $a);
$a = str_replace('à', 'a', $a);
$a = str_replace('è', 'e', $a);
$a = str_replace('ê', 'e', $a);
$a = str_replace('ë', 'e', $a);
$a = str_replace(' ', '-', $a);
/* ... */
return $a;
}

require_once "forums/sdk/ipbsdk_class.inc.php"; // Include SDK Functions and Files
$SDK =& new IPBSDK();
if ($topics = $SDK->list_forum_topics ($forumid, array("limit" => "20", "start" => "0", "order" => "desc", "orderby" => "start_date"), TRUE)) {
if (count($topics)) {
foreach ($topics as $i) {

   echo '<img src="images/newpost11px.gif"><a href="'.format($i['title']).'-'.$i['tid'].'.html" target="_blank">'.$i['title'].'</a><br />';
}
}

else {
echo 'Erreur: '.$SDK->sdk_error();
}
?>
jona
pour qu'il détecte toute les valeurs à remplacer c'est pas comme ça qu'il faut faire ?

edit: je viens d'essayer ton code ca marche pas. Je n'affiche plus de liste du tout huh.gif
jona
voila ce que donne ton code : code fabien

voila ce que c'est avant ce code : avant ton code
Fabien
QUOTE(jona @ dimanche 12 juin 2005 à 15:20)
pour qu'il détecte toute les valeurs à remplacer c'est pas comme ça qu'il faut faire ?
J'ai encore jamais vu comme ça mais peut être ça marche aussi comme tu as fait smile.gif


QUOTE(jona @ dimanche 12 juin 2005 à 15:27)
voila ce que donne ton code : code fabien

voila ce que c'est avant ce code : avant ton code
*


Tiens, c'est bizarre, y'a même pas de message d'erreur.

Si tu réutilises pas la fonction format, on peut faire comme ça :
CODE
<?php
require_once "forums/sdk/ipbsdk_class.inc.php"; // Include SDK Functions and Files
$SDK =& new IPBSDK();

if ($topics = $SDK->list_forum_topics ($forumid, array("limit" => "20", "start" => "0", "order" => "desc", "orderby" => "start_date"), TRUE))
{
if (count($topics))
{
foreach ($topics as $i)
{
$url = $i['title'];
$url = str_replace('é', 'e', $url);
$url = str_replace('à', 'a', $url);
$url = str_replace('è', 'e', $url);
$url = str_replace('ê', 'e', $url);
$url = str_replace('ë', 'e', $url);
$url = str_replace(' ', '-', $url);

echo '<img src="images/newpost11px.gif"><a href="'.$url.'-'.$i['tid'].'.html" target="_blank">'.$i['title'].'</a><br />';
}
}
}

else
{
echo 'Erreur: '.$SDK->sdk_error();
}

?>
jona
Impect ça marche je met de suite le code sur la bonne page. Il fallait effectivement que j'integre le "str_replace" à l'interrieur du "foreach".

Merci de ton aide biggrin.gif
SnowKhan
salut à tous

je suis également interessé par mettre en place un url rewriting (avec tout comme toi le titre du topic dans l'url avant l'ID) sur mon site (http://www.snow-fr.com) et je voulais te demander iona si tu as utilisé un mod existant ou si tu as tout fait toi de zero. Aurais tu un ou plusieurs liens (francophones si possible, sinon anglophone) pour me filer un coup de pouce ?

merci beaucoup et toutes mes félicitations, je suis passé sur ton site et ça marche impec !
jona
QUOTE(SnowKhan @ vendredi 17 juin 2005 à 12:12)
salut à tous

je suis également interessé par mettre en place un url rewriting (avec tout comme toi le titre du topic dans l'url avant l'ID) sur mon site (http://www.snow-fr.com) et je voulais te demander iona si tu as utilisé un mod existant ou si tu as tout fait toi de zero. Aurais tu un ou plusieurs liens (francophones si possible, sinon anglophone) pour me filer un coup de pouce ?

merci beaucoup et toutes mes félicitations, je suis passé sur ton site et ça marche impec !
*


Je suis partie d'un mod existant pour les news et avec le temps je l'est mis à ma sauce puisqu'il n'évolué plus.

Quel est ton code pour tes news ?
SnowKhan
les news sont générées grace au SDK, je me souviens plus bien mais je crois que ya pas mal de code "home made"

mais quel est le rapport entre les news et l'url rewriting ? sad.gif

si je met en place ce système, ça serait pour tout le site (le portail et tous ses mods créés grâce au sdk, mais aussi et surtout l'intégralité du forum)
jona
QUOTE(SnowKhan @ vendredi 17 juin 2005 à 15:13)
les news sont générées grace au SDK, je me souviens plus bien mais je crois que ya pas mal de code "home made"

mais quel est le rapport entre les news et l'url rewriting ? sad.gif

si je met en place ce système, ça serait pour tout le site (le portail et tous ses mods créés grâce au sdk, mais aussi et surtout l'intégralité du forum)
*


L'url rewritting et pas fait de la même façon sit tu le fait sur un code "home made", sur un prtail provennant d'un mod et sur le forum en lui même.

Bref il te faudra adapter ton code à chaque situation puisqu'il te faudra réecrire le code pour qu'il affiche le type de lien que tu souhaite.

Dans mon cas j'ai juste fait cela pour les news visble depuis le site. Au départ le site était basé sur un mod pour les news. J'ai tranformé ce mod pour faire mon propre code (netoyage des parties donc j'avais pas besoin et écriture selon mon ergonimie...). J'ai ensuite définie de quelle façon je voulais que mes liens apparaisses lorsqu'on clique dessus : titre de la news avec entre chaque mot un"-".

Dans le cas d'un portail il faut rentrer dans le code du portail et modifier tous les endroits où il y a des liens dont tu veux faire de l'url rewrting. (Idem pour le forum). Et la bonjour le taff au départ et je te dis pas en cas de MAj du forum et du portail par leurs auteurs respectif tu va en passer des nuits à tester que tout marche.

Conclusion quand c'est toi qui fait le code pour ton site : no soucis. Si tu veux t'attaquer à un portail ou un fourm et faire de l'URL rewrting si c'est pas les auteurs direct c'est plus complexe à maintenir wink.gif

Maintenant à toi de voir tongue.gif
SnowKhan
c'est bizarre tout à coup je suis moins intéressé par l'url rewriting ! tongue.gif

Merci pour toutes ces infos jona wink.gif
Princess
bonjour,

une question peut être stupide mais est il possible de faire la mm chose sans SDK ? biggrin.gif
jona
QUOTE(Princess @ lundi 18 juillet 2005 à 16:38)
bonjour,

une question peut être stupide mais est il possible de faire la mm chose sans SDK ? biggrin.gif
*


Si tu veux que sur ton forum la réponse est oui. Seulement le hic c'est que il te faudra toucher aux codes du forums avec le risque que lors de mises à jours ou de rajout de mod plus rien ne marche.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2012 Invision Power Services, Inc.