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

image-79553.png

Для этого включите в свое расширение класс, который расширяет 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.

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

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

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

    <?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 (Узнать больше)» и соответствующий значок.