Script-news

Ce forum vous servira à trouver de l'aide uniquement en ce qui concerne le developpement d'un de vos MODs, ou l'adaptation d'un MOD phpBB3 existant qu'il fasse parti ou non de la base de données.

Modérateur: Equipe

Script-news

Messagede Chaos[] le 03 Juil 2008 à 19:55

Bonjour/bonsoir à tous et à toutes ! :D

Je suis sur la construction d'un site depuis peu.
Et il m'est arrivé un moment ou je me suis posé la question d'une Communauté dans celui-ci, ou non.
Après avoir réfléchis, j'en ai conclu que oui. J'ai même eu une envie de faire vivre mon site à l'aide d'une communauté via un forum : PhpBB3.

Je voudrai également y inséré un système de "News".
Des nouvelles directement liée au forum, permettant à d'autres Administrateurs de posté des News sans devoir re-toucher le (x)html de la page.
J'ai donc choisi un Scipt de News permettant d'afficher le nom du sujet, ainsi que le sujet d'un message des X dernier de l'ID d'un forum.
Voici le code en question, pris aléatoirement quelques part dans la communauté de Phpbb-fr.com :

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

$phpbb_root_path = 'forums/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/bbcode.' . $phpEx);

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

$id_forum_news = 2;

$sql = 'SELECT p.*, t.* FROM ' . POSTS_TABLE . ' p JOIN ' . TOPICS_TABLE . ' t ON p.topic_id = t.topic_id
   AND p.post_id = t.topic_first_post_id
   AND p.forum_id = '. $id_forum_news .'
   ORDER BY p.post_id DESC LIMIT 10';

$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
   $bbcode_bitfield = base64_decode($row['bbcode_bitfield']);
   
   $bbcode = new bbcode(base64_encode($bbcode_bitfield));
   
   // Parse the message and subject
   $message = censor_text($row['post_text']);

   // Second parse bbcode here
   if ($row['bbcode_bitfield'])
   {
      $bbcode->bbcode_second_pass($message, $row['bbcode_uid'], $row['bbcode_bitfield']);
   }

   $message = bbcode_nl2br($message);
   $message = smiley_text($message);
   
   echo 'Message posté dans <a href="' . $phpbb_root_path . 'viewtopic.php?t=' . $row['topic_id'] . '">' . $row['topic_title'] . '</a>:<br />';
   echo substr($message, 0, 150) . '...<br /><br />';
   
}
?>


Ce code est parfait, mais incomplet à mon goût.
Il ne permet d'afficher que le nom du sujet, ainsi que le texte de celui-ci : le minimum.
Ma requête serrait de pouvoir afficher la date, l'auteur et le nombre de commentaires.
Se ne sont que quelques variable à rajoutée parmi les 2 autres qui y sont déjà, je sais très bien.
Mais je n'arrive pas à trouver leurs noms justement. J'ai pourtant essayé mainte-fois.

Sur-ce, je remercie l'équipe Phpbb pour leur forum parfait, et les futurs posters/lecteurs de se sujet. A bientôt ! :D
Dernière édition par Chaos[] le 30 Aoû 2008 à 14:48, édité 2 fois.
Chaos[]
Posteur néophyte
Posteur néophyte
 
Messages: 30
Inscription: 03 Juil 2008 à 19:38

Re: Script-news

Messagede Mystell le 07 Juil 2008 à 14:27

Remplace ton script par :

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

    $phpbb_root_path = 'forums/';
    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    include($phpbb_root_path . 'common.' . $phpEx);
    include($phpbb_root_path . 'includes/bbcode.' . $phpEx);

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

    $id_forum_news = 2;

    $sql = 'SELECT p.*, t.* FROM ' . POSTS_TABLE . ' p JOIN ' . TOPICS_TABLE . ' t ON p.topic_id = t.topic_id
       AND p.post_id = t.topic_first_post_id
       AND p.forum_id = '. $id_forum_news .'
       ORDER BY p.post_id DESC LIMIT 10';

    $result = $db->sql_query($sql);
    while ($row = $db->sql_fetchrow($result))
    {
       $bbcode_bitfield = base64_decode($row['bbcode_bitfield']);
       
       $bbcode = new bbcode(base64_encode($bbcode_bitfield));
       
       // Parse the message and subject
       $message = censor_text($row['post_text']);

       // Second parse bbcode here
       if ($row['bbcode_bitfield'])
       {
          $bbcode->bbcode_second_pass($message, $row['bbcode_uid'], $row['bbcode_bitfield']);
       }

       $message = bbcode_nl2br($message);
       $message = smiley_text($message);
       
       echo 'Message posté dans <a href="' . $phpbb_root_path . 'viewtopic.php?t=' . $row['topic_id'] . '">' . $row['topic_title'] . '</a>:<br />';
       echo substr($message, 0, 150) . '...<br /><br />';
       echo 'Date: ' . $user->format_date($row['topic_time']); .  'Auteur: ' . $row['topic_first_poster_name'] . 'Nombre de commentaire :' .  $row['topic_replies_real'];
       
    }
    ?>


