Алхимия 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 на выходе, а также сохранить его в текстовом виде.