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

[3.3] Информация о невозможности включить расширение

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16359
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1742 раза

[3.3] Информация о невозможности включить расширение

Сообщение rxu »

В phpBB 3.3 появилась возможность показывать содержательные сообщения в случае невозможности включения расширения по каким-либо причинам.
Теперь такие сообщения может возвращать функция is_enableable().
Пример. Если в файле ext.php провести проверку вида

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

	public function is_enableable()
	{
		$language= $this->container->get('language');
		$language->add_lang('my_lang_file', $this->extension_name);
		if (phpbb_version_compare(PHPBB_VERSION, '3.2.7', '>='))
		{
			return $language->lang('PHPBB_VERSION_TOO_LOW');
		}
		
		return true;
	}
То при попытке включить расширение на версии phpBB 3.2.7 и выше пользователь получит сообщение, заданное языковой переменной 'PHPBB_VERSION_TOO_LOW' из языкового файла этого же расширения my_lang_file.php. В противном случае функция вернет true и расширение будет успешно включено.
Также можно возвращать сразу несколько сообщений в виде массива, тогда они будут выведены все вместе, например

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

return [$language->lang('PHPBB_VERSION_TOO_LOW'), $language->lang('EXT_VERSION_UPGRADE')];
Если вместо языковой переменной (или их массива) вернуть false, будет получено стандартное сообщение phpBB о невозможности включить расширение 'EXTENSION_NOT_ENABLEABLE' (как и в предыдущих версиях).
Изображение

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