Хук integrate_buffer

Этот хук предназначен для «горячих» правок контента, перед отображением пользователю.

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

Subs.php

    if (isset($modSettings['integrate_buffer']))
        $buffers = array_merge(explode(',', $modSettings['integrate_buffer']), $buffers);

Хук принимает как параметр строковую переменную $buffer, в которой находится содержимое буфера страницы.

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

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

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

<?php

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

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

    // Меняем содержимое буфера страницы (функция обязательно должна возвращать строку — с изменениями или без)
    public function buffer($buffer)
    {
        if (isset($_REQUEST['xml']))
            return $buffer;

        // Например, тег h1 заменим на тег h2
        return str_replace('h1>', 'h2>', $buffer);
    }
}

Хук пригодится для небольших правок в коде страниц без необходимости править файлы движка.