Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Necesito entender bien este codigo extjs

Estas en el tema de Necesito entender bien este codigo extjs en el foro de Frameworks JS en Foros del Web. Buenas Tardes Foreros, necesito que alguien por favor me explique este codigo para poder realizar un sistema que estoy haciendo basado en el ejemplo del ...
  #1 (permalink)  
Antiguo 19/10/2010, 16:08
 
Fecha de Ingreso: diciembre-2008
Ubicación: http://www.solucionesrios.tk/
Mensajes: 413
Antigüedad: 16 años
Puntos: 19
Necesito entender bien este codigo extjs

Buenas Tardes Foreros, necesito que alguien por favor me explique este codigo para poder realizar un sistema que estoy haciendo basado en el ejemplo del Web Desktop que pueden ver aqui

http://dev.sencha.com/deploy/ext/examples/

http://dev.sencha.com/deploy/ext/exa...p/desktop.html

Este es el codigo original

Código:
// Necesito entender bien desde aqui hasta...
var windowIndex = 0;

MyDesktop.BogusModule = Ext.extend(Ext.app.Module, {
    init : function(){
        this.launcher = {
            text: 'Window '+(++windowIndex),
            iconCls:'bogus',
            handler : this.createWindow,
            scope: this,
            windowId:windowIndex
        }
    },

    createWindow : function(src){
        var desktop = this.app.getDesktop();
        var win = desktop.getWindow('bogus'+src.windowId);
        if(!win){
            win = desktop.createWindow({
                id: 'bogus'+src.windowId,
                title:src.text,
                width:640,
                height:480,
                html : '<p>Something useful would be in here.</p>',
                iconCls: 'bogus',
                shim:false,
                animCollapse:false,
                constrainHeader:true
            });
        }
        win.show();
    }
});

//aqui

//Y como relacionar la funcion siguiente con la anterior
MyDesktop.BogusMenuModule = Ext.extend(MyDesktop.BogusModule, {
    init : function(){
        this.launcher = {
            text: 'Bogus Submenu',
            iconCls: 'bogus',
            handler: function() {
				return false;
			},
            menu: {
                items:[{
                    text: 'Bogus Window '+(++windowIndex),
                    iconCls:'bogus',
                    handler : this.createWindow,
                    scope: this,
                    windowId: windowIndex
                    },{
                    text: 'Bogus Window '+(++windowIndex),
                    iconCls:'bogus',
                    handler : this.createWindow,
                    scope: this,
                    windowId: windowIndex
                    },{
                    text: 'Bogus Window '+(++windowIndex),
                    iconCls:'bogus',
                    handler : this.createWindow,
                    scope: this,
                    windowId: windowIndex
                    },{
                    text: 'Bogus Window '+(++windowIndex),
                    iconCls:'bogus',
                    handler : this.createWindow,
                    scope: this,
                    windowId: windowIndex
                    },{
                    text: 'Bogus Window '+(++windowIndex),
                    iconCls:'bogus',
                    handler : this.createWindow,
                    scope: this,
                    windowId: windowIndex
                }]
            }
        }
    }
});
Estoy sacando el menu de inicio desde la base de datos, modificando el codigo e integrandolo con php, pero no he logrado relacionar el elemento del menu con la pagina del formulario.

Es decir como integrar la primera funcion javascript con la segunda (que si me funciona bien)



Pero no logro relacionar que determinado boton me muestre determinada pagina
__________________
http://www.solucionesrios.tk/

Visita mi Web!
  #2 (permalink)  
Antiguo 23/10/2010, 18:00
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 20 años, 5 meses
Puntos: 53
Respuesta: Necesito entender bien este codigo extjs

Te dejo un tutorial que preparé hace algún tiempo.

http://www.quizzpot.com/2010/05/extj...on-de-modulos/

Saludos
  #3 (permalink)  
Antiguo 23/10/2010, 22:21
 
