Exemple #1
0
 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;
 }
Exemple #2
0
 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;
 }
Exemple #4
0
 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');
Exemple #7
0
 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'];
 }
Exemple #8
0
 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');
}