布局小部件:将下拉列表添加到小部件控件 UI 栏
Layout Widget: Add dropdown to widget control UI bar
我觉得我已经在文档中的某处看到它描述了如何执行此操作,但我终究找不到它。
我有什么:
我有一个实现网格系统的布局小部件,允许编辑器创建 2、3 和 4 列布局。您无需为每个布局使用不同的模块,而是 select 在小部件的编辑器模式中使用您想要的布局。 columns-widget
的index.js
如下:
var textOptions = {
widgets: {
'apostrophe-rich-text': {
toolbar: [ 'Styles', 'Bold', 'Italic', 'Subscript', 'Superscript', 'Link', 'Unlink', 'Anchor', 'BulletedList', 'NumberedList', 'Blockquote', 'Table', 'Split'
],
styles: [
{ name: 'Featured Intro', element: 'h1'},
{ name: 'Section Heading', element: 'h2'},
{ name: 'Label', element: 'h3' }
]
},
'apostrophe-images': {
minSize: [400, 300]
}
}
};
module.exports = {
extend: 'apostrophe-widgets',
label: 'Columns',
skipInitialModal: true,
addFields: [
{
type: 'select',
name: 'gridCols',
label: 'Columns',
choices: [
{
value: 'twoTwo',
label: '50 | 50'
},
{
value: 'threeOne',
label: '75 | 25'
},
{
value: 'oneThree',
label: '25 | 75'
},
{
value: 'fourCols',
label: '4 Columns',
showFields: ['colThree', 'colFour']
},
{
value: 'threeCols',
label: '3 Columns',
showFields: ['colThree']
}
]
},
{
name: 'colOne',
label: 'Column One',
type: 'area',
contextualOnly: true,
options: textOptions
},
{
name: 'colTwo',
label: 'Column Two',
type: 'area',
contextualOnly: true,
options: textOptions
},
{
name: 'colThree',
label: 'Column Three',
type: 'area',
contextualOnly: true,
options: textOptions
},
{
name: 'colFour',
label: 'Column Four',
type: 'area',
contextualOnly: true,
options: textOptions
}
],
construct: function (self, options) {
var superPushAssets = self.pushAssets;
self.pushAssets = function () {
superPushAssets();
self.pushAsset('stylesheet', 'grid');
self.pushAsset('stylesheet', 'editor', { when: 'user' });
}
}
};
我想做什么:
我认为为布局小部件设置模式真的没有意义,您所做的只是 select 您想要的布局类型,我认为在小部件/区域中有一个下拉菜单 ui 的控制组将是理想的,但目前还没有关于此类内容的文档。
目前,我正在使用 skipInitialModal
,所以它以两列开头,因为我还不能使用 contextualOnly
,因为我还没有弄清楚下拉部分。
如果我要扩展 apostrophe-area
,那么我只需要超级 widgetControlGroups
,或使用 addWidgetControlGroups
添加按钮,但由于这是一个布局小部件,而且我'扩展 apostrophe-widgets
,我有点迷路了。我也没能在 Github 上的其他项目中找到好的例子。
这方面的一些规定刚刚落入 Apostrophe,但它是一个非常具体的实现。
使用 apostrophe-personas 的小部件配置作为此 https://github.com/apostrophecms/apostrophe-personas/blob/master/lib/modules/apostrophe-personas-widgets/index.js
的指南
我觉得我已经在文档中的某处看到它描述了如何执行此操作,但我终究找不到它。
我有什么:
我有一个实现网格系统的布局小部件,允许编辑器创建 2、3 和 4 列布局。您无需为每个布局使用不同的模块,而是 select 在小部件的编辑器模式中使用您想要的布局。 columns-widget
的index.js
如下:
var textOptions = {
widgets: {
'apostrophe-rich-text': {
toolbar: [ 'Styles', 'Bold', 'Italic', 'Subscript', 'Superscript', 'Link', 'Unlink', 'Anchor', 'BulletedList', 'NumberedList', 'Blockquote', 'Table', 'Split'
],
styles: [
{ name: 'Featured Intro', element: 'h1'},
{ name: 'Section Heading', element: 'h2'},
{ name: 'Label', element: 'h3' }
]
},
'apostrophe-images': {
minSize: [400, 300]
}
}
};
module.exports = {
extend: 'apostrophe-widgets',
label: 'Columns',
skipInitialModal: true,
addFields: [
{
type: 'select',
name: 'gridCols',
label: 'Columns',
choices: [
{
value: 'twoTwo',
label: '50 | 50'
},
{
value: 'threeOne',
label: '75 | 25'
},
{
value: 'oneThree',
label: '25 | 75'
},
{
value: 'fourCols',
label: '4 Columns',
showFields: ['colThree', 'colFour']
},
{
value: 'threeCols',
label: '3 Columns',
showFields: ['colThree']
}
]
},
{
name: 'colOne',
label: 'Column One',
type: 'area',
contextualOnly: true,
options: textOptions
},
{
name: 'colTwo',
label: 'Column Two',
type: 'area',
contextualOnly: true,
options: textOptions
},
{
name: 'colThree',
label: 'Column Three',
type: 'area',
contextualOnly: true,
options: textOptions
},
{
name: 'colFour',
label: 'Column Four',
type: 'area',
contextualOnly: true,
options: textOptions
}
],
construct: function (self, options) {
var superPushAssets = self.pushAssets;
self.pushAssets = function () {
superPushAssets();
self.pushAsset('stylesheet', 'grid');
self.pushAsset('stylesheet', 'editor', { when: 'user' });
}
}
};
我想做什么:
我认为为布局小部件设置模式真的没有意义,您所做的只是 select 您想要的布局类型,我认为在小部件/区域中有一个下拉菜单 ui 的控制组将是理想的,但目前还没有关于此类内容的文档。
目前,我正在使用 skipInitialModal
,所以它以两列开头,因为我还不能使用 contextualOnly
,因为我还没有弄清楚下拉部分。
如果我要扩展 apostrophe-area
,那么我只需要超级 widgetControlGroups
,或使用 addWidgetControlGroups
添加按钮,但由于这是一个布局小部件,而且我'扩展 apostrophe-widgets
,我有点迷路了。我也没能在 Github 上的其他项目中找到好的例子。
这方面的一些规定刚刚落入 Apostrophe,但它是一个非常具体的实现。
使用 apostrophe-personas 的小部件配置作为此 https://github.com/apostrophecms/apostrophe-personas/blob/master/lib/modules/apostrophe-personas-widgets/index.js
的指南