Si tu veux une autre présentation je pense que tu devrais trouver comment changer ca ;) (P.S. C'est pas testé)
Avatar de l’utilisateur
Mystell
Supporter
Supporter
 
Messages: 831
Inscription: 15 Avr 2008 à 09:05
Localisation: Toulouse

Re: Script-news

Messagede Chaos[] le 08 Juil 2008 à 00:15

Bs'oir. :D

Je te remercie de ta réponse Mystell. :)
Je viens tout juste de testé le bout de code que tu m'a gentillement donner.
Mais il semblerait que celui-ci comporte un problème à la ligne 41.
Soit, cette partit du code rajoutée :

Code: Tout sélectionner
echo 'Date: ' . $user->format_date($row['topic_time']); .  'Auteur: ' . $row['topic_first_poster_name'] . 'Nombre de commentaire :' .  $row['topic_replies_real'];


En effet, sans cette partit dans le script, celui-ci fonctionne très bien. Mais elle permet d'ajouter le nombre de commentaires, la date et l'auteur d'un "topic".
Pardonne-moi mes maigres connaissance en php, mais n'y avait-il pas quelque chose à rajouter dans la connexion à BDD, c'est-à-dire au début du script afin d'aller prendre les informations ?

Code: Tout sélectionner
    $sql = 'SELECT p.*, t.* FROM ' . POSTS_TABLE . ' p JOIN ' . TOPICS_TABLE . ' t ON p.topic_id = t.topic_id
       AND p.post_id = t.topic_first_post_id
       AND p.forum_id = '. $id_forum_news .'
       ORDER BY p.post_id DESC LIMIT 10';


Sur-ce, je te remercie encore une fois !
A bientôt ! ;)
Chaos[]
Posteur néophyte
Posteur néophyte
 
Messages: 30
Inscription: 03 Juil 2008 à 19:38

Re: Script-news

Messagede Mystell le 08 Juil 2008 à 08:59

Oups, autant pour moi j'ai laissé un ";" trainner ^^.

Le code correct :
Code: Tout sélectionner
echo 'Date: ' . $user->format_date($row['topic_time']) .  'Auteur: ' . $row['topic_first_poster_name'] . 'Nombre de commentaire :' .  $row['topic_replies_real'];


Autrement pas besoin de rajouter quelque chose dans le select car on fait un select sur "*" ce qui veut dire que ca remonte tout les champs de la table. 8)
Avatar de l’utilisateur
Mystell
Supporter
Supporter
 
Messages: 831
Inscription: 15 Avr 2008 à 09:05
Localisation: Toulouse

Re: Script-news

Messagede Chaos[] le 08 Juil 2008 à 11:29

Sa fonctionne très bien. :D
Je te remercie encore une fois. :)

