自定义页面模板

时间:2018-12-15 10:30:44

标签: apostrophe-cms

我正在尝试添加一个自定义页面,该页面不会与特定类型的数据或其他数据集相关联。它将用于运行报告和处理/显示数据的操作,因此它必须相当独立。我希望它是页面类型,因此它将在导航中以与其他任何页面相同的方式进行处理。我大多数情况下都能正常工作,但是遇到一个问题-无论如何设置,当我尝试导航到要创建的页面实例时,它总是在lib / modules / apostrophe-pages中寻找模板/ views / pages,而不是模块文件夹。

在这种情况下,我当前正在调用模块test-item(一旦弄清问题所在,它将重命名)。因此,我有一个名为lib / modules / test-item的文件夹,其中包含index.js和views / index.html。我还尝试将views文件夹中的模板重命名为show.html和test-item.html,以确保这不是命名问题。这是在index.js中配置模块的方式:

module.exports = {
    name: 'test-item',
    extend: 'apostrophe-custom-pages',
    construct: function(self, options) {
        //more logic stuff
    }
}

此外,如果我向模块添加字段,则当我尝试使用test-item类型创建新页面时,它确实会显示,所以我知道模块本身正在加载。

在app.js中,我已为此模块加载了

'test-item': {},

除非将页面类型添加到撇号页面模块中,否则不会将页面类型添加到新页面对话框的类型列表中,所以我将其添加为:

types: [
    {
        name: 'test-item',
        label: 'Test Page'
    }
]

我是否需要做一些其他事情来使模块从lib / modules / test-item / views / index.html加载模板,而不是在无法在lib / modules / apostrophe-中找到模板时抛出错误? pages / views / pages / test-item.html?

谢谢!

1 个答案:

答案 0 :(得分:1)

imageNamed:inBundle:compatibleWithTraitCollection:模板仍位于项目级别userInterfaceStyle中。

如果您想将自定义页面完全模块化为npm模块,则可以制作一个基于apostrophe-custom-pages的模块,该模块可以将视图添加到lib/modules/apostrophe-pages/views/pages/MODULE-NAME.html模块中。