Один из часто используемых хуков, вызываемый в конце подключения темы оформления SMF.
Расположение
Load.php
call_integration_hook('integrate_load_theme');
Как видим, хук не имеет параметров; в нем доступны для использования любые переменные, определенные до его вызова.
Использование
Рассмотрим пример:
<?php
if (!defined('SMF'))
die('No direct access...');
class YourModName
{
// В этой функции подключаем хуки
public function hooks()
{
add_integration_function('integrate_load_theme', __CLASS__ . '::loadTheme#', false, __FILE__);
}
public function loadTheme()
{
global $context, $settings;
// Подключение языкового файла /Themes/default/languages/MyApplication.{язык пользователя}.php
loadLanguage('MyApplication');
// Подключение языкового файла /Themes/default/languages/MyApplication/.{язык пользователя}.php
loadLanguage('MyApplication/');
// Подключение произвольного CSS-файла в шапке страницы
$context['html_headers'] .= '
<link rel="stylesheet" type="text/css" href="' . $settings['default_theme_url'] . '/css/style.css" />';
// Подключение произвольного JS-файла в подвале страницы
$context['insert_after_template'] .= '
<script src="//code.jquery.com/jquery.min.js" type="text/javascript"></script>';
// Вызов произвольной функции
other_function();
// И другие нужные вам действия
}
}
В SMF 2.1 для подключения CSS и JS файлов добавлены функции loadCSSFile, loadJavaScriptFile, addInlineCss и addInlineJavaScript.
Если в вашем приложении требуется что-то сделать перед подключением темы оформления, используйте вспомогательный хук integrate_pre_load_theme.