【问题标题】:Custom Page Template自定义页面模板
【发布时间】:2018-12-16 03:35:27
【问题描述】:

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

在这种情况下,我目前正在调用模块 test-item(一旦我找出问题所在,将重命名)。因此,我有一个名为 lib/modules/test-item 的文件夹,其中包含 index.js 和 views/index.html。我还尝试将视图文件夹中的模板重命名为 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/撇号中找不到模板时抛出错误- pages/views/pages/test-item.html?

谢谢!

【问题讨论】:

    标签: apostrophe-cms


    【解决方案1】:

    apostrophe-custom-pages 模板仍然存在于项目级别 lib/modules/apostrophe-pages/views/pages/MODULE-NAME.html

    如果您尝试将自定义页面完全模块化为 npm 模块,您可以创建一个基于 improve 的模块,该模块可以向 apostrophe-pages 模块添加视图。

    【讨论】:

    • 谢谢!您能否阐明“基于改进的模块”的含义?那应该是“改进的基本模块”吗?想确保某处没有名为“改进”的模块。
    • 不,不是一个叫做改进的模块。您可以针对现有模块并通过改进它来为其提供额外的功能、模板等,而不是对模块进行子类化。 Linked 是apostrophe-workflow 模块的子模块,专门针对模式并添加额外的前端js、模板和服务器代码github.com/apostrophecms/apostrophe-workflow/tree/master/lib/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-21
    相关资源
    最近更新 更多