0

编辑

我的目标:

  1. 创建一个带有页眉、页脚和正文的新闻页面模板。
  2. 新闻页面需要一个表单供内容编辑器添加内容,其中包含两个字段:标题故事
  3. 每个新闻页面都需要自己的 SEO 元数据(关键字/描述标题)。
  4. 这些故事需要在 CMS 中很容易找到,以便将来进行编辑等。

解决这个问题的最佳方法是什么?

我目前拥有的是一个“页面”内容类型,它具有我需要的所有表单字段。

要创建一个新的新闻项目,我目前这样做:

  1. 转到站点浏览器
  2. 右键单击[我的文件夹]
  3. 点击“新建”-->页面
  4. 从选择框中选择我的页面(这是我之前创建的页面内容类型)
  5. 我现在看到我的表格,填写并保存/发布,我看到了,但是我之前表达的问题。

我很确定我会以错误的方式解决这个问题,但正确的方法是什么?

-------------


我正在努力在dotCMS中创建一个非常基本的页面。

这是我想做的事情:

  1. 为内容编辑器创建一个表单,以便能够将内容添加到页面(内容类型:页面称为“myForm”) 完成
  2. 该表单包含所有默认字段(页面内容类型附带的 seo 内容等) + 我创建的两个额外文本字段(字段 A 和字段 B)完成
  3. 创建一个容器并添加速度变量名称。完毕
  4. 在一些 HTML 中包围速度变量名称。<div>$fieldA</div><div>$fieldB</div> 完成
  5. 使用template.vtl文件创建新主题DONE

所以这一切都设置好了。我现在去通过站点浏览器在文件夹中创建一个新页面,从下拉菜单中选择我的新“页面”,称为“ myForm ”。我看到我的表格并输入我的数据,保存并发布。

结果。我没有看到我的任何数据。只是一个空白页。

所以我检查了文档,看看我错过了什么。

有一个页面解释说我需要在我的 template.vtl 中添加一些速度,如下所示:

#if($dotPageContent && $dotPageContent.fieldA)
    <div class="row">
        #dotedit($!dotPageContent.inode,$!dotPageContent.fieldA)
    </div>
#end

#if($dotPageContent && $dotPageContent.fieldB)
    <div class="row">
        #dotedit($!dotPageContent.inode,$!dotPageContent.fieldB)
    </div>
#end

dotCMS 帮助页面的链接

好的,所以现在当我再次检查我的页面时,确实正在显示数据。但有一个问题。我的容器中的 HTML 没有被解析。

例如<div>$fieldA</div>并且<div>$fieldB</div>没有<div></div>标签。

所以现在我担心这不是创建页面的方式。

我选择“页面”内容类型的原因是它已经准备好与 SEO 元数据等页面的“高级属性”一起使用(顺便说一句,一切都很好)。

有人可以指出我可能错过了什么,或者可能是更好的解决方法吗?

提前致谢。

4

2 回答 2

1

如果您可以在某处发布您的容器和模板代码并在此处包含链接,我可以肯定地帮助您解决问题,但我认为可能发生的情况是您将页面内容类型与容器定义的内容类型混淆了。

这是一个可能有助于概念区分的快速解释:http: //screencast.com/t/PlEXKU9glGd

我在视频中解释的是页面内容类型仅适用于页面属性 - 不是内容添加。就像您想要在许多页面上使用不同的 Facebook 链接,或者与每个页面相关联的其他一些特殊属性。要将内容放入容器中,请使用辅助“内容”内容类型,并将该内容类型添加到容器的代码字段中。当页面加载时,按此顺序执行,页面内容加载,页面属性和元数据设置,页面调用提供布局的模板,模板调用容器,容器具有格式化内容的代码,以及然后内容按照内容发布者放置在容器中的顺序执行。

您还可能会发现加入 dotCMS 社区论坛很有帮助: http ://dotcms.com/forum/

希望有帮助

于 2016-06-06T22:55:30.853 回答
0

除了我的另一篇文章之外,我确实在测试高级模板中使用您想要做的测试,并且只要您实际编辑页面属性并设置,template.vtl 文件确实会显示页面内容,在这种情况下,字段 A:

<!DOCTYPE html>
<html lang="en">
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->

#set($dotTheme = $contents.getEmptyMap())
#set($blah1 = $dotTheme.put("path", "/application/themes/one-pager/"))

#set($dotThemeLayout = $contents.getEmptyMap())
#set($blah2 = $dotThemeLayout.put("title", "Bear Mountain"))

<head>  
    #if($dotPageContent && $dotPageContent.fieldA)
        <div class="row">
            #dotedit($!dotPageContent.inode,$!dotPageContent.fieldA)
        </div>
    #end
    ##dotParse("${dotTheme.path}html_head.vtl")

</head>
#set($utilClass = $pageTitle.toLowerCase().replace(' ', '-'))

<body data-spy="scroll" data-target=".top-nav" data-offset="100">

<div class="body-wrapper">

    #dotParse("${dotTheme.path}header.vtl")

    <div class="content-wrapper" id="hotel">
        <div class="container">
            <div class="row">
                <div class="col-sm-12">
                    <h2>The Lodge</h2>
                </div>
            </div>
            <div class="row">
                <div class="col-md-6 col-sm-12">
                    <div class="wow fadeInLeft" data-wow-delay=".8s">
                        ## Container: Default 2 (Page Content)
                        ## This is autogenerated code that cannot be changed
                        #parseContainer('5eb11b21-6b13-4fb8-a823-1de20bba56c0')
                   </div>
               </div>
               <div class="col-md-6 col-sm-12">
                    <div class="wow fadeInRight" data-wow-delay="1.2s">
                        ## Container: Default 3 (Page Content)
                        ## This is autogenerated code that cannot be changed
                        #parseContainer('f1ba7688-453c-4c0d-a214-e5ac802b8034')
                   </div>
              </div>
           </div>
       </div>
    </div>

    <div class="image-wrapper bg-image-1 hidden-xs" data-stellar-background-ratio="0.5"></div>

    <div class="content-wrapper">
        <div class="container">
            <div class="row">
                <div class="col-sm-12">
                    ## Container: Default 1 (Page Content)
                    ## This is autogenerated code that cannot be changed
                    #parseContainer('56bd55ea-b04b-480d-9e37-5d6f9217dcc3')
               </div>
          </div>
      </div>
   </div>
    <div class="image-wrapper bg-image-2 hidden-xs" data-stellar-background-ratio="0.7"></div>
    <div class="content-wrapper">
        <div class="container">
            <div class="row">
                <div class="col-sm-12">
                    ## Container: Default 4 (Page Content)
                    ## This is autogenerated code that cannot be changed
                    #parseContainer('a6e9652b-8183-4c09-b775-26196b09a300')
               </div>
          </div>
      </div>
   </div>
</div>

#dotParse("${dotTheme.path}footer.vtl")
<a href="http://www.dotcms.com" style="display:block;position:fixed;bottom:-175px;">Powered by Dotcms - The Leading Open Source Java Content Management System</a>

</body>
</html>

这是在 demo.dotcms.com 上测试的:U:admin@dotcms.com / P:admin

于 2016-06-07T15:58:16.977 回答