Хук integrate_load_theme

Один из часто используемых хуков, вызываемый в конце подключения темы оформления 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.