vBulletin не получает доступ к настройкам напрямую из таблицы "Настройки".
Эта информация предназначена для vBulletin 4.x, она может совпадать или не совпадать с другими версиями.
При сохранении настроек они сериализуются и сохраняются в таблице «хранилище данных». vBulletin извлекает данные из таблицы «хранилище данных» для активного использования.
У меня не было необходимости использовать следующие шаги, но я проверил их, изменив протокол записи «bburl» как в таблице данных, так и в таблицах настроек через PhpMyAdmin.
Конкретные настройки, которые вы ищете, хранятся в массиве «options».
Если вам известны текущие данные или имена переменных для настроек, которые вы хотите изменить, вы можете найти их в сериализованной строке и заменить новыми настройками.
Настройка для активной доски выглядит так: s:8:"bbactive";i:1;
Причина выглядит так:
s:14:"bbclosedreason";s:125:"<p>Sorry, the board is unavailable at the moment while we are testing some functionality.</p>
<p>We will be back soon...</p>";
Перейдите в таблицу «datastore» и найдите запись «options» в поле «title».
Скопируйте сериализованные данные из поля «данные», связанного с записью «параметры». Обязательно сделайте резервную копию на случай, если ваши изменения вызовут проблемы.
Найдите в данных элементы, которые вы хотите изменить. При изменении данных убедитесь, что вы используете правильный сериализованный формат, обновив длину, связанную с этой записью.
Обновите запись «options» в таблице «datastore» с измененными сериализованными данными, а также обновите отдельные записи в таблице настроек.
Функция, которая обновляет таблицы "settings" и "datastore", находится здесь:
includes\adminfunctions.php
примерно на строке номер 2474 (в зависимости от вашей версии).
// #############################################################################
/**
* Reads settings from the settings then saves the values to the datastore
*
* After reading the contents of the setting table, the function will rebuild
* the $vbulletin->options array, then serialize the array and save that serialized
* array into the 'options' entry of the datastore in the database
*
* @return array The $vbulletin->options array
*/
function build_options()
{
require_once(DIR . '/includes/adminfunctions_options.php');
global $vbulletin;
$vbulletin->options = array();
$settings = $vbulletin->db->query_read("SELECT varname, value, datatype FROM " . TABLE_PREFIX . "setting");
while ($setting = $vbulletin->db->fetch_array($settings))
{
$vbulletin->options["$setting[varname]"] = validate_setting_value($setting['value'], $setting['datatype'], true, false);
}
if (substr($vbulletin->options['cookiepath'], -1, 1) != '/')
{
$vbulletin->options['cookiepath'] .= '/';
$vbulletin->db->query_write("
UPDATE " . TABLE_PREFIX . "setting
SET value = '" . $vbulletin->db->escape_string($vbulletin->options['cookiepath']) . "'
WHERE varname = 'cookiepath'
");
}
build_datastore('options', serialize($vbulletin->options), 1);
return $vbulletin->options;
}
person
codewaggle
schedule
12.10.2012