/** * Imprimir individuales * * Crea los archivos para cada autor */ protected function imprimir_individuales() { // Cargar la configuración de autores $autores_config = new \Configuracion\AutoresConfig(); // Iniciar la plantilla $plantilla = new Plantilla(); $plantilla->navegacion = new Navegacion(); $plantilla->mapa_inferior = new MapaInferior(); $plantilla->directorio = \Configuracion\AutoresConfig::DIRECTORIO; $plantilla->navegacion->opcion_activa = \Configuracion\AutoresConfig::NAVEGACION_OPCION_ACTIVA; // Bucle por todas los autores foreach ($this->recolector->obtener_autores() as $autor_texto) { // Obtener instancia de Autor $autor = $autores_config->obtener($autor_texto); // Si está definido en \Configuracion\AutoresConfig if ($autor === false) { $autor = new Autor('', '', $autor_texto); } // Definir ruta del archivo a crear, las banderas en falso hacen que el URL sea autor.html $autor->en_raiz = false; $autor->en_otro = false; $ruta = sprintf('%s/%s', $plantilla->directorio, $autor->url()); // Filtrar por este autor $this->recolector->filtrar_publicaciones_de_autor($autor_texto); // Iniciar página $pagina = new PaginasAutoresIndividual($autor, $this->recolector); $pagina->en_raiz = false; $pagina->en_otro = true; // Pasar a la plantilla estos valores $plantilla->titulo = $pagina->titulo; $plantilla->descripcion = $pagina->descripcion; $plantilla->claves = "Autor, {$autor_texto}"; $plantilla->archivo_ruta = $ruta; // Pasar a la plantilla el HTML y Javascript $plantilla->contenido = $pagina->html(); $plantilla->javascript = $pagina->javascript(); // Crear archivo $this->crear_archivo($plantilla->archivo_ruta, $plantilla->html()); $this->contador++; } }
/** * Concentrar */ protected function concentrar() { // Si ya se ha concentrado, no se hace nada if ($this->he_concentrado) { return; } // Cargar configuración de los autores $autores_config = new \Configuracion\AutoresConfig(); // Iniciar vínculos $clase = \Configuracion\AutoresConfig::VINCULOS_INDICE; $this->vinculos = new $clase(); $this->vinculos->imagen_tamano = $autores_config->imagen_tamano; // Si se van a mostrar los autores NO definidos if ($autores_config->mostrar_no_definidos) { // Bucle por todos los autores encontrados foreach ($this->recolector->obtener_autores() as $nombre) { // Obtener la cantidad de publicaciones de este autor $this->recolector->filtrar_publicaciones_de_autor($nombre); $cantidad = $this->recolector->obtener_cantidad_de_publicaciones(); // Obtener instancia de Autor $autor = $autores_config->obtener($nombre); // Si está definido en \Configuracion\AutoresConfig if ($autor instanceof Autor) { // Sí está definido $autor->en_raiz = $this->en_raiz; $autor->en_otro = $this->en_otro; $vinculo = new Vinculo($autor->titulo_nombre_completo(), $autor->url(), $autor->icono, \Configuracion\AutoresConfig::DIRECTORIO, $this->autor_descripcion_html($autor)); $vinculo->boton_etiqueta = "Todas sus publicaciones"; $this->vinculos->agregar($vinculo); } elseif ($autores_config->mostrar_no_definidos) { // No está definido $pagina = sprintf('%s.html', Funciones::caracteres_para_web($nombre)); $vinculo = new Vinculo($nombre, $pagina, 'unknown'); $this->vinculos->agregar($vinculo); } } } else { // Sólo los autores configurados, bucle por ellos foreach ($autores_config->autores as $autor) { $autor->en_raiz = $this->en_raiz; $autor->en_otro = $this->en_otro; // Fitrar en el recolector, previendo que al no haber publicaciones la cantidad es cero try { // Recolectar filtrando primero por apodo, luego por 'titulo nombre_completo' if ($autor->apodo != '') { try { $this->recolector->filtrar_publicaciones_de_autor($autor->apodo); } catch (RecolectorExceptionVacio $e) { $this->recolector->filtrar_publicaciones_de_autor($autor->titulo_nombre_completo()); } } else { $this->recolector->filtrar_publicaciones_de_autor($autor->titulo_nombre_completo()); } // Obtener la cantidad de publicaciones de este autor $cantidad = $this->recolector->obtener_cantidad_de_publicaciones(); } catch (RecolectorExceptionVacio $e) { $cantidad = 0; } // Si tiene publicaciones if ($cantidad > 0) { $vinculo = new Vinculo($autor->titulo_nombre_completo(), $autor->url(), $autor->icono, \Configuracion\AutoresConfig::DIRECTORIO, $this->autor_descripcion_html($autor)); $vinculo->boton_etiqueta = "Todas sus publicaciones"; } else { // No tiene publicaciones, sólo se ponen los datos del autor sin enlace a su página $vinculo = new Vinculo($autor->titulo_nombre_completo(), '', $autor->icono, \Configuracion\AutoresConfig::DIRECTORIO, $this->autor_descripcion_html($autor)); } // Agregar vínculo $this->vinculos->agregar($vinculo); } } // Levantar la bandera $this->he_concentrado = true; }