| :: |
| Auteur |
Message |
yazerty PR1

Inscrit le: 30 Oct 2006 Messages: 173
|
Posté le: Mar Mar 20, 2007 1:53 pm Sujet du message: Récupérer les urls des derniers sujets dans un autre script |
|
|
Bonjour,
J'ai installé le mod avancé sur un forum en cours de développement et j'aimerais afficher sur la page d'accueil de mon site les derniers sujets de mon forum.
J'ai bricolé un petit script, qui marche, sauf pour les urls qui ne prennent pas les titres des sujets pour qu'elle soient celles générées par le mod avancé .
| Code: |
<?php
// www.phpBB-SEO.com SEO TOOLKIT BEGIN
include('forum/phpbb_seo/phpbb_seo_class.php');
$phpbb_seo = new phpbb_seo();
// 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
$post_title = "<a href=\"http://www.site.net/forum/topic".$db_data['topic_id'].".html\">".$db_data['topic_title']."</a>";
// 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 .= " (...)";
}
// www.phpBB-SEO.com SEO TOOLKIT BEGIN
$phpbb_seo->seo_url['topic'][$topic_id] = $phpbb_seo->format_url($topic_title);
// www.phpBB-SEO.com SEO TOOLKIT END
$post = preg_replace("(\[.*\])U","",$post );
$poster = "<a href=\"http://www.site.net/forum/membre".$db_data['poster_id'].".html\" 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>";
}
?> |
Je ne comprends pas comment marche le bout de code phpbbseo que j'ai essayer d'introduire dans mon propre code. Pourriez-vous m'aider à fixer le bug svp ? |
_________________ L'insolite Yazerty.Net - Interprétation et signification des rêves |
|
| Revenir en haut de page |
|
 |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 14131
|
Posté le: Mer Mar 21, 2007 3:25 pm Sujet du message: Re: Récupérer les urls des derniers sujets dans un autre script |
|
|
Donc, en faisant comme ça, il y a juste un truc à prendre en compte, c'est que la classe phpBB récupère quelques données de la config de phpBB, et notamment pour définir l'url du forum.
Du coup, pour utiliser la classe en dehors de phpBB, il faut lui donner quelques infos pour que tout se passe nickel.
Le plus simple est, je pense de gruger en assignat les variables en question manuellement après l'invocation de la classe :
| Code: | // 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.exmple.com/';
$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 |
A adapter à ton cas du coup pour l'url du domaine (la racine), mais après, tu as toutes les fonction de la classe dispo.
Après, comme on est pas dans phpBB, on réécrit en "manuel", tu remplaces :
| Code: | // Titre du post
$post_title = "<a href=\"http://www.site.net/forum/topic".$db_data['topic_id'].".html\">".$db_data['topic_title']."</a>"; |
Par :
| Code: | // 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 |
Et hop, pas besoin du reste, tu effaces :
Pour les membres, tu pourrait aussi généraliser la mise en forme de l'url, c'est rien de parser trois variables, et cela permet de faire en sorte que tes régléges éventuels de la classe phpbb_seo soient directement pris en compte.
Donc, pour tout à fait bien faire, faudrait remplacer :
| Code: |
$poster = "<a href=\"http://www.site.net/forum/membre".$db_data['poster_id'].".html\" class=\"nav\" >".$db_data['username']."</a>"; |
Par :
| Code: | | $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>"; |
Et à noter également que l'on a pas fait passé ni les titres, ni le contenu des messages par la censure de phpBB. Mais bon, si tu modères bien ton forum, devrait pas y avoir de soucis.
++ |
_________________ Useful links :
SEO Forum || SEO Directory || SEO phpBB || SEO phpBB3 || Search
____________________
Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Référencement phpBB3 || Recherche |
|
| Revenir en haut de page |
|
 |
yazerty PR1

Inscrit le: 30 Oct 2006 Messages: 173
|
|
| Revenir en haut de page |
|
 |
