Как получить id страницы и сохранить значение в TV поле в процессоре Modx?

Для получения 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, чтобы убедиться, что конфигурация соответствует вашим требованиям.