protected function private_core() { $this->fuente = new inme_fuente(); if (isset($_POST['codfuente'])) { /// crear/editar fuente $fuente2 = $this->fuente->get($_POST['codfuente']); if (!$fuente2) { $fuente2 = new inme_fuente(); $fuente2->codfuente = $_POST['codfuente']; } $fuente2->url = $_POST['url']; if ($fuente2->save()) { $this->new_message('Fuente ' . $fuente2->codfuente . ' guardada correctamente.'); } else { $this->new_error_msg('Error al guardar la fuente ' . $fuente2->codfuente); } } else { if (isset($_GET['delete'])) { /// eliminar fuente $fuente2 = $this->fuente->get($_GET['delete']); if ($fuente2) { if ($fuente2->delete()) { $this->new_message('Fuente ' . $fuente2->codfuente . ' eliminada correctamente.'); } else { $this->new_error_msg('Error al eliminar la fuente ' . $fuente2->codfuente); } } else { $this->new_error_msg('Fuente ' . $_GET['delete'] . ' No encontrada'); } } } $this->resultados = $this->fuente->all(); }
/** * Examinamos la fuente y extraemos las noticias. * @param inme_fuente $fuente */ private function leer_fuente(&$fuente) { $this->log[] = 'Examinando fuente <mark>' . $fuente->codfuente . '</mark>'; $fuente->fcomprobada = date('d-m-Y H:i:s'); $fuente->save(); try { $filename = 'tmp/' . str_replace('/', '_', $fuente->codfuente) . '.xml'; $this->curl_save($fuente->url, $filename, TRUE, TRUE); if (file_exists($filename)) { libxml_use_internal_errors(TRUE); $xml = simplexml_load_file($filename); if ($xml) { /// intentamos leer las noticias if ($xml->channel->item) { foreach ($xml->channel->item as $item) { $this->nueva_noticia($item, $fuente); } } else { if ($xml->item) { foreach ($xml->item as $item) { $this->nueva_noticia($item, $fuente); } } else { if ($xml->feed->entry) { foreach ($xml->feed->entry as $item) { $this->nueva_noticia($item, $fuente); } } else { if ($xml->entry) { foreach ($xml->entry as $item) { $this->nueva_noticia($item, $fuente); } } else { $this->log[] = "Estructura irreconocible en la fuente: " . $fuente->codfuente; } } } } } else { $this->log[] = "Imposible leer el xml."; } } else { $this->log[] = "Imposible leer el archivo: tmp/" . $fuente->codfuente . '.xml'; } } catch (Exception $ex) { $this->log[] = $ex->getMessage(); } }