Этот хук предназначен для «горячих» правок контента, перед отображением пользователю.
Расположение
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);
}
}
Хук пригодится для небольших правок в коде страниц без необходимости править файлы движка.