[Réglé] 10 derniers topics d'un forum spécifique pour site externe

Ce forum aborde toutes les questions qu'un codeur ou webmaster pourrait se poser, et n'ayant aucun rapport direct avec phpBB.
Tout ce qui peut concerner la récupération des sessions de phpBB sur votre site, doit se faire dans cette section.

Modérateur: Equipe

Règles du forum
A lire impérativement : Règlement de phpBB-fr.com

[Réglé] 10 derniers topics d'un forum spécifique pour site externe

Messagepar xkain-iron » 28 Juin 2016 à 16:52

Bonjour/Bonsoir à tous,

Je vous expose mon cas:

J'ai actuellement une page d'accueil ( en php/html) externe à mon forum et j'aimerais y ajouter un onglet 'annonces' qui fait voir directement les 10 derniers sujet d'un forum qui se nomme actuellement "Les suggestions, améliorations" ayant l'id 10

Cela fait quelques heures que je cherche sur votre forum et j'ai fini par trouver ce bout de code que j'ai un peu ajuster:

Code: Tout sélectionner
    <?php
    define('IN_PHPBB', TRUE);

    $phpbb_root_path = '../forum/';
    $phpEx = substr(strrchr(__FILE__, '.'), 1);
  

    // Start session management
    $user->session_begin();
    $user->setup('', $forum_data['forum_style']);

    $sql = 'SELECT p.*, t.*, u.user_id, u.username FROM ' . POSTS_TABLE . ' p JOIN ' . TOPICS_TABLE . ' t JOIN ' . USERS_TABLE . ' u
    ON p.topic_id = t.topic_id
    AND  u.user_id = p.poster_id
    ORDER BY p.post_id DESC LIMIT 10';
    
    
    $result = $db->sql_query($sql);
    while ($row = $db->sql_fetchrow($result))
    { ?>
    Message de <a href="<?=$phpbb_root_path . 'memberlist.php?mode=viewprofile&u=' . $row['user_id']?>" target="_blank"><?=$row['username']?></a>
    dans le sujet : <a href="<?=$phpbb_root_path . 'viewtopic.php?t=' . $row['topic_id']?>" target="_blank"><?=($row['topic_title'])?></a><br><br>
    <?
    }
    ?>	


Il fonctionne parfaitement mais il prend en compte tout les forums, en somme il met simplement tout les derniers sujets existant (même les forums réservés aux admins) alors que ce n'est pas vraiment ce que je recherche.

J'insiste bien sur le fait que je suis un néophyte donc si vous avez une idée de comment ce serait bien de m'expliquer ou de me fournir des pistes dans un langage que je suis sur de comprendre :lol: :lol:

Merci d'avance. :oops:


EDIT: j'ai trouvé un début de réponse avec ce code:


Code: Tout sélectionner
    <?php
    define('IN_PHPBB', TRUE);

    $phpbb_root_path = '../forum/';
    $phpEx = substr(strrchr(__FILE__, '.'), 1);
  

    // Start session management
    $user->session_begin();
    $user->setup('', $forum_data['forum_style']);

        $sql = 'SELECT p.*, t.*, u.user_id, u.username
        FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . ' t ,' . USERS_TABLE . ' u
        WHERE t.forum_id IN (10)
            AND p.topic_id = t.topic_id
            AND  u.user_id = p.poster_id
        ORDER BY p.post_id DESC LIMIT 5'; 
    
    
    $result = $db->sql_query($sql);
    while ($row = $db->sql_fetchrow($result))
    { ?>
    Message de <a href="<?=$phpbb_root_path . 'memberlist.php?mode=viewprofile&u=' . $row['user_id']?>" target="_blank"><?=$row['username']?></a>
    dans le sujet : <a href="<?=$phpbb_root_path . 'viewtopic.php?t=' . $row['topic_id']?>" target="_blank"><?=($row['topic_title'])?></a><br><br>
    <?
    }
    ?>	


Mais là ça surveille les 10 dernières réponse d'un sujet et non les 10 derniers sujet du forum concerné :?
Modifié en dernier par xkain-iron le 01 Juil 2016 à 10:48, modifié 3 fois.
Image

Image
Avatar de l’utilisateur
xkain-iron
Posteur néophyte
Posteur néophyte
 
Messages: 87
Enregistré le: 17 Déc 2015 à 11:51

Re: 10 derniers sujets d'un forum spécifique pour site externe

Messagepar Bryx » 28 Juin 2016 à 17:29

Salut, aide toi de ce sujet et des codes sources donnés => message1608075.html
Avatar de l’utilisateur
Bryx
Graph Contest Winner
Graph Contest Winner
 
Messages: 588
Enregistré le: 03 Aoû 2012 à 10:42
Localisation: France

Re: 10 derniers sujets d'un forum spécifique pour site externe

Messagepar xkain-iron » 28 Juin 2016 à 17:42

Bonjour,

Merci de t'étre penché sur mon cas, visiblement tu as posté ta réponse pendant que j'édité mon précédent commentaire :D :D, j'ai déjà un peu avancer, j'espère que je vais pouvoir conclure avec le lien que tu m'as fournis :wink:

Merci à toi.


EDIT:

J'ai presque réussi à faire ce que je voulais à deux détails prés, je n'arrive pas à faire en sorte que le dernier topic en date soit en premier et avoir ce format pour la date ex: 29/06/2016 (et sans les heures/minutes)

Image

Voici le bout de code actuel qui donne ce que l'on voit sur la photo ci-dessus:

