Todo & DevZone
Что надо доделать перед открытием pmwiki.ru: Todo:pmwiki.ru
А также:
- отладить групппу ThisSite
$EnableHighlight = 1;
находится в config-ThisSite.php , т.е. не включено по-умолчанию. Либо включить, либо в Синтаксисе это надо упомянуть$('[data-toggle="tooltip"]').tooltip(); // инициализация tooltip'ов
— это было выпилено из index.js , а оно наверняка используется на ph-ph.ru
Что надо сделать перед публичным релизомTodo:PublicRelease
А также:
- есть вот такой сомнительный способ делать
%glyphicon% [[http://#"иконка с tooltip"|]] %%
Вместо этого надо, видимо, добавить свою разметку, см. рекомендации тут. - обновить все рецепты для их совместимости с PHP 5.5 и 7.2, пример как: http://www.pmwiki.org/wiki/Cookbook/LazyWebLinks
- есть проблема совместимости всей конструкции с php 5.5. На этой и более старших версиях выдаются ошибки вида
preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in
Для диагностики надо сказать$EnableDiag = 1;
и сделать?action=ruleset
. Проблема, к сожалению, проявляется в основном в режиме редактирования, и там - целый лес. Подробнее тут: http://www.pmwiki.org/wiki/PmWiki/CustomMarkup#php55
- есть проблема совместимости всей конструкции с php 5.5. На этой и более старших версиях выдаются ошибки вида
- ВОПРОС: есть ли способ добавить контент кастомного поля в индекс/поиск (см. Title, индексация и поиск (историческая статья))? Надо глянуть, как работает:
- подумать, а есть ли смысл выкладывать проект на Git? Оригинальная-то система не слишком это практикует.
phVisitsCounter.js : расширить и переписать
За основу взять: http://finar.pmwiki.ru/PmWikiPh/Visits
Как оно должно работать?
JS-скрипт (срабатывает через 1 секунду после полной загрузки страницы):
- находит в DOM <a href='ПУТЬ_К_СТРАНИЦЕ' class='phCounter' id='phAutoCounter' ; из найденной ссылки берет значение HREF;
- если не находит, операция прерывается
- отправляет path=ПУТЬ_К_СТРАНИЦЕ&link=ПУТЬ_К_СТРАНИЦЕ на PHP-скрипт
- в ответ от PHP-скрипта получает json вида { HREF:100500; }, где HREF — это ссылка, а 100500 — текущее число её просмотров;
- ищет в DOM каждую a.phCounter , у которой href=HREF и дописывает полученные значения после вот так: <a href='HREF' class='phCounter'>…</a>
<span class='phCounter_current'>100500</span>
Также JS-скрипт:
- находит в DOM все ссылки с class='phCounter clickCount' и следит за ними (хотелось бы сделать это без нагрузки на CPU, т.е. может быть просто дописать что-то в HREF);
- если по ним кликнули, повторяет пункты 1-4 , но при этом отправляет на PHP-скрипт: path=ПУТЬ_К_СТРАНИЦЕ&link=Значение_HREF
PHP:
- получает:
- path=ПУТЬ_К_СТРАНИЦЕ , по нему определяет файл, в котором хранить данные. Данные в файле хранятся в построчном виде: URL => 100500.
- link=Значение_HREF . Ищет соответствующий URL и инкрементирует значение. Если не находит — создаёт новую строку.
- проделав всё это, возвращает содержание файла ПУТЬ_К_СТРАНИЦЕ обратно в JS в виде json
PmWiki-часть:
- позволяет администратору просматривать сводную статистику каким-то образом
Косяк в хлебных крошках. Они генерят вот такой код
<ul class='breadcrumb small'> <li> <span class='glyphicon'> <a class='urllink' href='http://localhost:8888' rel='nofollow'></a> </span> </li> <li> <span class='wikitrail'> <a class='wikilink' href='/Rext/Rext'>Что такое Rext</a> </li> <li> <a class='selflink' href='/Rext/Changelog'>ChangeLog</a> </span> </li> </ul>
А всё потому, что <span class='wikitrail'> вбит в trails.php топором. Из-за этого мой $TrailPathSep = '</li><li>'; из thisSite.php не до конца прекрасно срабатывает !
Что с этим можно сделать?
1) уговорить Petko убрать это из ядра.
2) сделать EnableWikiTrails = 0 , и подключить свой собственный пропатченный файл
3) придумать какие-то другие разделители, и застилить их так, чтобы всё выглядело также
4) забить и отложить в todo-лист. Поправить при росте популярности системы.
Что надо сделать перед выкладкой проекта на Git: Todo:git
А также:
- провести рефакторинг прав доступа на базе http://www.pmwiki.org/wiki/PITS/01423
- (подумать) переверстать весь editMode.tmpl так, чтобы в верстке всей обвязки вообще не было bootstrap-классов, связанных с типографикой, цветами, фонами и т.д. Суть в том, чтобы было почти невозможно испортить режим редактирования, меняя bootstrap-local-variables.less , но в Preview при этом страница отображалась в оригинальной стилистике. Тут возникают вопросы:
- что делать, если в дизайне изменён фон сайта?
- что со всеми остальными вкладками в табах, которые подтягивают и используют вики-элементы? Они не будут выглядеть нормально, если дизайнер о них не позаботится
- (сомнительно) расширить SearchPatterns так, чтобы при list=normal в выборку не попадала главная группы, т.е. страница вида Example/Example. Если это возможно, конечно.
Что надо сделать когда-нибудь: Todo:someday
- в ThisSite.PageActions закрыть все ссылки "rel=nofollow". На 2021-04-19 закрыты только ?action=source, поскольку необходимость закрывать остальные неочевидна