123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- <?php
- /*
- * Incluir en cada página para pintar el menú. Se necesita conexión de base de datos.
- * * @author Alejandro
- */
- class MainMenu {
- //put your code here
- private $usr, $selected,$pdo, $xtpl;
- private $sistema = 3; //CIDIT
- private $menuEstatico = array();
-
- /**
- * @param int $usr_id Id del usuario actual
- * @param int $menu_selected Id del menú seleccionado
- * @param PDO $this->pdo Conexión de base de datos
- */
- function __construct($usr_id, $menu_selected, $pdo){
- $this->selected = $menu_selected;
- $this->usr = $usr_id;
- $this->pdo = $pdo;
- $this->agregaMenu('Galeria de carteles', 'galeria.php', 'ing-galeria');
- $this->agregaMenu('Listado de Finalistas', 'finalistas.php', 'ing-finalistas');
- $this->agregaMenu('Ganadores', 'ganadores.php', 'ing-insignia1');
- $this->agregaMenu('Memorias', 'memorias.php', 'ing-bullet');
- }
-
- //Agrega menú estático
- public function agregaMenu($texto, $link, $icono =''){
- $this->menuEstatico[] = array('nombre'=>$texto, 'link'=>$link, 'icono'=>$icono);
- }
-
- private function creaMenu($id, $nombre, $icono){
- $this->xtpl->assign('MENU_ID', $id);
- $this->xtpl->assign('MENU_NOMBRE', $nombre);
- if($icono != ''){
- $this->xtpl->assign('MENU_ICONO', $icono);
- $this->xtpl->parse('main.sidebar.menus.menu.icono');
- }
- if($this->selected == $id){
- $this->xtpl->parse('main.sidebar.menus.menu.activo');
- $this->xtpl->parse('main.sidebar.menus.menu.show');
- }else{
- $this->xtpl->parse('main.sidebar.menus.menu.inactivo');
- $this->xtpl->parse('main.sidebar.menus.menu.collapsed');
- }
-
- }
-
- public function printMenu(){
- require_once('adds/tpl/xtemplate.class.php');
- $this->xtpl = new XTemplate('adds/tpl/main_menu.tpl.html');
-
- $rutaLogo = 'img/template/lasalle-logo.svg';
- $this->xtpl->assign('LOGO_IMG', $rutaLogo);
-
- $links = array();
- array_push($links,array('nombre' => 'Facultad de Ingeniería', 'pag' => 'https://ingenieria.lasalle.mx/'));
- array_push($links,array('nombre' => 'La Salle', 'pag' => 'https://lasalle.mx'));
- array_push($links,array('nombre' => 'Moodle', 'pag' => 'https://moodle.ingenierialasalle.mx/'));
- foreach($links as $link){
- $this->xtpl->assign('SISTEMA_LINK', $link['pag']);
- $this->xtpl->assign('SISTEMA_NOMBRE', $link['nombre']);
- $this->xtpl->parse('main.sidebar.sistemas.sistema');
- $this->xtpl->parse('main.sistemas.list.sistema');
- }
- if ($this->usr == 0){
- $this->xtpl->assign('MODAL', 'modalInicia');
- $this->xtpl->parse('main.sidebar.modal');
- } else{
- $this->xtpl->assign('SALIR', 'salir.php');
- $this->xtpl->parse('main.sidebar.salir');
- }
- $this->xtpl->parse('main.sistemas.list');
- $this->xtpl->parse('main.sistemas');
- $this->xtpl->parse('main.sidebar.sistemas');
-
- $menuArr = array();
- if ($this->usr != 0 && !is_null($this->pdo)) {
- $stmt = $this->pdo->prepare('SELECT * FROM cidit_fs_menuspagina (:usr)');
- $stmt->bindParam(':usr', $this->usr);
- if(!$stmt->execute()){
- echo 'Error al imprimir el submenú';
- print_r($stmt->errorInfo());
- exit();
- }
-
- $menuArr = $stmt->fetchAll();
- $stmt->closeCursor();
- $stmt = null;
- }
-
- //Inicio por default
- $this->xtpl->assign('MENU_ID', 1);
- $this->xtpl->assign('MENU_LINK', 'home.php');
- $this->xtpl->assign('MENU_NOMBRE', 'Home');
- $this->xtpl->assign('MENU_ICONO', 'ing-home');
- $this->xtpl->parse('main.sidebar.menus.menu_link.icono');
- if($this->selected == 1){
- $this->xtpl->parse('main.sidebar.menus.menu_link.activo');
- }
- $this->xtpl->parse('main.sidebar.menus.menu_link');
- if(count($this->menuEstatico)>0){
- foreach($this->menuEstatico as $menu){
- $this->xtpl->assign('MENU_LINK', $menu['link']);
- $this->xtpl->assign('MENU_NOMBRE', $menu['nombre']);
- if($menu['icono'] != ''){
- $this->xtpl->assign('MENU_ICONO', $menu['icono']);
- $this->xtpl->parse('main.sidebar.menus.menu_link.icono');
- }
- $this->xtpl->parse('main.sidebar.menus.menu_link');
- }
- }
- //Recorre menus
- $lastMenu = -1;
- $numMenus = 0;
- foreach($menuArr as $menu){
- if($lastMenu == -1){//Sin menú anterior
- $lastMenu = $menu['Menu_id'];
- $numMenus++;
- $this->creaMenu($menu['Menu_id'], $menu['Menu_desc'], $menu['Menu_icono']);
- }else if($lastMenu != $menu['Menu_id']){//Cambio de menú
- $this->xtpl->parse('main.sidebar.menus.menu');//guarda menu anterior
- $lastMenu = $menu['Menu_id'];
- $numMenus++;
- $this->creaMenu($menu['Menu_id'], $menu['Menu_desc'], $menu['Menu_icono']);
- }
- $this->xtpl->assign('MENU_ID', $menu['Menu_id']);
- $this->xtpl->assign('SUBMENU_LINK', $menu['Submenu_pag_base']);
- $this->xtpl->assign('SUBMENU_NOMBRE', $menu['Submenu_desc']);
- $this->xtpl->assign('SUBMENU_ICONO', $menu['Submenu_icono']);
- $this->xtpl->parse('main.sidebar.menus.menu.submenu');
- }
- if(count($menuArr)>0){
- $this->xtpl->parse('main.sidebar.menus.menu');
- }
-
- //'Compilar' resultados
- $this->xtpl->parse('main.sidebar.menus');
- $this->xtpl->parse('main.sidebar');
- if ($this->usr == 0){
- $this->xtpl->assign('MODAL', 'modalInicia');
- $this->xtpl->parse('main.menu_index.modal');
- $this->xtpl->parse('main.menu_index');
- } else{
- $this->xtpl->assign('SALIR', 'salir.php');
- $this->xtpl->parse('main.menu_sidebar.salir');
- $this->xtpl->parse('main.menu_sidebar');
- }
- $this->xtpl->parse('main');
- $this->xtpl->out('main');
- }
- /*
- * @return string Texto con el código HTML del menú
- */
- public function textMenu(){
- return $this->xtpl->text('main');
- }
-
- private function getFirstDirectory($pag){
- if(dirname($pag) == '/'){
- return $pag;
- }
- return $this->getFirstDirectory(dirname($pag));
- }
- }
|