Работа с типами контента и полями в AltoCMS

Здравствуйте. Этот топик посвящен работе с типами контента и полями в AltoCMS.

Как известно, в движке-родителе LS существует четкое разделение по типам топиков и у каждого типа существует свой фиксированный набор дополнительных полей, что несколько ограничивает функционал. В AltoCMS решено отказаться от такого жесткого разделения. По умолчанию в AltoCMS есть один тип контента — обычный топик, который можно гибко дополнить как базовыми(фотосет, опрос, ссылка на оригинал), так и своими полями (строковые и многострочные текстовые поля, выпадающие списки, даты, ссылки, прикрепление файлов). Существует возможность ограничить доступ на создание определенного типа контента, и возможность добавления своих видов полей из плагинов.

Настройка типов контента и полей


Задачи


  1. Добавить к стандартному типу контента “Топик” возможность пакетной загрузки фото и добавить поле “Дата фотосьемки”.
  2. Добавить новый тип контента “Обзор” (например, для ресторанной критики) с пакетной загрузкой фото, полями “средний чек”, “ссылка на сайт”, “Меню”(будем прикреплять файл с меню), “итоговая оценка”(выпадающий список).

Задача 1 — добавляем поля


админка AltoCMS

Кликаем на редактирование типа контента “Топик”, видим страницу настроек типа контента

Типы контента в AltoCMS

Для подключения пакетной загрузки фото, выбираем чекбокс “фотосет” и жмем “сохранить”.

Возвращаемся в редактирование типа контента. Жмем кнопку “добавить поле” и видим форму:

Типы контента в AltoCMS

В выпадающем списке “тип” — выбираем “Дата”. Название — “Дата фотосьемки”. В описании пишем подсказку к полю — “Выберите дату, когда производилась фотосьемка”. Жмем сохранить и получаем:

Настройка полей

Задача выполнена. Теперь можно вернуться на ваш сайт. При создании топика у пользователей появится возможность прикреплять фотосет и указывать дату фотосьемки, которая будет выводиться отдлеьным полем.

Задача 2 — создаем свой тип контента с полями


1)Для создания нового типа контента возвращаемся в админку, в раздел “Типы контента”. Кликаем на синюю кнопку с заголовком “Добавить новый”. Видим и заполняем форму, согласно задаче (cлужебный идентификатор должен быть только на латинице и быть уникальным среди созданных типов контента, в нашем случае пишем review). Также выбираем, что нам необходима пакетная загрузка фото (фотосет).

Создание нового типа контента в AltoCMS

Жмем сохранить и видим



2) Идем в редактирование типа контента. Последовательно добавляем поля из задачи.
Для поля “средний чек” — выбираем тип “строковое”,
Для поля “Ссылка на сайт” — тип “ссылка”,
Для поля “Меню” — тип “файл”,
Для поля “Итоговая оценка” — тип “выпадающий список” и заполняем варианты выбора по одному на каждой строке

Поля

Уходим из админки и возвращаемся на наш сайт, при нажатии на кнопку “создать” видим, что появилась возможность создать два разных типа контента:



А при создании топика-обзора появились дополнительные поля:




Также в AltoCMS есть возможность дополнять виды полей своими. Об этом будет рассказано в следующей статье, совместно с релизом плагина карт.

Похожие статьи

  • Разделить топики по разным лентам
    Всем доброго времени. Создаю топики с разными типами контента: новости, фотографии, видео и тд. Подскажите, как можно разделить топики, чтобы они выводились в зависимости от типа контента? Может надо изменить это...
  • Дублирование доп.полей в Альто 1.0
    Здравствуйте, адаптирую плагин под альто 1.0 и столкнулся с проблемой дублирования доп.полей при выводе 1. Вывод доп.полей идет через хук в topic_content_end 2. Потом еще раз через сам шаблон смотрю в starter-kit Да, ...
  • Работа с дополнительными полями
    Здравствуйте. Часто спрашивают про использование дополнительных полей в Альто и что бы хоть немного снять вопросы по этой теме был написан этот топик. Дополнительные поля – это довольно мощный инструмент для...
  • Типы контента «Поле контента»
    Когда создаешь Новый тип Контента, то по умолчанию присутствуют поля топика. Хотелось бы возможность либо отключать их, Либо убрать и не позволять. Так как все эти поля возможны при выборе Поле в Создания Типа...

15 комментариев

0
1. Как можно програмно добавлять эти типы полей?
2. Я правильно понял что данные из доп.полей сохраняются сериализированно в БД в BLO-поле. И по тем полям нельзя огранизовать нормальную выборку\сортировку через запрос?
0
Нет, не BLOB, отдельные табличка для хранения значений полей с промежуточной таблицей связей, то есть выборки сделать можно. В каталоге появился плагин карт, его можно использовать как пример расширения полей.
0
тогда супер. А по 1-му вопросу можно?
0
Так я ответил, смотри пример. К версии 1.0 постараемся еще упростить.
0
ой нуда, туплю :)
0
Отличная статья. Спасибо.
Есть вопрос, как организовать пакетную загрузку фото для статьи не используя фотосет?
0
Это что-то типа конструктора форм! Видел похожее на движке Drupal! Тока там не много просто! А в Alto CMS это не много заморочено!

А возможно ли сделать отдельный плагин «Конструктор форм»? Т.е., устанавливается отдельно! )

Кстати, не плохо бы сделать ajax`овую опцию добавления файлов! Т.е., добавил один, а нада нескольно! Далее "+" — добавить ещё и т.д.
+1
Ну, по уму, чо…
Как я и говорил, система разворачивается лицом к потребителю. Из тупого выкачивания денег превращается в нечто действительно полезное…
Авторам форка: браво!
Промеж себя: как, всё-таки, важна роль личности в истории…
И т.д.
Отредактирован:
0
Меня интересует следующий момент: Можно ли сделать новый тип контента не зависящий от блогов. То есть он не будет публиковаться в какой либо блог, а будет существовать сам по себе и выводиться только на странице которая добавляется в главную мениюху
0
Может создать один блог с данным типом и добавить в главное меню?
0
но люди смогут публиковать этот тип и в другие блоги. Так же этот блог будет виден на странице всех блогов, а это не желательно
0
Т.е. фактически нужна возможность доп.поля задавать для страниц (контент, не привязанный ни к какому блогу — это стат.страница по факту). Сейчас такой возможности нет
0
не совсем. У этих страниц функционал будет такой- же как и у обычных топиков(комменты, рейтинг). Только он не будет публиковаться в блоги, а в отдельную категорию(у пользователей не будет возможности выбирать блог).
В идеале(для меня) было бы и функционал топиков заменить — но это уже плагин на подобие q&a писать нужно.
0
Как-то очень туманно все, поэтому трудно понять, что в итоге нужно, и как эту задачу можно решить. Но отмечу, что в новой версии Альто будет возможность создавать свои типы блогов с собственными настройками и свойствами. Будет так же возможность привязывать какие-то свои типы контента к конкретным типам блогов. Возможно, этого функционала хватит, чтобы решить вашу задачу. А если нет, то придется плагин писать, который расширит функционал до требуемых Вам возможностей.
0
Подскажите, каким образом можно дополнять виды полей своими? Анонсировали в следующей статье, но статьи так и не последовало.
Сейчас, нет возможности создать поля с мультивыбором, нет ни чекбоксов, ни селектов с возможностью выбора нескольких значений. Если в шаблоне в forms/form_field_select.tpl добавить multiple для select, то внешний вид селекта меняется, но сохраняется только одно из выбранных значений.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.