begin process at 2012 05 27 18:24:24
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > RSS - LES 5 DERNIERS POST DE PHPBB

RSS - LES 5 DERNIERS POST DE PHPBB


 Information sur la source

Note :
9 / 10 - par 2 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Astuces Niveau :Débutant Date de création :27/12/2004 Date de mise à jour :05/01/2005 21:40:28 Vu / téléchargé :8 117 / 336

Auteur : _sebf

Ecrire un message privé
Site perso
Commentaire sur cette source (20)
Ajouter un commentaire et/ou une note

 Description

Voici un script PHP qui permet de publier, au format RSS, les 5 derniers posts de votre forum PHPBB.

Une démo du code est disponnible à l'adresse suivante (en cliquant sur le logo RSS en bas) :
http://www.frameip.com/forum/

------------------ ----
_sebf
http://www.frameip.com
Pour les spécialistes IP
----------------------

Source

  • <?PHP
  • // ********************************************
  • // Nom du script : forum-rss.php
  • // Auteur : _SebF AT frameIP.com
  • // date de création : 27 Décembre 2004
  • // version : 1.1
  • // Licence : Ce script est libre de toute utilisation.
  • // La seule condition existante est de faire référence au site http://www.frameip.com afin de respecter le travail d'autrui.
  • // ********************************************
  • // **********************************************
  • // Variables à Définir
  • // **********************************************
  • $nombre_de_post_a_afficher=5;
  • // ********************************
  • // Connexion à la base Mysql
  • // ********************************
  • mysql_connect("server","login","password");
  • mysql_select_db("nom_de_la_base");
  • // **********************************************
  • // Récupération du nombre de post totale
  • // **********************************************
  • $id=mysql_query("SELECT topic_id FROM z_forum_topics WHERE forum_id!=11");
  • $nombre_de_post_total=mysql_num_rows($id);
  • // **********************************************
  • // Affichage de l'entête de la page Xml
  • // **********************************************
  • header("Content-Type: text/xml");
  • echo
  • '
  • <?xml version="1.0" encoding="ISO-8859-1"?>
  • <!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN"
  • "http://my.netscape.com/publish/formats/rss-0.91.dtd">
  • <rss version="0.91">
  • ';
  • // **********************************************
  • // Affichage de la catégorie
  • // **********************************************
  • echo
  • '
  • <channel>
  • <title>Le Forum du monde TCPIP avec FrameIP.com</title>
  • <link>http://www.frameip.com/</link>
  • <description>FrameIP, un forum pour les spécialistes IP - Les 5 derniers posts</description>
  • <language>fr</language>
  • <image>
  • <title>FrameIP</title>
  • <url>http://www.frameip.com/logos/logo_30.jpg</url>
  • <link>http://www.frameip.com</link>
  • <description>FrameIP, un forum pour les spécialistes IP. - TcpIP - Voip - Toip - Vpn - Ipv6</description>
  • <width>142</width>
  • <height>56</height>
  • </image>
  • ';
  • // **********************************************
  • // Récupération des Posts
  • // **********************************************
  • $id=mysql_query("SELECT topic_title,topic_id FROM z_forum_topics WHERE forum_id!=11 ORDER BY topic_id DESC LIMIT ".$nombre_de_post_a_afficher);
  • // **********************************************
  • // Affichage des Posts
  • // **********************************************
  • while($tempo=mysql_fetch_row($id))
  • echo
  • '
  • <item>
  • <title>'.$tempo[0].'</title>
  • <link>http://www.frameip.com/forum/viewtopic.php?t='.$tempo[1].'</link>
  • </item>
  • ';
  • // **********************************************
  • // Affichage de l'entête de la page Xml
  • // **********************************************
  • echo
  • '
  • </channel>
  • </rss>
  • ';
  • ?>
<?PHP

// ********************************************
// Nom du script : forum-rss.php
// Auteur : _SebF AT frameIP.com
// date de création : 27 Décembre 2004
// version : 1.1
// Licence : Ce script est libre de toute utilisation.
// La seule condition existante est de faire référence au site http://www.frameip.com afin de respecter le travail d'autrui.
// ********************************************

