Перейти к основному содержимому

Типы данных объектов

На этой странице перечислены типы данных:

Текстовые типы данных

НазваниеОписание
inputтекстовое поле ввода
textareaтекстовая область
wysiwygтекстовая область с возможностями форматирования через WYSIWYG‑редактор
passwordполе для ввода пароля

Числовые типы данных

НазваниеОписание
numericполе со счётчиком (spinner) для ввода чисел
sliderввод числа с виджетом ползунка (минимум — максимум)
quantity valueчисловое поле с дополнительной единицей измерения. Доступные единицы можно настраивать централизованно.

Типы данных даты и времени

НазваниеОписание
dateвыбор даты через календарь
date & timeвыбор даты через календарь + выпадающий список для времени
timeвыпадающий список для времени

Типы данных выбора (Select)

НазваниеОписание
selectвыпадающий список
userвыпадающий список для выбора среди всех существующих пользователей Pimcore (доступно начиная с билда 716). В настройках пользователя во второй вкладке отображаются зависимости объектов этого пользователя. Все объекты, которые ссылаются на выбранного пользователя, перечисляются в виде сетки. Для поиска объектов, ссылающихся на конкретного пользователя, можно использовать метод Pimcore\\Tool\\Admin::getObjectsReferencingUser($userId).
countryвыпадающий список с предопределённым списком стран
languageвыпадающий список с предопределённым списком языков
multiselectвыпадающий список с возможностью множественного выбора
countriesмножественный выбор с предопределённым списком стран
languagesмножественный выбор с предопределённым списком языков

Параметры вариантов выбора (Select Options)

НазваниеОписание
select optionsуправление параметрами вариантов для полей (multi)select

Динамические типы данных выбора (Select)

НазваниеОписание
dynamic selectвыпадающий список с динамическими опциями

Типы данных связи (Relation)

НазваниеОписание
Many-To-One Relationссылка на документ, объект или ресурс (asset) Pimcore
Many-To-Many Relationколлекция ссылок на документы, объекты или ресурсы Pimcore
Advanced Many-To-Many Relationколлекция ссылок на документы, объекты или ресурсы Pimcore с дополнительными метаданными на связи
Many-To-Many Object Relationколлекция ссылок на объекты Pimcore
Advanced Many-To-One Object Relationколлекция ссылок на объекты Pimcore с дополнительными метаданными на связи
Reverse Object Relationколлекция ссылок на объект Pimcore, которые принадлежат другому объекту

Структурированные типы данных

НазваниеОписание
blockповторяемый блок атрибутов внутри объекта
classificationstoreрасширенное хранилище для классификационных систем (например, ETIM, eCl@ss и т.д.)
tableтабличный ввод
structuredtableтаблица с предопределёнными строками и столбцами
fieldcollectionsколлекция полей, которую можно добавлять к объекту
objectbricks«кирпичики» атрибутов, которые можно добавлять к объектам
localizedfieldsнабор атрибутов, предназначенных для перевода (локализации)

Географические типы данных

НазваниеОписание
geopointвиджет карты для указания долготы/широты
geoboundsвиджет карты для определения географических границ
geopolygonвиджет карты для определения географической области (полигон)
geopolylineвиджет карты для определения географического пути (полилиния)

Прочие типы данных

НазваниеОписание
imageобласть перетаскивания и превью для изображения (asset) Pimcore
externalimageотношение к изображению, которое не хранится в Pimcore
imageadvancedрасширенная область перетаскивания и превью для изображения Pimcore с дополнительными возможностями (маркеры, горячие точки, кадрирование)
imagegalleryколлекция элементов типа Image Advanced
videoобласть перетаскивания и превью для видео‑асета Pimcore
checkboxфлажок (чекбокс)
linkселектор ссылок с возможностью указать target
calculatedvalueтип данных для вычисляемых значений — вычисление может быть определено с помощью PHP‑класса

CRM типы данных

