| |
|
| :: |
| Auteur |
Message |
trefle PR1

Inscrit le: 03 Juin 2008 Messages: 173
|
|
| Revenir en haut de page |
|
 |
|
 |
SeO Administrateur - Site Admin

Inscrit le: 15 Mar 2006 Messages: 3712
|
Posté le: Jeu Juil 31, 2008 3:51 pm Sujet du message: Re: Récupérer les urls des derniers sujets dans un autre script |
|
|
| thegigistouch a écrit: |
Qu'entends tu par "ne partage pas le code"?
|
$sql->requete n'est pas une méthode de phpBB, donc, j'en déduis que tu ne cherche pas a afficher cette liste depuis une page de phpBB.
Pour la réécriture, c'est pas tant les cas particulier qui sont compliqué que le cas général avec toutes les options possible.
Regardes dans phpbb_seo_class.php et dans viewtopic.php après :
| Code: | | $topic_id = (int) $topic_data['topic_id']; |
pour voir comment sont appelée les deux méthodes principales de la réécriture, phpbb_seo::format_url et append_sid() :
| Code: | // www.phpBB-SEO.com SEO TOOLKIT BEGIN
if ( empty($phpbb_seo->seo_url['topic'][$topic_id]) ) {
if ($topic_data['topic_type'] == POST_GLOBAL) {
$phpbb_seo->seo_opt['topic_type'][$topic_id] = POST_GLOBAL;
}
$phpbb_seo->seo_censored[$topic_id] = censor_text($topic_data['topic_title']);
$phpbb_seo->seo_url['topic'][$topic_id] = $phpbb_seo->format_url($phpbb_seo->seo_censored[$topic_id]);
}
if ( empty($phpbb_seo->seo_url['forum'][$topic_data['forum_id']]) ) {
$phpbb_seo->seo_url['forum'][$topic_data['forum_id']] = $phpbb_seo->set_url($topic_data['forum_name'], $topic_data['forum_id'], $phpbb_seo->seo_static['forum']);
}
// www.phpBB-SEO.com SEO TOOLKIT END |
ensuite, une url de sujet c'est :
| Code: | | $viewtopic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&t=$topic_id&start=$start); |
Et une de forum :
| Code: | | $viewforum_url = append_sid("{$phpbb_root_path}viewforum.$phpEx", "f=$forum_id&start=$start); |
Pour un résultats réécrit comme il faut à tous les coups. |
_________________ phpBB SEO || SEO Forum || Forum Référencement
GYM Sitemap & RSS for phpBB3 has been released ! || GYM Sitemap & RSS for phpBB3 est disponible ! |
|
| Revenir en haut de page |
|
 |
thegigistouch
Inscrit le: 31 Juil 2008 Messages: 3
|
Posté le: Mer Aoû 06, 2008 8:34 am Sujet du message: Re: Récupérer les urls des derniers sujets dans un autre script |
|
|
Après quelques recherches, voici la fonction de réecriture d'URL recuperée depuis phpbb_seo.class.php.
Attention, dans le cas de mon forum l'adresse est de forme
| Code: | | http://forum.example.org/nom-topic-t22.html | , ce code necessitera donc quelques adaptations pour une autre forme de réecriture...
| Code: |
private function _rewriteUrl($url = "", $type, $firstId, $lastId = ""){
//remove [] from url
$url = preg_replace('`\[.*\]`U','',$url);
//convert html caracters (e -> &ecute;)
$url = htmlentities($url, ENT_COMPAT, "utf-8");
//convert html entities to unaccentuated values (&ecute; -> e)
$url = preg_replace( '`&([a-z]+)(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig);`i', "\\1", $url );
$url_pattern = Array('`&(amp;|#)?[a-z0-9]+;`i',
'`[^a-z0-9]`i',
'`(^|-)[a-z0-9]{1,2}(?=-|$)`i',
'`[-]+`');
$url = preg_replace( $url_pattern , '-', $url);
$url = strtolower(trim($url, '-'));
if ($type == "post") {
$url .= "-t" . $firstId . ".html";
if ($lastId != "")
$url .= "#p" . $lastId;
} else if ($type == "forum") {
$url .= "-f" . $firstId . ".html";
}
return($url);
}
|
La fonction s'appelle de la manière suivante:
| Code: |
$newUrl = _rewriteUrl("Comment tester la fonction de réecriture d'url?","topic", "22","4");
|
et produira le resultat suivant:
| Code: |
/comment-tester-fonction-reecriture-url-t22.html#4
|
Hope it helps!
GiGi |
|
|
| Revenir en haut de page |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 15135
|
|
| Revenir en haut de page |
|
 |
Cam
Inscrit le: 25 Mai 2007 Messages: 27
|
Posté le: Dim Oct 26, 2008 6:36 pm Sujet du message: Re: Récupérer les urls des derniers sujets dans un autre script |
|
|
Bonsoir,
Désolé de faire remonter ce sujet, mais je viens de tomber dessus (via une recherche par google), je souhaite également ajouter les derniers messages postés sur un forum sur le site
Site : -http://www.fond-ecran-gratuit.biz/
Forum : -http://www.fond-ecran-gratuit.biz/forum
Je me suis donc inspiré du code dans le 1er message et je l'ai modifié via les instructions du 2e message
j'ai donc ceci :
| Code: | <?php
// www.phpBB-SEO.com SEO TOOLKIT BEGIN
include('forum/phpbb_seo/phpbb_seo_class.php');
$phpbb_seo = new phpbb_seo();
$phpbb_seo->seo_path['phpbb_script'] = 'forum/';
$phpbb_seo->seo_path['root_url'] = 'http://www.fond-ecran-gratuit.biz/';
$phpbb_seo->seo_path['phpbb_url'] = $phpbb_seo->seo_path['root_url'] . $phpbb_seo->seo_path['phpbb_script'];
$phpbb_seo->seo_url['user'] = $this->seo_static['user'] = 'membre';
// www.phpBB-SEO.com SEO TOOLKIT END
// Connexion à la BDD
$db = .......;
// Sélection des 5 derniers posts
$sql = "SELECT TP.topic_id, TP.topic_title, PT.post_text, PST.post_time, PST.poster_id, PST.post_username, US.username
FROM phpbb_topics TP, phpbb_posts_text PT, phpbb_posts PST, phpbb_users US
WHERE PT.post_id = TP.topic_first_post_id
AND PST.post_id = TP.topic_first_post_id
AND US.user_id = TP.topic_poster
GROUP BY TP.topic_id
ORDER BY TP.topic_id DESC
LIMIT 10";
$req = mysql_query($sql) or die(mysql_error());
// Boucle d'affichage du post
while($db_data = mysql_fetch_assoc($req)) {
// Titre du post
// www.phpBB-SEO.com SEO TOOLKIT BEGIN
$post_title = "<a href=\"" . $phpbb_seo->seo_path['phpbb_url'] . $phpbb_seo->format_url($db_data['topic_title']) . $phpbb_seo->seo_delim['topic'] . $db_data['topic_id'] . $phpbb_seo->seo_ext['topic'] . "\">" . $db_data['topic_title'] . "</a>";
// www.phpBB-SEO.com SEO TOOLKIT END
// Extrait du post
$post = $db_data['post_text'];
$max_caracteres = 400;
if (strlen($post)>$max_caracteres) {
$max_caracteres=strrpos(substr($post, 0, $max_caracteres), " ");
$post = substr($post, 0, $max_caracteres);
$post .= " (...)";
}
$post = preg_replace("(\[.*\])U","",$post );
$poster = "<a href=\"" . $phpbb_seo->seo_path['phpbb_url'] . $phpbb_seo->seo_static['user'] . $db_data['poster_id'] . $phpbb_seo->seo_ext['user'] . "\" class=\"nav\" >".$db_data['username']."</a>";
$post_time = strftime("%A %e %B @ %H:%M", $db_data['post_time']+(0));
echo "<p align=\"left\">$post_title, by $poster, $post_time<br />
$post</p>";
}
?>
|
Mais comment je dois mettre les info ici :
| Code: | // Connexion à la BDD
$db = .......; |
?
Merci pour votre aide
Bonne soirée |
|
|
| Revenir en haut de page |
|
 |
Cam
Inscrit le: 25 Mai 2007 Messages: 27
|
Posté le: Lun Oct 27, 2008 4:44 pm Sujet du message: Re: Récupérer les urls des derniers sujets dans un autre script |
|
|
Bonsoir,
Personne n'a une idée ? (cf. post précédent)
Merci d'avance pour votre aide  |
|
|
| Revenir en haut de page |
|
 |
Cam
Inscrit le: 25 Mai 2007 Messages: 27
|
|
| Revenir en haut de page |
|
 |
|
|
| Navigation |
Autres sujets de discussion |
|
|
|
|
|
|
|