Для получения ID текущей страницы в процессоре MODX вы можете воспользоваться объектом $modx->resource
или глобальной переменной $_REQUEST['id']
. Затем, чтобы сохранить значение в TV поле, вам потребуется функция $modx->setTVValue($tvName, $value, $resourceId)
.
Вот пример кода, который демонстрирует, как получить ID страницы и сохранить значение в TV поле в процессоре MODX:
<?php // Получаем ID текущей страницы $resourceId = intval($_REQUEST['id']); // Получаем значение, которое вы хотите сохранить в TV поле $value = 'Новое значение'; // Устанавливаем имя TV поля $tvName = 'my_tv_field'; // Проверяем, существует ли TV поле для текущей страницы if ($modx->getTemplateVar($tvName)) { // Сохраняем значение в TV поле $modx->setTVValue($tvName, $value, $resourceId); } else { // TV поле не найдено, выводим сообщение об ошибке $modx->log(xPDO::LOG_LEVEL_ERROR, 'TV field ' . $tvName . ' not found for resource ' . $resourceId); } // Возвращаем результат обработки return 'Значение сохранено в TV поле.'; ?>
В приведенном коде мы сначала получаем ID текущей страницы из глобальной переменной $_REQUEST['id']
, преобразуя его в целое число с помощью функции intval()
. Затем мы устанавливаем значение, которое нужно сохранить в TV поле, и имя этого поля.
Далее проверяем, существует ли TV поле с указанным именем для текущей страницы, используя функцию $modx->getTemplateVar()
. Если поле существует, мы вызываем функцию $modx->setTVValue()
для сохранения значения. В противном случае, если TV поле не найдено, мы записываем сообщение об ошибке в журнал MODX с помощью функции $modx->log()
.
После выполнения всех необходимых действий мы возвращаем сообщение о том, что значение успешно сохранено в TV поле.
Убедитесь, что вы используете правильные имена TV полей и проверьте свои настройки MODX, чтобы убедиться, что конфигурация соответствует вашим требованиям.