Mura CMS - 我有哪些显示正文内容的选项?
Mura CMS - What options do I have for displaying body content?
我正在为我新安装的 Mura 创建一些自定义页面布局(我是 Mura 新手,但我们在工作中使用它,所以我边学边学),但我需要一些关于页面正文的帮助。按照 Mura 附带的默认布局,以下代码输出页面主体:
#$.dspBody(
body=$.content('body')
, pageTitle=pageTitle
, crumbList=0
, showMetaImage=0
)#
将关联图像分配给页面后,当我有页面索引(例如文件夹)时,该图像就会显示出来,这很棒。但是,当您查看页面本身时,它也会出现在正文顶部。
看看上面的代码,有没有另一个 属性 我可以放到那里删除关联的图像?如果是这样,我在这里有哪些可用属性?我似乎无法在 Mura 站点上找到有关这段代码的任何文档。
根据要求,相关布局的完整代码
<cfoutput>
<cfinclude template="inc/html_head.cfm" />
<body id="#$.getTopID()#" class="depth-#$.content('depth')# #$.createCSSHook($.content('menuTitle'))#">
<div class="coverImageWrapper">
<div class="coverImage">
<cfinclude template="inc/header.cfm" />
<cfinclude template="inc/departmentName_socialMedia.cfm" />
<cfinclude template="inc/topNav.cfm" />
</div>
</div>
<div class="secondaryPageWrapper">
<div class="container">
<div class="row">
<div class="col-md-8 mainCol">
<cfinclude template="inc/breadcrumb.cfm" />
<cfset pageTitle = $.content('type') neq 'Page' ? $.content('title') : ''>
#$.dspObjects(2)#
#$.dspBody(
body=$.content('body')
, pageTitle=pageTitle
, crumbList=0
, showMetaImage=0
)#
</div>
<aside class="col-md-4 sideCol">
#$.dspObjects(3)#
</aside>
</div>
</div>
</div>
<cfinclude template="inc/department_footer.cfm" />
<cfinclude template="inc/footer.cfm" />
<cfinclude template="inc/html_foot.cfm" />
</body>
</cfoutput>
@JesseEarley,
首先,请在 http://docs.getmura.com/v7/theme-developers/ 查看我们的在线主题开发者指南。我相信你会发现它很有用。
至于您的相关图片问题,如果您使用的是最新版本的 Mura,并且使用默认主题 MuraBootstrap3,那么您会发现一个标有 content-types
的目录。在那里,您应该会看到另一个标有 page
的目录和一个标有 index.cfm
的文件。该文件控制 body 的视图。在该文件中,有一段代码专门用于输出关联图像:
<!--- Primary Associated Image --->
<cfif $.content().hasImage(usePlaceholder=false)>
<cfscript>
img = $.content().getImageURL(
size = 'carouselimage' // small, medium, large, custom, or any other pre-defined image size
,complete = false // set to true to include the entire URL, not just the absolute path (default)
);
</cfscript>
<div class="mura-asset">
<a class="mura-meta-image-link" href="#$.content().getImageURL()#" title="#esapiEncode('html_attr', $.content('title'))#" rel="shadowbox[body]">
<img class-"mura-meta-image carouselimage" src="#img#" alt="#esapiEncode('html_attr', $.content('title'))#">
</a>
</div>
</cfif>
<!--- /Primary Associated Image --->
这是您可以输入自定义逻辑的地方,如果您愿意,也可以将其完全删除。
澄清
对$.dspBody()
的调用触发了requirements.mura.content.contentRenderer.cfc:dspBody()
下的方法。在该方法中,Mura 将查看您是否对指定内容类型的呈现进行了任何覆盖(例如,Page
、Folder
、Calendar
等),并且有覆盖输出的方法的数量。例如,在您的主题 eventHandler.cfc
中,您可以有一个名为 onPageDefaultBodyRender()
的方法,如果它 returns 是一个字符串,则将使用该字符串。以类似的方式,Mura 将扫描您主题中的特定目录,例如 content_types
,如果找到,将扫描内容类型,例如 page
,然后使用 index.cfm
作为渲染的 body。这正是这种情况下发生的事情。
正如我在下面的注释中所述,我目前正在编写文档,并将以更清晰、希望更清晰的格式提供这些信息。现在,您可能想在 http://docs.getmura.com/v7/videos/webinars/super-fast-app-dev-with-mura-7/ 查看我的演示文稿,以便在我编写新文档时快速了解其中的一些内容。
此外,作为替代方案,您可以暂时删除 content_types
目录,或将其重命名为其他名称,以查看 dspBody()
如何在没有覆盖的情况下呈现您的内容。
干杯,
史蒂夫
我正在为我新安装的 Mura 创建一些自定义页面布局(我是 Mura 新手,但我们在工作中使用它,所以我边学边学),但我需要一些关于页面正文的帮助。按照 Mura 附带的默认布局,以下代码输出页面主体:
#$.dspBody(
body=$.content('body')
, pageTitle=pageTitle
, crumbList=0
, showMetaImage=0
)#
将关联图像分配给页面后,当我有页面索引(例如文件夹)时,该图像就会显示出来,这很棒。但是,当您查看页面本身时,它也会出现在正文顶部。
看看上面的代码,有没有另一个 属性 我可以放到那里删除关联的图像?如果是这样,我在这里有哪些可用属性?我似乎无法在 Mura 站点上找到有关这段代码的任何文档。
根据要求,相关布局的完整代码
<cfoutput>
<cfinclude template="inc/html_head.cfm" />
<body id="#$.getTopID()#" class="depth-#$.content('depth')# #$.createCSSHook($.content('menuTitle'))#">
<div class="coverImageWrapper">
<div class="coverImage">
<cfinclude template="inc/header.cfm" />
<cfinclude template="inc/departmentName_socialMedia.cfm" />
<cfinclude template="inc/topNav.cfm" />
</div>
</div>
<div class="secondaryPageWrapper">
<div class="container">
<div class="row">
<div class="col-md-8 mainCol">
<cfinclude template="inc/breadcrumb.cfm" />
<cfset pageTitle = $.content('type') neq 'Page' ? $.content('title') : ''>
#$.dspObjects(2)#
#$.dspBody(
body=$.content('body')
, pageTitle=pageTitle
, crumbList=0
, showMetaImage=0
)#
</div>
<aside class="col-md-4 sideCol">
#$.dspObjects(3)#
</aside>
</div>
</div>
</div>
<cfinclude template="inc/department_footer.cfm" />
<cfinclude template="inc/footer.cfm" />
<cfinclude template="inc/html_foot.cfm" />
</body>
</cfoutput>
@JesseEarley,
首先,请在 http://docs.getmura.com/v7/theme-developers/ 查看我们的在线主题开发者指南。我相信你会发现它很有用。
至于您的相关图片问题,如果您使用的是最新版本的 Mura,并且使用默认主题 MuraBootstrap3,那么您会发现一个标有 content-types
的目录。在那里,您应该会看到另一个标有 page
的目录和一个标有 index.cfm
的文件。该文件控制 body 的视图。在该文件中,有一段代码专门用于输出关联图像:
<!--- Primary Associated Image --->
<cfif $.content().hasImage(usePlaceholder=false)>
<cfscript>
img = $.content().getImageURL(
size = 'carouselimage' // small, medium, large, custom, or any other pre-defined image size
,complete = false // set to true to include the entire URL, not just the absolute path (default)
);
</cfscript>
<div class="mura-asset">
<a class="mura-meta-image-link" href="#$.content().getImageURL()#" title="#esapiEncode('html_attr', $.content('title'))#" rel="shadowbox[body]">
<img class-"mura-meta-image carouselimage" src="#img#" alt="#esapiEncode('html_attr', $.content('title'))#">
</a>
</div>
</cfif>
<!--- /Primary Associated Image --->
这是您可以输入自定义逻辑的地方,如果您愿意,也可以将其完全删除。
澄清
对$.dspBody()
的调用触发了requirements.mura.content.contentRenderer.cfc:dspBody()
下的方法。在该方法中,Mura 将查看您是否对指定内容类型的呈现进行了任何覆盖(例如,Page
、Folder
、Calendar
等),并且有覆盖输出的方法的数量。例如,在您的主题 eventHandler.cfc
中,您可以有一个名为 onPageDefaultBodyRender()
的方法,如果它 returns 是一个字符串,则将使用该字符串。以类似的方式,Mura 将扫描您主题中的特定目录,例如 content_types
,如果找到,将扫描内容类型,例如 page
,然后使用 index.cfm
作为渲染的 body。这正是这种情况下发生的事情。
正如我在下面的注释中所述,我目前正在编写文档,并将以更清晰、希望更清晰的格式提供这些信息。现在,您可能想在 http://docs.getmura.com/v7/videos/webinars/super-fast-app-dev-with-mura-7/ 查看我的演示文稿,以便在我编写新文档时快速了解其中的一些内容。
此外,作为替代方案,您可以暂时删除 content_types
目录,或将其重命名为其他名称,以查看 dspBody()
如何在没有覆盖的情况下呈现您的内容。
干杯, 史蒂夫