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

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 14480
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 346 раз
Поблагодарили: 1546 раз
Контактная информация:

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

Сообщение rxu » 24.10.2019 18:11

В 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' (как и в предыдущих версиях).
Изображение

Ответить

Вернуться в «Для авторов»