繁体   English   中英

将Ektron smartform嵌入另一个Ektron smartform中

[英]Embed Ektron smartform in another Ektron smartform

(使用Ektron版本8.6.1)

假设我有一个smartform ContactInfo ,例如:

<ContactInfo>
    <Name></Name>
    <Email></Email>
</ContactInfo>

我想创建另一个smartform(例如NewsArticle )并在其中“嵌入” ContactInfo

<NewsArticle>
    <Title></Title>
    <Summary></Summary>
    ...
    <ContactInfo>
        <Name></Name>
        <Email></Email>
    </ContactInfo>
</NewsArticle>

到目前为止,我的解决方案是包括一个Resource Selector字段,以添加对现有smartform 实例的引用 我希望在配置级别进行关联,以使数据输入工作流更加直观。

我正在使用Bill Cava的ContentTypes并从smartform XSD生成类,因此这也将使演示代码更加自然和类型安全,因为可以直接访问嵌入的字段(而不是必须基于引用ID再次提出请求,可能不是我期望的智能表格的ID)。

我认为这是不可能的。 我不反对破解Workarea代码来完成类似的工作。 有没有人遇到过这样的情况?

我从Ektron代表处听说,他们正计划在即将发布的夏季版本中提升smartform的作用-有人可以提供一些更多的信息吗? 也许将支持我所描述的smartform组合?

当前不可能进行smartform合成。 根据您为什么/实际上是否需要第二个smartform定义,您可以只在新闻文章中定义联系信息。

如果联系信息智能表单以一对多或多对多的方式与新闻报道相关,那么按我所知使用资源选择器是创建所需关系的唯一途径。

如果关系是一对一或多对一,则建议不要使用单独的smartform定义。

如果您可以澄清要为内容作者实现的工作流程,我可能会做出更好的回应。

内容类型将表示CMS中的数据。 像您的示例一样,假设NewsArticle包含对ContactInfo的引用。 从演示的角度来看,将ContactInfo嵌入到NewsArticle中可能是有意义的,但是它将ContentTypes转换为单向数据模型。 您将失去构建新NewsArticle并将其保存到CMS中的能力。

可能适合的做法是将内容类型保持不变,并使用资源选择器中的ContactInfo的ID。 然后创建一个NewsArticleDisplayModel ...本质上是一个包含新闻文章数据以及ContactName和ContactEmail的视图模型。

现在,如果您需要联系信息才能进行搜索,则可以真正使用CMS Extensions,并挂入OnBeforePublish事件,以使用ContactInfo中的名称更新可搜索的元数据,以便可以使用NewsInfo中的值来搜索NewsArticle。其他“嵌入式”资源。 不过,这可能会有些棘手……理想情况下,您还必须加入ContactInfo对象的publish事件,以防该端发生某些变化。 然后,您是否创建一个自定义数据库表来跟踪使用特定ContactInfo的NewsArticle内容ID?

您的解决方案可以根据需要变得复杂,但是我将内容块分开。 如果没有其他问题,您将最终得到一个更可维护和可升级的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM