function update() { require_once 'Nouvelle.class.php'; require_once 'DAO.class.php'; // Cree un objet pour accueillir le contenu du RSS : un document XML $doc = new DOMDocument(); //Telecharge le fichier XML dans $rss $doc->load($this->url); // Recupère la liste (DOMNodeList) de tous les elements de l'arbre 'title' $nodeList = $doc->getElementsByTagName('title'); // Met à jour le titre dans l'objet $this->titre = $nodeList->item(0)->textContent; // Recupère la liste (DOMNodeList) de tous les elements de l'arbre 'title' $nodeList = $doc->getElementsByTagName('pubDate'); // Met à jour la date dans l'objet $this->date = $nodeList->item(0)->textContent; $docNodeList = $doc->getElementsByTagName('item'); $dao = new DAO(); $dao->createRSS($this->url); $id = $dao->returnIdFromURL($this->url); $table = array(); $nomLocalImage = 1; foreach ($docNodeList as $nouvelle) { $tempNouvelle = new Nouvelle(); $tempNouvelle->update($nouvelle); $tempNouvelle->downloadImage($nouvelle, $nomLocalImage); $dao->createNouvelle($tempNouvelle, $id); $nomLocalImage++; $table[] = $tempNouvelle; } $this->nouvelles = $table; }
function update() { // Cree un objet pour accueillir le contenu du RSS : un document XML $doc = new DOMDocument(); //Telecharge le fichier XML dans $rss $doc->load($this->url); // Recupère la liste (DOMNodeList) de tous les elements de l'arbre 'title' $nodeList = $doc->getElementsByTagName('title'); // Met à jour le titre dans l'objet $this->titre = $nodeList->item(0)->textContent; // Recupère la liste de toutes les dates $nodeList = $doc->getElementsByTagName('pubDate'); //Met à jour la date dans l'objet $this->date = $nodeList->item(0)->textContent; //recupère la liste des url $nodeList = $doc->getElementsByTagName('link'); //met à jour la date dans l'objet $this->url = $nodeList->item(0)->textContent; //met à jour l'image de l'objet $nodeList = $doc->getElementsByTagName('enclosure'); $this->enclosure = $nodeList->item(0)->textContent; $nomLocalImage = 1; // Recupère tous les items du flux RSS foreach ($doc->getElementsByTagName('item') as $node) { $nouvelle = new Nouvelle(); // Met à jour la nouvelle avec l'information téléchargée $nouvelle->update($node); // Télécharge l'image $nouvelle->downloadImage($node, $nomLocalImage); // on ajoute la nouvelle courante a la liste $this->nouvelles[] = $nouvelle; } }
public function retour_one($id) { $requete = $this->_db->prepare('select * from nouvelle where id=:id'); $requete->execute(array(':id' => $id)); $results = $requete->fetchAll(); $tabobject = array(); if (empty($results)) { return false; } foreach ($results as $result) { $manouvelle = new Nouvelle(); $manouvelle->setId($result['id'])->setNom($result['nom'])->setAuteur($result['auteur'])->setContenu($result['contenu'])->setActive($result['active'])->setImg($result['img']); array_push($tabobject, $manouvelle); // Push l'objet $article dans le tableau $tabobject } return $tabobject; }
function update() { global $dao; // On corrige les erreurs de typo dans les RSS (merci les developpeurs de RSS...) $filename = 'xml_files/tmp.xml'; $str = implode("", file($this->url)); if (!file_exists($filename)) { file_put_contents($filename, $str); } $fp = fopen($filename, 'w'); $newStr = str_replace('&', '&', $str); fwrite($fp, $newStr, strlen($newStr)); // Cree un objet pour accueillir le contenu du RSS : un document XML $doc = new DOMDocument(); // Telecharge le fichier XML $doc->load($filename); // Recupère les éléments principaux du flux $nodeTitle = $doc->getElementsByTagName('title'); $nodePubDate = $doc->getElementsByTagName('pubDate'); // On les met à jour $this->titre = $nodeTitle->item(0)->textContent; $this->date = $nodePubDate->item(0)->textContent; // Mise à jour du RSS dans la BDD (et récupération de l'id assigné au flux) $this->id = $dao->updateRSS($this)['id']; // Fetch et reverse les items trouvés $items = array(); foreach ($doc->getElementsByTagName('item') as $item) { $items[] = $item; } $items = array_reverse($items); // Parcours les items, crée une nouvelle, la met à jour, et tente de l'insérer dans la BDD foreach ($items as $node) { $nouvelle = new Nouvelle(); // Met à jour la nouvelle avec l'information téléchargée $nouvelle->update($node); // Tente de la créer dans la BDD, ne sera pas fait si elle existe déjà $dao->createNouvelle($nouvelle, $this->id); } // On récupère les nouvelles depuis la bdd $this->nouvelles = $dao->getNouvellesFromRSS($this->url); }
public function activation_desactivation(Nouvelle $nouvelle) { $requete = $this->_db->prepare('update nouvelle set active=:active where id=:id'); $requete->execute(array(':active' => $nouvelle->getActive(), ':id' => $nouvelle->getId())); }
<?php /** * Created by PhpStorm. * User: Florent * Date: 17/04/2015 * Time: 10:48 */ require_once '../Navbar/navbar.php'; require_once '../Database/pdo.php'; require_once '../Entity/Nouvelle.php'; require_once '../EntityManager/NouvelleManager.php'; $active = 1; $manouvelle = new Nouvelle(); $manouvelle->setNom($_POST['nom'])->setAuteur($_POST['auteur'])->setContenu($_POST['contenu'])->setActive($active); $monmanagernouvelle = new NouvelleManager($bdd); $monmanagernouvelle->insertion($manouvelle); header('Location:../Main/nouvelle.php');
function getRSSIdFromNouvelle(Nouvelle $n) { $safeUrl = $this->db->quote($n->getUrl()); $queryRSS_id = "SELECT RSS_id FROM Nouvelle WHERE url = {$safeUrl}"; try { $result = $this->db->query($queryRSS_id)->fetch(); } catch (Exception $ex) { die("PDO Error :" . $ex->getMessage()); } return $result['RSS_id']; }
function updateImageNouvelle(Nouvelle $n) { // Met à jour uniquement le titre et la date $titre = $this->db->quote($n->getTitre()); $q = "UPDATE RSS SET titre={$titre}, date='" . $n->getPubDate() . "' WHERE url='" . $rss->getLink() . "'"; try { $r = $this->db->exec($q); if ($r == 0) { echo "updateRSS error: no rss updated\n"; } } catch (PDOException $e) { echo "PDO Error :" . $e->getMessage(); } }
<?php /** * Created by PhpStorm. * User: Florent * Date: 17/04/2015 * Time: 10:48 */ require_once '../Navbar/navbar.php'; require_once '../Database/pdo.php'; require_once '../Entity/Nouvelle.php'; require_once '../EntityManager/NouvelleManager.php'; $active = 1; $manouvelle = new Nouvelle(); $manouvelle->setId($_POST['id'])->setNom($_POST['nom'])->setAuteur($_POST['auteur'])->setContenu($_POST['contenu'])->setActive($active); $monmanagernouvelle = new NouvelleManager($bdd); $monmanagernouvelle->modification($manouvelle); header('Location:../Main/nouvelle.php');
<?php /** * Created by PhpStorm. * User: Florent * Date: 22/04/2015 * Time: 11:57 */ require_once '../Database/pdo.php'; require_once '../Entity/Nouvelle.php'; require_once '../EntityManager/NouvelleManager.php'; $active = 1; $inactive = 0; if ($_POST['active'] == 1) { $nouvelle = new Nouvelle(); $nouvelle->setActive($inactive)->setId($_POST['id']); $managernouvelle = new NouvelleManager($bdd); $managernouvelle->activation_desactivation($nouvelle); header('Location:../Main/nouvelle.php'); } elseif ($_POST['active'] == 0) { $nouvelle = new Nouvelle(); $nouvelle->setActive($active)->setId($_POST['id']); $managernouvelle = new NouvelleManager($bdd); $managernouvelle->activation_desactivation($nouvelle); header('Location:../Main/nouvelle.php'); } else { header('Location:../Main/nouvelle.php'); }