Перейти к содержанию

Хук integrate_post_quickbuttons

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

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

Themes/default/index.template.php

<?php

if (!empty($list_class)) {
    call_integration_hook('integrate_' . $list_class . '_quickbuttons', [&$list_items]);
}

Themes/default/index.template.php

<?php

if (!empty($list_class)) {
    IntegrationHook::call('integrate_' . $list_class . '_quickbuttons', [&$list_items]);
}

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

Назначение⚓︎

Этот хук позволяет кастомизировать быстрые кнопки действий в различных частях форума:

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

Дополнительная информация (из документации SMF)

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

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

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

<?php

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

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

    // Добавляем внутри каждого поста кнопку-ссылку на произвольный сайт:
    public function postQuickButtons(array &$list_items): void
    {
        $list_items['my_button'] = [
            'label' => 'Перейти на сайт',
            'href'  => 'https://dragomano.ru',
            'icon'  => 'home',
            'show'  => true
        ];
    }
}

Результат

Совет

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