Хук integrate_prepare_display_context

SMF 2.1

С помощью этого хука можно работать с сообщениями в темах форума, меняя как сами посты, так и контент между ними.

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

Display.php

call_integration_hook('integrate_prepare_display_context', array(&$output, &$message, $counter));

Хук принимает в качестве параметра массивы $output, $message и $counter. В них содержатся, соответственно, отображаемое сообщение (конечный результат), текущее сообщение темы (исходный вариант) и счётчик (порядковый номер отображаемого сообщения, начинающийся с нуля на каждой странице темы).

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

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

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

<?php

if (!defined('SMF'))
    die('Hacking attempt...');

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

    // Вызывается для каждого сообщения темы, перед отображением на странице
    public static function prepareDisplayContext(&$output, &$message, $counter)
    {
        // Просмотр всех данных текущего сообщения
        var_dump($message);

        // Замена содержания сообщения при отображении (как пример)
        $output['body'] = 'Новый текст сообщения';

        // Отображение текущего порядкового номера сообщения на странице
        var_dump($counter);
    }
}

Хук чрезвычайно полезен при работе с сообщениями темы. С помощью него в моде Karma Post Rating, например, отображается рейтинг каждого сообщения, а также выводятся кнопочки для изменения рейтинга.

Поделиться
Отправить