Загрузить данные в Modx FormPanel

Я работаю над страницей менеджера клиентов, которая в основном отображает сведения об объекте человека (имя, фамилия...) с использованием полей отображения без какого-либо редактирования, мой виджет просмотра выглядит следующим образом:

Players.panel.View = function(config) {
config = config || {};
Ext.apply(config,{
    border: false
    ,baseCls: 'modx-formpanel'
    ,url: Players.config.connectorUrl
    ,baseParams: { action: 'mgr/player/get' }
    ,items: [{
        html: '<h2>'+_('players.view.title')+'</h2>'
        ,border: false
        ,cls: 'modx-page-header'
    },{
        xtype: 'modx-tabs'
        ,bodyStyle: 'padding: 10px'
        ,defaults: { border: false ,autoHeight: true }
        ,border: true
        ,items: [{
            title: _('players.view.tab-header')
            ,defaults: { autoHeight: true }
            ,items: [{
                html: '<p>'+_('players.view.panel-desc')+'</p><br />'
                ,border: false
            } ,{
                xtype: 'compositefield',
                labelWidth: 120,
                items: [{
                            xtype     : 'displayfield',
                            value: 'First Name:',
                            width     : 120
                        },
                        {
                            xtype     : 'displayfield',
                            value: 'Yehia A.Salam'
                        }
                ]
            }]
        }]
    }]
});
Players.panel.View.superclass.constructor.call(this,config);
};
Ext.extend(Players.panel.View,MODx.Panel);
Ext.reg('players-panel-view',Players.panel.View);

Тем не менее, «mgr/player/get» никогда не вызывается, я уверен, что коннектор работает нормально, так как я уже использую его в другом виджете сетки, я что-то здесь упустил, как мне инициировать вызов ajax и заполнить ПоказатьПоля.

Благодарю за помощь и ВАУ, никогда не думал, что кривая обучения Modx Revolution будет такой крутой.

-- С уважением. Йехия А. Салам


person Yehia A.Salam    schedule 13.08.2011    source источник
comment
На самом деле это практически не имеет ничего общего с ModX, поскольку у вас проблемы с extjs, что не имеет абсолютно никакого отношения к ModX.   -  person    schedule 15.08.2011
comment
это панель modx-formpanel, так что там может быть что-то специфичное для modx   -  person Yehia A.Salam    schedule 15.08.2011
comment
Многие вещи включены в modx, но он все равно делает их своими собственными, поэтому я предложил вам взглянуть на extjs, чтобы решить эту проблему.   -  person    schedule 15.12.2011


Ответы (2)


Попробуйте добавить параметр fields, который содержит все поля данных, которые вы хотите получить через коннектор.

Что-то подобное:

Players.panel.View = function(config) {
config = config || {};
Ext.apply(config,{
    border: false
    ,baseCls: 'modx-formpanel'
    ,url: Players.config.connectorUrl
    ,baseParams: { action: 'mgr/player/get' }
    ,fields: [
          'id'
          ,'first_name'
          ,'last_name'
          ,...]
    ,...
});
...
person mikrobi    schedule 15.05.2012

Возможно, вам потребуется создать еще один пользовательский тип xtype, который будет вызывать этот соединитель.

Players.panel.View = function(config) {
config = config || {};
Ext.apply(config,{
    border: false
    ,baseCls: 'modx-formpanel'
    ,items: [{
        html: '<h2>'+_('players.view.title')+'</h2>'
        ,border: false
        ,cls: 'modx-page-header'
    },{
        xtype: 'modx-tabs'
        ,bodyStyle: 'padding: 10px'
        ,defaults: { border: false ,autoHeight: true }
        ,border: true
        ,items: [{
            title: _('players.view.tab-header')
            ,defaults: { autoHeight: true }
            ,items: [{
                html: '<p>'+_('players.view.panel-desc')+'</p><br />'
                ,border: false
            } ,{
                // this thing is the one that has the url + baseParams
                // and renders the compositefields
                xtype: 'another-xtype-to-call-connector' 
                ,preventRender: true
            }]
        }]
    }]
});
Players.panel.View.superclass.constructor.call(this,config);
};
Ext.extend(Players.panel.View,MODx.Panel);
Ext.reg('players-panel-view',Players.panel.View);

Здесь MODx.Panel предназначен только для создания макета.

person goldsky    schedule 14.09.2012