创建可编辑的元素标记
在页面处于编辑方式时,可编辑的元素标记用于使通过 Web 内容查看器 Portlet 呈示的内容项和站点区域中的元素可编辑。
关于此任务
可编辑元素标记的格式:
[EditableElement type=" " context=" " name=" " key=" " format=" " mode=" "
callback=" " stateChangeCallback=" " refreshValueOnEdit=" " class=" " htmlencode=" " placeholder=" "]
[/EditableElement]
要创建可编辑的元素标记,请执行以下操作:
过程
下一步做什么
| 标记参数 | 详细信息 |
|---|---|
| name=" " | 如果 context="selected",那么必须指定所引用项的名称。如果指定 name="./itemName",那么在呈示该项之后才会解析实际路径。与指定项的路径相比,此方法需要稍长的时间来进行解析。 |
| format=" " | 如果您指定 format="div",将在 div 标记中呈示可编辑的区域。如果未指定任何格式,缺省情况下将使用 div 标记。 如果您指定 format="span",那么将在 span 标记内呈示可编辑的区域。 |
| mode=" " | 此参数确定内联编辑方式。
如果未指定方式,那么将使用在 WCM WCMConfigService 服务的 inplaceEdit.defaultModeForText 或 inplaceEdit.defaultModeForRichText 属性中指定的缺省设置。 注: 缺省富文本格式编辑器始终与方式“原位置”或“嵌入”配合使用。使用“对话框”方式时,将使用编写 Portlet 设置或内容项的内容模板中选择的富文本格式编辑器。
|
| callback=" " | 此参数用于引用 i$ Promise。如果内联编辑已完成,将会解析此 Promise;如果内联编辑被取消,将会拒绝此 Promise。 有关 i$ Promise 的更多信息,请参阅 Javadoc。 例如:
|
stateChangeCallback="
" |
此参数用于引用所有状态更改的 JavaScript 状态更改回调。有关更多信息,请参阅 Javadoc。 例如,要指定 stateChangeCallback="myStateChangeCallback",您需要创建下面的状态更改回调函数。 /** * element: id of the current editing element region * state : the new state * additionalData: some additional data like tag type, element name, messages */ function myStateChangeCallback(element, state, additionalData) State Constants: // loading value StateChangeEvent.STATE_LOADING = 0; // editing StateChangeEvent.STATE_EDITING = 1; // saving StateChangeEvent.STATE_SAVING = 2; // saved StateChangeEvent.STATE_SAVED = 3; // cancelled StateChangeEvent.STATE_CANCELLED = 4; // error StateChangeEvent.STATE_ERROR = 5; 每次状态更改时,已注册的 JavaScript 函数就会运行。 注: 仅在用户首次编辑元素时,才会运行加载状态。
|
refreshValueOnEdit="
" |
此设置在用户编辑元素后强制刷新标记值。缺省情况下,此设置处于启用状态。 如果要禁用此功能,请将此设置设为 false。 限制:
|
| class=" " | 此参数用于将 CSS 类指定给使用 format 参数指定的 div 或 span 标记。 注: 此处指定的定制类必须包含名称为“saving”、“editing”和“error”的样式。在编辑方式下显示可编辑字段时、在保存时以及在显示错误消息时,都需要使用这些名称。
用于可进行原位置编辑的字段的缺省 CSS 类为 wcm-default-inplace-editable。 可以通过使用 WebSphere® Integrated Solutions Console 在 WCM WCMConfigService 服务中添加以下设置来覆盖此类:inplaceEdit.defaultClasses=class1 class2 可以向此设置添加以空格分隔的所需数目的类。 将定制类基于 AppServer_root\installedApps\nodename\wcm.ear\wcm-inplaceEdit.war\css\default-style.css 中的缺省样式表。 注: EditableElement 或 EditableProperty 标记上指定的任何类均优先于此值。
如果您还需要使用缺省 CSS 类,请将它添加到类列表中。例如:inplaceEdit.defaultClasses=wcm-default-inplace-editable class1 class2 |
| htmlencode=" " | 如果 htmlencode="true",那么用于显示文本的元素中的保留 HTML 字符将转换为字符实体。
例如,“<”将转换为“<”。
如果要防止用户添加恶意代码或使用 HTML 更改其文本设计,那么此方法非常有用。 如果未指定,那么将使用 WCM WCMConfigService 服务中的 cmpnt.htmlEncodeDefault 属性指定的缺省设置来显示文本。由 WCM WCMConfigService 服务中的 cmpnt.htmlEncodeUrls 属性指定的缺省设置将用于显示 URL。缺省情况下,这些属性设置为 true。 |
| placeholder=" " | 可编辑元素字段的主体没有初始值时,将显示此处输入的文本。 例如:placeholder="Enter title" 此参数还可以与文本提供程序结合使用,以呈示翻译后的文本。例如:placeholder="[Plugin:TextProvider provider="com.mycompany.mybundle" key="enter_title"]" 这些特殊值用于呈示现有源中的文本:
|
必须在 [EditableElement] 与 [/EditableElement] 标记之间添加其他文本、HTML 或标记。 此处添加的文本和标记是页面上将呈示的内容。在页面处于编辑方式时,此区域是可编辑的。首次添加到设计中时,缺省情况下将添加相应的元素标记。
[EditableElement type="content" context="current" key="body"] [Element type="content" context="current" key="body"] [/EditableElement]
stateChangeCallback="
"