Разные варианты выбора настройки в админ панели

Форум для авторов модов для phpBB 3.0.x. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Amator
phpBB 1.4.3
Сообщения: 88
Стаж: 16 лет 11 месяцев
Благодарил (а): 25 раз
Поблагодарили: 5 раз

Разные варианты выбора настройки в админ панели

Сообщение Amator »

Хочу сделать возможность выбирать разные вариант настройки в админ панели. Уже нашел как добавить radio переключатель Да-Нет, в includes/acp/acp_board.php прописал, языковую переменную в board.php тоже, в админке все выводится правильно. Теперь такой вопрос - к примеру, мне нужно три варианта выбора от которых зависит изменение двух других файлов на форуме. По идее логично будет записывать выбор администратора в БД, а те страницы исходя из записи в БД будут выбирать что вывести. Читаю http://wiki.phpbb.com/ но там пока нужное найти не смог. Можете подсказать как такое реализовать, желательно на примере.

Добавлено спустя 6 минут 13 секунд:
Сейчас читаю Using the phpBB3.0 DBAL вроде, то что мне нужно. Правильно?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Re: Разные варианты выбора настройки в админ панели

Сообщение rxu »

Amator
Если вам нужна документация по работе phpBB с базами данных - то да.
Изображение
Amator
phpBB 1.4.3
Сообщения: 88
Стаж: 16 лет 11 месяцев
Благодарил (а): 25 раз
Поблагодарили: 5 раз

Re: Разные варианты выбора настройки в админ панели

Сообщение Amator »

А если для решения того задания, про которое я написал в первом сообщении?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Re: Разные варианты выбора настройки в админ панели

Сообщение rxu »

Amator
Задача слишком общая. Запись в БД/чтение из БД - да, это оно.
Изображение
Amator
phpBB 1.4.3
Сообщения: 88
Стаж: 16 лет 11 месяцев
Благодарил (а): 25 раз
Поблагодарили: 5 раз

Re: Разные варианты выбора настройки в админ панели

Сообщение Amator »

Тогда в деталях. В админке радио переключатель с тремя вариантами выбора. В зависимости от выбора нужно изменять код в 3 файлах phpBB. Вот такая задача. Вот я сейчас смотрю acp_board.php и вижу, что переключатель вариантов активации пользователя имеет такой вид

Код: Выделить всё

'require_activation'	=> array('lang' => 'ACC_ACTIVATION',	'validate' => 'int',	'type' => 'custom', 'method' => 'select_acc_activation', 'explain' => true),
Вот и хочу сделать подобный только с тремя вариантами выбора и последствиями, которые я описал выше.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Re: Разные варианты выбора настройки в админ панели

Сообщение rxu »

Amator
Данные из этих массивов записываются в таблицу phpbb_config автоматом.
Обработка в вашем случает должна осуществляться специальной функцией, которую вы должны написать сами. Она и обрабатывает выбранные значения, записываемые в БД.
Изображение
Amator
phpBB 1.4.3
Сообщения: 88
Стаж: 16 лет 11 месяцев
Благодарил (а): 25 раз
Поблагодарили: 5 раз

Re: Разные варианты выбора настройки в админ панели

Сообщение Amator »

Так, это вроде понял. Тогда как сделать что бы было три вариант выбора, а не просто bool Да-Нет? В примере с активацией я вижу 'method'='select_acc_activation', правда мне не совсем ясно где прописать подобный метод для моего случая.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Re: Разные варианты выбора настройки в админ панели

Сообщение rxu »

Amator
Посмотрите в том же файле, этот метод прописан ;)
Изображение
Amator
phpBB 1.4.3
Сообщения: 88
Стаж: 16 лет 11 месяцев
Благодарил (а): 25 раз
Поблагодарили: 5 раз

Re: Разные варианты выбора настройки в админ панели

Сообщение Amator »

Вижу) Спасибо!

Добавлено спустя 16 минут 6 секунд:
Переписал на примере

Код: Выделить всё

function select_acc_activation($value, $key = '')
, но теперь у меня вылетают ошибки

Код: Выделить всё

in file /includes/acp/acp_board.php on line 771: Use of undefined constant LOGIN - assumed 'LOGIN'
Насколько понимаю нужно где то прописать данную константу. Исходя из логики это файл includes/constants.php - я прав?
acp_board.php

Код: Выделить всё

'reset_method'			=> array('lang' => 'RESET_METHOD',			'validate' => 'int',	'type' => 'custom', 'method' => 'select_password_reset_method', 'explain' => true),						

Код: Выделить всё

	//Select password reset method
	function select_password_reset_method($value, $key='')
	{
		global $user, $config;

		$radio_ary = array(LOGIN => 'LOGIN', EMAIL => 'EMAIL', EMAIL_LOGIN => 'EMAIL_LOGIN');
		return h_radio('config[reset_method]', $radio_ary, $value, $key);
	}	
board.php

Код: Выделить всё

	'RESET_METHOD'					=> 'Password reset method',
	'RESET_METHOD_EXPLAIN'			=> 'What information user should enter to reset his password',
	'LOGIN'							=> 'Login',
	'EMAIL'							=> 'E-Mail',
	'EMAIL_LOGIN'					=> 'Both Login and E-Mail',
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Re: Разные варианты выбора настройки в админ панели

