Добрый вечер! Прошу помощи с dynamicdropdown
Установил dynamicdropdown от Bruno — этот компонент реализует зависимые выпадающие списки в админке. Те выбираем ресурс в списке select и в другом списке multiselect появляются все дочерние ресурсы.
Проблема заключается в том что в multiselect не показываются сохраненные названия сохраненных ресурсов.
Предполагаю что проблема заключается в настройках созданного типа tv (dynamicdropdown_multi)
Ниже прилагаю код настроек tv, все кто может помочь буду очень благодарен, уже 3 дня не могу разобраться.
<input type="hidden" id="original{$ddId}" name="original{$tv->id}" value="{$tv->get('value')|escape}" /> {$tv->get('value')} <div id="div_{$ddId}"> </div> // <![CDATA[ {literal} MODx.combo.{/literal}{$ddId}{literal} = function(config) { config = config || {}; Ext.applyIf(config,{{/literal} name: '{$ddId}' ,id: 'select_{$ddId}' ,extraItemCls: 'x-tag' ,expandBtnCls: 'x-form-trigger' ,clearBtnCls: 'x-form-trigger' ,width: 400 ,hiddenName: 'tv{$tv->id}[]' ,renderTo: 'div_{$ddId}' ,triggerAction: 'all' ,mode: 'remote' ,children: Ext.util.JSON.decode('{$children}') ,parents: Ext.util.JSON.decode('{$parents}') {if $params.title},title: '{$params.title}'{/if} {if $params.listWidth},listWidth: {$params.listWidth}{/if} ,maxHeight: {if $params.maxHeight}{$params.maxHeight}{else}300{/if} {if $params.typeAhead} ,editable: true ,typeAhead: true ,typeAheadDelay: {if $params.typeAheadDelay && $params.typeAheadDelay != ''}{$params.typeAheadDelay}{else}250{/if} {else} ,editable: false ,typeAhead: true ,searchible: true {/if} {if $params.listEmptyText} ,listEmptyText: '{$params.listEmptyText}' {/if} ,forceSelection: {if $params.forceSelection && $params.forceSelection != 'false'}true{else}false{/if} ,initiated: true ,allowBlank: {if $params.allowBlank == 1 || $params.allowBlank == 'true'}true{else}false{/if} ,resizable: false ,pageSize: 0 ,url: {$connector_path} ,fields: ['id','name'] ,displayField: 'name' ,valueField: 'id' {if $params.valueDelimiter} ,valueDelimiter: '{$params.valueDelimiter}' {/if} {literal} ,baseParams: { action: '{/literal}{$action}{literal}' ,resource_id: '{/literal}{$resource.id}{literal}' ,object_id: '{/literal}{$object_id}{literal}' ,tvname: '{/literal}{{$tv->name}}{literal}' } ,store: new Ext.data.JsonStore({ id:'id', autoLoad: true, root:'results', fields: ['name', 'id'], remoteSort: true, url: {/literal}{$connector_path}{literal}, baseParams:{ action: '{/literal}{$action}{literal}' ,resource_id: '{/literal}{$resource.id}{literal}' ,object_id : '{/literal}{$object_id}{literal}' ,tvname : '{/literal}{{$tv->name}}{literal}' }, listeners: { 'load': {fn:function(store, records, options ) { //this.hiddenName = config.paramHiddenName; //this.setWidth('350'); } },scope : this } }) ,listeners: { 'select': {fn:this.selectOption,scope:this} ,'render': {fn:this.initSelect,scope:this} } }); MODx.combo.{/literal}{$ddId}{literal}.superclass.constructor.call(this,config); }; Ext.extend(MODx.combo.{/literal}{$ddId}{literal},Ext.ux.form.SuperBoxSelect,{ selectOption: function() { this.refreshChildren(true); MODx.fireResourceFormChange(); } ,initSelect: function() { var parent_field = null; for(i = 0; i < this.parents.length; i++) { parent = this.parents[i]; parent_field = Ext.get('original'+parent); if (parent_field){ this.store.baseParams[parent] = parent_field.dom.value; } } this.store.load({ callback: function() { this.setValue(Ext.get('{/literal}original{$ddId}{literal}').dom.value); },scope:this }); } }); console.log(Ext.get('{/literal}original{$ddId}{literal}').dom.value); Ext.reg('modx-combo-{/literal}{$ddId}{literal}',MODx.combo.{/literal}{$ddId}{literal}); Ext.onReady(function() { var fld = MODx.load({ xtype: 'modx-combo-{/literal}{$ddId}{literal}' }); //console.log(fld); //alert('222'); Ext.getCmp('modx-panel-resource').getForm().add(fld); {/literal} }); // ]]>