Начиная с Plesk 12, в дополнение к возможности включать в страницы global.js (описанной в разделе Настройка страниц с помощью JavaScript и CSS), появилась возможность генерировать на стороне сервера дополнительный код HTML или JavaScript для включения в страницу. Для этого вам надо создать класс, наследуемый от pm_Hook_ContentInclude. Этот класс должен быть помещен в папку plib/hooks/.

Страница входа в Plesk не включает дополнительных скриптов, которые используются на других страницах Plesk. Для формирования дополнительного содержимого на странице входа вам надо использовать класс pm_Hook_LoginContentInclude.

Есть несколько способов введения JavaScript. Один из простейших способов – передать данные от сервера клиенту (браузеру), используя метод

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

class Modules_EmbedJs_ContentInclude extends pm_Hook_ContentInclude
{
 public function getJsConfig()
{
    return [
        'dynamicVar' => date(DATE_ATOM),
    ];
}
 ...
}

Этот метод должен возвращать массив, который будет сконвертирован в JSON и вставлен в результирующую страницу HTML внутри тега HEAD.

<!-- extension include: embed-js -->
<script>
//<![CDATA[
    Jsw.namespace('PleskExt.EmbedJs');
//]]>
</script>
<script>
//<![CDATA[
    PleskExt.EmbedJs.Config = {"dynamicVar":"2014-02-25T16:56:46+07:00"};
//]]>
</script>

Для доступа к данным, сформированным на стороне сервера, расширение embed-js может использовать объект PleskExt.EmbedJs.Config. В дополнение к этому, будет создано пространство имен PleskExt.EmbedJs.

Есть также методы getJsContent и getJsOnReadyContent, которые позволяют составлять блоки кода JavaScript на стороне сервера и добавлять их к результирующему коду HTML. Метод getJsOnReadyContent выполняет код JavaScript после полной загрузки дерева DOM.

Кроме того, можно загрузить дополнительное содержимое HTML в конце тегов HEAD и BODY. Для этого можно использовать методы getHeadContent и getBodyContent. Вот пример использования этих методов:

class Modules_EmbedJs_ContentInclude extends pm_Hook_ContentInclude
{
    public function getHeadContent()
    {
        return '<!-- additional content for head tag -->';
    }

    public function getBodyContent()
    {
        return '<!-- additional content for body tag -->';
    }
}

Вы можете найти пример кода в нашем репозитории здесь.