# Интеграция с файловым менеджером

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

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

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

2. Создайте класс Modules_MyModule_FileManager_Action, который расширяет класс pm_FileManager_Action в этом файле. Здесь MyModule – это идентификатор вашего расширения.

   Используются следующие методы:

- lmsg()

- getTitle()

- getName()

- getHref()

- isActive()

- isDefault()

  Пример такого класса приведен ниже:

    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',
    )

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