Опубликовано: 11.06.2017
Статья, в которой рассмотрим способ добавления дополнительных полей к ресурсу без использования TV.
Для хранения дополнительных данных будем использовать не системную (site_content), а свою таблицу. Например, имеющую имя site_content_extend. Для обеспечения работы с ней посредством xPDO создадим компонент (рабочую модель). В качестве названия компонента выберем, например, extendresource .
Для представления дополнительных полей в админке, а именно на страницах создания и редактирования ресурсов, напишем плагин. Если вам это действие не нужно, то создание этого элемента можно опустить.
Добавление новых объектов в базу данных можно осуществить, например, с помощью инструмента phpmyadmin .
В качестве примера создадим таблицу site_content_extend, имеющую следующие поля:
id – характеристики: тип - int(10), атрибуты – unsigned, auto_increment – да, первичный; resource (id ресурса) – характеристики: тип - int(10), атрибуты – unsigned, уникальный; views (количество просмотров) - характеристики: тип - int(10), атрибуты – unsigned, по умолчанию - 0; keywords (ключевые слова) - характеристики: тип - varchar(120), по умолчанию – пустая строка; level (минимальный уровень доступа к ресурсу) - характеристики: тип - smallint(5), атрибуты – unsigned, по умолчанию - 0. MODX Revolution – Как добавить таблицу в базу данных с помощью инструмента phpmyadminSQL дамп таблицы «modx_site_content_extend» можно скачать по этой ссылке .
Создадим в директории /core/components каталог extendresource.
После этого создадим ещё несколько папок, чтобы получился следующий путь:
core/components/extendresource/model/schema/В каталоге schema компонента extendresource поместим файл extendresource.mysql.schema.xml со следующим содержимым: