Хук integrate_theme_context

Хук, появившийся в SMF 2.1. Помогает управлять переменными в начале загрузки страницы.

Расположение

Subs.php

call_integration_hook('integrate_theme_context');

Как видим, хук не имеет параметров; в нем доступны для использования любые переменные, определенные до его вызова.

Использование

Как подключить

Рассмотрим пример:

<?php

if (!defined('SMF'))
    die('No direct access...');

class YourModName
{
    // В этой функции подключаем используемые хуки
    public function hooks()
    {
        add_integration_function('integrate_theme_context', __CLASS__ . '::themeContext#', false, __FILE__);
    }

    // Например, в Optimus через этот хук добавляются свои мета-теги
    public function themeContext()
    {
        global $modSettings, $context;

        if (!empty($modSettings['optimus_meta'])) {
            $tags = unserialize($modSettings['optimus_meta']);

            foreach ($tags as $name => $value) {
                if (!empty($value))
                    $context['meta_tags'][] = array('name' => $name, 'content' => $value);
            }
        }
    }
}

Хук вызывается сразу после определения основных метаданных SMF ($context['page_title'], $context['meta_keywords'], $context['meta_tags']), поэтому его удобно использовать для дополнения или изменения этих переменных.