|
|
|
@ -194,6 +194,29 @@ class Entry extends Model { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function loadCompleteContent($pathEntries) { |
|
|
|
|
// Gestion du contenu |
|
|
|
|
// On cherche à récupérer les articles en entier... même si le flux ne le propose pas |
|
|
|
|
if ($pathEntries) { |
|
|
|
|
$entryDAO = new EntryDAO(); |
|
|
|
|
$entry = $entryDAO->searchByGuid($this->feed, $this->guid); |
|
|
|
|
|
|
|
|
|
if($entry) { |
|
|
|
|
// l'article existe déjà en BDD, en se contente de recharger ce contenu |
|
|
|
|
$this->content = $entry->content(); |
|
|
|
|
} else { |
|
|
|
|
try { |
|
|
|
|
// l'article n'est pas en BDD, on va le chercher sur le site |
|
|
|
|
$this->content = get_content_by_parsing( |
|
|
|
|
$this->link(), $pathEntries |
|
|
|
|
); |
|
|
|
|
} catch (Exception $e) { |
|
|
|
|
// rien à faire, on garde l'ancien contenu (requête a échoué) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function toArray () { |
|
|
|
|
return array ( |
|
|
|
|
'id' => $this->id (), |
|
|
|
@ -360,6 +383,27 @@ class EntryDAO extends Model_pdo { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function searchByGuid ($feed_id, $id) { |
|
|
|
|
// un guid est unique pour un flux donné |
|
|
|
|
$sql = 'SELECT * FROM entry WHERE id_feed=? AND guid=?'; |
|
|
|
|
$stm = $this->bd->prepare ($sql); |
|
|
|
|
|
|
|
|
|
$values = array ( |
|
|
|
|
$feed_id, |
|
|
|
|
$id |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
$stm->execute ($values); |
|
|
|
|
$res = $stm->fetchAll (PDO::FETCH_ASSOC); |
|
|
|
|
list ($entry, $next) = HelperEntry::daoToEntry ($res); |
|
|
|
|
|
|
|
|
|
if (isset ($entry[0])) { |
|
|
|
|
return $entry[0]; |
|
|
|
|
} else { |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function searchById ($id) { |
|
|
|
|
$sql = 'SELECT * FROM entry WHERE id=?'; |
|
|
|
|
$stm = $this->bd->prepare ($sql); |
|
|
|
|