Mibew Messenger Community

General => Support => Русский (ru) => Topic started by: vasjon on February 20, 2019, 11:50:44 AM

Title: Не работают плагины
Post by: vasjon on February 20, 2019, 11:50:44 AM
Здравствуйте. Собственно вопрос в заголовке. Делаю вроде все в соответствии с README.md, загружаю, распаковываю в /plugins/ далее прописываю в config.yml:
plugins:
    "Mibew:AutoInvite":
            wait_time: 30
            strategy: random
            group: 0
    "Mibew:TitleNotification": # Plugin's configurations are described below
            new_thread: false
            new_message: "operator"
На странице Плагины пусто: Нет элементов для отображения. Что делаю не так?
Title: Re: Не работают плагины
Post by: faf on February 20, 2019, 03:35:58 PM
1. Есть ли что-то в error_log сервера?
2. Какова текущая структура директории plugins (с поддиректориями)?
3. Корректна ли структура конфигурации? YAML очень чувствителен к лишним пробельным символам, например.
Title: Re: Не работают плагины
Post by: vasjon on February 21, 2019, 07:37:31 AM
1. Есть ли что-то в error_log сервера?
2. Какова текущая структура директории plugins (с поддиректориями)?
3. Корректна ли структура конфигурации? YAML очень чувствителен к лишним пробельным символам, например.
1. нет, для проверки сделал ошибку plugins: "Mibew:AutoInvite": написал в одну строчку, посыпались ошибки:
Feb 21 10:12:46 vh148 apache_error: site.ru [Thu Feb 21 10:12:46 2019] [error] [pid 11214] sapi_apache2.c(325): [client 178.170.168.3:60212] PHP Fatal error:  Uncaught exception 'Symfony\\Component\\Yaml\\Exception\\ParseException' with message 'Unable to parse at line 92 (near "        strategy: random").' in /home/site/public_html/mi/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php:285\nStack trace:\n#0 /home/site/public_html/mi/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php(215): Symfony\\Component\\Yaml\\Parser->parse('"Mibew:AutoInvi...', false, false, false)\n#1 /home/site/public_html/mi/libs/common/configurations.php(37): Symfony\\Component\\Yaml\\Parser->parse('# IMPORTANT: Be...')\n#2 /home/site/public_html/mi/libs/init.php(32): load_system_configs()\n#3 /home/site/public_html/mi/index.php(21): require_once('/home/site/...')\n#4 {main}\n  thrown in /home/site/public_html/mi/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php on line 285
поправил - ошибки исчезли
2. /home/site/public_html/mi/plugins/AutoInvite/
3. скопировал default_config.yml и в нем правил только секцию plugins, приложил файл
Title: Re: Не работают плагины
Post by: faf on February 21, 2019, 08:19:55 AM
2. /home/site/public_html/mi/plugins/AutoInvite/

А должно быть так, как в архиве, т.е.: plugins/Mibew/Mibew/Plugin/AutoInvite/.

3. скопировал default_config.yml и в нем правил только секцию plugins, приложил файл

Вы бы хоть пароль оттуда убрали...  ::)
Title: Re: Не работают плагины
Post by: vasjon on February 21, 2019, 09:02:40 AM
2. /home/site/public_html/mi/plugins/AutoInvite/

А должно быть так, как в архиве, т.е.: plugins/Mibew/Mibew/Plugin/AutoInvite/.

3. скопировал default_config.yml и в нем правил только секцию plugins, приложил файл

Вы бы хоть пароль оттуда убрали...  ::)
жестко, никогда бы не додумался что по такому пути нужно загружать, спасибо
да с паролем лопухнулся, спасибо что сказали
Title: Re: Не работают плагины
Post by: faf on February 21, 2019, 10:54:07 AM
жестко, никогда бы не додумался что по такому пути нужно загружать, спасибо

Пожалуйста.

А додумываться там ни до чего не нужно, нужно просто распаковать архив as-is в директорию plugins/.

Code: [Select]
$ tar -tzf auto-invite-plugin-0.1.1.tar.gz
Mibew/Mibew/Plugin/AutoInvite/Plugin.php
Mibew/Mibew/Plugin/AutoInvite/README.md
Mibew/Mibew/Plugin/AutoInvite/LICENSE

В документации (https://docs.mibew.org/plugins/installation.html) порядок установки и структура файлов плагина описаны:

Quote
When you've got the plugin's archive you should extract files from it and upload them to the Mibew Messenger's web server. The files of the plugin should be placed in <mibew base path>/plugins/<Vendor name>/Mibew/Plugin/<Plugin name>/ directory.

А обуславливается эта структура стандартом PSR-0 (https://www.php-fig.org/psr/psr-0/#mandatory).