Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

 

Info
iconfalse

本页是我的第一个模板教程中的一个步骤。

组件是编辑者能够整体编辑、删除、移动的最小的内容单元。将组件看作一个整体,这样当您打开一个典型的Magnolia CMS页面时,您可以凭这个感觉轻易的找到组件。最简单的组件可能是只有一个标题和相应内容组成的整体。

每个组件都可以用在几个页面和几个区域里。在区域里,编辑者可以从一个列表中选择组件。这个列表仅显示该区域可用的组件,这是在availableComponents节点里定义的。

Table of Contents

创建组件定义

textBlock组件是一个非常简单的例子,用来绘制编辑者输入的任何文字。

Advanced Tables - Table Plus
heading0
enableHeadingAttributesfalse
enableSortingfalse
classm5-configuration-tree
enableHighlightingfalse

节点名

modules

 

templating

 

templates

 

components

 

textBlock

 

Paragraph

dialog

templating:textBlock

Paragraph

renderType

freemarker

Paragraph

templateScript

/templates/components/textBlock.ftl

Paragraph

title

Text Block

创建组件脚本

组件脚本绘制组件内容。在我们的示例组件中,内容仅为简单的文字。脚本从内容库中读取文字并绘制出来。

  1. 在电脑上打开/<CATALINA_HOME>/webapps/<contextPath>/templates, 通常为/apache-tomcat/webapps/magnoliaAuthor/templates。
  2. 新建一个components文件夹。
  3. components文件夹里新建一个textBlock.ftl文本文件。
  4. 用文字编辑器打开这个文件,并拷入以下脚本代码。

FreeMarker:

Code Block
languagehtml/xml
<p>
   ${content.text!}
</p>

JSP:

Code Block
languagehtml/xml
<p>
   ${content.text}
</p>

这个脚本会从当前内容对象中绘制text属性的值。在本例中,内容对象不是Hello页面节点,而是组件节点。

创建组件对话框

组件对话框使编辑者能够编辑组件内容。您可以在标准模板套件(STK > 对话框定义 > /components)中找到很多有关组件对话框的示例

Advanced Tables - Table Plus
heading0
multiplefalse
enableHeadingAttributesfalse
enableSortingfalse
classm5-configuration-tree
enableHighlightingfalse
节点名

modules

 

templating

 

dialogs

 

textBlock

 

actions

 

cancel

 

Paragraph

class

info.magnolia.ui.admincentral.dialog.action.CancelDialogActionDefinition

Paragraph

label

Cancel

save

 

Paragraph

class

info.magnolia.ui.admincentral.dialog.action.SaveDialogActionDefinition

Paragraph

label

Save changes

form

 

tabs

 

text

 

fields

 

text

 

Paragraph

class

info.magnolia.ui.form.field.definition.TextFieldDefinition

Paragraph

label

Component text

Paragraph

rows

5

Paragraph

label

Text block

为页面添加组件

现在您已经准备好了为页面添加组件所需的一切:定义好的组件,组件脚本,组件对话框,并且在main区域内可用。

为页面添加组件:

  1. 重新加载Hello页。
  2. 点击main区域的占位符。
  3. 点击工具栏上的加号来添加组件。
  4. 选择Text Block组件,并点击OK
  5. Component text框里输入文字。
  6. 保存。

这样组件就成功在页面上绘制了。

组件同样也有工具栏,点击其所在的区域工具栏就可以看到。

由于主区域是list类型,您可以添加多个组件,试着拖动组件工具栏来改变顺序。

组件内容被存放在website内容库。每个组件都有一个内容节点及其包含的属性,您可以在JCR浏览器中看到。

下一步:激活到公共实例