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)); } }