Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Настройки в админпанели

Форум для авторов расширений для phpBB. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Shredder
Former team member
Сообщения: 2224
Стаж: 15 лет 4 месяца
Благодарил (а): 124 раза
Поблагодарили: 138 раз

Настройки в админпанели

Сообщение Shredder »

Решил изменить настройки конференции при помощи способа, который прекрасно работал в 3.0 (и сейчас работает в 3.1, если использовать свой собственный модуль)

Добавляю в listener.php:

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

	/**
	* Assign functions defined in this class to event listeners in the core
	*
	* @return array
	* @static
	* @access public
	*/
	static public function getSubscribedEvents()
	{
		return array(
			'core.acp_board_config_edit_add'	=> 'acp_board_features_config',
		);
	}

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

	/**
	* Extension configuration in Board features
	*/
	public function acp_board_features_config($event)
	{
		if ($event['mode'] == 'features')
		{
			$display_vars = $event['display_vars'];

			$add_config_var = array(
				'tsc_acp_legend'	=> 'TSC_ACP_LEGEND',
				'tsc_options'		=> array('lang' => 'TSC_ACP_OPTION_M', 'validate' => 'int', 'type' => 'custom', 'method' => 'select_tsc_options', 'explain' => false),
			);

			$display_vars['vars'] = phpbb_insert_config_array($display_vars['vars'], $add_config_var, array('after' =>'load_cpf_viewtopic'));
			$event['display_vars'] = array('title' => $display_vars['title'], 'vars' => $display_vars['vars']);
		}
	}

	public function select_tsc_options($value, $key = '')
	{
		$radio_ary = array(0 => 'TSC_ACP_OPTION_0', 1 => 'TSC_ACP_OPTION_1', 2 => 'TSC_ACP_OPTION_2');	

		return h_radio('config[tsc_options]', $radio_ary, $value, 'tsc_options', $key, '<br />');
	}
Вылезла вот эта радость:
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_acp.php on line 356: call_user_func_array() expects parameter 1 to be a valid callback, class 'acp_board' does not have a method 'select_tsc_options'
Никаких новых настроек кроме названия нет.

Что это и как избавиться?
Последний раз редактировалось Shredder 21.02.2015 14:24, всего редактировалось 1 раз.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

Re: Настройки в админпанели

Сообщение Sheer »

select_tsc_options объявлена внутри класса и должна при этом вызываться иначе:$this->select_tsc_options
или должна быть объявлена за пределами класса.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Shredder
Former team member
Сообщения: 2224
Стаж: 15 лет 4 месяца
Благодарил (а): 124 раза
Поблагодарили: 138 раз

Re: Настройки в админпанели

Сообщение Shredder »

В варианте из первого сообщения сделано так:

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

				'tsc_options'		=> array('lang' => 'TSC_ACP_OPTION_M', 'validate' => 'int', 'type' => 'custom', 'method' => 'select_tsc_options', 'explain' => false),
Если написать 'method' => $this->select_tsc_options, то тоже ничего не выводится:
[phpBB Debug] PHP Notice: in file [ROOT]/ext/shredder/seo_topic_url/event/listener.php on line 81: Undefined property: shredder/seo_topic_url/event/listener::$select_tsc_options
Непонятно, как действовать в этом случае.

Добавлено спустя 10 минут 38 секунд:
Весь код добавляю в listener.php
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16378
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1746 раз

Re: Настройки в админпанели

Сообщение rxu »

попробуйте вместо

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

'method' => 'select_tsc_options'
прописать

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

'function' => array($this, 'select_tsc_options')
Изображение
Shredder
Former team member
Сообщения: 2224
Стаж: 15 лет 4 месяца
Благодарил (а): 124 раза
Поблагодарили: 138 раз

Re: Настройки в админпанели

Сообщение Shredder »

rxu
Отлично, всё получилось :)
Anvar
Former team member
Сообщения: 1965
Стаж: 14 лет 1 месяц
Благодарил (а): 57 раз
Поблагодарили: 625 раз

Re: Настройки в админпанели

Сообщение Anvar »

Не догадался так попробовать сделать. Хорошо было бы собрать все эти возможные обходы и нюансы в кучу.
Аватара пользователя
xisp
phpBB 3.0.0 RC7
Сообщения: 1798
Стаж: 11 лет 11 месяцев
Благодарил (а): 101 раз
Поблагодарили: 91 раз
Забанен: Бессрочно

Re: Настройки в админпанели

Сообщение xisp »

Anvar, вот же она Для авторов (phpBB 3.1.x)
phpBBex

Вернуться в «Для разработчиков»