Home News

MODX - Как добавить дополнительные поля к ресурсу

05.10.2017

видео MODX - Как добавить дополнительные поля к ресурсу

ModX Revo - Урок №3.1 Шаблоны. Вывод ресурсов и создание TV поля

Статья, в которой рассмотрим способ добавления дополнительных полей к ресурсу без использования TV.


Свои поля в интерфейсе редактирования ресурса MODx

Для хранения дополнительных данных будем использовать не системную (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 – Как добавить таблицу в базу данных с помощью инструмента phpmyadmin

SQL дамп таблицы «modx_site_content_extend» можно скачать по этой ссылке .

Создание директории для компонента

Создадим в директории /core/components каталог extendresource.

После этого создадим ещё несколько папок, чтобы получился следующий путь:

core/components/extendresource/model/schema/

Создание XML схемы компонента

В каталоге schema компонента extendresource поместим файл extendresource.mysql.schema.xml со следующим содержимым:

rss