Je met le code ici, pour les éventuelles personnes qui serraient en pleine croisade d'un bon script comme moi. :P

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

    $phpbb_root_path = 'forums/';
    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    include($phpbb_root_path . 'common.' . $phpEx);
    include($phpbb_root_path . 'includes/bbcode.' . $phpEx);

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

    $id_forum_news = 3;

    $sql = 'SELECT p.*, t.* FROM ' . POSTS_TABLE . ' p JOIN ' . TOPICS_TABLE . ' t ON p.topic_id = t.topic_id
       AND p.post_id = t.topic_first_post_id
       AND p.forum_id = '. $id_forum_news .'
       ORDER BY p.post_id DESC LIMIT 10';

    $result = $db->sql_query($sql);
    while ($row = $db->sql_fetchrow($result))
    {
       $bbcode_bitfield = base64_decode($row['bbcode_bitfield']);
       
       $bbcode = new bbcode(base64_encode($bbcode_bitfield));
       
       // Parse the message and subject
       $message = censor_text($row['post_text']);

       // Second parse bbcode here
       if ($row['bbcode_bitfield'])
       {
          $bbcode->bbcode_second_pass($message, $row['bbcode_uid'], $row['bbcode_bitfield']);
       }

       $message = bbcode_nl2br($message);
       $message = smiley_text($message);
       
echo 'Date: ' . $user->format_date($row['topic_time']) .  'Auteur: ' . $row['topic_first_poster_name'] . 'Nombre de commentaire :' .  $row['topic_replies_real'];   
    }
    ?>


Sur-ce, à bientôt !
Chaos[]
Posteur néophyte
Posteur néophyte
 
Messages: 30
Inscription: 03 Juil 2008 à 19:38

Re: Script-news

Messagede keefoo le 24 Juil 2008 à 09:27

bjr,
j'utilise bien ce script, et d'ailleurs fonctionne trés bien. Mais je souhaiterais affiché une partie du texte des posts concernés.
qu'elle serait la ligne a modifier ou a rajouter ?
Merci pour vos éventuelles réponses. :wink:
keefoo
Posteur néophyte
Posteur néophyte
 
Messages: 6
Inscription: 16 Nov 2007 à 19:38

Re: Script-news

Messagede Mazor le 19 Aoû 2008 à 03:39

Salut, désolé du petit déterrage du post, mais j'aimerais utiliser ce script, mais il ne marches pas sur mon site.
Je pensais au départ que celà était dût à mon adaptation un peu plus poussé du script. Mais non: j'ai essayer le dernier code tout simple posté par Chaos[], mais ça ne marches pas: rien n'est affichés, comme si un exit; était effectués dans les includes. Plus précisément, l'exit; a l'air d'être effectué à cette ligne:
Code: Tout sélectionner
$user->session_begin();

J'ai fait un echo que j'ai décalé a chaque exécution de la page jusqu'à ce qu'il ne soit plus affiché... C'était après cette ligne.

Pourriez-vous m'aider? Merci d'avance.
Mazor
Posteur néophyte
Posteur néophyte
 
Messages: 2
Inscription: 05 Aoû 2008 à 15:55

Re: Script-news

Messagede Chaos[] le 19 Aoû 2008 à 11:18

Hey. :)
Voici le code au complet un peu en bazard (Non testé).
Code: Tout sélectionner
<?php
define('IN_PHPBB', TRUE);

$phpbb_root_path = 'forums/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/bbcode.' . $phpEx);

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

$id_forum_news = 2;

$sql = 'SELECT p.*, t.* FROM ' . POSTS_TABLE . ' p JOIN ' . TOPICS_TABLE . ' t ON p.topic_id = t.topic_id
   AND p.post_id = t.topic_first_post_id
   AND p.forum_id = '. $id_forum_news .'
   ORDER BY p.post_id DESC LIMIT 10';

$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
   $bbcode_bitfield = base64_decode($row['bbcode_bitfield']);
   
   $bbcode = new bbcode(base64_encode($bbcode_bitfield));
   
   // Parse the message and subject
   $message = censor_text($row['post_text']);

   // Second parse bbcode here
   if ($row['bbcode_bitfield'])
   {
      $bbcode->bbcode_second_pass($message, $row['bbcode_uid'], $row['bbcode_bitfield']);
   }

   $message = bbcode_nl2br($message);
   $message = smiley_text($message);
   
   echo 'Message posté dans <a href="' . $phpbb_root_path . 'viewtopic.php?t=' . $row['topic_id'] . '">' . $row['topic_title'] . '</a>:<br />';
   echo substr($message, 0, 150) . '...<br /><br />';
   echo 'Date: ' . $user->format_date($row['topic_time']) .  'Auteur: ' . $row['topic_first_poster_name'] . 'Nombre de commentaire :' .  $row['topic_replies_real'];
}
?>


Il ne faut pas oubléi de changer ceci :

Code: Tout sélectionner
$id_forum_news = 2;