Fecha de Ingreso: diciembre-2008
Ubicación: http://www.solucionesrios.tk/
Mensajes: 413
Antigüedad: 16 años
Puntos: 19
Respuesta: Necesito entender bien este codigo extjs

Esta muy bien tu tutorial. gracias por responder tan rapido, pero alli sale como un enlace directo del menu, y lo que necesitaria es tener el enlace desde los submenus como sale en la imagen que sale en el primer post
__________________
http://www.solucionesrios.tk/

Visita mi Web!
  #4 (permalink)  
Antiguo 24/11/2010, 20:13
 
Fecha de Ingreso: marzo-2006
Mensajes: 2
Antigüedad: 18 años, 9 meses
Puntos: 0
Respuesta: Necesito entender bien este codigo extjs

y ya sabes como ponerlo? porque tengo el mismo problema es que ahi lo hereda por eso no tiene p2 pero yo lo tengo en diferentes metodos :( creo que es p2 del scope... ojala puedas responder como lo solucionaste
  #5 (permalink)  
Antiguo 25/11/2010, 08:55
 
Fecha de Ingreso: diciembre-2008
Ubicación: http://www.solucionesrios.tk/
Mensajes: 413
Antigüedad: 16 años
Puntos: 19
Respuesta: Necesito entender bien este codigo extjs

Ya lo solucione, te copio la funcion para que lo apliques.

Código PHP:
if (!function_exists("Submodulos")) {
function 
Submodulos(
$niveles,
$enlace2,
$hostname_obras,
$database_obras,
$username_obras,
$password_obras) {
    
$obras mysql_pconnect($hostname_obras$username_obras$password_obras) or trigger_error(mysql_error(),E_USER_ERROR);
    
mysql_select_db($database_obras$obras);
    
$menu_4 "    
"
;
    
$menu_4 .= "MyDesktop.BogusModule = Ext.extend(Ext.app.Module, {
"
;
    
$query_menus "SELECT  
        DISTINCT `us_rolesmenus`.`optmenu` ,  
        `ag_menuspad`.`padmenu` , 
        `ag_menuspad`.`formularioweb` ,  
        `ag_menuspad`.`etiqueta` ,  
        `ag_menuspad`.`opttexto` ,  
        `ag_menuspad`.`images`
        FROM `us_rolesmenus`
        INNER JOIN `ag_menuspad` ON `us_rolesmenus`.`optmenu` = `ag_menuspad`.`optmenu`
        WHERE `us_rolesmenus`.`idrol` LIKE '"
.$niveles."' ";
    
$menus mysql_query($query_menus$obras) or die(mysql_error());
    
$row_menus mysql_fetch_assoc($menus);
    
$totalRows_menus mysql_num_rows($menus);    
    do {        
        
mysql_select_db($database_obras$obras);
        
$query_menus2 "SELECT DISTINCT * FROM `ag_menusopt` WHERE `optmenu` LIKE '".$row_menus['optmenu']."' AND `padmenu` LIKE '".$row_menus['padmenu']."'";
        
$menus2 mysql_query($query_menus2$obras) or die(mysql_error());
        
$row_menus2 mysql_fetch_assoc($menus2);
        
$totalRows_menus2 mysql_num_rows($menus2);
        do {
            if(!empty(
$row_menus2['formularioweb'])) {
            
$menu_4 .= "    init : function(){
"
;
            
$menu_4 .= "    ".$row_menus2['formularioweb'].".launcher = {
"
;
            
$menu_4 .= "        text: 'icon-grid',
"
;
            
$menu_4 .= "        iconCls:'".$row_menus['formularioweb']."',
"
;
            
$menu_4 .= "        handler : ".$row_menus2['formularioweb'].".createWindow_".$row_menus2['formularioweb'].",
"
;
            
$menu_4 .= "        scope: ".$row_menus2['formularioweb'].",
"
;
            
$menu_4 .= "        windowId: '".$row_menus2['formularioweb']."'
"
;
            
$menu_4 .= "    }
"
;
            
            
$menu_4 .= "},
"
;
                
$menu_4 .= "    createWindow_".$row_menus2['formularioweb']." : function(src){
"
;
                
$menu_4 .= "    var desktop_".$row_menus2['formularioweb']." = this.app.getDesktop();
"
;
                
$menu_4 .= "    var win_".$row_menus2['formularioweb']." = desktop_".$row_menus2['formularioweb'].".getWindow('".$row_menus2['formularioweb']."');
"
;
                
$menu_4 .= "    if(!win_".$row_menus2['formularioweb']."){
"
;
                
$menu_4 .= "        win_".$row_menus2['formularioweb']." = desktop_".$row_menus2['formularioweb'].".createWindow({
"
;
                
$menu_4 .= "        id: '".$row_menus2['formularioweb']."',
"
;
                
$menu_4 .= "        title: '".$row_menus2['etiqueta']."',
"
;
                
$menu_4 .= "        width:900,
"
;
                
$menu_4 .= "        height:700,
"
;
                
$menu_4 .= "        html : '<iframe id=\"container\" src=\"".$enlace2.$row_menus2['formularioweb'].".php\" style=\"width:100%;height:100%;border:none\"></iframe>',
"
;
                
$menu_4 .= "        iconCls: '".$row_menus['formularioweb']."',
"
;
                
$menu_4 .= "        shim:false,
"
;
                
$menu_4 .= "        animCollapse:false,
"
;
                
$menu_4 .= "        constrainHeader:true,        
"
;

/*
                $menu_4 .= "        closable: false,
";
                $menu_4 .= "        maximizable: false,
";
                $menu_4 .= "        minimizable : false
";
*/
                
$menu_4 .= "    });
"
;
                
$menu_4 .= "}
"
;
                
$menu_4 .= "win_".$row_menus2['formularioweb'].".show();
"
;
                
$menu_4 .= "},
"
;
                
            }
        } while (
$row_menus2 mysql_fetch_assoc($menus2));
    } while (
$row_menus mysql_fetch_assoc($menus));
    
    
$menu_4 .= "});
"
;
    return 
$menu_4;
    
#return $query_menus2;
}

Se explica que genero las funciones a partir de la base de datos de menus, y submenus.
__________________
http://www.solucionesrios.tk/

Visita mi Web!
  #6 (permalink)  
Antiguo 25/11/2010, 09:11
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 20 años, 5 meses
Puntos: 53
Respuesta: Necesito entender bien este codigo extjs

Hola warbandit69, buen día.

Que bien que has solucionado tu problema, a manera de crítica constructiva y con ánimos de ayudarte, te comento que evites escribir ese tipo de códigos!! ya que es INMANTENIBLE! en las capacitaciones que imparto sobre ExtJS siempre les comento a los participantes que eviten ese tipo de prácticas porque tendrán serios problemas en el futuro.

Lo que deberías hacer es solamente pedir la lista de menus en formato JSON o XML via Ajax y en javascript generar los menús a partir de la respuesta del servidor. La idea es que hagas "Servicios web" a los cuales solicites la información y estos te la regresen, en ningún momento mescles el servidor con JavaScript, nunca! nunca!

Saludos
  #7 (permalink)  
Antiguo 25/11/2010, 10:03
 
Fecha de Ingreso: diciembre-2008
Ubicación: http://www.solucionesrios.tk/
Mensajes: 413
Antigüedad: 16 años
Puntos: 19
Respuesta: Necesito entender bien este codigo extjs

Es muy buena tu observacion STOCK, estoy manejando los formularios via MVC (que me parecen bastante complicados, ya que hay herramientas que te generan los códigos de una vez, el formulario y la acción del servidor, cosa que aun Extjs no tiene).

Todo lo que hay que hacer en extjs es a pie, ya que no hay un generador de código, te imaginas hacer el código a pie, con más de 100 ventanas que debo hacer?, y todas tienen un comportamiento diferente? Seria demasiado trabajo, pudiendolo automatizar de la manera "poco recomendada" que me dices que es, que me ahorro , lineas y lineas y mas lineas de trabajo.

No desprestigio tu trabajo, pero lo vi mas comodo y menos trabajo para un mismo fin, es mas de tus tutoriales es que he estado aprendiendo poco a poco lo que se de extjs, ya que se encuentra demasiado poca ayuda por la web, inclusive desde los mismos foros de extjs, es una herramienta poca conocida, y por ende hay muy poca información.

Si lo deseas puedes darte una vuelta por este post que publique aqui para que veas las modificaciones que he realizado a tus metodos, para facilitarme el trabajo.

En este en especifico es sobre los select dependientes, que en tu ejemplo tienes solo 2, y sacados de un array estatico, en este saque los valores directo desde la base de datos, y me gustaria que lo pusieras como ejemplo en tu blog.


http://www.forosdelweb.com/3642067-post3.html


Son criticas, que me parecen a mi, mas constructivas que destructivas.

Saludos.
__________________
http://www.solucionesrios.tk/

Visita mi Web!
  #8 (permalink)  
Antiguo 25/11/2010, 10:10
 
Fecha de Ingreso: diciembre-2008
Ubicación: http://www.solucionesrios.tk/
Mensajes: 413
Antigüedad: 16 años
Puntos: 19
Respuesta: Necesito entender bien este codigo extjs

Una Muestra de lo que he logrado hasta ahora


Foto Completa


Foto Completa
__________________
http://www.solucionesrios.tk/

Visita mi Web!
  #9 (permalink)  
Antiguo 25/11/2010, 15:43
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 15 años
Puntos: 65
Respuesta: Necesito entender bien este codigo extjs

unas preguntas

los formularios se crean con ext indicandole parámetros? o sea, texto de label, tipo de input, tamaño, etc?
se pueden hacer formularios de varias columnas?
ya viene con validadores incluidos o hay plugins?

la verdad que con los ejemplos de tabs, formaularios, layout, grid que vi en http://dev.sencha.com/deploy/dev/examples/ me sedujeron jeje
  #10 (permalink)  
Antiguo 26/11/2010, 08:06
 
Fecha de Ingreso: diciembre-2008
Ubicación: http://www.solucionesrios.tk/
Mensajes: 413
Antigüedad: 16 años
Puntos: 19
Respuesta: Necesito entender bien este codigo extjs

Todo se puede editar y validar, con su respectivo xtype y propiedades.
__________________
http://www.solucionesrios.tk/

Visita mi Web!
  #11 (permalink)  
Antiguo 30/11/2010, 06:45
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 20 años, 5 meses
Puntos: 53
Respuesta: Necesito entender bien este codigo extjs

Cita:
Iniciado por Dany_s Ver Mensaje
los formularios se crean con ext indicandole parámetros? o sea, texto de label, tipo de input, tamaño, etc?
Así es, son completamente configurables y extendibles!

Cita:
Iniciado por Dany_s Ver Mensaje
se pueden hacer formularios de varias columnas?
Si, solamente tienes que definir el layout adecuado, es un poco complicado (pero no tanto) pero para la versión 4 que sale en febrero 2011 mejorará mucho :)

Cita:
Iniciado por Dany_s Ver Mensaje
ya viene con validadores incluidos o hay plugins?
Si, existe el concepto de "vtype" donde tu defines tu validación y la aplicas el campo que quieras, es muy sencillo.

Te recomiendo visitar mi blog donde tengo muchos tutoriales al respecto :)

Saludos
  #12 (permalink)  
Antiguo 02/12/2010, 06:06
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 15 años
Puntos: 65
Respuesta: Necesito entender bien este codigo extjs

la semana que viene voy a empezar a leer tus tutoriales :)
  #13 (permalink)  
Antiguo 08/01/2013, 11:43
 
Fecha de Ingreso: enero-2013
Mensajes: 1
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Necesito entender bien este codigo extjs

warbandit69.. muy buen ejemplo si no es molestia subelo para poder descargarlo y probarlo pes....saludos

Etiquetas: entender, extjs
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:07.