Хук integrate_{ваш_класс}_quickbuttons

Хук позволяет дополнять/изменять наборы кнопок в быстрых меню. Это кнопки вида «Цитировать», «Редактировать» и т. д. (внутри сообщений).

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

index.template.php

if (!empty($list_class))
    call_integration_hook('integrate_' . $list_class . '_quickbuttons', array(&$list_items));

Хук вызывается в случае, если параметр $list_class (имя класса) при вызове функции template_quickbuttons не пуст.

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

Сначала определяемся, какой набор кнопок меняем. Примеры:

  • Кнопки внутри каждого сообщения — хук integrate_post_quickbuttons
  • Кнопки внутри каждого личного сообщения — хук integrate_pm_quickbuttons
  • Кнопки внутри созданного самостоятельно набора — хук integrate_{ваш_класс}_quickbuttons и т. д.

Затем подключаем нужный хук и переопределяем/добавляем желаемые кнопки. Например, добавим внутри каждого поста кнопку-ссылку на произвольный сайт:

<?php

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

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

    public static function postQuickButtons(&$list_items)
    {
        $list_items['my_button'] = array(
            'label' => 'Перейти на сайт',
            'href'  => 'https://dragomano.ru',
            'icon'  => 'home',
            'show'  => true
        );
    }
}
Результат
Результат

С другими подобными хуками работа полностью аналогичная. Примеры кнопок смотрите в исходных файлах движка.