Как расширить класс modx?
Добрый вечер. Прошу подсказать, как расширить классы на работу со своими таблицами?Самый простой пример. Пользователи. Я хочу расширить возможности хранения данных, и допустим добавить одно новое поле для хранения в базе. В бд создаю таблицу modx_ext_users, который содержит в себе всего 3 поля: id, user_id, data
Как расширить обьект modUser, чтобы можно было Использовать такие конструкции:
Случайно наткнулся на UICMPGenerator, думал спасение, т.к там нашелся функционал расширения таблиц. Вроде бы он генерирует XML схему, да и все те же файлы, что и CMPGenerator но как с этим всем работать — не могу разобраться…
Подскажите пожалуйста, в каком направлении дальше идти. В голове каша от всей информации в сети.
Как расширить обьект modUser, чтобы можно было Использовать такие конструкции:
$user = $modx->getObject('modUser',1);
$data = $user->get('pagetitle');
Или$user = $modx->newObject('modUser');
$user->set('data','Hello world!');
$user->save();
Благодаря заметке Ильи я наконец научился из сниппетов работать со своими собственными таблицами через xPDO, теперь хочется научиться расширять уже существующие классы…Случайно наткнулся на UICMPGenerator, думал спасение, т.к там нашелся функционал расширения таблиц. Вроде бы он генерирует XML схему, да и все те же файлы, что и CMPGenerator но как с этим всем работать — не могу разобраться…
Подскажите пожалуйста, в каком направлении дальше идти. В голове каша от всей информации в сети.
- ВКонтакте
- Telegram
- Viber
- РЎРєРѕРїРСвЂВВВВВВВВровать ссылку
1 344
0
Комментарии: 6
28 апреля 2019, 09:47
Возможно — смотри исходники minishop2 — там как раз цена и прочие поля товара хранятся в отдельной таблице.
28 апреля 2019, 01:15
Вот таким простым плагином можно расширить практически любые таблицы MODX — modx.pro/solutions/7037
Но это в бэке. На фронте админки нужно уже с Extjs копаться. Тут уже решения зависят от конкретного случая. Одно из них Илья выше привёл.
Но это в бэке. На фронте админки нужно уже с Extjs копаться. Тут уже решения зависят от конкретного случая. Одно из них Илья выше привёл.
28 апреля 2019, 09:43
А можно ли расширить дополнительной таблицей в бд?
Управление из manager данными не нужно, актуально управление только из сниппетов.
Почему отдельная таблица? В MODx и так несколько десятков полей, и у меня еще столько же будет. Табличка будет огромная…
Утопический пример. Мы когда создаем\редактируем ресурс, можем на лету добавлять данные из TV полей:
Управление из manager данными не нужно, актуально управление только из сниппетов.
Почему отдельная таблица? В MODx и так несколько десятков полей, и у меня еще столько же будет. Табличка будет огромная…
Утопический пример. Мы когда создаем\редактируем ресурс, можем на лету добавлять данные из TV полей:
$page = $modx->getObject('modResource', 1);
$page->set('tv1', "tv_value1");
$page->save();
В этом случае обновятся данные из таблицы modx_site_content и добавится связная запись TV в базу в другую табличку. 28 апреля 2019, 14:16
Не, код выше не должен работать. Получаете объект класса modResource, и добавляете данные соответственно туда же, а не в modTemplateVarResource, где твшки хранятся. В общем, отдельная таблица — это отдельный класс, который за неё отвечает. Либо вы в существующие таблицы добавляете новые поля, и тогда работаете с привычными классами MODX. Либо создаёте свою таблицу, и тогда нужно проделать действия примерно как тут. То есть сгенерировать модель БД, создать классы описывающие логику, подключить всё это к MODX, т.к. он не в курсе о них. Вариантов как подключить свою таблицу не один. Можно хоть вручную скрипт написать. В конечном счёте, через MIGX, CMPGenerator, modExtra, или как-то ещё, генерация модели происходит с использованием родных методов MODX.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Здесь упомянуты:
Компонент | Текущая версия | Закачки |
miniShop2 | 4.4.0-pl от 06.08.2024 | 26 389 |
Вчера в 21:11
Здравствуйте
Есть желание использовать компонент polylang для автоматизации перевода с наименьшими усилиями, но есть пару вопросов, которые хотелось ...
Polylang 143
Вчера в 16:30
Добрый день.
Удалите плагин vpSystem от пакета.
[VirtualPage] - Виртуальные страницы. 183
Вчера в 08:40
Хочестя в тикеты при сохранении комментария добавить кнопку «проверить на ошибки» и при нажатии на нее проверить комментарий на ошибки в нейросети сох...
pbStudio: Создаём сайт с PageBlocks – настройка и главная страница 6
Вчера в 08:36
Нет, через апи идет запрос в ChatGPT, который формирует необходимые данные о блоке, а дальше PageBlocks их разбирает и создает все нужные элементы.
PageBlocks 2.6.0. Настройка меню MODX и гибкое управление страницей пользователя 12
Вчера в 00:03
Не работает парсинг с vk.com, vkvideo.ru
[videoGallery] 1.4.0 Поддержка VK Video и ещё пара фишек 9
17 апреля 2025, 23:01
Можете тоже подсказать как победить данную ошибку?
msGallerySearch - загрузка изображений в галерею minishop2 по ссылке и Google поиск картинок 44
17 апреля 2025, 21:35
Действительно! Самого главного я и не обозначил! Спасибо! Поправлю заголовок.
Речь идет именно о панели менеджера и возможности управления заказами.
...
Вывод перечня заказанных товаров в таблицу с заказами minishop2 (панель менеджера) 8
17 апреля 2025, 17:49
Очевидно ты используешь источник файлов, поэтому в админке путь прописан от источника, хочешь полный путь, откажись от источника файлов.
Не открываются загруженные файлы пишет страница не найдена 2
17 апреля 2025, 15:08
Привет, Henk. Спасибо за ответ! В посте по ссылке меня больше всего заинтересовала фраза «мы интегрировали AI в медиа-менеджер, чтобы значительно упро...
MODX/AI Hackathon Part 2 (27 марта) 4
17 апреля 2025, 13:17
в preg_match проверка проходит, и туда 100% приходит url
Здравствуйте! Первый раз такое вижу, у слеша, не 1 символ в строке, а 9!! Как это делает MODX 2