= [[wiki:plugin:repository|Репозиторий расширений]]
====== API репозитория расширений ======
API позволяет запрашивать список доступных расширений DokuWiki. Он доступен по адресу https://www.dokuwiki.org/lib/plugins/pluginrepo/api.php
Этот API используется плагином [[wiki:plugin:extension|Extension Manager Plugin]].
''/lib/plugins/pluginrepo/api.php?fmt=json&ext[]=plugin1&ext[]=plugin2''
''/lib/plugins/pluginrepo/api.php?fmt=json'' with ''&ext[]=plugin1'', ''&tag[]=tag1'', ''&mail[]=mail1'', ''&type[]=4'' and/or ''&q=text''.
===== Команды =====
Использование ''cmd'' параметра определяет, что возвращается API.
* ''ping'' -- просто возвращает одну единицу, чтобы показать, что соединение работает
* ''query'' -- действие запроса по умолчанию, описанное ниже
===== Форматы =====
Определяет формат вывода и указывается параметром ''fmt'' Может быть:
* ''debug'' -- print_r для удобного просмотра
* ''xml'' -- XML не следует использовать, если этого можно избежать
* ''yaml'' -- Данные в кодировке YAML
* ''php'' -- PHP сериализованные данные
* ''json'' -- Данные в кодировке JSON (по умолчанию)
* укажите имя обратного вызова в качестве ''cb'' параметра и это JSONP. пример: api.php?fmt=json&cb=my_callback
===== Фильтры =====
Все фильтры можно комбинировать и использовать функцию AND.
==== Имя расширения ====
Укажите одно или несколько имен в ''ext[]'' параметре. Префикс ''template:'' для шаблонов.
На данный момент только полные совпадения.
пример: ''api.php?ext[]=wrap&ext[]=template:ach''
==== Полнотекстовый поиск ====
Параметр ''q'' позволяет задать полнотекстовый запрос (с расширением запроса). Если не ''limit'' указано, то ограничение устанавливается равным ''50''. Если не ''order'' указано, то результат сортируется по баллу результата.
Полнотекстовый индекс использует поля плагина, имени, описания, автора и тега.
пример: ''api.php?q=wrap''
==== Тип ====
Для фильтрации по типу используйте ''type'' параметр, можно сложить несколько типов.
Поддерживается:
* 1 => 'Syntax',
* 2 => 'Admin',
* 4 => 'Action',
* 8 => 'Render',
* 16 => 'Helper',
* 32 => 'Template',
* 64 => 'Remote',
* 128 => 'Auth'
пример: ''api.php?type=5''
==== Теги====
Фильтрация по одному или нескольким тегам (ИЛИ) с использованием ''tag[]'' параметра.
На данный момент только полные совпадения.
пример: ''api.php?tag[]=media&tag[]=video''
==== Электронная почта====
Мы не раскрываем адреса электронной почты, чтобы избежать спама. Вместо этого используется MD5 адреса электронной почты в нижнем регистре. Вы можете использовать его для запроса по адресу(ам) электронной почты с помощью ''mail'' параметра.
пример: ''api.php?mail[]=4933823dc5f71300a20a506869fcf4d9''
===== Заказ=====
Вы можете влиять на порядок результатов с помощью ''order'' параметра.
Поддерживаемые поля:
* последнееобновление
* популярность
* плагин ('по умолчанию')
* все остальные непроизводные поля БД
пример: ''api.php?order=lastupdate''
===== Предел=====
Вы можете ограничить количество результатов с помощью ''limit'' параметра.
пример: ''api.php?limit=5''
===== Old Repository API =====
''/lib/plugins/pluginrepo/repository.php'' возвращает данные плагина/шаблона в виде XML. Можно использовать тот же синтаксис, что и для сортировки/фильтрации [[wiki:plugin:repository:manual#pluginrepo_table_component|таблицы репозитория]], а также запросить массив именованных плагинов.
Все еще используется, например [[wiki:teams:translate-tool|Translate Tool]]\\
(см. [[https://github.com/dokufreaks/dokuwiki-translation/blob/master/src/org/dokuwiki/translatorBundle/Services/DokuWikiRepositoryAPI/DokuWikiRepositoryAPI.php#L33|код]] по ссылке [wiki]/lib/plugins/pluginrepo/repository.php?includetemplates=yes)
Доступные фильтры:
* **плагины** – [массив строк] возвращает только именованные плагины
* **тип_плагина** – [целое число] 1, 2, 4, 8, 16, 32=шаблоны
* **plugintag** – [string] фильтрует результат по плагинам с соответствующим тегом. Фильтровать по тегу и типу можно одновременно, хотя компонент синтаксиса таблицы обычно не использует эту функцию.
* **pluginsort** – [author/lastupdate/type/popularity/compatibility] результат сортируется по именованному полю. Также доступны сочетания клавиш (author=a).
* **showall** – [yes] возвращает плагины независимо от их безопасности или устаревшего статуса, обычно пропускается.
* **includetemplates** – [yes] возвращает шаблоны И плагины, обычно возвращаются только плагины. Объедините с ''plugintype=32'' для возврата только шаблонов.
Пример вызова для получения данных о плагинах синтаксиса:
http://www.dokuwiki.org/lib/plugins/pluginrepo/repository.php?plugintype=1&plugintag=list
Пример вывода:
captcha
plugin:captcha
5947
CAPTCHA Plugin
Use an image verification (CAPTCHA) to defeat spambots
Andreas Gohr
Action, Helper
2016-01-24
2015-08-10
2014-09-29
2014-05-05
2013-12-08
captcha
spam
https://github.com/splitbrain/dokuwiki-plugin-captcha/zipball/master
https://github.com/splitbrain/dokuwiki-plugin-captcha
https://github.com/splitbrain/dokuwiki-plugin-captcha/issues
http://donate.dokuwiki.org/CAPTCHA
...
...