Алхимия 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 ответа

Решение

Вы хотите использовать новую функцию nestable Elements, которую вы найдете в текущем мастере и скоро будет выпущена версия 3.3. К сожалению, они еще плохо документированы. Сожалею.

Но это действительно просто. Вместо available_contents (В любом случае это будет устаревшим в пользу вложенных элементов, вы перечислите имена nestable_elements).

Вложенным элементом может быть любой элемент, который вы определили.

Если руководства не были обновлены, пожалуйста, прочитайте документацию в коде.

Надеюсь увидеть nestable_elements скоро, возможно, это решит некоторые действительно очевидные задачи. Пока без возможности легко расширять Alchemy с помощью пользовательских моделей (Post, TeamMember, Testimonial, PortfolioItem и т. Д.), Я по-прежнему являюсь поклонником RefineryCMS или чистого RoR, и это печально, потому что в AlchemyCMS есть действительно хорошие встроенные функции. Как я понимаю, эта функция будет реализована в Alchemy 4 с помощью узлов, даже модель страницы будет зарегистрирована как Alchemy::Node, и разработчик сможет создавать собственные узлы, которые будут вести себя как custom_post_type в WordPress.

Вы можете использовать http://ruby-doc.org/stdlib-2.1.0/libdoc/yaml/rdoc/YAML.html и получить Hash на выходе, а также сохранить его в текстовом виде.

Другие вопросы по тегам