Интеграция с файловым менеджером
Менеджер файлов является частью пользовательского интерфейса, который позволяет администратору, реселлеру или клиенту управлять файлами и папками домена и предоставляет набор полезных функций, например, наглядный HTML-редактор и управление правами доступа к файлам. Начиная с Plesk 11.5, вы можете создавать расширения, которые добавляют функциональность к менеджеру файлов Plesk.
Чтобы добавить пункт в контекстное меню менеджера файлов:
-
Создайте файл
/plib/library/FileManager/Action.php
в папке вашего расширения. -
Создайте класс Modules_MyModule_FileManager_Action, который расширяет класс pm_FileManager_Action в этом файле. Здесь MyModule – это идентификатор вашего расширения.
Используются следующие методы:
-
Пример такого класса приведен ниже:
class Modules_CodeEditor_FileManager_Action extends pm_FileManager_Action
{
/**
* Retrieve title for action
*/
public function getTitle()
{
pm_Context::init('code-editor');
return $this->lmsg('actionTitle');
}
/**
* Retrieve name for action
* by default name is camelCase module ID
*/
public function getName()
{
return parent::getName();
}
/**
* Retrieve URL for action
*/
public function getHref()
{
pm_Context::init('code-editor');
$params = array(
'currentDir=' . urlencode($this->_item['currentDir']),
'file=' . urlencode($this->_item['name']),
);
return pm_Context::getBaseUrl() . '?' . implode('&', $params);
}
/**
* Checks if action is available for a file
*/
public function isActive()
{
if ($this->_item['isDirectory']) {
return false;
}
return true;
}
/**
* Checks if action is default for a file
*/
public function isDefault()
{
return false;
}
}
Переменная $this->_item
содержит массив с информацией о файле или папке, для которого/которой отображается меню:
array (
'name' => 'hello.txt',
'modificationTimestamp' => '1380276799',
'modificationDate' => 'Sep 27, 2013 05:13 PM',
'size' => '8192',
'formatedSize' => '8.0 KB',
'user' => 'user_ifvbjsgcdk',
'group' => 'psacln',
'filePerms' => 'rw- r-- r-- ',
'isDirectory' => false,
'icon' => '/theme/icons/16/plesk/file-txt.png',
'isReadonly' => false,
'currentDir' => '/httpdocs',
)
В результате добавления такого расширения в контекстном меню менеджера файлов будет доступен новый пункт: