コード例 #1
0
ファイル: ImprentaAutores.php プロジェクト: TRCIMPLAN/beta
 /**
  * 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++;
     }
 }
コード例 #2
0
 /**
  * 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;
 }