Сообщение rxu »

Amator писал(а):Исходя из логики это файл includes/constants.php - я прав?
Да, можно там прописать.
Изображение
Amator
phpBB 1.4.3
Сообщения: 88
Стаж: 16 лет 11 месяцев
Благодарил (а): 25 раз
Поблагодарили: 5 раз

Re: Разные варианты выбора настройки в админ панели

Сообщение Amator »

Записал все туда. При выборе значения все правильно записалось в базу, но при повторном открытии страницы выдало ошибки

Код: Выделить всё

[phpBB Debug] PHP Notice: in file /adm/index.php on line 249: Undefined index: EMAIL_LOGIN
[phpBB Debug] PHP Notice: in file /adm/index.php on line 150: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3691)
[phpBB Debug] PHP Notice: in file /adm/index.php on line 152: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3691)
[phpBB Debug] PHP Notice: in file /adm/index.php on line 153: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3691)
[phpBB Debug] PHP Notice: in file /adm/index.php on line 154: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3691)
Добавлено спустя 30 минут 55 секунд:
Смотрю index.php по 249 строке и вижу там генератор отмеченных кнопок. Только как ошибку исправить пока не понял.
Amator
phpBB 1.4.3
Сообщения: 88
Стаж: 16 лет 11 месяцев
Благодарил (а): 25 раз
Поблагодарили: 5 раз

Re: Разные варианты выбора настройки в админ панели

Сообщение Amator »

Все, все проблемы исправил. Теперь осталась единственная проблема с языковыми переменными в шаблоне, сейчас пытаюсь побороть.

Добавлено спустя 50 минут 47 секунд:
Нужна помощь. В РНР скрипте языковые файлы подключены, сам он нормально подключен в систему phpBB и функционирует, но вместо названия и описания форума выводятся две двойки(2), а языковые переменные выводятся как они записаны в шаблоне. Код файла

Код: Выделить всё

<?php

$user->setup('ucp');
$user->setup('common');
$sql = "SELECT config_value
    FROM " . CONFIG_TABLE . " 
    WHERE config_name = 'reset_method'";
$config = $db->sql_query($sql);
$config = $db->sql_fetchrow($config);
$config = $config['config_value'];
switch ($config)
{
	case 1:
		$RESET_TEMPLATE = '<dl>
			<dt><label for="username">{L_USERNAME}:</label></dt>
			<dd><input class="inputbox narrow" type="text" name="username" id="username" size="25" /></dd>
		</dl>
		<dl>
			<dt><label for="email">{L_EMAIL_ADDRESS}:</label><br /><span>{L_EMAIL_REMIND}</span></dt>
			<dd><input class="inputbox narrow" type="text" name="email" id="email" size="25" maxlength="100" /></dd>
		</dl>';
		break;
	case 2:
		$RESET_TEMPLATE = '<dl>
			<dt><label for="email">{L_EMAIL_ADDRESS}:</label><br /><span>{L_EMAIL_REMIND}</span></dt>
			<dd><input class="inputbox narrow" type="text" name="email" id="email" size="25" maxlength="100" /></dd>
		</dl>';
		break;
	case 3:
		$RESET_TEMPLATE = '<dl>
			<dt><label for="username">{L_USERNAME}:</label></dt>
			<dd><input class="inputbox narrow" type="text" name="username" id="username" size="25" /></dd>
		</dl>';
		break;
		};	
		?>
Петрович
phpBB 2.0.0
Сообщения: 244
Стаж: 19 лет 10 месяцев
Откуда: НСО, п. Витаминка
Благодарил (а): 10 раз
Поблагодарили: 14 раз

Re: Разные варианты выбора настройки в админ панели

Сообщение Петрович »

Укажите в каком файле прописаны необходимые языковые переменные и как они там прописаны.
Amator
phpBB 1.4.3
Сообщения: 88
Стаж: 16 лет 11 месяцев
Благодарил (а): 25 раз
Поблагодарили: 5 раз

Re: Разные варианты выбора настройки в админ панели

Сообщение Amator »

Это стандартные переменные любого языкового пакета. L_USERNAME прописан как 'USERNAME', L_EMAIL_ADDRESS как 'EMAIL_ADDRESS' в common.php. L_EMAIL_REMIND прописан как 'EMAIL_REMIND' в ucp.php. Исходя из этого Template.assign vars: Language Variables я их по идее правильно прописал.

Добавлено спустя 45 секунд:
Также не понятно откуда возникают двойки.
Петрович
phpBB 2.0.0
Сообщения: 244
Стаж: 19 лет 10 месяцев
Откуда: НСО, п. Витаминка
Благодарил (а): 10 раз
Поблагодарили: 14 раз

Re: Разные варианты выбора настройки в админ панели

Сообщение Петрович »

Amator, прочти еще эту статью, возможно она поможет избавиться от возникших ошибок с 2-ками и языковыми переменными.

Вернуться в «Для авторов (phpBB 3.0.x)»