Чтобы создать новый ресурс через форму во фронтэнде и записать данные в ТВ (TV - Template Variable, то есть переменную шаблона) в MODX, вам потребуется выполнить несколько шагов:
1. Создание формы: Создайте форму, используя HTML и CSS, на странице, на которой пользователи должны вводить данные для создания нового ресурса. Вы можете использовать стандартные элементы формы, такие как <input>, <textarea> и <select>, а также добавить собственные пользовательские поля. Не забудьте добавить кнопку отправки (обычно <input type="submit">), чтобы пользователь мог отправить данные формы.
2. Создание сниппета: Создайте сниппет MODX, который будет обрабатывать данные, отправленные из формы. Сниппет - это кусок кода на языке PHP, который будет выполняться для обработки запроса. Вам потребуется использовать функции MODX API для создания нового ресурса и записи данных в ТВ.
Вот пример кода сниппета, который выполняет эти задачи:
<?php // Получение данных из формы $title = $modx->getOption('title', $scriptProperties, ''); $content = $modx->getOption('content', $scriptProperties, ''); // Создание нового ресурса $newResource = $modx->newObject('modResource'); $newResource->set('parent', $modx->getOption('parent', $scriptProperties, 0)); $newResource->set('pagetitle', $title); $newResource->setContent($content); $newResource->set('template', $modx->getOption('template', $scriptProperties, 1)); // Сохранение нового ресурса if ($newResource->save()) { // Получение ID нового ресурса $newResourceId = $newResource->get('id'); // Запись данных в ТВ $modx->setTemplateVar('tv_key', $modx->getOption('tv_value', $scriptProperties, ''), 'integer', $newResourceId); // Отправка ответа echo 'Ресурс успешно создан!'; } else { // Обработка ошибок при сохранении ресурса $errors = $newResource->get('validationErrors'); echo 'Ошибка при создании ресурса: ' . implode(', ', $errors); }
3. Создание шаблона: Создайте шаблон MODX, в котором будет использоваться форма и сниппет. Чтобы это сделать, создайте новый шаблон и добавьте в него HTML-код формы, который вы создали на шаге 1. Вставьте вызов сниппета в нужном месте шаблона.
<form action="[[!++site_url]]/assets/snippets/create_resource.php" method="post"> <label for="title">Заголовок:</label> <input type="text" name="title" id="title"> <label for="content">Контент:</label> <textarea name="content" id="content"></textarea> <input type="submit" value="Создать ресурс"> </form>
4. Настройка плагина FormIt: Если вы хотите использовать FormIt (плагин MODX для обработки форм), для упрощения обработки данных формы и добавления дополнительных функций, вам нужно создать плагин MODX FormIt и связать его с формой.
5. Тестирование: Перейдите на страницу, на которой находится ваша форма, заполните форму и отправьте ее. Если все в порядке, новый ресурс должен быть создан, и его данные должны быть записаны в соответствующие ТВ. Если есть ошибки, проверьте логи MODX и проверьте ваш код на наличие возможных ошибок.
Вот основной процесс создания нового ресурса через форму во фронтэнде и записи данных в ТВ в MODX. У каждого из этих шагов есть свои детали, которые можно настроить в соответствии с вашими требованиями и потребностями.