我正在寻找在我正在开发的插件中扩展内容渲染器,以便我可以添加自定义 Mura 标记以在整个网站中使用,而不是内容对象,因为该插件的目的太不灵活了。
首先,这是正确的方法吗?我是不是找错了树,并且有一种更简单更明显的方法可以在不使用内容对象的情况下做到这一点?
如果有人能帮我解决这个问题,那就太好了。
我正在寻找在我正在开发的插件中扩展内容渲染器,以便我可以添加自定义 Mura 标记以在整个网站中使用,而不是内容对象,因为该插件的目的太不灵活了。
首先,这是正确的方法吗?我是不是找错了树,并且有一种更简单更明显的方法可以在不使用内容对象的情况下做到这一点?
如果有人能帮我解决这个问题,那就太好了。
要添加自定义 mura 标签,您可以在事件处理程序中使用 injectMethod 函数。
在插件事件处理程序的 onSiteRequestStart 方法中,您可以使用以下函数:
<cfset $.getContentRenderer().injectMethod('[mura-tag-key]',[actual-function-to-inject]) />
因此,如果您在事件处理程序中创建一个名为 getAddress 的函数,则可以在 onSiteRequestStart 中使用以下代码将其作为名称为 dspAddress 的 mura 标记提供:
<cfset $.getContentRenderer().injectMethod('dspAddress',getAddress) />
你可以在我在 GitHub 上的更多 dspObjects 插件中看到一个真实的例子:eventHandler.cfc