Page 1 sur 3

MOD Topic anywhere pour phpbb3

MessagePosté: Mer Aoû 13, 2008 8:40 pm
par jerome
Bonjour,
je suis à la recherche d'un MOD topic anywhere pour phpbb3, c'est à dire un MOD qui permet d'afficher n'importe ou sur un site (et aussi, en dehors du forum) les N dernières discussions en cours sur le forum.
Idéalement, ce MOD doit se présenter de la manière suivante :
sujet - forum - utilisateur - icone pour aller aller au dernier post du fil
les mots sujets et forum doivent etre des liens permettant d'aller directement sur le fil ou le forum

si possible, éviter le javascript (qu'utilisait topic anywhere) qui empêche les BOT de voir le contenu.

On doit aller chercher les N sujets qui ont reçu l'un des N derniers posts (et pas les N derniers sujets créés).

je recherche cela désespérément mais ne suis pas assez fort en php pour le faire moi-même.
Merci

Re: MOD Topic anywhere pour phpbb3

MessagePosté: Mer Aoû 13, 2008 9:50 pm
par Yoyo
Salut Jerome, je peux te filer ce que j'ai fait pour TM si tu veux

Au début de ta page d'accueil, j'ai récupéré la session de phpbb3 comme ceci :

Code: Tout sélectionner
define('IN_SITE', true);
define('IN_PHPBB', true);
$phpbb_root_path =  './forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include(
$phpbb_root_path . 'common.' . $phpEx);
include(
$phpbb_root_path . 'includes/functions_posting.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data); 


Ensuite j'ai créé ce code qui va récupérer les derniers posts du forum:

Code: Tout sélectionner
code obsolètevoir les scripts plus bas


C'est un début mais au moins tu as une base de travail pour l'améliorer. Hésite pas à nous faire part de tes trouvailles si tu l'améliores !

Re: MOD Topic anywhere pour phpbb3

MessagePosté: Mer Aoû 13, 2008 11:14 pm
par jerome
ok merci, je vais tester mais pourquoi faut-il récupérer la session ?

Re: MOD Topic anywhere pour phpbb3

MessagePosté: Mer Aoû 13, 2008 11:16 pm
par Yoyo
Oui tu n'as pas vraiment besoin de lancer la session mais c'est surtout des fonctions dont tu as besoin. La session je m'en sert pour afficher des choses en plus pour l'administrateur par exemple ;)

Fais toi une petite page test.php avec le code nécessaire et montre moi ça :D

Re: MOD Topic anywhere pour phpbb3

MessagePosté: Jeu Aoû 14, 2008 7:51 am
par jerome
bonjour
alors voilà, j'ai fait une page test2.php mais le code que tu as fait appelle des fonctions de phpbbseo. j'ai donc un message d'erreur :
Fatal error: Call to undefined function censor_text() in /home/web/ateliermagique.com/ftp/www/test2.php on line 159

Re: MOD Topic anywhere pour phpbb3

MessagePosté: Jeu Aoû 14, 2008 12:15 pm
par Yoyo
Relis le post ou je te dis ce qu'il faut ajouter, ça veut dire que t'as pas fait les includes nécessaires !

Code: Tout sélectionner
include('./forum/common.php');
include(
'./forum/includes/functions_posting.php'); 


Ca sert pas à rien ça :mrgreen:

Re: MOD Topic anywhere pour phpbb3

MessagePosté: Jeu Aoû 14, 2008 9:18 pm
par Yoyo
Alors je t'ai fait un script qui marche bien, ça affiche le titre des derniers topics de ton forum phpbb3 et quand tu clics dessus, ça te redirige sur la dernière réponse :) D'ailleurs je crois que je vais l'intégrer à mon site :D C'est beaucoup plus pratique pour arriver directement au dernier message de la dernière page de la discussion !!
C'est le strict minimum pour que ça marche !

//Script 1

Code: Tout sélectionner
<ul>
<?php

define
('IN_SITE'true);
define('IN_PHPBB'true);
$phpbb_root_path =  './forum/';
$phpEx substr(strrchr(__FILE__'.'), 1);
include(
$phpbb_root_path 'common.' $phpEx);
 
// Sélection des 10 derniers posts
$sql "SELECT topic_replies_real,topic_replies,topic_title,forum_id,topic_id,topic_type,topic_last_post_id
FROM phpbb3_topics 
WHERE topic_approved = 1 
ORDER BY topic_last_post_time DESC 
LIMIT 10"
;
$result $db->sql_query($sql);

