Communauté Informatique NDFR.net

Communauté Informatique NDFR.net (http://www.ndfr.net/forums/index.php)
-   Programmation Web (HTML, PHP, ASP, Java, XML, etc.) (http://www.ndfr.net/forums/forumdisplay.php?f=65)
-   -   comment créer un site comme ND (http://www.ndfr.net/forums/showthread.php?t=2388)

kenshin 07-07-2003 22:58

[réglé]comment créer un site comme ND
 
pourriez vous m'expliquer comment vous fait pour avoir ce genre de script ?

http://www.newdimension-fr.net/news_syndication_rss.php

merci

Matt 07-07-2003 23:15

Bah à mon avis, c'est un bête script PHP qui extrait les titres des news dans la BDD et qui met le code XML autour ...
C'est exactement comme le code qu'on t'as donné dans ton sujet précédent (http://www.newdimension-fr.net/t2355.html), mais en modifiant le "layout" au niveau des "echo" ...

kenshin 07-07-2003 23:17

si j'ai bien compris il suffierait de modifier cette partie dans le script ?

Code:

echo "document.write(\"<font face='Arial' size='2'><b>" . $date . " : </b><a href='" . $PATH_INDEX . "#id_news_" . $id . "' target='_blank'>" . $titre . "</a></font><br />\");\n";
  $i++;


Matt 07-07-2003 23:26

Voilà ... Par exemple, tu met :
PHP Code:

echo "<item>
<title>"
.$titre."</title>
<link>"
.$PATH_INDEX."#id_news_".$id ."</link>
<pubDate>"
.$date."</pubDate>
</item>"


Et tu auras un truc qui ressemble un peu à ce que tu veux.
(En pensant bien à mettre aussi l'en-tête en début de fichier et le </channel></rss> à la fin ...)

kenshin 07-07-2003 23:38

je vais essayer merci mais c'est pas gagné faut que je trouve de la doc dessus

kenshin 08-07-2003 10:28

enfin j'ai rien compris

Matt 08-07-2003 10:41

pourtant y a rien à comprendre :confused:

kenshin 08-07-2003 11:16

le code devrait celui ci non ?
Code:

<?php
/*  © Jogo 2003
    Jogo@nintendomaine.com
    */

$chemin = "./";//->chemin par rapport à la racine du script freenews
$nbnews = 5;  //->nombre de news à afficher

include ($chemin . "config.php");
include ($chemin . "options.inc.php");
include ($chemin . "freenews_functions.inc.php");

//->Connection MySQL
connexion();

$sql = "SELECT id_news, titre, auteur, date_ajout FROM news WHERE validation='1' ORDER BY id_news DESC LIMIT 0, " . $nbnews;
$res = mysql_query($sql);
$nbn = mysql_num_rows($res);
while($aff = mysql_fetch_array($res)) {
  if(strlen($aff['titre'] >= 30))
    $aff['titre'] = substr($aff['titre'], 0, 25) . "...";

echo "<item>
<title>".$titre."</title>
<link>".$PATH_INDEX."#id_news_".$id ."</link>
<pubDate>".$date."</pubDate>
</item>";
}
mysql_close();//->je suis méticuleux, je ferme la connection
?>

j'enregistre ce fichier au format php .
ensuite tu me parles de <rss><channel></channel></rss>
et là je suis perdue.
où va cette petite bête ? dans un ficheir en particulier ?

Matt 08-07-2003 11:29

ben le <rss><channel> se met au début du fichier avant le <? (avec encore éventuellement des <title>, <description> etc ... comme sur http://www.newdimension-fr.net/news_syndication_rss.php), et le </rss></channel> se met à la fin du fichier, après le ?>

Jogo 08-07-2003 11:30

Bah là comme tu viens de faire, c'est pas gagné, t'a empacté deux fois le code !
EDIT : Evidament, en éditant tu corrige ton erreur et fait quelque chose qui me semcle correct, donc mes explication ne sont plus nécessaires je pense !

Sinon, le "© Jogo 2003", tu peux le virer, c'est phpEd qui l'a mis automatiquement, j'ai oublié de le supprimer en te le donnant, ça me flatte trop pour que tu le laisse :D ;) !
Avant "<?php" il faut que tu mette un truc du genre :
Quote:

<rss version="0.92">
<channel>
<title>Titre de ton site</title>
<description>
Description de ton site
</description>
<link>http://www.tonsite.com</link>
<language>fr-fr</language>
<copyright>© toi 2003</copyright>
<managingEditor>toi@tonsite.com</managingEditor>
<webMaster>toi@tonsite.com</webMaster>
et après le "?>" tu mets ça :
Quote:

</channel>
</rss>
Ensuite attaquons-nous aux choses sérieuses, à la place du echo qui se trouve dans la boucle while, tu mets un truc du genre
PHP Code:

echo "<item>\n<title>" $aff['titre'] . "</title>\n<link>" $url_suite "?id_news=" $aff['id_news'] . 
"</link>\n<comments>\nhttp://tonsite.com/lienspourposteruncommentaire.php?id=\n</comments>\n<pubDate>" 
$aff['date_ajout'] .  </pubDate>\n</item>"; 

Valà, en éspérant que t'arrive à te demerder avec ça !

kenshin 08-07-2003 11:36

Jogo j'ai laissé ton "© Jogo 2003" je pense qu'une petite reconnaissance est la moindre des choses à faire pour l'aide que tu m'as apporté.

je vais modifier suivant ce que vous m'avez conseillé.

kenshin 08-07-2003 11:43

JOgo rien est inutile ;)

Code:

<?xml version="1.0" ?>
<rss version="0.92">
<channel>
<title>CDivxstater</title>
<description>
création d'un cd outils pour réparer son PC
</description>
<link>http://cdivxstarter.free.fr</link>
<language>fr-fr</language>
<copyright>© moi 2003</copyright>
<managingEditor>kenshin51@voila.fr</managingEditor>
<webMaster>kenshin51@voila.fr</webMaster>
<?php
/*  © Jogo 2003
    Jogo@nintendomaine.com
    */

$chemin = "./";//->chemin par rapport à la racine du script freenews
$nbnews = 5;  //->nombre de news à afficher

include ($chemin . "config.php");
include ($chemin . "options.inc.php");
include ($chemin . "freenews_functions.inc.php");

//->Connection MySQL
connexion();

$sql = "SELECT id_news, titre, auteur, date_ajout FROM news WHERE validation='1' ORDER BY id_news DESC LIMIT 0, " . $nbnews;
$res = mysql_query($sql);
$nbn = mysql_num_rows($res);
while($aff = mysql_fetch_array($res)) {
  if(strlen($aff['titre'] >= 30))
    $aff['titre'] = substr($aff['titre'], 0, 25) . "...";

 
echo "<item>
<title>".$titre."</title>
<link>".$PATH_INDEX."#id_news_".$id ."</link>
<pubDate>".$date."</pubDate>
</item>";

}
mysql_close();//->je suis méticuleux, je ferme la connection
?>
</channel>
</rss>

est correct ?

question bête : quelle doit etre l'extension du fichier php ? xml ? rss ?

Samva 08-07-2003 14:45

php, sinon le servor va pas l'executer.... =)

Jogo 08-07-2003 21:55

Oui, c'est correct, seul un truc : la première ligne. XML entre en conflit avec php, donc mets <? echo "<?xml version=\"1.0\" ?>";?>

Samva 08-07-2003 22:59

ouai tu peux faire ca, et meme mettre
Code:

<?
echo '<?xml version="1.0"?>';
?>

C'est just epour éviter d'utiliser un caractere d'echappement.. vu que tu n'as pas de variables a exploiter tu peux te permettre les guillemet simples


All times are GMT +2. The time now is 13:34.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.