Добавление содержимого на страницы
Начиная с 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 -->';
}
}
Вы можете найти пример кода в нашем репозитории здесь.