Le chiffre étend l'ID du forum des news.

Et ça indiquent le répertoire de ton forum :

Code: Tout sélectionner
$phpbb_root_path = 'forums/';


Après libre à toi de tout positionné comme tu le souhaite le reste..
Chaos[]
Posteur néophyte
Posteur néophyte
 
Messages: 30
Inscription: 03 Juil 2008 à 19:38

Re: Script-news

Messagede ff_martial le 24 Aoû 2008 à 11:04

Mazor a écrit:Salut, désolé du petit déterrage du post, mais j'aimerais utiliser ce script, mais il ne marches pas sur mon site.
Je pensais au départ que celà était dût à mon adaptation un peu plus poussé du script. Mais non: j'ai essayer le dernier code tout simple posté par Chaos[], mais ça ne marches pas: rien n'est affichés, comme si un exit; était effectués dans les includes. Plus précisément, l'exit; a l'air d'être effectué à cette ligne:
Code: Tout sélectionner
$user->session_begin();

J'ai fait un echo que j'ai décalé a chaque exécution de la page jusqu'à ce qu'il ne soit plus affiché... C'était après cette ligne.

Pourriez-vous m'aider? Merci d'avance.


Ton problème viens du fait que tu t'es trompé dans le numéro ID du forum de News. Tu as dû sélectionné un ID de forum qui n'existe pas. Pour connaitre l'ID du forum que tu veux, tu n'as qu'a aller dans ce forum puis regarder la barre d'adresse. Moi j'ai un truc de ce genre:

Code: Tout sélectionner
viewforum.php?f=3


Cela veut dire que je devrais mettre "3" comme numéro ID.

A part cela, j'ai toujours le même problème avec ce script. Je ne sais pas pourquoi, mais je n'arrive pas à afficher de BBcode... Ca ne m'affiche jamais rien dès que j'essaye d'en mettre...

Savez-vous quel est le problème ?
ff_martial
Apprenti-posteur
Apprenti-posteur
 
Messages: 115
Inscription: 09 Avr 2007 à 12:48

Re: Script-news

Messagede ff_martial le 25 Aoû 2008 à 09:50

UP !
ff_martial
Apprenti-posteur
Apprenti-posteur
 
Messages: 115
Inscription: 09 Avr 2007 à 12:48

Re: Script-news

Messagede Mystell le 26 Aoû 2008 à 09:15

Ca veut dire que si tu as
viewforum.php?f=3 tu met 3
si tu as
viewforum.php?f=6 tu met 6
si tu as
viewforum.php?f=9999 tu met 9999
Avatar de l’utilisateur
Mystell
Supporter
Supporter
 
Messages: 831
Inscription: 15 Avr 2008 à 09:05
Localisation: Toulouse

Re: Script-news

Messagede ff_martial le 26 Aoû 2008 à 10:38

:lol:

Nan, mon problème n'était pas ça. C'était que je n'arrivais pas à afficher les BBcodes sur le site. Mais maintenant c'est bon !
ff_martial
Apprenti-posteur
Apprenti-posteur
 
Messages: 115
Inscription: 09 Avr 2007 à 12:48

Re: Script-news

Messagede Chaos[] le 30 Aoû 2008 à 14:48

Bonjour,

j'ai toujours se problème qui s'affiche quand un forum n'a pas était déjà vu/lu :

Code: Tout sélectionner
[phpBB Debug] PHP Notice: in file /includes/session.php on line 942: Cannot modify header information - headers already sent by (output started at /home/addressedusite/www/index.php:2)


Un problème de session apparemment..
J'ai pourtant mis le fichier au Format UTF-8, essayé de mettre le code php en include, un tuto pour utiliser les session de phpbb..

Je ne vois pas où est le problème.
Pourriez-vous m'aider ?

Merci !
Chaos[]
Posteur néophyte
Posteur néophyte
 
Messages: 30
Inscription: 03 Juil 2008 à 19:38


Retourner vers Aide au développement et à l'adaptation de MODs

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

Liens : phpBB.biz • phpBBHacks.com • phpBB-Seo.com • EzCom-fr.com • phpBB-Services.com • phpBB3 Styles • phpBB podpora • Net Avenir • PromoBenef • Ticket Gagnant •