Alchemy CMS:创建包含元素列表

时间:2016-03-20 12:39:31

标签: ruby-on-rails alchemy-cms

我想创建一个可以包含项目列表的元素,其中每个项目可以有多个本质。

例如: 用户应该能够添加“页面列表”作为内容元素。对于每个页面项目,他应该能够上传小图像,简短描述和链接。因为列表需要包含UL标记,所以我不能简单地要求他添加很多元素。

其他例子: 用户应该能够添加“团队列表”作为内容元素。每个成员都有照片,姓名,职位描述和电子邮件地址。同样的问题:我希望团队成员包含在DL标记内。

有没有办法释放可以包含元素的元素?

某种类似:(只是一个例子,可能包含错误)

- name: my_list_element
  contents:
  - name: list_style
    type: EssenceSelect
  - name: items
    type: Element ???
    elements: [my_item_element]
    settings:
      deletable: true
  available_contents:
  - name: items
    type: Element ???
    elements: [my_item_element]
    settings:
      deletable: true

- name: my_item_element
  contents:
  - name: image
    type: EssencePicture
  - name: headline
    type: EssenceText
    ...

内部项目使用图片或文本要素的默认编辑器。

如果有人知道如何实现这一点,那将是非常好的,因为它是使用炼金术CMS时缺少的最后一个拼图部分:(

提前谢谢

3 个答案:

答案 0 :(得分:1)

您希望使用您在当前主版中找到的新的可嵌套元素功能,并且很快将会发布3.3版本。不幸的是,它们还没有很好的文档。抱歉。

但它非常简单。而不是available_contents(无论如何都会弃用嵌套元素,列出nestable_elements的名称)。

可嵌套元素可以是您定义的任何元素。

除非指南得到更新,否则请阅读代码中的文档。

答案 1 :(得分:0)

您可以使用http://ruby-doc.org/stdlib-2.1.0/libdoc/yaml/rdoc/YAML.html并在输出中获取Hash,也可以将其保存在文本中

答案 2 :(得分:0)

希望尽快看到nestable_elements功能,可能会解决一些非常明显的任务。目前,如果没有使用自定义模型(Post,TeamMember,Testimonial,PortfolioItem等)轻松扩展Alchemy的可能性,我仍然是RefineryCMS或纯RoR的粉丝,这很难过,因为AlchemyCMS内置了非常好的东西。 据我所知,这个功能将在Nodes的Alchemy 4中实现,即使Page模型将被注册为Alchemy :: Node,开发人员也可以创建自己的节点,其行为类似于WordPress中的custom_post_type。