Имеется задача в планировщике, которая вызывает метод раз в 3 часа. Сам метод определенным образом изменяет дополнительное поле всех пользователей.
Он создан по этой теме: xf_user_field_value и работа с ним со стороны
Вопрос: Есть ли какой-либо параметр, который отключит логирование этих изменений?
Имею ввиду то, что эти изменения отображаются в журнале изменений пользователя.
Или же придется изменять DataWriter/вручную чистить логи?
Второй вопрос:
Для этого же дополнительного поля мне нужно установить дефолтное значение.
Пока что есть идея сделать это с помощью расширения класса XenForo_ControllerPublic_Register, метода _completeRegistration
Т.е. вставить туда код, который задает нужное мне значение дополнительного поля.
Есть ли более правильный/простой способ сделать это?
Под изменением стандартных классов и методов движка я подразумеваю вынос изменений в отдельный плагин.
Он создан по этой теме: xf_user_field_value и работа с ним со стороны
PHP:
$userModel = XenForo_Model::create('XenForo_Model_User');
XenForo_Db::beginTransaction();
$user = $userModel->getUserById($userId);
$writer = XenForo_DataWriter::create('XenForo_DataWriter_User', XenForo_DataWriter::ERROR_SILENT);
$writer->setExistingData($userId); //ID юзера для изменения поля
$writer->setOption(XenForo_DataWriter_User::OPTION_ADMIN_EDIT, true); //это признак, что админ редактирует, чтобы игнорить запрет на редактирование
$writer->setCustomFields(array('playtime' => $playtime)); // собственно установка значения поля
$writer->save();
XenForo_Db::commit();
Имею ввиду то, что эти изменения отображаются в журнале изменений пользователя.
Или же придется изменять DataWriter/вручную чистить логи?
Второй вопрос:
Для этого же дополнительного поля мне нужно установить дефолтное значение.
Пока что есть идея сделать это с помощью расширения класса XenForo_ControllerPublic_Register, метода _completeRegistration
Т.е. вставить туда код, который задает нужное мне значение дополнительного поля.
Есть ли более правильный/простой способ сделать это?
Под изменением стандартных классов и методов движка я подразумеваю вынос изменений в отдельный плагин.