Exemplo n.º 1
0
 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();
 }
Exemplo n.º 2
0
 /**
  * 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();
     }
 }