Fireslinger
Inscrit le: 31 Aoû 2007 Messages: 7
|
Posté le: Dim Sep 23, 2007 8:56 am Sujet du message: Re: Récupérer les urls des derniers sujets dans un autre script |
|
|
Bonjour !
Je remonte ce topic car j'essaie d'utiliser le même script mais j'ai des pb d'encodage. J'utilise l'UTF-8 et tout se passe bien sur le forum. Le mod Avancé passe ss pbs avec les accents.
Fichier : phpbb_seo_class.php
| Code: | function phpbb_seo() {
global $phpEx, $board_config;
// config
$this->encoding = "UTF-8"; |
Par contre, avec le script, les accents passent pas.. Il doit comprendre que c'est de l'iso..
Si je rajoute un utf8_decode comme ceci :
| Code: | echo utf8_decode("<p align=\"left\">$post_title, by $poster, $post_time<br />
$post</p>"); |
ça marche mais pq est-ce que l'encodage n'est pas bien défini automatiquement ?
Merci  |
|
|
| Revenir en haut de page |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 14131
|
Posté le: Lun Sep 24, 2007 10:36 am Sujet du message: Re: Récupérer les urls des derniers sujets dans un autre script |
|
|
C'est juste qu'en l'état, le script ne se préoccupe pas des header, echo envois donc le header par défaut, en ISO-8859-1 vraisemblablement.
Tu pourrais donc ajouter :
| Code: |
header('Content-type: text/html; charset=UTF-8');
header('Cache-Control: private, no-cache="set-cookie"');
header('Expires: 0');
header('Pragma: no-cache'); |
Avant :
| Code: | // Boucle d'affichage du post
while($db_data = mysql_fetch_assoc($req)) { |
Et tu ne devrais plus avoir besoin de utf8_decode.
++ |
_________________ Useful links :
SEO Forum || SEO Directory || SEO phpBB || SEO phpBB3 || Search
____________________
Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Référencement phpBB3 || Recherche |
|
| Revenir en haut de page |
|
 |
darkjukka
Inscrit le: 30 Sep 2007 Messages: 25
|
Posté le: Sam Nov 10, 2007 1:18 pm Sujet du message: Re: Récupérer les urls des derniers sujets dans un autre script |
|
|
Bonjour,
Je viens de tomber sur ce post et j'ai trouvé ce script super donc je l'ai adopté, seulement il m'affiche aussi les topics des forums privés et je voudrais qu'il ne le fasse pas justement.
Y-t-il un moyen de faire cela ? |
|
|
| Revenir en haut de page |
|
 |
darkjukka
Inscrit le: 30 Sep 2007 Messages: 25
|
Posté le: Dim Déc 16, 2007 1:52 pm Sujet du message: Re: Récupérer les urls des derniers sujets dans un autre script |
|
|
Je viens de me rappeler que j'ai trouvé la solution il y a quelques temps déjà donc j'en fait profiter s'il y a des intéressés.
Il suffit de rajouter
AND TP.forum_id NOT IN (id du forum)
à la liste
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
Voilou! |
|
|
| Revenir en haut de page |
|
 |
forma
Inscrit le: 17 Juil 2008 Messages: 3 Localisation: Limoges
|
Posté le: Dim Juil 20, 2008 1:00 pm Sujet du message: Re: Récupérer les urls des derniers sujets dans un autre script |
|
|
Bonjour,
en adaptant un peu le script pour mon site (http://www.infokarate.com), je n'arrive pas à comprendre comment faire soit pour éliminer les smilies dans les posts partiels qu'il affiche sur ma page d'accueil, soit les faire apparaître correctement.
j'obtiens ça à la place des smilies : <!-- s --><img src="{SMILIES_PATH}/icon_smile.gif" alt=" " etc.........
Bref, je ne sais pas comment on déclare ce chemin d'accès SMILIES_PATH
Merci de votre aide et merci pour vos contributions |
|
|
| Revenir en haut de page |
|
 |
dcz Administrateur - Site Admin

Inscrit le: 28 Avr 2006 Messages: 14131
|
Posté le: Dim Juil 20, 2008 1:21 pm Sujet du message: Re: Récupérer les urls des derniers sujets dans un autre script |
|
|
C'est qu'en fait, il n'est pas si simple de faire des césures dans les posts de phpBB3, dans ton cas, le code source d'un smiley à été rompu pendant l'opération et ne peut donc pas s'afficher correctement.
Encore un problème qui ne se produit pas si l'on récupère les messages tronqués depuis les flux de Gym sitemaps & RSS, vu que dans le mod, tout est là pour faire des césures qui ne brisent ni les mots, ni les smiley ou bbcodes. |
_________________ Useful links :
SEO Forum || SEO Directory || SEO phpBB || SEO phpBB3 || Search
____________________
Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Référencement phpBB3 || Recherche |
|
| Revenir en haut de page |
|
 |
forma
Inscrit le: 17 Juil 2008 Messages: 3 Localisation: Limoges
|
Posté le: Dim Juil 20, 2008 1:41 pm Sujet du message: Re: Récupérer les urls des derniers sujets dans un autre script |
|
|
OK, je te remercie,
réponse logique, je n'ai plus qu'à trouver la quantité de caractères qui coupe le moins souvent le code au mauvais endroit.
Merci |
|
|
| Revenir en haut de page |
|
 |
forma
Inscrit le: 17 Juil 2008 Messages: 3 Localisation: Limoges
|
Posté le: Dim Juil 20, 2008 8:52 pm Sujet du message: Re: Récupérer les urls des derniers sujets dans un autre script |
|
|
| dcz a écrit: | | Encore un problème qui ne se produit pas si l'on récupère les messages tronqués depuis les flux de Gym sitemaps & RSS, vu que dans le mod, tout est là pour faire des césures qui ne brisent ni les mots, ni les smiley ou bbcodes. |
Bonsoir,
Une petite question stp : Je viens d'nstaller la prémod, j'ai bien compris qu'elle était une compilation de mod additionnés à phpBB3 et même si je n'ai pas encore exploité tout son potentiel, je n'ai pas vu le mod que tu cites : Gym sitemaps & RSS
Dois-je ajouté ce mod en plus de la prémod ou est-il prévu dans une version plus avançé de la prémod?
Cordialement |
|
|
| Revenir en haut de page |
|
 |
yann91
Inscrit le: 21 Oct 2006 Messages: 33
|
Posté le: Dim Juil 20, 2008 9:15 pm Sujet du message: Re: Récupérer les urls des derniers sujets dans un autre script |
|
|
| forma a écrit: | | dcz a écrit: | | Encore un problème qui ne se produit pas si l'on récupère les messages tronqués depuis les flux de Gym sitemaps & RSS, vu que dans le mod, tout est là pour faire des césures qui ne brisent ni les mots, ni les smiley ou bbcodes. |
Bonsoir,
Une petite question stp : Je viens d'nstaller la prémod, j'ai bien compris qu'elle était une compilation de mod additionnés à phpBB3 et même si je n'ai pas encore exploité tout son potentiel, je n'ai pas vu le mod que tu cites : Gym sitemaps & RSS
Dois-je ajouté ce mod en plus de la prémod ou est-il prévu dans une version plus avançé de la prémod?
Cordialement |
Salut,
Il suffit de charger -http://www.ton-site.com/gym_sitemaps/gym_install.php . Après tu peux configurer le mod dans le pannel rubrique phpbb seo et récupérer le nouveau htaccess.
Moi aussi au début j'avais pas compris. |
|
|
| Revenir en haut de page |
|
 |
thegigistouch
Inscrit le: 31 Juil 2008 Messages: 3
|
Posté le: Jeu Juil 31, 2008 2:42 pm Sujet du message: Re: Récupérer les urls des derniers sujets dans un autre script |
|
|
Bonjour,
J'ai besoin d'afficher sur une page les dernies posts d'un forum et de pointer vers celui avec son url rewritée du style
| Code: |
/tracker-tous-les-visiteurs-lors-paiement-valide-t21.html#p53
|
pour une page ayant pour titre
| Citation: |
Tracker tous les visiteurs lors d'un paiement validé
|
Je vois bien que la requête a été "epurée", mais impossible de trouver a quel endroit dans le code de phpbb seo...
En essayant le code donné dans le premier post, j'ai une erreur de dépendances...
| Code: |
function getLastPosts($qty = FORUM_DERNIERS_POSTS) {
global $sql;
//Recuperation des derniers posts
$requete = "SELECT p.post_subject, p.post_text, p.post_time, u.username"
. " FROM phpbb_posts p"
. " LEFT JOIN phpbb_users u ON p.poster_id = u.user_id "
. " WHERE p.post_approved = '1' AND"
. " p.post_reported = '0'"
. " ORDER BY p.post_time DESC"
. " LIMIT 0,$qty";
$lastPosts = $sql->requete($requete);
require_once('../forum/phpbb_seo/phpbb_seo_class.php');
$phpbb_seo = new phpbb_seo();
$url = $phpbb_seo->format_url($topic_title);
|
| Citation: |
( ! ) Fatal error: Call to undefined function phpbb_realpath() in C:\Program Files\wamp\www\xxx\forum\phpbb_seo\phpbb_seo_class.php on line 96
|
Cet URL rewriting est tout simplement entrain de me rendre complétement dingue!
Quelqu'un peut-il m'aider?  |
|
|
| Revenir en haut de page |
|
 |
SeO Administrateur - Site Admin

Inscrit le: 15 Mar 2006 Messages: 3477
|
|
| Revenir en haut de page |
|
 |
thegigistouch
Inscrit le: 31 Juil 2008 Messages: 3
|
Posté le: Jeu Juil 31, 2008 2:50 pm Sujet du message: Re: Récupérer les urls des derniers sujets dans un autre script |
|
|
Merci de ta réponse plus que rapide!
Qu'entends tu par "ne partage pas le code"?
Peux-tu m'indiquer l'expression regulière qui est utilisée ou les critères utilisés pour le filtrage?
En dernier recours j'utiliserai le flux RSS (peux-tu me conseiller un mod léger et simple)?
D'avance merci! ^^
Nico |
|
|
| Revenir en haut de page |
|
 |
|
|