// Boucle d'affichage du post
while($topic_data $db->sql_fetchrow($result)) 
{
    
// Données du topic
    
$topic_title $topic_data['topic_title'];
    
$topic_replies $topic_data['topic_replies'];
    
$topic_replies_real $topic_data['topic_replies_real'];
    
$forum_id $topic_data['forum_id'];
    
$topic_id $topic_data['topic_id'];
    
$topic_last_post_id $topic_data['topic_last_post_id'];
       
$replies = ($auth->acl_get('m_approve'$forum_id)) ? $topic_replies_real $topic_replies
    
$start floor(($replies) / $config['posts_per_page']) * $config['posts_per_page']; 

// www.phpBB-SEO.com SEO TOOLKIT BEGIN
$topic_data['topic_title'] = censor_text($topic_data['topic_title']);
if (empty(
$phpbb_seo->seo_opt['virtual_folder']) || !empty($phpbb_seo->seo_url['forum'][$forum_id]) || $topic_data['topic_type'] == POST_GLOBAL) {
   
$phpbb_seo->prepare_iurl($topic_data'topic'$topic_data['topic_type'] == POST_GLOBAL $phpbb_seo->seo_static['global_announce'] : $phpbb_seo->seo_url['forum'][$forum_id]);
}
// www.phpBB-SEO.com SEO TOOLKIT END

   
    
$post_url append_sid("{$phpbb_root_path}viewtopic.$phpEx"'t=' $topic_id '&amp;f=' $forum_id '&amp;start=' $start ) . '#p' $topic_last_post_id

    
//On affiche
    
echo '<li><a href="'.$post_url.'">'.$topic_title.'</a></li>';

}
$db->sql_freeresult($result);

?>
</ul>


Je vais essayer de le modifier pour faire ce que tu veux comme ça il y aura plusieurs versions pour ceux qui ont d'autres besoins :D

//Script 2

Et voila la version avancée qui ne fait pas que le titre. A mon avis elle te conviendra bien, tu as juste à adapter l'affichage dans un tableau, etc. Tu feras bien ça hein ? :D

Code: Tout sélectionner
<ul>
<?php

define
('IN_SITE', true);
define('IN_PHPBB', true);
$phpbb_root_path =  './forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include(
$phpbb_root_path . 'common.' . $phpEx);
 
// Sélection des 10 derniers posts
$sql = "SELECT t.topic_replies_real,t.topic_replies,t.topic_title,t.forum_id,t.topic_id,t.topic_type,t.topic_last_post_id,f.forum_name,t.topic_last_poster_name
FROM "
 . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f
WHERE t.topic_approved = 1 
AND t.topic_status <> 2
AND t.forum_id = f.forum_id
ORDER BY t.topic_last_post_time DESC 
LIMIT 10"
;
$result = $db->sql_query($sql);

// Boucle d'affichage du post
while($topic_data = $db->sql_fetchrow($result)) 
{
    // Données du topic
    $topic_title = $topic_data['topic_title'];
    $topic_replies = $topic_data['topic_replies'];
    $topic_replies_real = $topic_data['topic_replies_real'];
    $forum_id = $topic_data['forum_id'];
    $topic_id = $topic_data['topic_id'];
    $forum_name = $topic_data['forum_name'];
    $topic_last_post_id = $topic_data['topic_last_post_id'];
    $topic_last_poster_name = $topic_data['topic_last_poster_name'];
       $replies = ($auth->acl_get('m_approve', $forum_id)) ? $topic_replies_real : $topic_replies; 
    $start 
= floor(($replies) / $config['posts_per_page']) * $config['posts_per_page']; 
    
// www.phpBB-SEO.com SEO TOOLKIT BEGIN
$topic_data['topic_title'] = censor_text($topic_data['topic_title']);
if (empty(
$phpbb_seo->seo_opt['virtual_folder']) || !empty($phpbb_seo->seo_url['forum'][$forum_id]) || $topic_data['topic_type'] == POST_GLOBAL) {
   
$phpbb_seo->prepare_iurl($topic_data'topic'$topic_data['topic_type'] == POST_GLOBAL $phpbb_seo->seo_static['global_announce'] : $phpbb_seo->seo_url['forum'][$forum_id]);
}
// www.phpBB-SEO.com SEO TOOLKIT END
   
    $post_url 
= append_sid("{$phpbb_root_path}viewtopic.$phpEx", 't=' . $topic_id . '&amp;f=' . $forum_id . '&amp;start=' . $start ) . '#p' . $topic_last_post_id; 
    $topic_url 
= append_sid("{$phpbb_root_path}viewtopic.$phpEx", 't=' . $topic_id . '&amp;f=' . $forum_id ); 

    
//On affiche
    echo '<li><a href="'.$topic_url.'">'.$topic_title.'</a> - '.$forum_name.' - <a rel="nofollow" href="'.$post_url.'">Dernier message par '.$topic_last_poster_name.'</a></li>';

}
$db->sql_freeresult($result);

?>
</ul>


Et voila, plus complet celui-ci non ? :D

Dernière édition: Modification du système de création d'url avec la réécriture phpbb-seo.

Re: MOD Topic anywhere pour phpbb3

MessagePosté: Ven Aoû 15, 2008 4:41 pm
par jerome
merci Yoyo je viens de tester et ca marche : voici mon site : http://www.ateliermagique.com/
par contre j'ai un léger problème de caractères spéciaux

Re: MOD Topic anywhere pour phpbb3

