/** * Concentrar */ protected function concentrar() { // Si ya se ha concentrado, no se hace nada if ($this->he_concentrado) { return; } // Cargar configuración de las categorías $categorias_config = new \Configuracion\CategoriasConfig(); // Iniciar vínculos $this->vinculos = new $this->categorias_vinculos(); // Bucle por todas las categorias foreach ($this->recolector->obtener_categorias() as $nombre) { // Obtener instancia de Categoria $categoria = $categorias_config->obtener($nombre); // Si está definido en \Configuracion\CategoriasConfig if ($categoria instanceof \Base\Categoria) { $url = sprintf('categoria-%s.html', \Base\Funciones::caracteres_para_web($categoria->nombre)); $vinculo = new \Base\Vinculo($categoria->nombre, $url, $categoria->icono, $this->directorio); $vinculo->en_raiz = false; $vinculo->en_otro = false; $this->vinculos->agregar($vinculo); } elseif ($categorias_config->mostrar_no_definidos) { $url = sprintf('categoria-%s.html', \Base\Funciones::caracteres_para_web($nombre)); $vinculo = new \Base\Vinculo($nombre, $url, 'unknown', $this->directorio); $vinculo->en_raiz = false; $vinculo->en_otro = false; $this->vinculos->agregar($vinculo); } } // Iniciar vínculos últimas publicaciones $this->vinculos_ultimas = new $this->ultimas_vinculos(); // Ordenar publicaciones por tiempo, de la más nueva a la más antigua $this->recolector->ordenar_por_tiempo_desc(); // Bucle por las publicaciones, tiene la cantidad límite foreach ($this->recolector->obtener_publicaciones($this->ultimas_cantidad) as $publicacion) { $vinculo = new \Base\Vinculo(); $vinculo->en_raiz = false; $vinculo->en_otro = false; $vinculo->definir_con_publicacion($publicacion); $this->vinculos_ultimas->agregar($vinculo); } // Levantar la bandera $this->he_concentrado = true; }
/** * Imprimir categorías * * Crea los archivos para cada categoria como nombre.html */ protected function imprimir_individuales() { // Cargar configuración de las categorías $categorias_config = new \Configuracion\CategoriasConfig(); // Iniciar la plantilla $plantilla = new Plantilla(); $plantilla->navegacion = new Navegacion(); $plantilla->mapa_inferior = new MapaInferior(); $plantilla->directorio = \Configuracion\CategoriasConfig::DIRECTORIO; $plantilla->navegacion->opcion_activa = \Configuracion\CategoriasConfig::NAVEGACION_OPCION_ACTIVA; // Bucle por todas las categorías foreach ($this->recolector->obtener_categorias() as $categoria_texto) { // Obtener instancia de Categoria $categoria = $categorias_config->obtener($categoria_texto); // Si está definido en \Configuracion\CategoriasConfig if ($categoria === false) { $categoria = new Categoria($categoria_texto); $categoria->descripcion = "Publicaciones en la categoría {$categoria_texto}"; } // Definir ruta del archivo a crear, las banderas en falso hacen que el URL sea categoria.html $categoria->en_raiz = false; $categoria->en_otro = false; $ruta = sprintf('%s/%s', $plantilla->directorio, $categoria->url()); // Filtrar por esta categoría $this->recolector->filtrar_publicaciones_de_categoria($categoria_texto); // Iniciar página $pagina = new PaginasCategoriasIndividual($categoria, $this->recolector); $pagina->en_raiz = false; $pagina->en_otro = true; // Pasar a la plantilla los valores que cambian en cada página $plantilla->titulo = $pagina->titulo; $plantilla->descripcion = $pagina->descripcion; $plantilla->claves = "Categoria, {$categoria_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++; } }
/** * Imprimir categorias * * Crea archivos para cada categoria como categoria-nombre.html */ protected function imprimir_categorias() { // Cargar configuración de las categorías $categorias_config = new \Configuracion\CategoriasConfig(); // Iniciar la Plantilla $plantilla = new Plantilla(); $plantilla->navegacion = new Navegacion(); $plantilla->mapa_inferior = new MapaInferior(); $plantilla->directorio = $this->directorio; $plantilla->navegacion->opcion_activa = $this->nombre_menu; // Bucle por todas las categorias foreach ($this->recolector->obtener_categorias() as $categoria_texto) { // Obtener instancia de Categoria $categoria = $categorias_config->obtener($categoria_texto); // Si está definido en \Configuracion\CategoriasConfig if ($categoria === false) { $categoria = new Categoria($categoria_texto); $categoria->descripcion = "Categoría {$categoria_texto} en {$this->titulo}"; } // Definir ruta del archivo a crear $ruta = sprintf('%s/categoria-%s.html', $plantilla->directorio, \Base\Funciones::caracteres_para_web($categoria->nombre)); // Filtrar por esta categoría $this->recolector->filtrar_publicaciones_de_categoria($categoria_texto); // Iniciar página $pagina = new $this->indices_paginas($this->recolector); $pagina->titulo = "{$this->titulo} en {$categoria->nombre}"; $pagina->descripcion = $categoria->descripcion; $pagina->en_raiz = false; $pagina->en_otro = false; // Pasar a la plantilla los valores que cambian en cada página $plantilla->titulo = $categoria->nombre; $plantilla->descripcion = $categoria->descripcion; $plantilla->claves = "{$this->claves}, {$categoria->nombre}"; $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 las categorías $categorias_config = new \Configuracion\CategoriasConfig(); // Iniciar vínculos $clase = \Configuracion\CategoriasConfig::VINCULOS_INDICE; $this->vinculos = new $clase(); $this->vinculos->imagen_tamano = $categorias_config->imagen_tamano; // Bucle por todas las categorias foreach ($this->recolector->obtener_categorias() as $nombre) { // Obtener la cantidad de publicaciones de esta categoría $this->recolector->filtrar_publicaciones_de_categoria($nombre); $cantidad = $this->recolector->obtener_cantidad_de_publicaciones(); // Obtener instancia de Categoria $categoria = $categorias_config->obtener($nombre); // Si está definido en \Configuracion\CategoriasConfig if ($categoria instanceof Categoria) { // Sí está definido $categoria->en_raiz = $this->en_raiz; $categoria->en_otro = $this->en_otro; $etiqueta = sprintf('%s (%d)', $categoria->nombre, $cantidad); $vinculo = new Vinculo($etiqueta, $categoria->url(), $categoria->icono, \Configuracion\CategoriasConfig::DIRECTORIO, $categoria->descripcion); $this->vinculos->agregar($vinculo); } elseif ($categorias_config->mostrar_no_definidos) { // No está definido $etiqueta = sprintf('%s (%d)', $nombre, $cantidad); $vinculo = new Vinculo($etiqueta, sprintf('%s.html', Funciones::caracteres_para_web($nombre)), 'unknown', \Configuracion\CategoriasConfig::DIRECTORIO); $this->vinculos->agregar($vinculo); } } // Levantar la bandera $this->he_concentrado = true; }