Vous êtes ici Forums > Dépôt de sources > [résolu] Script de feed photo

SUJET: [résolu] Script de feed photo
  Le 26 Aout 2010 à 17:07:41
Bonjour à tous,
Je cherche à créer un feed rss des dernières photos postées sur mon site à partir d'une liste de différents répertoires et en classant les photos dans le feed par ordre d'upload sur le serveur.
J'ai vu ce script (http://www.phpsources.org/scripts186-PHP.htm) mais il ne couvre qu'une partie de ce que je veux faire.
Pour être honnête, je suis en train de voyager et je n'ai pas le temps de tâtonner à droite à gauche pour écrire le script. Quelqu'un pourrait il me fournir une base déjà solide que je pourrais améliorer par la suite?
Merci d'avance wink
fourmizen
site web du membre profil du membre
Messages: 148

Dernière réponse le
02-03-2011 à 18:03:47
par 280189
 

  Le 26 Aout 2010 à 23:32:59
lu,
Pour générer un flux j'ai vu sur le site que tu as des codes de Emacs, ca ma l'air bien cool son dèv: le bout de code php + les classes
Générer des flux RSS
Package de classes PHP5 permet de générer des flux RSS

Si tu veux le générer sans passer pas ces classes, j'en ai fait 1 et c'est pas super dur a monter, faut que tu regardes attentivement comment est construit un flux ensuite tu le génère

- lectures des éléments à fluder
- création du flux (je te met juste le début, mettre les éléments a écrire dans une variable)
Code:
<?php
$xml .= "<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">n";<br />
$xml .= "t<channel>n"?>



puis écrire le flux dans un fichier, je te met la fin
Code:
<?php $xml .= "t</channel>n";
    
$xml .= "</rss>n";
    
$fp fopen(REP_RACINE '/' $tonfichierxml'w+');
    
fwrite($fp$xml);
    
fclose($fp); ?>

cristo
profil du membre
Messages: 8

 

  Le 28 Aout 2010 à 18:25:46
salut cristo,
merci pour le lien. cette classe semble très bien faite et je pense l'utilisée.
Par contre là ou je vais avoir du mal c'est dans la req...parce que mes images ne sont pas listées dans une bdd et je ne vois pas comment préparer la req avec les instructions suivantes :
- récupérer l'ensemble des images contenues dans les dossiers x, y et z...
- classer ces images par date de publication
- insérer dans le flux uniquement les 10 dernières publiées...
une idée ? :)
fourmizen
site web du membre profil du membre
Messages: 148

 

  Le 30 Aout 2010 à 22:55:52
un flux photo ? hum... si tes photos ont 1 titre + 1 description unique + 1 date de mise en ligne ca semble intéressant sinon ca n'a pas franchement d'interet de feeder des photos seules. Il n'existe pas à ma connaissance de scripts pour feeder des photos seules. Si tu les mets juste comme des images sur ton site alors Google Images devrait te les indexer, mais elles ne ressortiront jamais dans Google search. Le mieux quand on expose des photos c'est de les placer dans un contexte avec du rédactionnel autour et de feeder les pages ou se trouve les photos.



KOogar
Modérateur
site web du membre profil du membre
Messages: 315

 

  Le 01 Sept 2010 à 01:52:19
oui mais on peut pas optimiser un site de photographie comme un site de presse ou un blog...et le flux c'est surtout pour que les visiteurs puissent tout de suite voir les nouveautés sur le site ainsi que pour qu'il y ai une publication automatique sur facebook...L'idée serait qu'en cliquant sur la photo, on aille directement à la galerie contenant l'image...
Donc j'insiste ;) si vous pouviez m'aider avec la partie qui liste les images, retiens le fichier d'où elles sont issues et les classent ce serait top!:)
fourmizen
site web du membre profil du membre
Messages: 148

 

  Le 03 Sept 2010 à 05:29:04
hey sinon j'ai peut être une autre possibilité...A chaque fois que je publie des images, la galerie que j'utilise publie un xml. Peut être que c'est plus facile de récupérer les informations (path, nom, date) que je veux à partir de ces différents xml générés :

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!--Published with SlideShowPro for Lightroom 1.4.9.4-->
<gallery title="Gallery title" description="Gallery description">
<album id="Album title" lgpath="album1/images/" tnpath="album1/thumb/" popuppath="album1/popup/" fspath="album1/fs/" title="Album title" description="Album description" tn="album1/images/_09_02_2010_USA_New_York_City_Manhattan_1_2.jpg" audio="" audiocaption="">
<img src="_09_02_2010_USA_New_York_City_Manhattan_1_2.jpg" title="USA, New York City" caption="09-02-2010" pause="" />
<img src="_09_02_2010_USA_New_York_City_Manhattan_2_2.jpg" title="USA, New York City" caption="09-02-2010" pause="" />
</album>
</gallery>



Qu'est ce que vous en pensez?
fourmizen
site web du membre profil du membre
Messages: 148

 

  Le 06 Sept 2010 à 01:59:06
Je ne comprend pas grand chose à ton code. Aurais-tu un exemple d'un site qui diffuse des photos à travers un flux xml ? Car pour moi un flux ca présente 3 éléments intrinsèque au flux, c'est à dire: 1 lien + 1 titre + 1 description et il te manque le titre et la description, ce qui veut dire qu'il sera difficile voir impossible de le créer, et encore moins de la parser (de le lire).