// **********************************************
// Variables à Définir
// **********************************************
$nombre_de_post_a_afficher=5;

// ********************************
// Connexion à la base Mysql
// ********************************
mysql_connect("server","login","password");
mysql_select_db("nom_de_la_base");

// **********************************************
// Récupération du nombre de post totale
// **********************************************
$id=mysql_query("SELECT topic_id FROM z_forum_topics WHERE forum_id!=11");
$nombre_de_post_total=mysql_num_rows($id);

// **********************************************
// Affichage de l'entête de la page Xml
// **********************************************
header("Content-Type: text/xml");
echo
	'
	<?xml version="1.0" encoding="ISO-8859-1"?>
	<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN"
	"http://my.netscape.com/publish/formats/rss-0.91.dtd">
	<rss version="0.91">
	';

// **********************************************
// Affichage de la catégorie
// **********************************************
echo
	'
	<channel>
	<title>Le Forum du monde TCPIP avec FrameIP.com</title>
	<link>http://www.frameip.com/</link>
	<description>FrameIP, un forum pour les spécialistes IP - Les 5 derniers posts</description>
	<language>fr</language>
	<image>
	<title>FrameIP</title>
	<url>http://www.frameip.com/logos/logo_30.jpg</url>
	<link>http://www.frameip.com</link>
	<description>FrameIP, un forum pour les spécialistes IP. - TcpIP - Voip - Toip - Vpn - Ipv6</description>
	<width>142</width>
	<height>56</height>
	</image>
	';

// **********************************************
// Récupération des Posts
// **********************************************
$id=mysql_query("SELECT topic_title,topic_id FROM z_forum_topics WHERE forum_id!=11 ORDER BY topic_id DESC LIMIT ".$nombre_de_post_a_afficher);

// **********************************************
// Affichage des Posts
// **********************************************
while($tempo=mysql_fetch_row($id))
	echo
		'
		<item>
		<title>'.$tempo[0].'</title>
		<link>http://www.frameip.com/forum/viewtopic.php?t='.$tempo[1].'</link>
		</item>
		';

// **********************************************
// Affichage de l'entête de la page Xml
// **********************************************
echo
	'
	</channel>
	</rss>
	';

?>

 Conclusion

Il vous faudra adapter le début du noms des base. J'ai mis z_ alors que le standard est ceratinement du type php_bb

N'oubliez pas non plus de changer le lien des post dans la boucle for afin de pointer sur votre forum.

Vennez voir le fonctionnement ici (en cliquant sur le logo RSS en bas) :
http://www.frameip.com/forum/

----------------- -----
_SebF
http://www.frameip.com
Pour les spécialistes IP
----------------------


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

05 janvier 2005 21:40:28 :
Mise à jour de code en V1.1.

 Sources du même auteur

Source avec Zip MESURER LE DÉBIT DE LA BANDE PASSANTE
Source avec Zip CRÉATION D'ALERTES DANS LE FORUM PHPBB
Source avec Zip LIST UN REPERTOIRE ET CRÉE LES LIENS HTML
Source avec Zip SUPERVISION DES PORTS OUVERTS - SCAN TCP
Source avec Zip SCANNER DE PORT TCP - CODE SOURCE COMMENTÉ ET AFFICHAGE DU R...

 Sources de la même categorie

AFFICHÉ SUR UN TABLEAU AVEC PAGINATION ET BASE DE DONNÉES par stormxp
Source avec Zip Source avec une capture GENERATEUR D'ONGLET DE NAVIGATION PHP par pos123
FORMATER UN LIEN YOUTUBE, DAILYMOTION OU VIMEO POUR L'UTILIS... par kgb93
Source avec Zip Source avec une capture PAGINATION + FICHIER CSS par profdi
Source avec Zip Source avec une capture SYSTEME D'AUTHENTIFICATION PHP AVEC PROTÉCTION KEYLOGGER par mtrix000

Commentaires et avis

Commentaire de Anthomicro le 27/12/2004 12:56:05

Salut ;-)

remplaces ton code par ça :

<?php

