Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 08-07-2008 03:22:43

squallmat
Membre
Date d'inscription: 25-06-2008
Messages: 19

[Zend_Feed] gestion RSS et images

Bonjour, j'ai deux soucis qui me tracassent, j'aimerai créer des flux RSS à partir du site que je suis entrain de créer où je stock des news dans une BDD MySql (colonnes : id,titre,date,contenu), seulement je ne sais pas comment m'y prendre et je n'ai pas trouvé mon bonheur dans la doc officielle, si vous aviez un tutoriel ou des indications pour m'aider je suis preneur.

Mon autre problème :
J'aimerai créer un système de gestion de galeries photos, où côté administration on crée différentes galeries et upload les différentes images, avec gestion de miniatures pour la lecture côté utilisateur. Or je n'ai pas trouvé de composants pour ceci dans ZF. Alors suis-je bigleux et suis-je passé à côté de celui-ci ? ou bien il n'y en a pas et au quel cas quel outil conviendrait et comment intègre-t-on un outil externe à ZF ?


Oui ça fait beaucoup d'interrogations je sais mais je suis débutant et un peu perdu :p

Hors ligne

 

#2 08-07-2008 14:38:05

fte
Membre
Lieu: 06 13 83
Date d'inscription: 16-05-2008
Messages: 112
Site web

Re: [Zend_Feed] gestion RSS et images

Concernant RSS un exemple simpliste d'action http://ton.site.zf/rss
Ca utilise Zend_Feed, qui veut un tableau special ($feedArray) pour renvoyer du rss.

Code:

    public function rssAction() {
                $this->news = new Nouvelles();
        $nouvelles = $this->news->getNouvellesByLimit ( 7, 0 ); // flux des dernieres entrees, et omises

        $tempnouvelle = $nouvelles->current ();
        $pubDate = $tempnouvelle->heuredate;
        $urlDeBase = 'http://ton.site.zf' . $this->_request->getBaseUrl ();
        
        $feedArray = array ('title' => $this->title,
                'link' => $urlDeBase . '/index/rss',
                'description' => $this->description,
                'language' => 'fr-fr',
                'charset' => 'utf-8',
                'pubDate' => $pubDate,
                'generator' => 'Zend Framework Zend_Feed',
                'entries' => array ( ) );
        
        foreach ( $nouvelles as $nouvelle ) {
            $feedArray ['entries'] [] = array (
                                    'title' => $nouvelle->titre,
                                    'link' => $urlDeBase . '/index/voir/id/' . $nouvelle->id,
                                    'guid' => $urlDeBase . '/index/voir/id/' . $nouvelle->id,
                                    'description' => 'by: ' . $nouvelle->id . ', entered by: ' . $nouvelle->id,
                                    'pubDate' => $nouvelle->heuredate );
        }
            
            $feed = Zend_Feed::importArray ( $feedArray, 'rss' );
            
            // pas de layout.html
            Zend_Layout::getMvcInstance ()->disableLayout ();
            $feed->send ();
    }

Actuellement (08/07/08), la doc manque d'un exemple de création de feed (c'est implicite en fait), il y a d'ailleurs un ticket sur le tracker zf officiel qui en parle.

Dernière modification par fte (08-07-2008 14:41:09)

Hors ligne

 

#3 09-07-2008 17:20:25

squallmat
Membre
Date d'inscription: 25-06-2008
Messages: 19

Re: [Zend_Feed] gestion RSS et images

Bonjour fte, merci pour ta réponse mais j'ai un problème, voici le code :

Code:

        public function rssAction()
    {
        $this->news = new News();
        $nouvelles = $this->news->getNewsByLimit ( 10, 0 ); // flux des 10 dernieres entrees
        
        $tempnouvelle = $nouvelles->current ();
        $pubDate = $tempnouvelle->heuredate;
        $urlDeBase = 'http://127.0.0.1' . $this->_request->getBaseUrl ();
        
        $feedArray = array ('title' => $this->title,
                'link' => $urlDeBase . '/index/rss',
                'description' => $this->description,
                'language' => 'fr-fr',
                'charset' => 'utf-8',
                'pubDate' => $pubDate,
                'generator' => 'Zend Framework Zend_Feed',
                'entries' => array ( ) );
                
        foreach ( $nouvelles as $nouvelle ) {
            $feedArray ['entries'] [] = array (
                                    'title' => $nouvelle->titre,
                                    'link' => $urlDeBase . '/index/voir/id/' . $nouvelle->id,
                                    'guid' => $urlDeBase . '/index/voir/id/' . $nouvelle->id,
                                    'description' => 'by: ' . $nouvelle->id . ', entered by: ' . $nouvelle->id,
                                    'pubDate' => $nouvelle->heuredate );
        }
        
        $feed = Zend_Feed::importArray ( $feedArray, 'rss' );
        
        // pas de layout.html
        Zend_Layout::getMvcInstance ()->disableLayout ();
        $feed->send ();
    }

