This is documentation for Plesk Onyx.
Go to documentation for the latest version, Plesk Obsidian.
Embed Active List Components
Plesk SDK API allows you to embed information (currently only custom services) into certain items of existing Active List objects. To do that, implement the pm_Hook_ActiveList interface. It provides the following methods:
-
getItemServices($controller, $action,
$itemId)
returns the array of configuration parameters of the service that
will be embedded in an item with
id=$itemId
list on/$contorller/$action
page. Service configuration:-
title
- the title of the service. -
icon
- the icon of the service. -
link
- the link to the service (optional). -
toolbar
- an array of tools of service (optional). -
messages
- an array of service messages (optional).
-
To illustrate the approach, the following sample project is provided by Plesk: https://github.com/plesk/ext-active-list-hook
Example: Embedding custom services to Websites & Domains active list
src/plib/hooks/ActiveList.php
<?php
class Modules_<YourExtensionName>_ActiveList extends pm_Hook_ActiveList
{
public function getItemServices($controller, $action, $itemId)
{
if ($controller !== 'web' || ($action !== 'view' && $action !== 'overview')) {
return [];
}
return [
[
'icon' => pm_Context::getBaseUrl() . 'images/icon-service1.png',
'title' => pm_Locale::lmsg('service1Title'),
'link' => pm_Context::getActionUrl('service1', 'index') . '/id/' . $itemId,
'toolbar' => [
[
'title' => pm_Locale::lmsg('action1Title'),
'link' => pm_Context::getActionUrl('service1', 'action1') . '/id/' . $itemId,
],
[
'title' => pm_Locale::lmsg('action2Title'),
'link' => pm_Context::getActionUrl('service1', 'action2') . '/id/' . $itemId,
],
],
],
[
'icon' => pm_Context::getBaseUrl() . 'images/icon-service2.png',
'title' => pm_Locale::lmsg('service2Title'),
'link' => pm_Context::getActionUrl('service2', 'index') . '/id/' . $itemId,
'toolbar' => [
[
'title' => pm_Locale::lmsg('action3Title'),
'link' => pm_Context::getActionUrl('service2', 'action3') . '/id/' . $itemId,
],
],
'messages' => [
[
'icon' => pm_Context::getBaseUrl() . 'images/attention.png',
'info' => pm_Locale::lmsg('serviceMessage1'),
'noEscape' => true,
],
],
],
];
}
}