Менеджер файлов является частью пользовательского интерфейса, который позволяет администратору, реселлеру или клиенту управлять файлами и папками домена и предоставляет набор полезных функций, например, наглядный HTML-редактор и управление правами доступа к файлам. Начиная с Plesk 11.5, вы можете создавать расширения, которые добавляют функциональность к менеджеру файлов Plesk.

Чтобы добавить пункт в контекстное меню менеджера файлов:

  1. Создайте файл /plib/library/FileManager/Action.php в папке вашего расширения.

  2. Создайте класс 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',
)

В результате добавления такого расширения в контекстном меню менеджера файлов будет доступен новый пункт:

image 76051