j'ai du rajouter ceci dans News.php (pourtant il me semblait que par défaut certaines fonction de ce genre
étaient "précréées" dans Zend) :

Code:

    public function getNewsByLimit($nbNews,$nbOmis)
    {
        $db = Zend_Registry::get('dbAdapter');
        $db->setFetchMode(Zend_Db::FETCH_OBJ);
        $select = $db->select()
            ->from('news', '*')
            ->limit($nbNews,$nbOmis);
        $stmt = $select->query();
        $result = $stmt->fetchAll();
        return $result;
    }

J'ai cette erreur à l'éxecution :

Code:

Fatal error: Call to a member function current() on a non-object in C:\Program Files\EasyPHP 2.0b1\www\application\controllers\IndexController.php on line 64

Et ce malgré le setFetchMode(Zend_Db::FETCH_OBJ).
Comment puis-je faire pour récupérer un objet et pas un array ?

PS : si tu as une idée aussi pour ma galerie photo je suis tout ouïe wink

Hors ligne

 

#4 10-07-2008 10:00:52

fte
Membre
Lieu: 06 13 83
Date d'inscription: 16-05-2008
Messages: 112
Site web

Re: [Zend_Feed] gestion RSS et images

En essayant avec le mode par défaut, qui un mix entre objet et associatif je crois ?

Code:

class News extends Zend_Db_Table_Abstract {
...
    /**
     * getNouvellesByLimit
     * on utilise une jointure entre news et categories sur l'id de categorie commun
     * 
     * @param int $limiteMaxi            nombre maximum de nouvelles renvoyees
     * @param int $nouvellesOmises        nombre de lignes a omettre (generalement zero)
     * @return Zend_Db_Table_Rowset_Abstract
     */
    public function getNouvellesByLimit($limiteMaxi, $nouvellesOmises) {
        $select = $this->select ();
        $select->setIntegrityCheck ( false ); // pour le join sinon erreur 
        

        $select->from ( $this )->order ( 'heuredate DESC' )
                                ->join ( 'categories', 'id_categorie = categories.id', array ('categorie' ) )
                                ->limit ( $limiteMaxi, $nouvellesOmises );
        
        //@TODO prevoir conversion heuredate en fr                      
        return $this->fetchAll ( $select );
    }

Oui ce genre de fonction pourrait être pré-crées (pê au choix par l'IDE) car c'est utile pour la pagination par exemple.
J'ai pas de pistes pour la galerie photo.

Hors ligne

 

#5 10-07-2008 16:53:37

squallmat
Membre
Date d'inscription: 25-06-2008
Messages: 19

Re: [Zend_Feed] gestion RSS et images

Bien j'ai réussi à obtenir un flux après quelques modifs.
J'ai enlevé le join categorie (j'ai pas ça dans ma base wink ) je n'ai besoin que d'un flux.

Lorsque je clique sur le lien correspondant à l'exécution du rss, il me propose de télécharger le fichier nommé rss et sans extension. J'aimerai avoir un xml pour obtenir un résultat de ce genre : http://www.tomshardware.com/fr/feeds/rs … ,1-1-2.xml , lorsque je clique sur le lien

J'ai donc utilisé la fonction :
print $feed->saveXML(); en lieu et place de $feed->send();

A l'affichage j'ai un tas de données :
http://127.0.0.1/public/index/rss  Thu, 10 Jul 2008 14:45:41 +0000  Zend Framework Zend_Feed  fr-fr  http://blogs.law.harvard.e...etc

Mais je n'arrive pas à avoir le résultat escompté^^

Autre chose la valeur contenu dans $feedArray ['entries'] ['description'] vient de $nouvelle->contenu qui est de type TEXT dans ma base MySQL. Le contenu va-t-il être automatiquement réduit à un nombre de caractères prédéfinies ? ou faut-il que je le coupe moi-même avec.... une fonction que je ne connais pas tiens :p :p

Dernière modification par squallmat (10-07-2008 17:06:11)

Hors ligne

 

#6 14-07-2008 04:09:28

squallmat
Membre
Date d'inscription: 25-06-2008
Messages: 19

Re: [Zend_Feed] gestion RSS et images

Allez hop up aussi tiens :p

Hors ligne

 

#7 27-08-2009 19:14:51

probitaille
Membre
Lieu: Montréal
Date d'inscription: 20-04-2009
Messages: 336
Site web

Re: [Zend_Feed] gestion RSS et images

Up

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages