Не выводятся значения superboxselect

Возникла такая проблема. Пытаюсь вывести множественный выбор в выпадающем списке в профиле пользователя:
Тип поля:
'building' => array(
                        'dbtype' => 'varchar',
                        'precision' => '255',
                        'phptype' => 'json',
                        'null' => true,
                    ),
В результате выводятся 2 тега но пустые без текста.


P.S. В БД все пишется корректно: '[«1»,«2»]'

Так же не понятен тот момент как сделать подгрузку значений при обновлении страницы, поскольку значениями являются id а выводом должно быть value
Евгений Лазарев
04 июля 2023, 13:51
modx.pro
259
0

Комментарии: 1

Евгений Лазарев
04 июля 2023, 13:52
0
Код на событие
case "OnUserFormPrerender":
        if (!$modx->getCount('modPlugin', array('name' => 'AjaxManager', 'disabled' => false))) {
            $data['building'] = $user->Profile->building ?: '';

            $modx->controller->addHtml("
                <script type='text/javascript'>
                    MODx.combo.Building = function(config) {
                        config = config || {};
                        Ext.applyIf(config,{
                            xtype: 'superboxselect',
                            allowBlank: false,
                            msgTarget: 'under',
                            allowAddNewData: true,
                            addNewDataOnBlur: false,
                            resizable: true,
                            name: config.name || 'building',
                            anchor: '100%',
                            displayField: 'name',
                            valueField: 'id',
                            typeAhead: true,
                            store: new Ext.data.JsonStore({
                                id: (config.name || 'building') + '-store',
                                root: 'results',
                                autoLoad: true,
                                autoSave: false,
                                totalProperty: 'name',
                                fields: ['id','name'],
                                url: '/assets/components/svgcreator/connector.php',
                                baseParams: {
                                    action: 'mgr/floor/getlist',
                                    key: config.name,
                                },
                            }),
                            extraItemCls: 'x-tag',
                            expandBtnCls: 'x-form-trigger',
                            clearBtnCls: 'x-form-trigger',
                            renderTo: Ext.getBody(),
                            editable: true,
                            triggerAction: 'all',
                            mode: 'remote',
                            hideMode: 'offsets',
                            pageSize: 20,
                            listeners: {
                                newitem: function(bs,v, f) {bs.addItem({tag: v});},
                            },
                        });
                        config.name += '[]';
                        MODx.combo.Building.superclass.constructor.call(this,config);
                    };
                    Ext.extend(MODx.combo.Building,Ext.ux.form.SuperBoxSelect);
                    Ext.reg('modx-combo-building',MODx.combo.Building);
                
                    Ext.ComponentMgr.onAvailable('modx-user-tabs', function() {
                        this.on('beforerender', function() {
                            var leftCol = this.items.items[0].items.items[0].items.items[0];
                            
                            leftCol.items.insert(12, 'modx-user-building', new MODx.combo.Building({
                                id: 'modx-user-building',
                                name: 'building',
                                fieldLabel: 'Объекты',
                                xtype: 'modx-combo-building',
                                anchor: '100%',
                                maxLength: 100,
                                value: {$data['building']},
                            }));
                        });
                    });
                </script>
            ");
        }
        break;
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1