
Originally Posted by
jsakalos
Tank you Saki.
But.. I create other class extend from CookieProvider with base in httpProvider
PHP Code:
Ext.ux.HttpDBProvider = function(config) {
Ext.ux.HttpDBProvider.superclass.constructor.call(this,config);
this.path = "/";
this.expires = new Date(new Date().getTime()+(1000*60*60*24*7)); //7 days
this.domain = null;
this.secure = false
this.state={};
Ext.apply(this, config);
}
Ext.extend(Ext.ux.HttpDBProvider, Ext.state.CookieProvider, {
setCookie : function(name, value){
var o = {
url:this.saveUrl || this.url
,method:this.method
,scope:this
,params:{}
};
var params = Ext.apply({}, this.saveBaseParams);
params[this.paramNames.id] = this.id;
params[this.paramNames.session] = this.session;
params[this.paramNames.user] = this.user;
params[this.paramNames.name] = name;
params[this.paramNames.data] = this.encodeValue(value);
Ext.apply(o.params, params);
Ext.Ajax.request(o);
},
readCookies : function(){
var cookies = {};
var o = {url:this.readUrl||this.url,method:this.method ,scope:this,params:{}
,success:function(response, options){
var data = eval(response.responseText.split("\n")[0]);
Ext.each(data, function(item) {
var tmp;
try {
tmp=this.decodeValue(item[this.paramNames.value]);
} catch(e){ dump(e);realAlert(e);return }
this.state[item[this.paramNames.name]] = tmp;
}, this);
}
};
var params = Ext.apply({}, this.readBaseParams);
params[this.paramNames.id] = this.id;
params[this.paramNames.session] = this.session;
params[this.paramNames.user] = this.user;
Ext.apply(o.params, params);
Ext.Ajax.request(o);
return
},
clearCookie : function(name){
var o = {url:this.saveUrl||this.url,method:this.method,scope:this,params:{}};
var params = Ext.apply({}, this.cleanBaseParams);
params[this.paramNames.id] = this.id;
params[this.paramNames.session] = this.session;
params[this.paramNames.user] = this.user;
params[this.paramNames.name] = name;
Ext.apply(o.params, params);
Ext.Ajax.request(o);
}
});
PHP Code:
this.cp=new Ext.ux.HttpDBProvider({id:"STATEPROVIDER",paramNames:{id:'CODIGO',name:'nome',value:'valor',user:'usuario',session:'SESSAO',data:'dados'},session:"",method:'POST',cleanBaseParams:{cmd:'cleanState'},readBaseParams:{cmd:'readState'},saveBaseParams:{cmd:'saveState'},readUrl:"",saveUrl:"",user:99,url:'jsonsql.php'});
Ext.state.Manager.setProvider(this.cp);
on ready page I create the state object with readCookies;
PHP Code:
this.cp.readCookies();
It's solve my problems.