astuce : agregator feed 2 node + blogsearch buzz

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

ohpps un code
je ne connais pas bien la syntaxe simplifié des mysql SELECT alors j'ai mis du bon vieux php
de plus un second array est possible pour le simpleXML

ce code prend les feeds de l'agregateur
les mets dans les nodes
ajoute une image aléatoire dans le teaser
scan google blogsearch
prend les 5 premiers resultats
les ajoute en lien a la fin de l'article
puis met la valeur "0" dans la base "guid" des feeds afin d'éviter les doublons
une fois que toutes les feeds sont posté on ajoute un lien vers cron pour les visiteurs, afin de mettre à jours l'agregateur (pour qu'il ajoute encore des feeds)

nb : db2.php et la page de connection a mysql
nb2 : il vous suffit de créer un block, de l'afficher sur les pages souhaité, ainsi a chaque fois qu'un visiteur visite le site un nouvel article issut des feeds est posté.
nb3 : l'ordre des "feeds 2 node" est aléatoire mais prend les derniers (sauf si les feeds ont un uid de "0" ce qui serait un hazard"

exemple : http://rezareza.gdc-hebergement.fr/fessebook/

<?php
require "../db2.php";

//$reponse = mysql_query("SELECT * FROM 2008_aggregator_item WHERE guid!='0' ORDER BY RAND() DESC LIMIT 1");
$reponse = mysql_query("SELECT * FROM 2008_aggregator_item WHERE guid != '0' ORDER BY RAND() DESC LIMIT 1");









$donnees = mysql_fetch_array($reponse);

if (!
$donnees) {
   echo
"Visiteur, merci de nous aider en dumpant la base de news. Cliquez <a href='http://rezareza.gdc-hebergement.fr/fessebook/cron.php'>ici</a>, attendez que la page blanche se charge et revenez sur la page d'acceuil pour vois les nouveautés";
}


if (
$donnees) {


$thenumby = $donnees['iid'];
$lelink1 = $donnees['link'];
$titre1 = $donnees['title'];
$body1 = $donnees['description'];
$randy = rand(1, 2449);
$url = "http://laurent.gandhi.free.fr/400x400/the$randy.jpg";
$teaser1 = "<h1>YO !</h1><br><br><img src='$url'>";

$xml = simplexml_load_file("http://blogsearch.google.fr/blogsearch_feeds?hl=fr&lr=&q=$titre1&ie=utf-8&num=5&output=rss");

$xmldone = $xml->channel->item[0]->title."<br />";
$xmldone1 = $xml->channel->item[0]->link."<br />";
$xmldone2 = $xml->channel->item[0]->description."<br />";

$xmldonea = $xml->channel->item[1]->title."<br />";
$xmldone1a = $xml->channel->item[1]->link."<br />";
$xmldone2a = $xml->channel->item[1]->description."<br />";

$xmldoneaz = $xml->channel->item[2]->title."<br />";
$xmldone1az = $xml->channel->item[2]->link."<br />";
$xmldone2az = $xml->channel->item[2]->description."<br />";

$xmldoneae = $xml->channel->item[3]->title."<br />";
$xmldone1ae = $xml->channel->item[3]->link."<br />";
$xmldone2ae = $xml->channel->item[3]->description."<br />";

$xmldonear = $xml->channel->item[4]->title."<br />";
$xmldone1ar = $xml->channel->item[4]->link."<br />";
$xmldone2ar = $xml->channel->item[4]->description."<br />";

$body2 = "$teaser1<br><br>$body1<br><br>Voir la suite sur le site d'origine : <a href='$lelink1'>HOP LA</a><br><br>Référencement de cette article : <br>$xmldone $xmldone1 $xmldone2 <br> $xmldonea $xmldone1a $xmldone2a <br> $xmldoneaz $xmldone1az $xmldone2az <br> $xmldoneae $xmldone1ae $xmldone2ae <br> $xmldonear $xmldone1ar $xmldone2ar";


               global
$user;

       
$node = new StdClass();
       
// Information for base node
       
$node->type = 'messagepublic'// *** This needs to be a valid content type
       
$node->uid = $user->uid;

       
// Optional - Useful if you want the create date/time to reflect something other than now
        // $node->created = ** Valid unix time stamp

       
$node->status = 1// Set to 0 if you do not want the content published
       
$node->promote = 1// Set to 0 if you do not want the content promoted to the front page
       
$node->sticky = 0// Set to 1 if you do not want the content sticky
       
$node->title = $titre1;
       
$node->body = $body2;
       
$node->teaser = $teaser1;
       
$node->language = 'fr';
       
$node->comment = '2';
       
node_save($node);
       
$nid = $node->nid;

$zero = "0";
mysql_query("UPDATE 2008_aggregator_item SET guid = $zero WHERE iid = $thenumby");

}
?>
Forum : 
Version de Drupal :