123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272 |
- <?php
- setlocale(LC_TIME, 'es_MX.UTF-8');
- require_once("../../include/nocache.php");
- require_once("../../include/constantes.php");
- require_once("../../include/bd_pdo.php");
- require_once("../../include/util.php");
- include_once('../../include/xTemplate/xtemplate.class.php'); // including mpdf.php
- include_once('../../include/mpdf/autoload.php'); // including mpdf.php
- ini_set('display_errors', 1);
- ini_set('display_startup_errors', 1);
- error_reporting(E_ALL);
- if(!isset($_GET["periodo_id"])){
- echo "No se ha especificado el periodo";
- exit();
- }
- //
- $stmt = $pdo->prepare('Select * from fs_materiasprofesor(:periodo, null) where "Carrera_prefijo" in (\'IND\', \'AB\')');
- $stmt->bindParam(":periodo", $_GET["periodo_id"]);
- if(!$stmt->execute()){
- //print_r($stmt->errorInfo());
- $errorDesc = "Ocurrió un error al cargar los datos del periodo";
- }else{
- $periodo_rs = $stmt->fetchAll();
- }
- $stmt->closeCursor();
- foreach($periodo_rs as $periodo){
- $filter_mat = $periodo["Materia_id"]."_".$periodo["Grupo_id"]."_".$periodo["Submateria_id"];
- $filter_materia_nom = $periodo["Materia_desc"];
- $filter_gpo_nom = $periodo["Grupo_desc"];
- $matArr = explode("_",$filter_mat);
-
- //--
- $mat = $periodo["Materia_id"];
- $gpo = $periodo["Grupo_id"];
- $gpo_nom = $periodo["Grupo_desc"].$periodo["Carrera_prefijo"];
- $usr = $periodo["Usuario_id"];
-
-
- $stmt = $pdo->prepare('Select * from fs_usuario(:usr)');
- $stmt->bindParam(":usr", $usr);
- if(!$stmt->execute()){
- header("Location: ".$pag."?error=5");
- exit();
- }else{
- $usr_rs = $stmt->fetch();
- $usr_nombre = $usr_rs["Usuario_nombre"]." ".$usr_rs["Usuario_apellidos"];
- }
- $stmt->closeCursor();
- if($periodo["Submateria_id"]!= ""){
- $sub = $periodo["Submateria_id"];
- $stmt = $pdo->prepare('Select * from fs_syllabus(:periodo, :prof, :mat, :gpo, :sub )');
- $stmt->bindParam(":sub", $sub);
- }else{
- $stmt = $pdo->prepare('Select * from fs_syllabus(:periodo, :prof, :mat, :gpo, NULL )');
- }
- $stmt->bindParam(":periodo", $_GET["periodo_id"]);
- $stmt->bindParam(":prof", $usr);
- $stmt->bindParam(":mat", $mat);
- $stmt->bindParam(":gpo", $gpo);
- if(!$stmt->execute()){
- header("Location: ".$pag."?error=3");
- //$errorDesc = "Error al cargar los datos del alumno";
- //print_r($stmt->errorInfo());
- exit();
- }
- $syllabus_rs = $stmt->fetch();
- $stmt->closeCursor();
- //print_r($syllabus_rs); exit;
- $stmt = $pdo->prepare('Select * from fs_periodo(:periodo, NULL, NULL, NULL )');
- $stmt->bindParam(":periodo", $_GET["periodo_id"]);
- if(!$stmt->execute()){
- header("Location: ".$pag."?error=3");
- //$errorDesc = "Error al cargar los datos del alumno";
- //print_r($stmt->errorInfo());
- exit();
- }
- $periodo_rs = $stmt->fetch();
- $stmt->closeCursor();
- if(isset($sub)){
- $stmt = $pdo->prepare('SELECT hg."Horario_hora", s."Salon_desc", s."Salon_desc_larga", d."Dia_desc"
- from fs_horariogrupo(:gpo, NULL, false) AS hg INNER JOIN "Dia" d ON hg."Dia_id" = d."Dia_id"
- INNER JOIN "Submateria_HorarioGrupo_Profesor" shgp ON hg."HorarioGrupo_id" = shgp."HorarioGrupo_id" AND shgp."Submateria_id" = :sub
- INNER JOIN "Salon" s ON shgp."Salon_id" = s."Salon_id" WHERE "Materia_id" = :mat ORDER BY d."Dia_id", hg."Horario_hora"' );
- $stmt->bindParam(":sub", $sub);
-
- }else{
- $stmt = $pdo->prepare('SELECT hg."Horario_hora", hg."Salon_desc", hg."Salon_desc_larga", d."Dia_desc"
- from fs_horariogrupo(:gpo, NULL, false) AS hg INNER JOIN "Dia" d ON hg."Dia_id" = d."Dia_id" WHERE "Materia_id" = :mat ORDER BY d."Dia_id", hg."Horario_hora"' );
- }
- $stmt->bindParam(":gpo", $gpo);
- $stmt->bindParam(":mat", $mat);
- if(!$stmt->execute()){
- header("Location: ".$pag."?error=3");
- // print_r($stmt->errorInfo());
- exit();
- }
- $horario_rs = $stmt->fetchAll();
- $stmt->closeCursor();
- //print_r($horario_rs); exit;
- //-----
- $defaultConfig = (new Mpdf\Config\ConfigVariables())->getDefaults();
- $fontDirs = $defaultConfig['fontDir'];
- $defaultFontConfig = (new Mpdf\Config\FontVariables())->getDefaults();
- $fontData = $defaultFontConfig['fontdata'];
- $mpdf = new \Mpdf\Mpdf([
- 'mode' => 'utf-8',
- 'format' => [215, 279],
- 'orientation' => 'P',
- 'margin_left' => 14,
- 'margin_right' => 14,
- 'margin_top' => 27,
- 'margin_bottom' => 27,
- 'fontDir' => array_merge($fontDirs, [
- __DIR__ . '/../../fonts/indivisaFont/ttf',
- ]),
- 'fontdata' => $fontData + [
- 'indivisa-display' => [
- 'R' => 'IndivisaDisplaySans-Regular.ttf',
- ],
- 'indivisa-title' => [
- 'R' => 'IndivisaDisplaySerif-RegularItalic.ttf',
- ],
- 'indivisa-text' => [
- 'R' => 'IndivisaTextSans-Regular.ttf',
- ]
- ],
- 'default_font' => 'indivisa-text',
- ]);
- //$mpdf->SetDisplayMode('fullpage');
- $stylesheet = "<style>";
- $stylesheet .= file_get_contents('../../css/indivisa.css'); // external css
- $stylesheet .= file_get_contents('../css/syllabus.css'); // external css
- $stylesheet .= "</style>";
- $xtpl = new XTemplate('../tpl/syllabus.tpl.html');
- $mat_nombre = !empty($syllabus_rs["Submateria_desc"])?$syllabus_rs["Submateria_desc"]:$syllabus_rs["Materia_desc"];
- $xtpl->assign("MATERIA", $mat_nombre." ".$gpo_nom);
- $xtpl->assign("SEMESTRE", $syllabus_rs["Materia_semestre"]);
- $xtpl->assign("PERIODO", $periodo_rs["Periodo_desc"]);
- $xtpl->assign("PROFESOR", $usr_nombre);
- foreach($horario_rs as $h){
- $hora = substr($h["Horario_hora"], 0, 5);
- if(empty($h["Salon_desc"])){
- $salon = "Salón pendiente";
- }else{
- $salon = $h["Salon_desc"];
- if(!empty($h["Salon_desc_larga"])){
- $salon .=" (".$h["Salon_desc_larga"].")";
- }
- }
-
- $xtpl->assign("DIA", $h["Dia_desc"]);
- $xtpl->assign("HORA", $hora);
- $xtpl->assign("SALON", $salon);
- $xtpl->parse("main.fechas");
- }
- //---Atributos
- //Obtiene mapa
- $stmt = $pdo->prepare('select * from fs_atributoegreso_materia(:mat)');
- $stmt->bindParam(":mat", $mat);
- if(!$stmt->execute()){
- header("Location: ".$pag."?error=5");
- }else{
- $atributos_rs = $stmt->fetchAll();
- }
- //----
- $datos = array(
- array("titulo"=>"Información de la asignatura", "bd"=>"informacion", "subbloques"=>
- array(
- array("subtitulo"=>"Descripción","bd"=>"desc", "nobreak"=>false),
- array("subtitulo"=>"Objetivos","bd"=>"obj", "nobreak"=>false),
- array("subtitulo"=>"Capacidades y habilidades que desarrollar","bd"=>"capacidades", "nobreak"=>false),
- array("subtitulo"=>"Prerrequisitos","bd"=>"prerrequisitos", "nobreak"=>false),
- array("subtitulo"=>"Temario","bd"=>"temario", "nobreak"=>false),
- array("subtitulo"=>"Construcción de la calificación final","bd"=>"calificacion", "nobreak"=>true),
- array("subtitulo"=>"Fechas importantes","bd"=>"fechas", "nobreak"=>true),
- )
- ),
- array("titulo"=>"Lineamientos generales", "bd"=>"", "subbloques"=>
- array(
- array("subtitulo"=>"De la asistencia y puntualidad","bd"=>"asistencia", "nobreak"=>false),
- array("subtitulo"=>"Del comportamiento en clase","bd"=>"comportamiento", "nobreak"=>false),
- array("subtitulo"=>"De los exámenes","bd"=>"examenes", "nobreak"=>false),
- array("subtitulo"=>"De las tareas, prácticas y exposiciones","bd"=>"tareas", "nobreak"=>false),
- array("subtitulo"=>"Trabajos de investigación","bd"=>"investigacion", "nobreak"=>false),
- )
- ),
- array("titulo"=>"Bibliografía recomendada", "bd"=>"bibliografia", "subbloques"=>array()
- )
- );
- $atributos = false;
- foreach($datos as $bloque){
- $xtpl->assign("TITULO", $bloque["titulo"]);
- if($bloque["bd"]!= ""){
- $xtpl->assign("INFO", $syllabus_rs["Syllabus_".$bloque["bd"]]);
- $xtpl->parse("main.bloque.titulo.info");
- $xtpl->parse("main.bloque.titulo");
- $xtpl->parse("main.bloque");
- }
- if(!$atributos ){
- $atributos = true;
- if(count($atributos_rs) > 0){
- $html = "<ul>";
- foreach($atributos_rs as $atr){
- $html.="<li><b>Atributo {$atr["AtributoEgreso_id"]} nivel {$atr["AtributoNivel_desc"]}:</b> {$atr["AtributoEgreso_desc"]}</li>";
- }
- $html.="</ul>";
- $xtpl->assign("SUBTITULO", "Atributos de egreso");
- $xtpl->assign("INFO", $html);
- $xtpl->parse("main.bloque.subbloque");
- $xtpl->parse("main.bloque");
- }
- }
- foreach($bloque["subbloques"] as $subbloque){
- $xtpl->assign("SUBTITULO", $subbloque["subtitulo"]);
- $xtpl->assign("INFO", $syllabus_rs["Syllabus_".$subbloque["bd"]]);
- if($subbloque["nobreak"]) $xtpl->parse("main.bloque.subbloque_nobreak");
- else $xtpl->parse("main.bloque.subbloque");
- $xtpl->parse("main.bloque");
- }
- }
- $xtpl->parse("main");
- /*echo $stylesheet;
- $xtpl->out("main"); exit;
- */
- $header = '<table style="width:100%"><tr>
- <td><img src="../../img/logopdf.png" width="40mm" class=""></td>
- <td align="right"><h1 class="titulo">SYLLABUS | FACULTAD DE INGENIERÍA</h1></td>
- </tr></table>';
- $mpdf->SHYlang = 'es';
- $mpdf-> SetTitle('Syllabus -' . $mat_nombre);
- $mpdf-> SetAuthor('Facultad de Ingeniería. © Universidad La Salle A.C. '.date("Y").' Todos los derechos Reservados.');
- $mpdf->SetHTMLHeader($header);//se pone como fondo
- $mpdf->SetHTMLFooter('<img src="../../img/footer_docs.png" >');//se pone como fondo
- $mpdf->WriteHTML($stylesheet);
- if(!isset($errorDesc))
- $mpdf->WriteHTML($xtpl->text("main"));
- else
- $mpdf->WriteHTML($errorDesc);
- $mpdf->Output("../files/syllabus/".$_GET["periodo_id"]."syllabus_ ".$gpo_nom."_".getIniciales($mat_nombre).".pdf", 'F');
-
- }//foreach
|