Пример #1
0
 /**
  * Agregar elemento
  *
  * @param mixed Instancia de Publicacion
  */
 public function agregar_elemento(Publicacion $publicacion)
 {
     // Si el estado NO es publicar, NO se agrega
     if (strtolower($publicacion->estado) != 'publicar') {
         return false;
     }
     // Fecha
     $t = strtotime($publicacion->fecha);
     if ($t === false) {
         // Fecha errónea, se usará 1980-01-01
         $ano = 1980;
         $mes = 1;
         $dia = 1;
         $hora = 0;
         $minuto = 0;
         $fecha = date('r', mktime($hora, $minuto, 0, $mes, $dia, $ano));
     } else {
         // Sí se interpretó bien
         $a = getdate($t);
         $ano = $a['year'];
         $mes = $a['mon'];
         $dia = $a['mday'];
         $hora = $a['hours'];
         $minuto = $a['minutes'];
         $fecha = date('r', mktime($hora, $minuto, 0, $mes, $dia, $ano));
     }
     // Considerar vínculos desde la raíz
     $publicacion->en_raiz = true;
     // Formatear URL
     $url = sprintf('%s/%s', $this->sitio_url, $publicacion->url());
     // Identificador único directorio + archivo
     $id = sprintf('%s-%s', $publicacion->directorio, $publicacion->archivo);
     // La clave del arreglo asociativo es el tiempo_creado-archivo y sirve para ordenarlo
     $clave = sprintf('%s-%s', $publicacion->tiempo_creado(), $publicacion->archivo);
     // Tomar el contenido
     $contenido = $publicacion->redifusion_html();
     // Si autor es un arreglo
     if (is_array($publicacion->autor)) {
         $autor = implode(', ', $publicacion->autor);
     } else {
         $autor = $publicacion->autor;
     }
     // Acumular
     $this->elementos[$clave] = array('id' => $id, 'fecha' => $fecha, 'titulo' => $publicacion->nombre, 'descripcion' => $publicacion->descripcion, 'contenido' => $this->vinculos_absolutos($contenido, $publicacion->directorio), 'autor' => $autor, 'url' => $url);
     // Entregar verdadero
     return true;
 }