如何在 MODX 集合子网格中配置下拉列表?



我希望能够使用下拉选择 bo 更改集合网格中显示的资源的电视值。

任何人都可以提供一个示例,说明如何在集合网格中创建选择框,该选择框是

  • 从现有模板变量中的选项填充
  • 从固定列表填充,只需选项 1、2、3

我知道这是可能的,但找不到一个足够接近我需要实现的示例,我可以自己弄清楚。

我尝试过的事情是

我看过Susan Otwell关于如何使用选择框更改创建者的示例 http://modxcookbook.com/add-ons/collections/editable-grid-view.html

下面链接的讨论解决了类似的问题,但仍未得到解答 https://forums.modx.com/thread/95984/adding-modx-combo-to-collections-list

MIGX 配置和语法看起来很相似,但还不够接近,无法弄清楚我需要做什么 https://forums.modx.com/thread/91403/single-select-listbox-entries-in-migx

MODx.combo.ComboBox 文档看起来有一些相关细节,但我不知道这是否有用 https://docs.modx.com/revolution/2.x/developing-in-modx/advanced-development/custom-manager-pages/modext/modx.combo.combobox

我已经在其他附加内容的源代码中寻找了类似下拉列表的示例。 我看到了 xtype 引用,但无法对它们进行逆向工程以计算在集合网格中创建自己的下拉列表所需的内容。

Susan Otwell 上面的例子创建了一个基于 xtype modx-combo-user 的下拉列表。 这看起来很接近我需要的,但我无法弄清楚如何调整它以从电视值或固定列表创建下拉列表。

{"xtype":"modx-combo-user","renderer":true,"fields": ["fullname","username","id"],"displayField": "fullname","baseParams": {"action": "security/user/getlist","usergroup":2}}

任何人都可以提供一个例子或指出我另一个可能有帮助的资源吗?

我刚刚在 MODX 论坛上回答了这个问题,但这里是针对 StackOverflow 上的任何人的:

  1. 在资产目录中创建一个 JS 文件。为了简单起见, 在资产目录中创建一个名为 test.js 的文件。

  2. 转到 MODX 系统设置页面,然后选择集合命名空间筛选器。然后在collections.user_js设置中,输入 值:{assets_url}测试.js。这将指示集合加载 每当启动集合时,您的新测试.js文件。

  3. 对于此示例,请将以下缩放级别(适用于 Google 地图缩放)示例复制并粘贴到新的测试.js文件中。

collections.combo.ZoomLevel = function(config) {
config = config || {};
Ext.applyIf(config,{
store: new Ext.data.ArrayStore({
id: 0
,fields: ['level']
,data: [
['1'],
['2'],
['3'],
['4'],
['5'],
['6'],
['7'],
['8'],
['9'],
['10'],
['11'],
['12'],
['13'],
['14'],
['15'],
['16'],
['17'],
['18'],
['19'],
['20'],
['21']
]
})
,mode: 'local'
,displayField: 'level'
,valueField: 'level'
,name: 'zoom_level'
,hiddenName:'zoom_level'
});
collections.combo.ZoomLevel.superclass.constructor.call(this,config);
};
Ext.extend(collections.combo.ZoomLevel,MODx.combo.ComboBox);
Ext.reg('collections-combo-zoomlevel',collections.combo.ZoomLevel);
  1. 粘贴后,保存文件。

  2. 转到集合视图页面,为集合网格添加新列。在编辑器字段中,复制并粘贴以下 JSON:

{
"xtype": "collections-combo-zoomlevel",
"renderer": true
}

现在,您有一个组合框编辑器,其中包含我们在 test.js 文件中定义的值。

这些组合框非常可配置,但要找出什么设置做什么,可能会有点陡峭的学习曲线。

在这里,您可以看到集合本身定义的组合: https://github.com/modxcms/Collections/blob/9a328fa881b76e2ce355876156eaca3126065717/assets/components/collections/js/mgr/extra/collections.combo.js

最新更新