// **********************************************
// Variables à Définir
// **********************************************
$nombre_de_post_a_afficher=5;

// ********************************
// Connexion à la base Mysql
// ********************************
mysql_connect('server','login','password');
mysql_select_db('nom_de_la_base');

// **********************************************
// Récupération du nombre de post totale
// **********************************************
$id=mysql_query('select topic_id from z_forum_topics where forum_id!=11');
$nombre_de_post_total=mysql_num_rows($id);

// **********************************************
// Affichage de l'entête de la page Xml
// **********************************************
header('Content-Type: text/xml');
echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n";
echo "<!DOCTYPE rss PUBLIC \"-//Netscape Communications//DTD RSS 0.91//EN\"\n";
echo " \"http://my.netscape.com/publish/formats/rss-0.91.dtd\">\n\n";
echo "<rss version=\"0.91\">\n\n";

// **********************************************
// Affichage de la catégorie
// **********************************************
echo "<channel>\n";
echo "<title>Le Forum du monde TCPIP avec FrameIP.com</title>\n";
echo "<link>http://www.frameip.com/</link>\n";
echo "<description>FrameIP, un forum pour les spécialistes IP - Les 5 derniers posts</description>\n";
echo "<language>fr</language>\n\n";
echo "<image>\n";
echo "<title>FrameIP</title>\n";
echo "<url>http://www.frameip.com/logos/logo_30.jpg</url>\n";
echo "<link>http://www.frameip.com</link>\n";
echo "<description>FrameIP, un forum pour les spécialistes IP. - TcpIP - Voip - Toip - Vpn - Ipv6</description>\n";
echo "<width>142</width>\n";
echo "<height>56</height>\n";
echo "</image>\n\n";

// **********************************************
// Récupération des Posts
// **********************************************
$id=mysql_query("select topic_title,topic_id from z_forum_topics where forum_id!=11 ORDER BY topic_id desc");

// **********************************************
// Affichage des Posts
// **********************************************
for ($i=1;$i<=$nombre_de_post_a_afficher;$i++)
    {
    $tempo=mysql_fetch_array($id);
    echo "<item>\n";
    echo "<title>$tempo[0]</title>\n";
    echo "<link>http://www.frameip.com/forum/viewtopic.php?t=$tempo[1]</link>\n";
    echo "</item>\n\n";
    }

// **********************************************
// Affichage de l'entête de la page Xml
// **********************************************
echo "</channel>\n\n";
echo "</rss>";

?>

Tu peux également optimiser les echos

a +

Commentaire de _sebf le 27/12/2004 13:19:10

Peux tu expliquer oùu sont les différences et pourquoi ?

Merci.

Commentaire de coucou747 le 27/12/2004 13:36:42 administrateur CS

short tags...
au moins :
<? ceci n'est pas portable, alors que <?php ceci l'est...

Commentaire de Anthomicro le 27/12/2004 14:48:33

