示例#1
0
 /**
  * Definir título e identificador si no se tiene
  *
  * @param string Título
  */
 public function definir_titulo($titulo)
 {
     $this->titulo = $titulo;
     if ($this->identificador == NULL) {
         $this->identificador = \Base\Funciones::caracteres_para_clase($this->titulo);
     }
 }
示例#2
0
 /**
  * Constructor
  *
  * @param string Texto único que identica al padre
  * @param string Texto que va a aparecer en la lengüeta
  * @param mixed  Instancia con el contenido, debe implementar SalidaWeb
  */
 public function __construct($padre_identificador, $etiqueta, $contenido)
 {
     $this->padre_identificador = $padre_identificador;
     $this->etiqueta = $etiqueta;
     $this->identificador = $this->padre_identificador . \Base\Funciones::caracteres_para_clase($this->etiqueta);
     $this->contenido = $contenido;
 }
示例#3
0
 /**
  * Constructor
  *
  * @param string  Texto único que identifica al padre
  * @param string  Texto que va a aparecer en la barra
  * @param mixed   Instancia con el contenido, debe implementar SalidaWeb
  * @param boolean Boleano, verdadero para que inicialmente esté abierto
  */
 public function __construct($padre_identificador, $titulo, $contenido, $esta_abierto = FALSE)
 {
     $this->padre_identificador = $padre_identificador;
     $this->titulo = $titulo;
     $this->identificador = $this->padre_identificador . \Base\Funciones::caracteres_para_clase($this->titulo);
     $this->contenido = $contenido;
     $this->esta_abierto = $esta_abierto;
 }
 /**
  * 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;
 }
示例#5
0
 /**
  * Validar
  */
 protected function validar()
 {
     // Validar publicaciones_directorio
     if (!is_string($this->publicaciones_directorio) || $this->publicaciones_directorio == '') {
         throw new \Exception("Falló la validación en ImprentaCSV: No se ha definido el directorio de publicaciones.");
     }
     $lib_dir = sprintf('%s/%s', \Base\Recolector::LIB_DIR, $this->publicaciones_directorio);
     if (!is_dir($lib_dir)) {
         throw new \Exception("Falló la validación en ImprentaCSV: No existe el directorio {$lib_dir}");
     }
     // Validar directorio
     if (!is_string($this->directorio) || $this->directorio == '') {
         $this->directorio = \Base\Funciones::caracteres_para_web($this->publicaciones_directorio);
     }
     // Validar archivo_ruta
     if (!is_string($this->archivo_ruta) || $this->archivo_ruta == '') {
         $this->archivo_ruta = "{$this->directorio}/{$this->directorio}.csv";
     }
 }
 /**
  * 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++;
     }
 }
示例#7
0
 /**
  * Categorías
  */
 protected function categorias()
 {
     // Cargar configuración de las categorías
     $categorias_config = new CategoriasConfig();
     // Iniciar concentrador
     $concentrador = new \Base\VinculosCompactos();
     // Inicializar el recolector
     $recolector = new \Base\RecolectorCategorias();
     $recolector->agregar_publicaciones_de_imprentas($this->imprentas);
     // Bucle por todas las categorias
     foreach ($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) {
             // Sí está definido
             $categoria->en_raiz = true;
             $categoria->en_otro = false;
             $vinculo = new \Base\Vinculo($categoria->nombre, $categoria->url(), $categoria->icono, '', $categoria->descripcion);
             $vinculo->en_raiz = true;
             $vinculo->en_otro = false;
             $concentrador->agregar($vinculo);
         } elseif ($categorias_config->mostrar_no_definidos) {
             // No está definido
             $vinculo = new \Base\Vinculo($nombre, sprintf('%s.html', \Base\Funciones::caracteres_para_web($nombre)), 'unknown', \Base\ImprentaCategorias::CATEGORIAS_DIR);
             $vinculo->en_raiz = true;
             $vinculo->en_otro = false;
             $concentrador->agregar($vinculo);
         }
     }
     // Poner
     $this->contenido[] = '  <section id="categorias">';
     $this->contenido[] = '    <h2>Categorías</h2>';
     $this->contenido[] = sprintf('    <p>Explore por medio de las categorías que clasifican las %s publicaciones en este sitio web.</p>', number_format($recolector->obtener_cantidad_de_publicaciones(), 0, ".", ","));
     $this->contenido[] = $concentrador->html();
     $this->contenido[] = '  </section>';
 }