Загрузить данные в Modx FormPanel - PullRequest
0 голосов
/ 13 августа 2011

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

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 и заполните поля displayFields.

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

- С уважением. Yehia A.Salam

Ответы [ 2 ]

0 голосов
/ 14 сентября 2012

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

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 предназначен только для генерации макета.

0 голосов
/ 15 мая 2012

Попробуйте добавить параметр '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'
          ,...]
    ,...
});
...
...