et quelques quotes simples pour ce qui est du pinaillage mdr, mais les multiples echo seraient à remplacer par un seul echo avec des quotes simples (j'ai pas eu le courage de le refaire désolé)

a +

Commentaire de fg85 le 27/12/2004 15:59:16

Mouarf c'était pas le peine de faire une source pour ça ;-)
Malgré quelque fonction intérrésante que je m'enpresse de modifier/utiliser .
---------------------------
http://fg.logiciel.free.fr

Commentaire de webdeb le 02/01/2005 12:52:36

Source intéressante dans son contexte mais quelques points négatifs :

-> Shorts tags (ca a été dit)
-> Préfère mysql_fetch_assoc à mysql_fetch_array
-> Ecris tes requêtes SQL avec les mots spécifiques en majucusules (SELECT, WHERE...)

Voilà !

++

Commentaire de Anthomicro le 02/01/2005 13:02:34

Tiens ça me fait penser que j'ai oublié de mentionner ça :

for ($i=1;$i<=$nombre_de_post_a_afficher;$i++)
    {
    $tempo=mysql_fetch_array($id);
    echo "<item>\n";
    echo "<title>$tempo[0]</title>\n";
    echo "<link>http://www.frameip.com/forum/viewtopic.php?t=$tempo[1]</link>\n";
    echo "</item>\n\n";
    }

à remplacer par ça :

for ($i=1;$i<=$nombre_de_post_a_afficher;$i++)
    {
    $tempo=mysql_fetch_row($id);
    echo "<item>\n";
    echo "<title>$tempo[0]</title>\n";
    echo "<link>http://www.frameip.com/forum/viewtopic.php?t=$tempo[1]</link>\n";
    echo "</item>\n\n";
    }

car dans ce cas le fetch_array ne sert à rien si ce n'est qu'à ralentir le script.

a +

Commentaire de coucou747 le 02/01/2005 13:26:22 administrateur CS

C'est un forum utilisé par bcp de sites ?

C'est vraiment bien comme forum ?

Commentaire de Anthomicro le 02/01/2005 13:33:22

utilisé par beaucoup de sites, oui

vraiment bien au niveau optimisation, non.

Commentaire de fg85 le 02/01/2005 14:33:04

C'est clair,je l'utilise sur mon site : http://fg.logiciel.free.fr/php/forums/

Commentaire de Anthomicro le 02/01/2005 14:50:40

je rajoute :

$id=mysql_query("select topic_title,topic_id from z_forum_topics where forum_id!=11 ORDER BY topic_id desc");

à remplacer par

$id=mysql_query("SELECT topic_title,topic_id FROM z_forum_topics WHERE forum_id!=11 ORDER BY topic_id DESC LIMIT ".$nombre_de_post_a_afficher);

Ensuite
for ($i=1;$i<=$nombre_de_post_a_afficher;$i++)
    {
    $tempo=mysql_fetch_row($id);
    echo "<item>\n";
    echo "<title>$tempo[0]</title>\n";
    echo "<link>http://www.frameip.com/forum/viewtopic.php?t=$tempo[1]</link>\n";
    echo "</item>\n\n";
    }

à remplacer par

while($tempo=mysql_fetch_row($id))
{
    echo "<item>\n";
    echo "<title>".$tempo[0]."</title>\n";
    echo "<link>http://www.frameip.com/forum/viewtopic.php?t=".$tempo[1]."</link>\n";
    echo "</item>\n\n";
}

et encore...

a +

Commentaire de coucou747 le 02/01/2005 16:31:15 administrateur CS

Oki, c'est donc cela phpbb...

J'aimes pas trop les trucs tout faits...

Si qqn veut, pour ajouter un module à phpbb, je vais tenter de faire un réseau de neurones en php pour censurer les messages...

si c'est trop lent, je le ferais en C et php ne fera que l'apeler grace à la commande system...

Si qqn est volontaire, ou si qqn à de la doc...

Commentaire de _sebf le 05/01/2005 21:42:21

Voilà j'ai tenu compte de vos remarques pour mettre à jour le code.

Merci à vous

_SebF

Commentaire de sidi system le 06/02/2005 16:07:07

voila je suis un debutant et je voudrais savoir ou placer ce fichier
a+

Commentaire de mickael9 le 22/08/2005 00:35:48

A la racine de ton forum.

Commentaire de Anthomicro le 22/08/2005 00:37:27

il manque aussi un mysql_close() après le mysql_query()

Commentaire de spyro666 le 09/04/2006 12:35:47

Y a-t-il un quelconque danger si on ne fait pas mysql_close() apres un mysql_query() ?

Commentaire de Anthomicro le 09/04/2006 13:13:37

Nan, mais c'est mieux de le faire juste après le dernier mysql_query() car sinon tu peux avoir des erreurs de max_user_connections

Commentaire de coucou747 le 09/04/2006 13:15:42 administrateur CS

le mysql_close permet de libérer plus tot de la mémoire...

Bon, sinon, phpbb c'est pas super optimisé...

Commentaire de Anthomicro le 09/04/2006 14:15:13

ouais enfin sa fonction première c'est pas de libérer de la mémoire mais de fermer la connexion (qui elle occupe de la mémoire), donc oui ça libère de la mémoire, mais c'est pas sa fonction première (y'a unset() pour ça).

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales