TP11 : flux rss, manipulations d'objet

Documents pareils
Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

PLUGINS Guide du Développeur STEPHANE FERRARI. P l u X m l 5.4

TP JAVASCRIPT OMI4 TP5 SRC

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Démonstration de la mise en cache via HTML 5 sur iphone

HTML, CSS, JS et CGI. Elanore Elessar Dimar

HTML/CSS - Travaux Pratiques 2

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

RAPPORT AUDIT SEO. Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado

Sommaire Accès via un formulaire d'identification... 4 Accès en mode SSO... 5 Quels Identifiant / mot de passe utiliser?... 6

Guide d interfaçage SSO Connexion des ressources aux plates-formes de type Corrélyce. Sommaire. Titre du document

Document Object Model (DOM)

Informatique : Création de site Web Master 2 ANI TP 1

Initiation aux techniques du Web. Cours L2 sciences cognitives séance 2 Charif HAYDAR: alchiekc@loria.fr

Séance d ED n 5 : HTML et JavaScript

Panel des technologies Web

Initiation à html et à la création d'un site web

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

Attaques de type. Brandon Petty

Formulaires et Compteurs

Module : programmation site Web dynamique Naviguer entre les pages via site map

Pack Fifty+ Normes Techniques 2013

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

SYSTÈMES D INFORMATIONS

Module BD et sites WEB

STID 2ème année : TP Web/PHP

TD HTML AVEC CORRECTION

Documentation CAS à destination des éditeurs

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Aspects techniques : guide d interfaçage SSO

DOM - Document Object Model

PHP et les Bases de données - Généralités

FORMATION / CREATION DE SITE WEB / 4 JOURNEES Sessions Octobre 2006

Dans l'article précédent, vous avez appris

Programmation Web. Madalina Croitoru IUT Montpellier

Guide d implémentation Interface avec la plateforme de paiement

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Gestion de contenu d un site web avec TYPO3 Manuel de l administrateur

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

OUTIL DE TRAVAIL COLLABORATIF

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

RÉALISATION D UN SITE DE RENCONTRE

Formation : WEbMaster

PHP 5.4 Développez un site web dynamique et interactif

1 ère Université WEB. Courbevoie Samedi 21 octobre Votre site interactif sur internet.

FTP : File TRansfer Protocol => permets d envoyer des gros fichiers sur un serveur (ou de télécharger depuis le serveur)

Web Site Story Etude, développement et valorisation de votre présence internet

Gestion Electronique de Document (ECM/GED)

Formulaire pour envoyer un mail

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

Projet de programmation (IK3) : TP n 1 Correction

Introduction. Passage de sites statiques à des sites dynamiques

Spécification de Harvard. Version française: Scriptol.fr

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Comment créer son propre monitoring. (Version simple PHP)

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

CREATION d UN SITE WEB (INTRODUCTION)

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Par KENFACK Patrick MIF30 19 Mai 2009

TP1. Outils Java Eléments de correction

NAMEBAY PRO. votre site de revente de noms de domaine en marque blanche. Documentation technique

Approche Contract First

Gestion Électronique de Documents et XML. Master 2 TSM

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

Activités HTML. Code: act-html

SERVEUR WEB. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

SPIP. développement de squelettes. Partie 3. Patrick VINCENT

Java Licence Professionnelle CISII,

Optimiser le référencement de votre site

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Présentation du Framework BootstrapTwitter

Les Guides Abondance. Wo r d P r e s s. Comment optimiser le référencement naturel de votre site sous WordPress? par Daniel Roch. (

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Logiciels de référencement

ALGORITHMIQUE ET PROGRAMMATION En C

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

25 mars. Tutoriel sur Laravel. Préparé par : Lydiane Beaulne-Bélisle. Ceci est un tutorial qui montre comment débuter avec le Framework PHP Laravel.

Stockage du fichier dans une table mysql:

2 S I M 1 P H O N E G U I D E U T I L I S A T E U R. Guide d utilisation E-commerce / Prestashop

Comment développer et intégrer un module à PhpMyLab?

Mise en place d un serveur Proxy sous Ubuntu / Debian

Impact des robots d indexation sur le cache de second niveau de SPIP IMBERTI Christophe - SG/SPSSI/CP2I/DO Ouest 06/06/2012 mis à jour le 05/07/2012

A DESTINATION DES SERVICES TIERS. Editeurs d applications et ressources pédagogiques connectées à l ENT

PDO : PHP Data Object 1/13

Projet en nouvelles technologies de l information et de la communication

Master d Informatique Corrigé du partiel novembre 2010

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Sécurité des applications web. Daniel Boteanu

Formation Découverte du Web

Content Management System. bluecube. Blue Cube CMS V4.3 par Digitalcube

Transcription:

TP11 : flux rss, manipulations d'objet Ce tp poursuit les tps précédents. Les 4 premières étapes sont indépendantes des autres, seule la dernière concerne l'intégration dans les tps précédents. Pour cela, vous pouvez vous basez sur la correction du TP 10. Réalisez ce tp dans un nouveau dossier tp11 (à côté de vos autres tps). 1. Lire un flux rss : création de la classe FluxRss L'objectif est d'écrire une classe qui va télécharger un flux rss pour le convertir en html. Nous allons commencer par convertir le premier article du flux. Créez un fichier "FluxRss.inc". Il contiendra la classe FluxRss. Voici une page index.php qui l'utilisera (il utilise la même feuille de style que les tps précédents) : include "FluxRss.inc"; $flux = new FluxRss(); $html = $flux->getpremierarticle(); <!doctype html> <html> <head> <meta charset="utf-8" /> <title>test rss</title> <link media="screen" type="text/css" rel="stylesheet" href="styles/tp02-style.css" /> </head> <body> echo $html; </body> </html> Voici le squelette (à compléter) de votre classe FluxRss : class FluxRss { private $url = "http://filuns.unice.fr/accueil/@@rss_view";

* * @var DOMDocument private $xml; * constructeur pour le * @param string $url * @param int $datemax * @param string $filename public function FluxRss() { $this->xml = new DOMDocument(); @$this->xml->load($this->url); * parcours du DOM du flux rss pour en extaire $nb article et les transformer en html... * @param int $nb public function getpremierarticle() { $rsshtml = ""; // à compléter.. return $rsshtml; La méthode getpremierarticle doit donc retrouver le premier item du flux et générer un html à partir du title, de la description et de la pubdate, sembable à l'html des articles des tps précédents (avec en plus la date de publication) : <div class='article'> <h2>sensibilisons la jeunesse à la lutte contre les discriminations : opération Droit au Coeur </h2> L'opération Droit au Coeur, est organisée par l'uns, en partenariat avec le Défenseur des Droits, le Conseil Départemental d'accès au Droit 06 et le Rectorat de l'académie de Nice. <br /><strong class='date'>2014-05-20 [12:38]</strong> </div>

2. Lecture de tout le flux. A votre classe FluxRss ajoutez une méthode gettouslesarticles. Dans un premier temps elle génère un code html pour tous les items du flux. Le code de cette méthode est donc proche de celui de la méthode getpremierarticle, mais en répétant le code (boucle foreach ou for) pour tous les items du flux. Dans un second temps ajoutez un paramètre $nb à la méthode pour limiter le nombre d'articles affichés : si $nb a une valeur et que cette valeur est un entier positif, la boucle se fait pour le minimum entre $nb et le nombre d'item. 3. Paramétrage de la classe FluxRss Modifiez votre classe FluxRss pour que le flux puisse être précisé lors de la construction (new) de l'objet. Le constructeur de la classe FluxRss peut prendre deux paramètres : une adresse pour un flux et un nom pour l'auteur des articles, dans le cas où celui-ci n'est pas spécifié dans les items avec la balise author. La classe FluxRss s'enrichit donc d'un champ de classe : $auteur_par_defaut. Les codes de getpremierarticle et gettouslesarticles doivent être modifier pour ajouter l'auteur à l'article (balise <p> après le <h2>). Le code de la page index.php devient : include "FluxRss.inc"; $html = ""; if (isset($_post["flux"],$_post["auteur"])) { $flux = new FluxRss($_POST["flux"], $_POST["auteur"]); $html = "<h2>{$_post["flux"]</h2>\n".$flux- >gettouslesarticles($_post["nb"]); <!doctype html> <html> <head> <meta charset="utf-8" /> <title>test rss</title> <link media="screen" type="text/css" rel="stylesheet" href="styles/tp02-style.css" /> </head> <body> echo $html;

<form method="post" > <fieldset><legend>flux à visualiser</legend> adresse : <input type="url" name="flux" value="http://filuns.unice.fr/accueil/@@rss_view"/><br /> nombre d'article : <input type="number" name="nb" min="0" max="10" step="1" value="3"/><br /> auteur par défaut : <input type="text" name="auteur" value="uns" /><br /> <input type="submit" /> </form> </body> </html> Pour essayer avec d'autres flux, voici des urls : http://www.lemonde.fr/ameriques/rss_full.xml http://www.leparisien.fr/une/rss.xml https://news.google.fr/news/feeds?pz=1&cf=all&ned=fr&hl=fr&output=rss http://filuns.unice.fr/accueil/@@rss_view 4. Enregistrer les articles dans un fichier.news Ajoutez une nouvelle méthode à votre classe FluxRss : public function importetouslesarticles($nb). Son code est initialement le même que celui de gettouslesarticles. L'apport sur cette méthode est de pouvoir sauvegarder dans un fichier les articles lus dans les flux rss. Pour cela, il faut : Déterminer le nom du fichier. Il sera "news/import/pubdate_title.new". Il faut donc créer un dossier news qui contient un dossier import. Donnez les droits d'écriture (chmod o+w.) dans ce dossier import à "php". pubdate est le contenu de la balise pubdate de l'item. title est le contenu de la balise title de l'item. Attention, un nom de fichier ne peut pas contenir les caractères suivant s : "\", "/", ":"; "*", "?"; "; "<", ">", " ", "'" et " ". La ligne de code suivante devrait vous être utile : $filename = urlencode($titre); Il faut déterminer son contenu : 1ère ligne le titre, 2de ligne l'auteur et le reste c'est l'article. Une fois que tout est prêt, il n'y plus qu'à utiliser file_put_contents

5. Intégration dans le site d'article Dernière étape : intégrer ce code dans le site. Pour cela ajouter un page "importer.php" dans le menu "Administrer les nouvelles", sur le modèle d'ajouter.php. Gérez bien les include (notamment de FluxRss.inc). Fusionnez les dossiers news (de ce tp avec celui du tp précédent).