pdo Conexión de base de datos */ function __construct($usr_id, $menu_selected, $pdo, $sistema, $titulo=""){ $this->selected = $menu_selected; $this->usr = $usr_id; $this->pdo = $pdo; $this->sistema = $sistema; $this->titulo = trim($titulo); } //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"); if($this->titulo == "") $this->xtpl->assign("TITULO", $nombre); }else{ $this->xtpl->parse("main.sidebar.menus.menu.inactivo"); $this->xtpl->parse("main.sidebar.menus.menu.collapsed"); } } public function printMenu(){ if(!is_null($this->sistema)){ require_once("../include/xTemplate/xtemplate.class.php"); $this->xtpl = new XTemplate('../tpl/main_menu.tpl.html'); }else{ require_once("./include/xTemplate/xtemplate.class.php"); $this->xtpl = new XTemplate('./tpl/main_menu.tpl.html'); } //$this->xtpl->assign("LOGO_LINK", "main.php"); $rutaLogo = "/img/logo_lasalle.png"; //$rutaLogo = '/img/60_logo.svg'; //logo60 $this->xtpl->assign("LOGO_IMG", $rutaLogo); $stmt = $this->pdo->prepare('Select * from fs_sistemausuarioacceso(:usr)'); $stmt->bindParam(":usr", $this->usr); if(!$stmt->execute()){ echo "Error al imprimir los menus"; print_r($stmt->errorInfo()); exit(); } $sistemasArr = $stmt->fetchAll(); $stmt->closeCursor(); $stmt = null; if(!is_null($this->sistema)){//Hay sistema $rutaLogo = "..".$rutaLogo; $this->xtpl->assign("LOGO_IMG", $rutaLogo); if(count($sistemasArr) > 1 || $_SESSION["sgi_administrador"]){ $this->xtpl->assign("LINK", "../main.php"); $this->xtpl->assign("TEXTO", "Inicio"); $this->xtpl->assign("ICONO", ""); $this->xtpl->parse("main.sistemas.list.link"); $this->xtpl->parse("main.sistemas.list"); $this->xtpl->parse("main.sidebar.sistemas.link"); foreach($sistemasArr as $sistema){ if(trim($sistema["Sistema_pagina"]) != ""){ $pag = dirname($_SERVER['PHP_SELF']); if(!is_null($this->sistema)){ $pag = dirname($pag); } $pag .= $sistema["Sistema_pagina"]; $this->xtpl->assign("SISTEMA_LINK", $pag); $this->xtpl->assign("SISTEMA_NOMBRE", $sistema["Sistema_nombre"]); if(intval($sistema["Sistema_id"]) == intval($this->sistema)){ $this->xtpl->parse("main.sidebar.sistemas.sistema.active"); $this->xtpl->parse("main.sistemas.list.sistema.active"); } $this->xtpl->parse("main.sidebar.sistemas.sistema"); $this->xtpl->parse("main.sistemas.list.sistema"); } } } $this->xtpl->assign("SALIR", "../salir.php"); $this->xtpl->parse("main.sistemas.list"); $this->xtpl->parse("main.sistemas"); $this->xtpl->parse("main.sidebar.sistemas"); $stmt = $this->pdo->prepare('SELECT * FROM fs_menuspagina (:usr, :sist)'); $stmt->bindParam(":sist", $this->sistema); $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", "main.php"); $this->xtpl->assign("MENU_NOMBRE", "Inicio"); $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"); } $this->xtpl->parse("main.sidebar.menus"); $this->xtpl->parse("main.sidebar.menus"); //'Compilar' resultados $this->xtpl->parse("main.sidebar.salir"); $this->xtpl->parse("main.sidebar"); $this->xtpl->parse("main.menu_sidebar"); //carga datos de sistema $stmt = $this->pdo->prepare('Select * from fs_sistema(:sist)');//devuelve: permiso, edicion $stmt->bindParam(":sist", $this->sistema); if(!$stmt->execute()){ $this->hasError = true; $this->error = $stmt->errorInfo(); }else{ $rs = $stmt->fetch(); $stmt->closeCursor(); // cierra conexion de resultado $stmt = null; // cierra conexion $this->xtpl->assign("SISTEMA", $rs["Sistema_nombre"]); $this->xtpl->assign("SISTEMA_NOMBRE", $rs["Sistema_desc"]); $rs = null; } $this->xtpl->parse("main.sistema_barra"); }else{// ---- Sin sistema ----- $this->xtpl->assign("SISTEMA_LINK", "main.php"); $this->xtpl->assign("SISTEMA_NOMBRE", "Inicio"); $this->xtpl->parse("main.sidebar.sistemas.sistema.active"); $this->xtpl->parse("main.sistemas.sistema.active"); $this->xtpl->parse("main.sidebar.sistemas.sistema"); $this->xtpl->parse("main.sistemas.list.sistema"); foreach($sistemasArr as $sistema){ if(trim($sistema["Sistema_pagina"]) != ""){ $pag = dirname($_SERVER['PHP_SELF']); if(!is_null($this->sistema)){ $pag = dirname($pag); } $pag .= $sistema["Sistema_pagina"]; $this->xtpl->assign("SISTEMA_LINK", $pag); $this->xtpl->assign("SISTEMA_NOMBRE", $sistema["Sistema_nombre"]); if(intval($sistema["Sistema_id"]) == intval($this->sistema)){ $this->xtpl->parse("main.sidebar.sistemas.sistema.active"); $this->xtpl->parse("main.sistemas.sistema.active"); } $this->xtpl->parse("main.sidebar.sistemas.sistema"); $this->xtpl->parse("main.sistemas.list.sistema"); } } $this->xtpl->assign("SALIR", "salir.php"); $this->xtpl->parse("main.sistemas.list"); $this->xtpl->parse("main.sistemas"); $this->xtpl->parse("main.sidebar.sistemas"); //Menus superadmin if($_SESSION["sgi_administrador"]){ $this->xtpl->assign("MENU_LINK", "main.php"); $this->xtpl->assign("MENU_NOMBRE", "Inicio"); $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; //$menuArr = array( // array("Menu_id" => 1, "Menu_desc" => "Configuración", "Menu_icono" => "ing-configuracion", "Submenu_pag_base" =>"sistemas.php", "Submenu_desc" => "Sistemas"), // array("Menu_id" => 1, "Menu_desc" => "Configuración", "Menu_icono" => "ing-configuracion", "Submenu_pag_base" =>"roles.php", "Submenu_desc" => "Roles de sistema"), //); $this->selected = $menuArr[0]["Menu_id"]; 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->parse("main.sidebar.menus.menu.submenu"); } if(count($menuArr)>0){ $this->xtpl->parse("main.sidebar.menus.menu"); }*/ $this->xtpl->parse("main.sidebar.menus"); }else{ $this->xtpl->assign("MENU_LINK", "salir.php"); $this->xtpl->assign("MENU_NOMBRE", "Salir"); $this->xtpl->parse("main.sidebar.menus.menu_link"); $this->xtpl->parse("main.sidebar.menus"); } $this->xtpl->parse("main.sidebar.salir"); $this->xtpl->parse("main.sidebar"); $this->xtpl->parse("main.menu_sidebar"); } if($this->titulo != "") $this->xtpl->assign("TITULO", $this->titulo); $this->xtpl->parse("main"); $this->xtpl->out("main"); } public function printHead(){ require_once("./include/xTemplate/xtemplate.class.php"); $this->xtpl = new XTemplate('./tpl/main_menu.tpl.html'); $rutaLogo = "/img/logo_lasalle.png"; //$rutaLogo = 'img/60_logo.svg'; //logo 60 $this->xtpl->assign("LOGO_IMG", $rutaLogo); $this->xtpl->assign("SALIR", "salir.php"); $this->xtpl->parse("main.sistemas.list"); $this->xtpl->parse("main.sistemas"); $this->xtpl->parse("main.sidebar.sistemas"); $this->xtpl->assign("MENU_LINK", "salir.php"); $this->xtpl->assign("MENU_NOMBRE", "Salir"); $this->xtpl->parse("main.sidebar.menus.menu_link"); $this->xtpl->parse("main.sidebar.menus"); $this->xtpl->parse("main.sidebar.salir"); $this->xtpl->parse("main.sidebar"); $this->xtpl->parse("main.menu_sidebar"); if($this->titulo != "") $this->xtpl->assign("TITULO", $this->titulo); $this->xtpl->parse("main"); $this->xtpl->out("main"); } public function printMenuFooter($iconos = false){ if(!is_null($this->sistema)){ require_once("../include/xTemplate/xtemplate.class.php"); $this->xtpl = new XTemplate('../tpl/footer_menu.tpl.html'); }else{ require_once("./include/xTemplate/xtemplate.class.php"); $this->xtpl = new XTemplate('./tpl/footer_menu.tpl.html'); } //$this->xtpl->assign("LOGO_LINK", "main.php"); if(!is_null($this->sistema)){ $stmt = $this->pdo->prepare('SELECT * FROM fs_menuspagina (:usr, :sist)'); $stmt->bindParam(":sist", $this->sistema); $stmt->bindParam(":usr", $this->usr); if(!$stmt->execute()){ echo "Error al imprimir el submenú en footer"; 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", "main.php"); $this->xtpl->assign("MENU_NOMBRE", "Inicio"); if($iconos){ $this->xtpl->assign("MENU_ICONO", "fas fa-home"); $this->xtpl->parse("main.menus.menu_link.icono"); } $this->xtpl->parse("main.menus.menu_link"); $this->xtpl->parse("main.menus"); //Recorre menus $lastMenu = -1; $numMenus = 0; foreach($menuArr as $menu){ if($lastMenu == -1){//Sin menú anterior $lastMenu = $menu["Menu_id"]; $numMenus++; $this->xtpl->assign("MENU_NOMBRE", $menu["Menu_desc"]); if($iconos){ $this->xtpl->assign("MENU_ICONO", $menu["Menu_icono"]); $this->xtpl->parse("main.menus.menu.icono"); } }else if($lastMenu != $menu["Menu_id"]){//Cambio de menú $this->xtpl->parse("main.menus.submenus"); $this->xtpl->parse("main.menus.menu");//guarda menu anterior $this->xtpl->parse("main.menus"); $lastMenu = $menu["Menu_id"]; $numMenus++; $this->xtpl->assign("MENU_NOMBRE", $menu["Menu_desc"]); if($iconos){ $this->xtpl->assign("MENU_ICONO", $menu["Menu_icono"]); $this->xtpl->parse("main.menus.menu.icono"); } } $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.menus.submenu.icono"); $this->xtpl->parse("main.menus.submenus.submenu"); } if(count($menuArr)>0){ $this->xtpl->parse("main.menus.submenus"); $this->xtpl->parse("main.menus.menu"); } $this->xtpl->parse("main.menus"); //Salir por default /*$this->xtpl->assign("MENU_ID", 1); $this->xtpl->assign("MENU_LINK", "../salir.php"); $this->xtpl->assign("MENU_NOMBRE", "Salir"); if($iconos){ $this->xtpl->assign("MENU_ICONO", "fas fa-power-off"); $this->xtpl->parse("main.menus.menu_link.icono"); } if($this->selected == 1){ $this->xtpl->parse("main.menus.menu_link.activo"); } $this->xtpl->parse("main.menus.menu_link"); $this->xtpl->parse("main.menus");*/ $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)); } }