grisha2217
Проверенные
- Сообщения
- 913
- Решения
- 6
- Реакции
- 1,391
- Баллы
- 5,715
Расскажу свою историю. Мне понадобился скрипт, проверяющий валидность киви кошелька, забанен ли он или нет. В настройках есть пункт "Активные системы для приёма платежей", где есть QIWI, WebMoney, Яндекс.Деньги и другие, и я хочу выключать способ оплаты QIWI, чтобы пользователи не могли пополнить баланс через QIWI, так как киви заблокирован. Вот как будет выглядеть отключение системы в настройках:
Разберем по порядку. Если функция walletIsValid() возвращает false, то я вызываю disableWalletForDeposit() и вот, что она делает:
Получаем текущее значение настройки (в моём случае - это массив):
Ставлю значение "отключено"
Сохраняем настройку:
В функцию updateOptions мы должны передать ключи и значения тех настроек, которые хотим поменять.
Еще один пример. Отключаем форум:
Таким образом можно изменять настройки форума через скрипт.
PHP:
<?php
class Lolzteam_Payment_Qiwi extends Lolzteam_Payment_Abstract
{
public function walletIsValid()
{
$isValid = true;
// здесь была некая функция для проверки
return $isValid;
}
public function disableWalletForDeposit()
{
$options = XenForo_Application::getOptions();
$systems = $options->get('enabledPaymentSystemForDeposit');
$systems['qiwi'] = 0;
/** @var XenForo_Model_Option $optionModel */
$optionModel = $this->getModelFromCache('XenForo_Model_Option');
$optionModel->updateOptions(array('enabledPaymentSystemForDeposit' => $systems));
}
}
Разберем по порядку. Если функция walletIsValid() возвращает false, то я вызываю disableWalletForDeposit() и вот, что она делает:
Получаем текущее значение настройки (в моём случае - это массив):
PHP:
$options = XenForo_Application::getOptions();
$systems = $options->get('enabledPaymentSystemForDeposit');
Ставлю значение "отключено"
$systems['qiwi'] = 0;
Сохраняем настройку:
PHP:
/** @var XenForo_Model_Option $optionModel */
$optionModel = $this->getModelFromCache('XenForo_Model_Option');
$optionModel->updateOptions(array('enabledPaymentSystemForDeposit' => $systems));
В функцию updateOptions мы должны передать ключи и значения тех настроек, которые хотим поменять.
Еще один пример. Отключаем форум:
PHP:
$optionModel->updateOptions(array('boardActive' => false));