PmWiki.ru минималистичный wiki-движок, работающий без базы данных

Баг в editmore.php, рецепте для PmWiki

Речь идет о рецепте EditMore, добавляющем удобные поля в режим редактирования, в котором обнаружился Баг.

Как обычно, причина в кириллических шрифтах. Из-за них, в русскоязычных pmwiki название страницы никогда не соответствует названию статьи в ней. Именно поэтому ссылки на сайте кодируются так: [[Group.Name|+]] , а не [[Group.Name]] , как на английских сайтах. То же относится к категориям. В моих категориях даже есть два списка: самих названий страниц для редактора (то есть для меня) и русскояычных титлов для них.

Краткая ссылка для категорий, формирующаяся как [[!ИмяКатегори]] увы не поддерживает вывод своего титла в ссылке: код [[!ИмяКатегори|+]] , уж не знаю почему, не работает. Это следовало бы знать разработчику EditMore, тогда бы он не включил в код своего плагина автоматический фильтратор, приводящий любой текст, введенный в поле для категорий, к виду [[!ИмяКатегори|+]] .

Не долго думая, я "копнул исходники" скрипта (удивительно слышать от себя такую фразу - ровно год назад слова php, java и html для меня значали почти одно и то же!), после чего изменил строчки:

  • 318: $EMTCleanArray = array('[',']','!', '|+',
  • 333: $EMTFixed .= '[[Category.'.$EMTM.'|+]], ';

Теперь скрипт работает корректно и выводит список ссылок по титлам категорий. Чтобы добавить к статье категории, достаточно перечислить желаемые названия страниц в соответствующем поле. Остальное скрипт достроит сам. Обратите внимание, что моя модификация работает только если ваша группа для тэгов соответствует дефолтной - Category. В противном случае вместо Category в 333й строчке нужно указать вашу группу для тэгов.

Update 2013-07-22: вообще-то я не рекомендую использовать этот рецепт. Вместо этого можно и нужно использовать мою классуную и архитектурно стройную разработку, которую я пока еще не придумал как представить. Если вам нужен рецепт для PmWiki, позволяющий легко создавать поля для режима редактирования (checkbox, текст), сделайте запрос, оставив комментарий к статье.

С помощью pmwiki.org/wiki/Cookbook/SourceBlock научиться выводить исходный код файлов рецептов и сделать отдельный пост с рецептом по созданию кастомных конфигурируемых полей страниц.