Code: Tout sélectionner
<?php
	define('IN_PHPBB', TRUE);

	$phpbb_root_path = '../Forum/';
	$phpEx = substr(strrchr(__FILE__, '.'), 1);
		include($phpbb_root_path . 'common.' . $phpEx);
	 // Start session management
	$user->session_begin();
	$user->setup('', $forum_data['forum_style']);	


        $sql = 'SELECT p.*, t.* , topic_time
        FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . ' t 
        WHERE t.forum_id IN (10)
            AND p.topic_id = p.topic_id
        ORDER BY p.post_id DESC LIMIT 10'; 
    
    $heure=date('G\H:i', $post['topic_time']);
    $result = $db->sql_query($sql);
    while ($row = $db->sql_fetchrow($result))
    { ?>
    
     <a href="<?=$phpbb_root_path . 'viewtopic.php?t=' .  $row['topic_id']?>" target="_blank"><?=($row['topic_title'])?></a><?=$user->format_date($row['topic_time'])?><br><br>
    <?
    }
?>	
Image

Image
Avatar de l’utilisateur
xkain-iron
Posteur néophyte
Posteur néophyte
 
Messages: 87
Enregistré le: 17 Déc 2015 à 11:51

Re: 10 derniers sujets d'un forum spécifique pour site externe

Messagepar xkain-iron » 29 Juin 2016 à 20:01

Bonjour/Bonsoir à tous

Alors pour la date au format 29/06/2016 j'ai trouvé comment faire mais je me permet de faire un petit UP car je bloquer vraiment pour mettre le dernier topic en date à la première position, j'ai essayé:

DESC et ASC à la ligne :
ORDER BY p.forum_id DESC LIMIT 10';

mais rien ne change, voici le bout de code actuel:

Code: Tout sélectionner
    <?php
                       $sql = 'SELECT p.*, t.* , topic_time
                            FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . ' t 
                            WHERE t.forum_id IN (10)
                            AND p.topic_id = p.topic_id
                            ORDER BY  p.forum_id DESC LIMIT 10'; 
    
                       $result = $db->sql_query($sql);
                            while ($row = $db->sql_fetchrow($result))
               { ?>

     <a href="<?=$phpbb_root_path . 'viewtopic.php?t=' .  $row['topic_id']?>" target="_blank"><?=($row['topic_title'])?></a><a class="onglet-annonces-dates"><span><?=$user=date("d/m/Y",$row['topic_time'])?></span></a><br><br>
    <?
 }
?>


Si vous avez une idée du comment ce serait vraiment bien pour que je puisse conclure :oops: :oops:
Merci d'avance.
Image

Image
Avatar de l’utilisateur
xkain-iron
Posteur néophyte
Posteur néophyte
 
Messages: 87
Enregistré le: 17 Déc 2015 à 11:51

Re: 10 derniers sujets d'un forum spécifique pour site externe

Messagepar Manard » 29 Juin 2016 à 21:56

Bonsoir,


Je ne suis pas un développeur... as-tu essayé de remplacer ORDER BY p.forum_id DESC par ORDER BY p.post_time ASC ?

Regarde ce lien tu pourrais également y trouver des éléments de codes intéressants : https://blog.phpbb.com/2009/11/09/how-t ... nal-pages/

Bons essais

Bernard
Manard
Roi des posts
Roi des posts
 
Messages: 933
Enregistré le: 31 Mar 2012 à 08:24

Re: 10 derniers sujets d'un forum spécifique pour site externe

Messagepar xkain-iron » 29 Juin 2016 à 22:31

Bonsoir,

j'avais déjà essayé ORDER BY p.post_time ASC mais ça n'a rien changé :cry:

Merci pour le lien, je "l'étudie" depuis ce matin sans grand succès :oops: :oops:
Image

Image
Avatar de l’utilisateur
xkain-iron
Posteur néophyte
Posteur néophyte
 
Messages: 87
Enregistré le: 17 Déc 2015 à 11:51

Re: 10 derniers topics d'un forum spécifique pour site externe

Messagepar xkain-iron » 01 Juil 2016 à 10:47

Bonjour/bonsoir à tous,

Bon j'ai finalement trouvé tout seul 8)

En fait il fallait mettre AND t.topic_first_post_id = p.post_id au lieu de AND p.post_id = p.post_id

J'ai également ajouté AND p.topic_id NOT IN (614) pour exclure un topic spécifique et dans la finalité je me retrouve avec ce bout de code:

Code: Tout sélectionner
<?php
	$sql = 'SELECT p.*, t.* , topic_time
		FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . ' t 
		WHERE t.forum_id IN (10)
		AND p.topic_id NOT IN (614)
		AND  t.topic_first_post_id = p.post_id
        ORDER BY p.topic_id DESC LIMIT 10'; 
    
	$result = $db->sql_query($sql);
	while ($row = $db->sql_fetchrow($result))
	{ ?>
    
	&bull; <a href="<?=$phpbb_root_path . 'viewtopic.php?t=' .  $row['topic_id']?>" target="_blank"><?=($row['topic_title'])?></a><a class="onglet-annonces-dates"><span><?=$user=date("d/m/Y",$row['topic_time'])?></span></a><br><br>
	<?
    }
?>


Dans la finalité j'ai exactement ce que je cherché à savoir les 10 derniers topic crée d'un forum spécifique avec le titre et la date dans l'ordre que je voulais.

Voila voila, sujet résolu en espèrant que ça aidera quelqu'un :D
Image

Image
Avatar de l’utilisateur
xkain-iron
Posteur néophyte
Posteur néophyte
 
Messages: 87
Enregistré le: 17 Déc 2015 à 11:51


Retourner vers Coding, Webmastering et Sécurité informatique

 


  • Articles en relation
    Réponses
    Vues
    Dernier message

Qui est en ligne

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