/** * 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; }