Trouve un exemple (j'ai chercher un peu de mon coté mais je n'ai rien trouvé) sur lequel tu peux t'appuyer.
KOogar
Modérateur
site web du membre profil du membre
Messages: 315

 

  Le 08 Sept 2010 à 19:02:44
Ok bon j'ai utilisé une base de donnée pour les photos et j'ai monté le code suivant...Seul petit problème : la page du flux s'affiche avec l'icone et après aucune photo n'apparait. Ce qui est étrange c'est lorsque l'on regarde les code généré (ctr+u sur firefox) je peux voir que les items ont été générés...Une idée? Voici mon code :
Code:
<?php
require_once(
"include_php.php"); 


//Génération Entête XML<br />
$xml "<?xml version="1.0" encoding="UTF-8" n";
$xml .= "<rss version="2.0">n";
$xml .= "t<channel>n";
$xml .= "tt<title>$rss_title</title>n";
$xml .= "tt<link>$site_url</link>n";
$xml .= "tt<description>$rss_description</description>n";
$xml .= "tt<language>$lang</language>n";
//Image<br />
$xml .= "tt<image>n";
$xml .= "ttt<url>$site_url/data/images/logo_rss.png</url>n";
$xml .= "ttt<link>$site_url</link>n";
$xml .= "ttt<width>77</width>n";
$xml .= "ttt<height>80</height>n";
$xml .= "ttt</image> n";
//Boucle d'affichage des images<br />
$reponse $bdd->query("SELECT * FROM ssp_images WHERE active=1 ORDER BY id DESC LIMIT 0, 20") or die (print_r($bdd->errorInfo()));
while(
$donnees $reponse->fetch())
{
    
$picture_id $donnees['id'];
    
$picture_album_id $donnees['aid'];
    
$picture_src $donnees['src'];
    
$picture_date $donnees['created_on'];
    
$picture_pub_date date('D, j M Y H:i:s O'$picture_date);
    
//Formatage des dates <br />
    
if($lang=="fr"){$rss_item_title_date =     date('j/m/Y H:i:s'$picture_date);}
    else{
$rss_item_title_date date('m/j/Y H:i:s'$picture_date);}    
    
$picture_title $donnees['title'];
    
$picture_description $donnees['caption'];
    
$gallerie_enoki = array (
        
'5' => 'portfolio/travels/photographs.php',
        
'8' => 'portfolio/martial-arts/photographs.php',
        
'7' => 'portfolio/nature/photographs.php',
        
'6' => 'portfolio/portraits/photographs.php',
        
'9' => 'services/portrait/photographs-and-service.php',
        
'10' => 'services/wedding/photographs-and-service.php'
    );
    
$picture_enoki_url $site_url."/".$gallerie_enoki[$picture_album_id]."#id=album-".$picture_album_id."&num=content-".$picture_id."";


$xml .= "tt<item>n";
$xml .= "ttt<title>$rss_item_title $rss_item_title_date</title>n";
$xml .= "ttt<link>$picture_enoki_url</link>n";
$xml .= "ttt<description>$picture_description</description>n";
$xml .= "ttt<pubDate>$picture_pub_date</pubDate>n";
$xml .= "ttt<guid isPermaLink="true">$picture_enoki_url</guid>n";
$xml .= "ttt<media:content url="$picture_enoki_url" type="image/jpeg" />n";
$xml .= "tttt<media:title>$picture_title</media:title>n";
$xml .= "tttt<media:thumbnail url="$picture_src" height="75" width="75" />n";
$xml .= "tt</item>n";
}

// Fermeture et affichage du flux<br />
$xml .= "t</channel>n";
$xml .= "</rss>n";
header("Content-type: text/xml; charset=UTF-8");
echo 
$xml;
?>

fourmizen
site web du membre profil du membre
Messages: 148

 

  Le 09 Sept 2010 à 11:45:44
créer directement le fichier :

Code:
<?php 
  
$fp fopen('rss.xml''w+');
    
fwrite($fp$xml);
    
fclose($fp);
?>



pour l'url de l'image avec ta variable $picture_enoki_url, c'est quoi ce signe # ? Il n'est pris en compte que par les navigateurs. Met le chemin exact de l'image, celle du ftp
KOogar
Modérateur
site web du membre profil du membre
Messages: 315

 

  Le 09 Sept 2010 à 15:36:32
Oui je m'en suis aperçu en fait mais comme je veux que ca pointe vers les galeries et qu'apparemment c'est pas accepté dans les flux rss (les url avec paramètres) ba j'ai créé une section last-release sur mon site...C'est dommage mais bon...c'est toujours mieux que rien. Merci pour l'aide
++
fourmizen
site web du membre profil du membre
Messages: 148

 
 
Librairie PHP

Connexion

 
 

Explications

 
 

Ressources

 
 
 
 

Flux RSS

 
 
 
 
      TWITTER !!
Suivez phpsources sur Twitter
 
annuaire phpsources référencer vos sites

Répertoire de sites francophones pour ajouter vos sites.
Référencer vos sites

 
Partenaire officiel
Partenaire officiel
 
  Statistiques...
Stats du réseau:
visiteurs en ligne : 23
basées sur les utilisateurs actifs des 5 dernières minutes
membres : 10048
 
Stats du site phpsources:
Dernière mise à jour des stats
aujourd'hui à 01:39:02

codes sources : 567
scripts : 790
articles - actualités : 101
tutoriel : 34
sites sur le langage PHP : 146
commentaires : 1 581
total des scripts téléchargés: 512 296
total hits codes sources: 4 718 504