MOD Topic anywhere pour phpbb3

Toutes les questions et les aides qui concernent le langage PHP
jerome
Tutomaker Junior
Tutomaker Junior
 
Messages: 6
Enregistré le: Jeu Mai 15, 2008 3:36 pm

MOD Topic anywhere pour phpbb3

Messagepar jerome le Mer Aoû 13, 2008 8:40 pm

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

Avatar de l’utilisateur
Yoyo
Gérant
Gérant
 
Messages: 2031
Enregistré le: Mer Sep 27, 2006 4:54 pm

Re: MOD Topic anywhere pour phpbb3

Messagepar Yoyo le Mer Aoû 13, 2008 9:50 pm

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 !
Vive les tutomakers ;)

jerome
Tutomaker Junior
Tutomaker Junior
 
Messages: 6
Enregistré le: Jeu Mai 15, 2008 3:36 pm

Re: MOD Topic anywhere pour phpbb3

Messagepar jerome le Mer Aoû 13, 2008 11:14 pm

ok merci, je vais tester mais pourquoi faut-il récupérer la session ?

Avatar de l’utilisateur
Yoyo
Gérant
Gérant
 
Messages: 2031
Enregistré le: Mer Sep 27, 2006 4:54 pm

Re: MOD Topic anywhere pour phpbb3

Messagepar Yoyo le Mer Aoû 13, 2008 11:16 pm

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
Vive les tutomakers ;)

jerome
Tutomaker Junior
Tutomaker Junior
 
Messages: 6
Enregistré le: Jeu Mai 15, 2008 3:36 pm

Re: MOD Topic anywhere pour phpbb3

Messagepar jerome le Jeu Aoû 14, 2008 7:51 am

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

Avatar de l’utilisateur
Yoyo
Gérant
Gérant
 
Messages: 2031
Enregistré le: Mer Sep 27, 2006 4:54 pm

Re: MOD Topic anywhere pour phpbb3

Messagepar Yoyo le Jeu Aoû 14, 2008 12:15 pm

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:
Vive les tutomakers ;)

Avatar de l’utilisateur
Yoyo
Gérant
Gérant
 
Messages: 2031
Enregistré le: Mer Sep 27, 2006 4:54 pm

Re: MOD Topic anywhere pour phpbb3

Messagepar Yoyo le Jeu Aoû 14, 2008 9:18 pm

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.
Vive les tutomakers ;)

jerome
Tutomaker Junior
Tutomaker Junior
 
Messages: 6
Enregistré le: Jeu Mai 15, 2008 3:36 pm

Re: MOD Topic anywhere pour phpbb3

Messagepar jerome le Ven Aoû 15, 2008 4:41 pm

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

Avatar de l’utilisateur
Yoyo
Gérant
Gérant
 
Messages: 2031
Enregistré le: Mer Sep 27, 2006 4:54 pm

Re: MOD Topic anywhere pour phpbb3

Messagepar Yoyo le Ven Aoû 15, 2008 4:45 pm

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 :)
Vive les tutomakers ;)

jerome
Tutomaker Junior
Tutomaker Junior
 
Messages: 6
Enregistré le: Jeu Mai 15, 2008 3:36 pm

Re: MOD Topic anywhere pour phpbb3

Messagepar jerome le Ven Aoû 15, 2008 4:52 pm

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 ?

Avatar de l’utilisateur
Yoyo
Gérant
Gérant
 
Messages: 2031
Enregistré le: Mer Sep 27, 2006 4:54 pm

Re: MOD Topic anywhere pour phpbb3

Messagepar Yoyo le Ven Aoû 15, 2008 4:56 pm

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
Vive les tutomakers ;)

jerome
Tutomaker Junior
Tutomaker Junior
 
Messages: 6
Enregistré le: Jeu Mai 15, 2008 3:36 pm

Re: MOD Topic anywhere pour phpbb3

Messagepar jerome le Ven Aoû 15, 2008 5:00 pm

ok c'est fait.

Avatar de l’utilisateur
Yoyo
Gérant
Gérant
 
Messages: 2031
Enregistré le: Mer Sep 27, 2006 4:54 pm

Re: MOD Topic anywhere pour phpbb3

Messagepar Yoyo le Ven Aoû 15, 2008 5:01 pm

Nettement mieux comme ça ! Et bien voila, c'était pas bien compliqué :D
Vive les tutomakers ;)

kerry
Tutomaker Junior
Tutomaker Junior
 
Messages: 1
Enregistré le: Sam Mar 28, 2009 2:01 pm

Re: MOD Topic anywhere pour phpbb3

Messagepar kerry le Sam Mar 28, 2009 2:17 pm

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 .

Avatar de l’utilisateur
Yoyo
Gérant
Gérant
 
Messages: 2031
Enregistré le: Mer Sep 27, 2006 4:54 pm

Re: MOD Topic anywhere pour phpbb3

Messagepar Yoyo le Sam Mar 28, 2009 2:28 pm

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 :)
Vive les tutomakers ;)

jpv
Tutomaker Junior
Tutomaker Junior
 
Messages: 10
Enregistré le: Jeu Avr 09, 2009 12:19 am

Re: MOD Topic anywhere pour phpbb3

Messagepar jpv le Jeu Avr 09, 2009 12:28 am

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

Avatar de l’utilisateur
Yoyo
Gérant
Gérant
 
Messages: 2031
Enregistré le: Mer Sep 27, 2006 4:54 pm

Re: MOD Topic anywhere pour phpbb3

Messagepar Yoyo le Jeu Avr 09, 2009 9:37 am

Pas de soucis, il est fait pour ça. A bientôt, n'hésite pas si t'as un souci ;)
Vive les tutomakers ;)

jpv
Tutomaker Junior
Tutomaker Junior
 
Messages: 10
Enregistré le: Jeu Avr 09, 2009 12:19 am

Re: MOD Topic anywhere pour phpbb3

Messagepar jpv le Ven Avr 10, 2009 2:02 am

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

Avatar de l’utilisateur
Yoyo
Gérant
Gérant
 
Messages: 2031
Enregistré le: Mer Sep 27, 2006 4:54 pm

Re: MOD Topic anywhere pour phpbb3

Messagepar Yoyo le Ven Avr 10, 2009 10:57 am

Ca serait mieux je crois en effet :P
Vive les tutomakers ;)

nicolas66000
Tutomaker Junior
Tutomaker Junior
 
Messages: 7
Enregistré le: Lun Avr 13, 2009 12:27 am

Re: MOD Topic anywhere pour phpbb3

Messagepar nicolas66000 le Lun Avr 13, 2009 12:29 am

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


Suivante

Retourner vers Langage PHP

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invités