$store->addField(new PhpExt_Data_FieldConfigObject("modulo")); $store->addField(new PhpExt_Data_FieldConfigObject("contacto")); $store->addField(new PhpExt_Data_FieldConfigObject("sucursal::nombre")); $store->addField(new PhpExt_Data_FieldConfigObject("sucursal")); $filter_plugin = new PhpExtUx_Grid_GridFilters(); $filter_plugin->addFilter(PhpExt_Grid_FilterConfigObject::createFilter("numeric", "id")); $filter_plugin->addFilter(PhpExt_Grid_FilterConfigObject::createFilter("string", "nombre")); $filter_plugin->addFilter(PhpExt_Grid_FilterConfigObject::createFilter("string", "contacto::apellido")); $filter_plugin->addFilter(PhpExt_Grid_FilterConfigObject::createFilter("string", "sucursal::nombre")); $paging = new PhpExt_Toolbar_PagingToolbar(); $paging->setStore($store)->setPageSize($page_size)->setDisplayInfo(true)->setEmptyMessage("No se encontraron permisos"); $paging->getPlugins()->add($filter_plugin); $txt_nombre = new PhpExt_Form_TextField(); $txt_descripcion = new PhpExt_Form_TextField(); $modulos = array(); if ($listado_modulos = OOB_module::listModules()) { foreach ($listado_modulos as $modulo) { $modulos[] = array($modulo->name(), $modulo->nicename()); } //end each } //end if $store_modulos = new PhpExt_Data_SimpleStore(); $store_modulos->addField("id"); $store_modulos->addField("detalle"); $store_modulos->setData(PhpExt_Javascript::variable(json_encode($modulos))); $cbo_modulo = PhpExt_Form_ComboBox::createComboBox("cbo_modulo")->setStore($store_modulos)->setDisplayField("detalle")->setValueField("id")->setLazyRender(true)->setEditable(false)->setForceSelection(true)->setSingleSelect(true)->setMode(PhpExt_Form_ComboBox::MODE_LOCAL)->setTriggerAction(PhpExt_Form_ComboBox::TRIGGER_ACTION_ALL); $format_contacto = "\n\t function( v, params, record , rowIndex, colIndex, store ){\t\t\t\n\t\treturn record.data['contacto'];\n\t }\n"; $format_modulo = "\n\t function( v, params, record , rowIndex, colIndex, store ){\t\t\t\n\t\treturn record.data['modulenicename'];\n\t }\n"; $col_model = new PhpExt_Grid_ColumnModel(); $col_model->addColumn(PhpExt_Grid_ColumnConfigObject::createColumn("Id", "id", null, 30));
/** Returns the module of the current action */ public function myModule() { global $ari; $action_id = $ari->db->qMagic($this->action); $sql = "SELECT M.ID, M.ModuleName, M.Status, M.NiceName, M.Description, M.Optional \n \t FROM Security_Action A, Security_Permission P, OOB_Modules_Config M \n \t WHERE A.PermissionID = P.ID \n \t AND P.ModuleName = M.ModuleName\n \t AND A.ID = {$action_id} "; $savem = $ari->db->SetFetchMode(ADODB_FETCH_ASSOC); // $rs = $ari->db->Execute( $sql); $rs = $ari->db->CacheExecute(SQL_CACHE, $sql); $ari->db->SetFetchMode($savem); if (!$rs->EOF) { $return = new OOB_module(); $return->set("module", $rs->fields["ModuleName"]); $return->set("status", $rs->fields["Status"]); $return->set("primary", $rs->fields["Optional"]); $return->set("nicename", $rs->fields["NiceName"]); $return->set("description", $rs->fields["Description"]); } else { $return = false; } $rs->Close(); return $return; }
# # @copyright Pablo Micolini # @license BSD ######################################## */ OOB_module::includeClass('seguridad', 'seguridad_permission'); if (!seguridad::isAllowed(seguridad_action::nameConstructor('new', 'permission', 'seguridad'))) { throw new OOB_exception("Acceso Denegado", "403", "Acceso Denegado. Consulte con su Administrador!", true); } global $ari; $ari->t->assign("form", true); $sp = new oob_safepost("form"); $modSelect = ''; $arrModulo = array(); $arrIdModulo = array(); if ($objModulo = OOB_module::listModules()) { foreach ($objModulo as $m) { $arrModulo[] = $m->nicename(); $arrIdModulo[] = $m->name(); if (isset($_POST['cboModulo'])) { //echo $_POST['cboModulo']."<br>"; if ($_POST['cboModulo'] == $m->name()) { $modSelect = $m->name(); } } } } $ari->t->assign("arrModulo", $arrModulo); $ari->t->assign("arrIdModulo", $arrIdModulo); $ari->t->assign("modSelect", $modSelect); if (!isset($_POST['guardar'])) {
<?php # Eumafes v2 [�2005 - Nutus, Todos los derechos reservados] /* * Created on 06-ago-2005 * @author Victor Stornati (victor.stornati@nutus.com.ar) */ OOB_module::includeClass('currency', 'currency_currency'); class currency_value { private $id = ID_UNDEFINED; //@todo: object datetime private $date = ''; private $value = ''; private $currency = NO_OBJECT; /** Starts the currency value. if no currency value set we must believe is a new one */ function __construct($id = ID_UNDEFINED) { global $ari; if ($id > ID_MINIMAL) { $this->id = $id; if (!$this->fill()) { throw new OOB_exception("Invalid Currency Value {$id}", "403", "Invalid Currency Value", false); } } } /** Returs the value for the given var */ public function get($var) { if (isset($this->{$var}) && !empty($this->{$var})) {
//trae los items del menu $tree_loader = new PhpExt_Tree_TreeLoader(); $tree_loader->setDataUrl("/admin/menu"); //armo el nodo root (no es visible) $root = new PhpExt_Tree_AsyncTreeNode(); $root->setText("Principal Node")->setDraggable(false)->setId("Principal_Node")->setExpanded(true)->setCssClass("feeds-node")->expandChildNodes(false); $menu_acordion = new PhpExt_Tree_TreePanel(); $menu_acordion->setTitle("Menu Principal")->setId("treePanel")->setWidth(250)->setHeight('fill')->setLines(false)->setAutoScroll(true)->setCollapseFirst(false)->setSingleExpand(true)->setUseArrows(true)->setRootVisible(false)->setRoot($root)->setLoader($tree_loader); //----------------------------------------PANTALLA PRINCIPAL------------------------------------------------------------------------------------------------------- $tab_layout = new PhpExt_Layout_TabLayout(); $tab_layout->setDeferredRender(false); $principal = new PhpExt_TabPanel(); $principal->setActiveTab(0)->setId("TabPanel")->setHideMode(PhpExt_Component::HIDE_MODE_OFFSETS)->setLayout($tab_layout)->setEnableKeyEvents(true)->setenableTabScroll(true); $onrender = "\n\n\n\n\n//beforeclose\nt.on( 'beforeremove', function(t,c){\n\nvar cnx = new Ext.data.Connection();\nExt.Ajax.request({ url : '/admin/closetab',\n\t\t\t\tmethod : 'POST',\n\t\t\t\tparams : 'tab_id=' + c.id \t\t\t\t\t \n\t\t\t\t });\n\n});\n"; $principal->attachListener("render", new PhpExt_Listener(PhpExt_Javascript::functionDef(null, $onrender, array("t", "r", "i")))); $module = new OOB_module('About'); $template_dir = $module->admintpldir() . "/about.tpl"; $html = $ari->t->fetch($template_dir); $bienvenido = new PhpExt_Panel(); $bienvenido->setTitle("Bienvenido")->setId("panel_bienvenido")->setAutoScroll(true)->setBodyStyle("padding:10px 10px 0")->setHtml($html); $principal->addItem($bienvenido, new PhpExt_Layout_TabLayoutData(true)); $add_tab_function = "\n\n//oob_download\nExt.DomHelper.append(document.body, {\n tag: 'form',\n id:'download_form',\n frameBorder: 0,\n width: 0,\n height: 0,\n css: 'display:none;visibility:hidden;height:0px;'\n\t\t\t\t\t}); \n\nfunction oob_download( url, params ){\n\nvar form = document.getElementById('download_form');\n\nvar inputs = form.getElementsByTagName('input');\n\nfor (i = 0; i < inputs.length; i++){\n form.removeChild(inputs[i]); \n}\n\nif( Ext.isArray(params) ){\n\tExt.each( params, function( item, index ){\n\t\tel = document.createElement('input');\n\t\tel = form.appendChild(el);\n\t\tel.name = item.name;\n\t\tel.type = 'hidden';\n\t\tel.value = item.value;\t\n\t});\n}\n\nform.method = 'post';\nform.action = url;\nform.submit();\n\n}\nExt.apply( Ext,{ oob_download : oob_download } );\n//fin oob_download\t\t\t\t\t\n\nvar msgconfig = {\n\t\t title :'Error',\n\t\tprogress : false,\n\t\t wait : false,\n\t\t msg : 'Se produjo un error al cargar la pagina.',\n\t\t buttons : Ext.Msg.OK,\t\t \n\t\t icon : Ext.MessageBox.ERROR ,\n\t\t\t fn : function(c,t,o){\n\t\t\t\tExt.MessageBox.getDialog().setTitle(''); \n\t\t\t\tExt.MessageBox.getDialog().hide();\n\t\t\t }\t\n\t\t}\n\n\n\nExt.Ajax.on('requestexception',function(request,response,f,g,h){\n\t\n\t\t\n\tswitch( response.status ){\n\tcase 401:\n\n\tvar loginDialog = new Ext.ux.form.LoginDialog({\n\t\t\t\tmodal : true,\n\t\t\t\ttitle : 'Nutus Economía',\n\t\t\t message : 'Por su seguridad debe logearse nuevamente,<br /> ya que no ha utilizado el sistema por más de 30 minutos',\n\t\tusernameLabel : 'Usuario',\n\t\tpasswordLabel : 'Contraseña',\n\t\t cancelButton : 'Cerrar',\n\t\t loginButton : 'Enviar',\n\t\t failMessage : 'Usuario o contraseña no válida.',\n\t\t\t\t url : '/seguridad/login_ajax'\t\t\t\n\t\t\t});\n\n\t\n\tloginDialog.show();\n\n\tloginDialog.on('success',function(){\n\trequest.request(f);\n\t});\n\n\tbreak;\n\tcase 400:\n\t\t\n\t\tvar msgconfig = {\n\t\t title :'Error 400',\t\t\t\t \n\t\t msg : response.getResponseHeader['message'],\n\t\t buttons : Ext.Msg.OK,\t\t \n\t\t icon : Ext.MessageBox.ERROR ,\n\t\t\t fn : function(c,t,o){\n\t\t\t\tExt.MessageBox.getDialog().setTitle(''); \n\t\t\t\tExt.MessageBox.getDialog().hide();\n\t\t\t }\t\n\t\t}\n\t\n\t\tExt.MessageBox.hide();\t \n\t\tvar win = Ext.MessageBox.getDialog();\t\t\n\t\t\n\t\twin.on('beforehide',function(){\n\t\t\t\n\t\t\tif( this.title == 'Error 400'){\n\t\t\t\t\treturn false;\n\t\t\t}\t\t\n\t\t});\n\t\t\n\t\tExt.Msg.show(msgconfig);\n\t\tExt.getCmp('status_bar').clearStatus({useDefaults:true});\n\t\t\n\tbreak;\n\tcase 404:\n\t\tvar msgconfig = {\n\t\t title :'Error 404',\t\t\t\t \n\t\t msg : response.getResponseHeader['message'],\n\t\t buttons : Ext.Msg.OK,\t\t \n\t\t icon : Ext.MessageBox.ERROR ,\n\t\t\t fn : function(c,t,o){\n\t\t\t\tExt.MessageBox.getDialog().setTitle(''); \n\t\t\t\tExt.MessageBox.getDialog().hide();\n\t\t\t }\t\n\t\t}\n\t\tExt.Msg.show(msgconfig);\n\t\tExt.getCmp('status_bar').clearStatus({useDefaults:true});\t\n\tbreak;\n\tcase 500:\t\t\n Ext.MessageBox.hide();\t \n\t\tvar win = Ext.MessageBox.getDialog();\t\t\n\t\t\n\t\twin.on('beforehide',function(){\n\t\t\t\n\t\t\tif( this.title == 'Error'){\n\t\t\t\t\treturn false;\n\t\t\t}\t\t\n\t\t});\n\t\t\n\t\tExt.Msg.show(msgconfig);\n\t\tExt.getCmp('status_bar').clearStatus({useDefaults:true});\n\t\t \n\tbreak;\n\tcase 9001:\n\t\tExt.MessageBox.alert('" . $ari->title . "',response.getResponseHeader['message']); \n\t\tExt.getCmp('status_bar').clearStatus({useDefaults:true});\n\tbreak;\t\n\t}\n});\n\n\n\nExt.Ajax.on('requestcomplete', function(request,response,f,g,h){\ntry\n { \n \n //Ext.MessageBox.updateProgress(1);\n //Ext.MessageBox.hide();\t\n\t//alert(response.getResponseHeader['Content-Type']);\n\t\n\n\t \n\t\t\n }\ncatch(err)\n {\n //alert(err.description);\n }\n \n\n\n}, this);\n\n\n\nExt.Ajax.request({url: '/admin/getcache',\n\t\t method: 'POST',\n \t\t success: function(responseObject){\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t json = Ext.decode(responseObject.responseText);\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t Ext.each( json, function(i){\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\taddTab(i.title,i.url,true,i.params,true,i.id);\n\t\t\t\t\t\t\t });\t\t\t\t\t\t \n\t\t\t\t\t }\t\t\t\t \n\t\t\t\t});\n\t\t\t\t\n\t\t\t\t\n\n \n//funcion para agregar las tabs \nfunction addTab( Title, Url, Add, Params, cache, tab_id ){\n\nvar panel_tabs = Ext.getCmp('TabPanel'); //obtengo el tabpanel que contiene todas las tabs\nvar cnx = new Ext.data.Connection(); //creo un nuevo objeto conexion\nvar tab_id; //defino la variable tab_id, tiene el id de la tab que se va agregar\n\t\t\t\n\t//pongo la barra de estado(cargando...)\n\tExt.getCmp('status_bar').showBusy();\n\t\t\t\n\t//obtengo un id unico para el contenedor de los contenidos que voy a cargar\n\tvar id = Ext.id();\n\n\t//function para agregar definitivamente la tab\n\tvar add = function( tab_id ){\n\t\n\t\n\t\t\t//si quiero agregar una tab nueva\n\t\t\t\t\t\t\t\t\t\n\n\t\tExt.Ajax.request( { url : Url,\n\t\t\t\t\t\tmethod : 'POST',\t\t\t\t\t\t\n\t\t\t\t\t\tparams : Params,\n\t\t\t\t\t success : function( responseObject ){\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\tvar respuesta = responseObject.responseText;\t\n\n\t\t\t\t\t\t\t\t\tif(Add){\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t var tab = new Ext.Panel({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid : tab_id,\n\t\t\t\t\t\t\t\t\t\t\t\t\t title : Title,\n\t\t\t\t\t\t\t\t\t\t\t\t\tlayout : 'fit',\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t closable : true,\n\t\t\t\t\t\t\t\t\t\t\tdeferredRender : false,\n\t\t\t\t\t\t\t\t\t\t\t\t\t html : '<div style=\"height:100%;width:100%;\" id=\"' + id + '\"></div>',\n\t\t\t\t\t\t\t\t\t\t\t\tautoScroll : true\t\t\t\t\t\t\t \t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t });\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t panel_tabs.add(tab);\n\t\t\t\t\t\t\t\t\t\t tab.show();\t\t\t\t\t\t\t\t\t\t\t\t\t \t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse //si quiero agregar en la tab que esta activa\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tvar active_tab = panel_tabs.getActiveTab();\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tvar cnx = new Ext.data.Connection();\n\t\t\t\t\t\t\t\t\t\tExt.Ajax.request({ url : '/admin/closetab',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmethod : 'POST',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tparams : 'tab_id=' + active_tab.id \t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t });\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tactive_tab.setTitle(Title);\n\t\t\t\t\t\t\t\t\t\tactive_tab.body.dom.innerHTML = '<div style=\"height:100%;width:100%;\" id=\"' + id + '\"></div>';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t//una vez insertado el contenedor con el id unico , se procede a insertar los\n\t\t\t\t\t\t\t\t\t//datos en el mismo\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t//si el contenido a cargar es un html\n\t\t\t\t\t\t\t\t\tif( responseObject.getResponseHeader['Content-Type'] == 'text/html' ){\t\t\n\t\t\t\t\t\t\t\t\t\tExt.get(id).dom.innerHTML = respuesta;\t\t\t \n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse //si el contenido es un json(extjs)\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t//ejecuto la respuesta y hago un render de la variable contenido\n\t\t\t\t\t\t\t\t\t\t//sobre el contenedor\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\teval(respuesta);\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tcontenido.render(Ext.get(id));\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t//llamo el evento para que aplique los filtros\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tcontenido.fireEvent( 'applyfilters', tab_id );\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tExt.getCmp('status_bar').clearStatus({useDefaults:true});\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn true;\t\t\t\n\t\t\t\t\t}});\n\n\n\t\t\t}//end function addtab\n\n\t\t\n\t\t//si !cache , quiere decir que la tab no esta en cache, por lo tanto llamo a newtab\n\t\t//para que la cachee y me devuelve el tab_id\n\t\tif(!cache){\n\t\t\t Ext.Ajax.request({url: '/admin/newtab',\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\tparams: 'url=' + Url + '&title=' + Title + '¶ms=' + Params ,\n\t\t\t\t\t success: function(responseObject){\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t json = Ext.decode(responseObject.responseText);\t\t\t\t\t\t\t \t\t\t\t\t\t\t \n\t\t\t\t\t\t\t //este tab_id luego es usado por la funcion tab_id\n\t\t\t\t\t\t\t tab_id = json.id;\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t add(json.id); \t\t\t\t\t\t\t \t\t\t\t\t\t\t \t\t\t\t\t \t\t\t\t\t\t\t\t\n\t\t\t\t\t }\n\t\t\t\t});\t\t\n\t\t}\n\t\telse\n\t\t{\n\t\t\t\t\tadd(tab_id); \t\t\t\t\t\t\t \n\t\t}\t\t\n\t\n\t\t\n\t}\n\t\n\t\t\t\t\n\t\n\tExt.apply( Ext,{ addTab : addTab } );\n\t\n\t\n\tvar map = new Ext.KeyMap(document, [\n\t\t\t\t{\n\t\t\t\t\tkey: \"t\",\n\t\t\t\t\tctrl:true,\n\t\t\t\t\tshift:true,\n\t\t\t\t\tfn: function(){\n\t\t\t\t\t\tvar panel_tabs = Ext.getCmp('TabPanel'); //obtengo el tabpanel que contiene todas las tabs\n\t\t\t\t\t\tvar active_tab = panel_tabs.getActiveTab();\n\t\t\t\t\t\t if(active_tab){\n\t\t\t\t\t\t\tpanel_tabs.remove(active_tab);\n\t\t\t\t\t\t }//end if\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t]);\n\t\t\n\n\t//esto dejarlo siempre al ultimo por que hace el fadeout del precargador( osea lo oculta )\n\tvar hideMask = function () {\n Ext.get('loading').remove();\n Ext.fly('loading-mask').fadeOut({\n remove:true\n });\n }\n\n hideMask.defer(250);\t\t\t\n\t\n\t\n\t"; $add_tab_invoke = PhpExt_Javascript::callfunction("addTab", array("n.id[0]", "n.id[1]", "true", "''", "false"))->output() . "return false;"; $add_tab_invoke_html = PhpExt_Javascript::callfunction("addTab", array("n.id[0]", "n.id[1]", "false", "''", "false"))->output() . "return false;"; $get_tree_panel = PhpExt_Element::getCmp('treePanel'); $if_leaf = PhpExt_Javascript::functionNoDef("if", $add_tab_invoke, array("n.leaf")); $if_leaf_html = PhpExt_Javascript::functionNoDef("if", $add_tab_invoke_html, array("n.leaf")); $add_tab_onclick = PhpExt_Javascript::functionDef(null, $if_leaf, array("n")); $add_tab_oncontextmenu = PhpExt_Javascript::functionDef(null, $if_leaf_html, array("n")); $output_add_tab_onclick = $get_tree_panel->on("click", $add_tab_onclick); $output_add_tab_oncontextmenu = $get_tree_panel->on("contextmenu", $add_tab_oncontextmenu);
foreach ($_POST['hidden_name'] as $moduleName) { $array = $_POST['opt_modules']; $module = new OOB_module($moduleName); switch ($array[$moduleName]) { case 0: $module->disable(); break; case 1: $module->enable(); break; } } } // check the modules update list if (isset($_POST['update_modules_list'])) { $module_object = new OOB_module(); $module_object->updateModulesList(); header("Location: " . $ari->get("adminaddress") . '/admin/config/modules/'); } // set the get method if (!isset($handle[2]) || !in_array($handle[2], OOB_module::getViews())) { $handle[2] = "all"; } $ari->t->assign("view", $handle[2]); // set the order if (!isset($handle[3]) || !in_array($handle[3], OOB_module::getOrders())) { $handle[3] = "nicename"; } $ari->t->assign("order", $handle[3]); //selectors data $ari->t->assign("kind_values", OOB_module::getViews());
//codigo por jpcoseani //script que devuelve el listado de modulos de un rol determinado global $ari; $ari->popup = 1; // no mostrar el main_frame //falta controlar si viene el id del rol y validar si el rol se crea correctamente if (isset($_POST['id'])) { $role = new seguridad_role($_POST['id']); } else { throw new OOB_Exception_400("La variable [id] no esta definida"); } //ARRAY CON LOS MODULOS DEL ROLE $modules_role = false; $modules_role = seguridad_role::listModulesFor($role, false); $modulos = array(); if ($modules = OOB_module::listModules()) { foreach ($modules as $m) { $padre = array(); $padre['leaf'] = false; $padre['id'] = "m_" . $m->name(); $padre['text'] = $m->nicename(); $padre['expanded'] = true; $padre['iconCls'] = 'Clsmodule'; $name = ''; $name = $m->name(); //VEO SI EL MODULO ESTA EN EL ROL if ($modules_role) { if (in_array($name, $modules_role)) { $padre['checked'] = true; } else { $padre['checked'] = false;
//codigo por jpcoseani //script que devuelve el listado de modulos global $ari; $ari->popup = 1; // no mostrar el main_frame if (isset($_POST['UpdateList'])) { $module_object = new OOB_module(); $module_object->updateModulesList(); $ari->clearCache(); } //CAMBIO DE ESTADO DE LOS MODULOS ( HABILITADO O NO) if (isset($_POST['UpdateEnabledData'])) { $change_status = json_decode($_POST['UpdateEnabledData'], true); foreach ($change_status as $chk) { $module = new OOB_module($chk['modulename']); if ($chk['checked'] == "true") { $module->enable(); } else { $module->disable(); } } } $i = 0; $return = array(); //SE OBTIENE EL LISTADO DE MODULOS if ($modules = OOB_module::listModules('all', true, 'nicename')) { foreach ($modules as $m) { $return[$i]['nicename'] = $m->nicename(); $return[$i]['modulename'] = $m->name(); $return[$i]['description'] = $m->description();