НазваниеОписание
firstnameтекстовое поле для имени
lastnameтекстовое поле для фамилии
emailтекстовое поле для email с валидацией
genderпредзаполненный выпадающий список для пола
personaвыпадающий список для персон, определённых в Pimcore
personasвыпадающий список с множественным выбором для персон, определённых в Pimcore
consentхранение согласия пользователя на что‑либо, например согласия на прямой маркетинг по email

Дополнительные типы, доступные только при установленном PimcoreNewsletterBundle:

НазваниеОписание
newsletteractiveчекбокс, активен ли статус рассылки
newsletterconfirmedчекбокс, подтверждён ли статус рассылки

Общие аспекты

Все типы данных представлены объектами, унаследованными от Pimcore\Model\DataObject\ClassDefinition\Data. Эти объекты типов данных предоставляют геттеры и сеттеры и определяют поведение поля в интерфейсе (frontend). Объекты типов данных отображаются в первой колонке приведенной выше таблицы. Вторая колонка указывает базовый класс типа данных, третья — описание, используемое в Pimcore для ввода, редактирования и отображения данных объектов.

Помимо имени (name), которое является названием свойства объекта, и заголовка (title), который отображается в графическом интерфейсе, поле объекта содержит общие параметры конфигурации, перечисленные ниже. Название может быть переведено для разных языков системы. Пожалуйста, ознакомьтесь со статьей о переводах, чтобы узнать, как добавить переводы объектных полей.

  • mandatory: делает поле обязательным; нельзя сохранить объект, если поле пустое
  • not editable: поле нельзя изменить в административной части Pimcore (его можно изменить только программно)
  • invisible: поле не отображается в интерфейсе Pimcore
  • visible in grid view: определяет, будет ли колонка этого поля показана в виде сетки объектов (grid view) или скрыта (требует ручной активации)
  • visible in search result: определяет, будет ли колонка поля показана в результатах поиска (search results) или скрыта (требует ручной активации)
  • indexed: добавляет индекс на эту колонку в базе данных
  • unique: при включении значение должно быть уникальным среди всех объектов данного класса. Замечание: это работает только для top‑level атрибутов, а не для вложенных значений (например, внутри localized fields). Также обратите внимание, что это не добавляет индекс в таблицу запросов (query table), которую используют классы Listing.
  • Каждое поле может иметь подсказку (tooltip), которая отображается при наведении курсора на поле ввода.

Настройки поля данных Настройки поля данных

Настройки layout (layout settings) позволяют применить кастомные CSS‑правила к любому полю объекта.

Настройки поля данных

ВНИМАНИЕ
Переименование поля приведёт к потере данных из этого поля во всех объектах, использующих данный класс.

Подстраницы данной страницы содержат детальную документацию по отдельным типам данных.

Значения по умолчанию

Для типов данных, которые поддерживают значения по умолчанию (в настоящее время это: Input, Date, Datetime, Numeric, Checkbox, Select и Quantity Value), можно указать либо фиксированное значение по умолчанию, либо указать сервис/класс‑генератор значения по умолчанию, который будет генерировать динамическое значение.

Правила сохранения значений:

  1. Без наследования: значение по умолчанию сохраняется в таблицу store/query при создании объекта
  2. С наследованием и БЕЗ значения родителя: значение по умолчанию сохраняется в таблицу store/query при создании
  3. С наследованием и существующим родительским значением: значение не сохраняется в таблицу store; унаследованное значение сохраняется в query‑таблицу, наследование активно.

Генератор значений по умолчанию — это класс, реализующий интерфейс \Pimcore\Model\DataObject\ClassDefinition\DefaultValueGeneratorInterface. Такой класс может сгенерировать значение, исходя из текущих данных объекта. См. также раздел Calculated Value для обзора контекстной информации.

Если определён генератор значений по умолчанию, он имеет приоритет над статически заданным значением по умолчанию.

Порядок принятия решения (при установке значения по умолчанию):

  1. генератор значения по умолчанию — если определён, на этом шаге процесс останавливается
  2. значение родителя, если включено наследование
  3. фиксированное значение по умолчанию

Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.