# Интеграция с домашней страницей

Расширения могут сообщать различную информацию, размещая информационные блоки (также называемые виджетами) на Домашней странице администратора или клиента в Plesk.

Для этого включите в свое расширение класс, который расширяет pm_Promo_AdminHome или pm_Promo_CustomerHome и переопределяет все необходимые методы. Все классы, которые расширяют `pm_Promo_AdminHome` и `pm_Promo_CustomerHome`, загружаются при переходе пользователя на Домашнюю страницу.

Примечание

Удостоверьтесь в том, что для реализуемых классов выполняется Соглашение по именованию классов. Иначе эти классы могут не загрузиться так, как надо.

Например, в расширении с ID `"my-module"` новый класс, реализующий информационный блок на Домашней странице администратора, должен быть назван `Modules_MyModule_Promo_AdminHome`. Его код должен быть помещен в файл `plib/library/Promo/AdminHome.php`.

Информационный блок “Plesk News”, показанный на снимке экрана выше, отображается с помощью простого расширения “Panel News”. Его код доступен здесь: https://github.com/plesk/ext-panel-news.

## Пример: определение информационного блока

Этот пример показывает, как реализовать информационный блок. В нем используются следующие методы:

- getTitle()
- getText()
- getButtonText()
- getButtonUrl()
- getIconUrl()

Используйте следующий код:

        <?php

    class Modules_MyModule_Promo_AdminHome extends pm_Promo_AdminHome
    {
        public function getTitle()
        {
            return 'Add Block Title Here';
        }

        public function getText()
        {
            return 'Add your text here...';
        }

        public function getButtonText()
        {
            return 'View';
        }

        public function getButtonUrl()
        {
            return 'http://example.com';
        }

        public function getIconUrl()
        {
            pm_Context::init('my-module');
            return pm_Context::getBaseUrl() . '/images/icon.png';
        }
    }

Примечание

Когда вам необходимо использовать функции, предоставляемые API расширений, вам надо определить контекст в теле метода путем вызова `pm_Context::init('module ID')`.

Методы `getButtonText()` и `getIconUrl()` необязательны. Если вы не используете эти методы, Plesk будет по умолчанию использовать название кнопки «Learn more (Узнать больше)» и соответствующий значок.