【问题标题】:Any one using Mura, how can I safely add a globalFunctions.cfc任何使用 Mura 的人,我怎样才能安全地添加 globalFunctions.cfc
【发布时间】:2013-08-17 01:57:30
【问题描述】:

我是 Mura 的新手,并且有很多我正在尝试利用的现有代码。我有一个 globalFunction.cfc 文件,其中包含很多我需要访问现有代码的函数。以前我总是将我的 application.cfc 扩展到全局函数,所以它们总是在那里。对于 Mura,我不确定将其包含在何处,并且仍然保持安装“升级安全”。

欢迎提出任何建议。

【问题讨论】:

    标签: coldfusion mura


    【解决方案1】:

    在您的 [site]/includes 文件夹中有一个 Application.cfc。我相信这是您希望扩展 globalFunction.cfc 的那个。它是更新安全的。

    【讨论】:

    • Jason,我试过了,但它似乎没有触发 application.cfc。它不在 showTrace 列表中,如果我(故意)将错误代码放入其中,它不会导致错误,所以我很确定它没有被调用
    • 啊,看起来 App.cfc 只在某些情况下被调用。特别是当直接从该文件夹执行某些内容时。显然模板不是从该文件夹中执行的(即使它们在其中)。
    【解决方案2】:

    兰斯,

    您可以在您的主题文件夹中的 eventHandler 或 contentRenderer 文件中放置您想要在整个站点中使用的任何功能。这些是更新安全的,根据您希望如何使用它们,您可以将一个用于显示,另一个用于功能。

    事件处理程序示例:

    <!--- PAGE - Default  --->
    <cffunction name="onPageDefaultBodyRender" output="true" returntype="any">
        <cfargument name="$">
        <cfif $.getcontentID() neq "00000000000000000000000000000000001">#$.dspInclude('/themes/MYTHEME/display_objects/bodies/dsp_body_default.cfm')#</cfif>
    </cffunction>
    

    ContentRenderer 示例:

    <cffunction name="removeLinks" returntype="string" access="public">
        <cfargument name="str" default="" required="true">
    
        <cfset str=reReplace(str, "<[[:space:]]*[aA].*?>(.*?)<[[:space:]]*/[[:space:]]*a[[:space:]]*>","\1","all") />
    
        <cfreturn trim(str) />
    </cffunction>
    

    这里的 EventHandler 只是在主页上显示一个不同的主体,如果我使用 $.removeLinks(MYURLSTRING),contentRenderer 会删除所有链接。

    HTH

    【讨论】:

      猜你喜欢
      • 2012-10-02
      • 1970-01-01
      • 2012-04-15
      • 1970-01-01
      • 2012-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多