diff --git a/fluxRSS/src/controleur/AdminControleur.php b/fluxRSS/src/controleur/AdminControleur.php index 2a522c3..151c936 100755 --- a/fluxRSS/src/controleur/AdminControleur.php +++ b/fluxRSS/src/controleur/AdminControleur.php @@ -10,15 +10,9 @@ use metier\Flux; use model\AdminModel; use model\ArticleModel; use model\FluxModel; -use model\Parser; class AdminControleur { - /*public function __construct() - { - $this->init(); - }*/ - public function init(){ global $twig; // nécessaire pour utiliser variables globales //debut @@ -148,13 +142,8 @@ class AdminControleur public function ajoutFlux(){ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['fluxAdd'])){ - $con = new Connection('mysql:host=londres.uca.local;dbname=dbrorossetto','rorossetto','tpphp'); - $gwArticle = new ArticleGateway($con); - $gwFlux = new FluxGateway($con); - $parser = new Parser($gwFlux,$gwArticle); $fluxModel = new FluxModel(); $fluxModel->addFluxBySrc($_POST['fluxAdd']); - $parser->addAllArticles(); $_REQUEST['action'] = 'listFlux'; unset($_POST['fluxAdd']); $this->init(); diff --git a/fluxRSS/src/model/Parser.php b/fluxRSS/src/model/Parser.php index 0080d82..7860b26 100755 --- a/fluxRSS/src/model/Parser.php +++ b/fluxRSS/src/model/Parser.php @@ -10,6 +10,7 @@ use DOMDocument; use Exception; use metier\Article; use metier\Flux; +use Twig\Error\Error; class Parser { @@ -24,36 +25,45 @@ class Parser { $dom = new DOMDocument(); $tabArticle = array(); - if ($dom->load($flux->getFlux())){ - $items = $dom->getElementsByTagName('item'); - foreach ($items as $item) { - $title = $item->getElementsByTagName('title')[0]->nodeValue; - $date = $item->getElementsByTagName('pubDate')[0]->nodeValue; - $guid = $item->getElementsByTagName('guid')[0]->nodeValue; - $link = $item->getElementsByTagName('link')[0]->nodeValue; - $description = $item->getElementsByTagName('description')[0]->nodeValue; - $media = $item->getElementsByTagName('media:content'); - $mediaUrl = null; - if ($media->length > 0){ - $mediaUrl = $media->item(0)->getAttribute('url'); + try { + if ($dom->load($flux->getFlux())) { + var_dump($flux); + $items = $dom->getElementsByTagName('item'); + foreach ($items as $item) { + $title = $item->getElementsByTagName('title')[0]->nodeValue; + $date = $item->getElementsByTagName('pubDate')[0]->nodeValue; + $guid = $item->getElementsByTagName('guid')[0]->nodeValue; + $link = $item->getElementsByTagName('link')[0]->nodeValue; + $description = $item->getElementsByTagName('description')[0]->nodeValue; + $media = $item->getElementsByTagName('media:content'); + $mediaUrl = null; + if ($media->length > 0) { + $mediaUrl = $media->item(0)->getAttribute('url'); + } + + + $dateTime = new DateTime($date); + $tabArticle[] = new Article( + (int)null, + $title, + $dateTime->format('d/m/y H:i') . '', + $description, + $guid, + $link, + ($mediaUrl !== null) ? (string)$mediaUrl : '', + $flux->getId()); } - - - $dateTime = new DateTime($date); - $tabArticle[] = new Article( - (int)null, - $title, - $dateTime->format('d/m/y H:i') . '', - $description, - $guid, - $link, - ($mediaUrl !== null) ? (string)$mediaUrl : '', - $flux->getId()); + return $tabArticle; + } else { + // En cas d'erreur lors du chargement du flux RSS, lever une exception + throw new Exception("Erreur lors du chargement du flux RSS"); } + }catch (Error $e){ + echo $e->getMessage(); + return $tabArticle; + }catch (Exception $e2){ + echo $e2->getMessage(); return $tabArticle; - } else { - // En cas d'erreur lors du chargement du flux RSS, lever une exception - throw new Exception("Erreur lors du chargement du flux RSS"); } } diff --git a/fluxRSS/src/test/server.html b/fluxRSS/src/test/server.html new file mode 100755 index 0000000..66908ea --- /dev/null +++ b/fluxRSS/src/test/server.html @@ -0,0 +1,34 @@ + + +
+ + +