MessagePosté: Ven Aoû 15, 2008 4:45 pm
par Yoyo
Oui c'est normal, phpbb3 est en format UTF-8 alors que ton site est en ISO. Fais la conversion lors de l'affichage par exemple avec la fonction utf8_decode();

Ce qui donnerait

Code: Tout sélectionner
echo '<li><a href="'.$topic_url.'">'.utf8_decode($topic_title).'</a> - '.utf8_decode($forum_name).' - <a rel="nofollow" href="'.$post_url.'">Dernier message par '.utf8_decode($topic_last_poster_name).'</a></li>'; 


Ca fait un peu moche sur ton site avec marqué partout "Dernier message de xxx"
Essaie d'afficher cet texte dans la balise title="" sur la petite image pour aller au dernier post, comme ça qd tu passes la souris dessus, tu as plus d'infos et ça prend moins de place :)

Re: MOD Topic anywhere pour phpbb3

MessagePosté: Ven Aoû 15, 2008 4:52 pm
par jerome
il m'en reste des choses à apprendre. merci, c'est nickel !!!!
j'ai meme ajouté le gif pour atteindre le dernier message
si je peux te faire une suggestion, tu devrais installer le MOD quick reply sur ton forum
Merci

au fait, que fais-tu sur ton site avec la session ?

Re: MOD Topic anywhere pour phpbb3

MessagePosté: Ven Aoû 15, 2008 4:56 pm
par Yoyo
Tiens regarde comment c'est chez moi, je te conseillerais de mettre l'infobulle perso ^^

last10.jpg


Avec ma session, bah je m'affiche des menus en plus quand il reconnait que je suis administrateur :D

Re: MOD Topic anywhere pour phpbb3

MessagePosté: Ven Aoû 15, 2008 5:00 pm
par jerome
ok c'est fait.

Re: MOD Topic anywhere pour phpbb3

MessagePosté: Ven Aoû 15, 2008 5:01 pm
par Yoyo
Nettement mieux comme ça ! Et bien voila, c'était pas bien compliqué :D

Re: MOD Topic anywhere pour phpbb3

MessagePosté: Sam Mar 28, 2009 2:17 pm
par kerry
Bonjour

J'ai installé un site sous joomla et un forum phpbb3 récemment j'aurais besoin d'aide pour mettre en place ce genre de script pour avoir les derniers messages du forum sur mon site sous forme d'une liste qui défile .
J'ai pris connaissance du script mais comme je suis débutant en matière html et php j'aurais besoin d'une aide précise pour savoir quel fichier je dois modifier et à quel niveau je dois insérer le tout .
Merci d'avance de votre aide .

Re: MOD Topic anywhere pour phpbb3

MessagePosté: Sam Mar 28, 2009 2:28 pm
par Yoyo
Bonjour , je ne connais malheureusement pas joomla et ce script n'est pas fait pour joomla en particulier, mais simplement pour un site web qui ne partage pas d'informations (session) avec le forum. Dans votre cas, joomla semble déjà partager la session avec le forum phpbb ? Il faudrait vous renseigner sur le forum de joomla pour savoir ou ajouter le morceau de script nécessaire :)

Re: MOD Topic anywhere pour phpbb3

MessagePosté: Jeu Avr 09, 2009 12:28 am
par jpv
Merci beaucoup pour ce code, je l'ai implémenté et c'est vraiment très bien.
et au passage, Jérôme ton site (http://www.ateliermagique.com/) est très intéressant.

A+
JP

Re: MOD Topic anywhere pour phpbb3

MessagePosté: Jeu Avr 09, 2009 9:37 am
par Yoyo
Pas de soucis, il est fait pour ça. A bientôt, n'hésite pas si t'as un souci ;)

Re: MOD Topic anywhere pour phpbb3

MessagePosté: Ven Avr 10, 2009 2:02 am
par jpv
Pas de soucis, il est fait pour ça. A bientôt, n'hésite pas si t'as un souci ;)

Bah, comme je suis pas un spécialiste, je commence juste le phpbb je n'y connaissais rien il y 15 jours de cela (mais j'ai un petit passé de développeur en C et en flash, cela aide) , et comme tu me le propose gentiment, alors voilà un besoin.

J'ai implémenté dans mon forum un mod galerie photo, et j'aimerais sur la page d'accueil ajouter la dernière image postée. Là je rame bcp pour trouver comment faire, si tu as une idée, une piste, je serai ravi de la suivre. :)

Peut être faut 'il ouvrir un nouveau post ? :|

A+
JP

Re: MOD Topic anywhere pour phpbb3

MessagePosté: Ven Avr 10, 2009 10:57 am
par Yoyo
Ca serait mieux je crois en effet :P

Re: MOD Topic anywhere pour phpbb3

MessagePosté: Lun Avr 13, 2009 12:29 am
par nicolas66000
Bonjour a tous,
Super intégration du système d'affichage, par contre si je peux me permettre, je souhaiterais y faire également figuré la date et l'image du forum qui a été ajouter celle se trouvant juste avant le titre du forum. Une aide car perso le PHP, c'est pour moi le coté obscure de la force lol