Pavel Astakhov
Гуру MediaWiki
- Регистрация
- 06.05.2015
- Сообщения
- 162
- Реакции
- 85
Всем привет!
У меня есть идея создать скин для движка Медиавики, который можно будет модифицировать как обычную вики страницу.
Грубо говоря, сам скин будет абсолютно пустой, все графические элементы будут размещаться на специальной защищенной вики странице.
Каким образом можно разместить элемент "Меню пользователя" на этой специальной странице?
С помощью расширений PhpTags.
Что такое PhpTags? Это расширение, которое работает аналогично Magic words, т.е. вы пишете строки, которые содержат инструкции для расширения, оно их интерпретирует и выполняет заданные действия и может вернуть значение в виде строки или графического элемента (да и вообще чего угодно), например "Меню пользователя".
Чем PhpTags отличается от Magic words?
1) Используется PHP синтаксис. (Важно! очень похоже, что написанный PHP код будет выполняется непосредственно в среде PHP, но это не так. Расширение имеет собственный интерпретатор PHP и никогда не выполняет PhpTag скрипт непосредственно в среде PHP.Работа PhpTags изолированна от PHP точно также как работа Magic words изолирована от PHP).
2) PhpTags работает очень быстро (а также позволяет передавать результат работы одной функции в другую без потери формата данных и производительности)
Как это работает?
Допустим в качестве скина используется страница MediaWiki:MySkin, содержимое этой страницы будет примерно следующим:
Профит? Вы имеете полный контроль над всеми элементами внутри и снаружи. Можете располагать элементы в произвольных местах и в любом порядке, а также управлять содержимым этих элементов.
Примеры:
* Как добавить элементы в главное меню:
* Как запретить доступ к странице:
Как вместо стандартного меню использовать другое меню:
Таким образом можно изменять не только отдельные элементы, но и встраивать и управлять глобальными вещами вроде Foundation и Bootstrap со всеми вытекающими...
Как это выглядит в живую можно посмотреть на сайте test.foxway.org, на примере виджета Slick
Там же есть открытое для редактирования пространство имен Sandbox можете создать свои странички и поиграться...
Самого скина еще нет, это все только концепция.
Требуется несколько добровольцев (фокус группа) которые понимают о чем тут написано и желающих испытать эту технологию на себе. Нужно будет определить список необходимых элементов, их параметров и прочее. Затем испытать как все это работает и написать отзывы для улучшения продукта.
Сам PhpTags в первую очередь разрабатывался для использования на вики страницах и в шаблонах, но меня сейчас интересует именно использование данной технологии в качестве скина.
У меня есть идея создать скин для движка Медиавики, который можно будет модифицировать как обычную вики страницу.
Грубо говоря, сам скин будет абсолютно пустой, все графические элементы будут размещаться на специальной защищенной вики странице.
Каким образом можно разместить элемент "Меню пользователя" на этой специальной странице?
С помощью расширений PhpTags.
Что такое PhpTags? Это расширение, которое работает аналогично Magic words, т.е. вы пишете строки, которые содержат инструкции для расширения, оно их интерпретирует и выполняет заданные действия и может вернуть значение в виде строки или графического элемента (да и вообще чего угодно), например "Меню пользователя".
Чем PhpTags отличается от Magic words?
1) Используется PHP синтаксис. (Важно! очень похоже, что написанный PHP код будет выполняется непосредственно в среде PHP, но это не так. Расширение имеет собственный интерпретатор PHP и никогда не выполняет PhpTag скрипт непосредственно в среде PHP.Работа PhpTags изолированна от PHP точно также как работа Magic words изолирована от PHP).
2) PhpTags работает очень быстро (а также позволяет передавать результат работы одной функции в другую без потери формата данных и производительности)
Как это работает?
Допустим в качестве скина используется страница MediaWiki:MySkin, содержимое этой страницы будет примерно следующим:
PHP:
echo '<table><tr><td>[[MyLogo.png]]</td><td>', new UserMenu(), '</td></tr>';
echo '<tr><td>', new MainMenu(), '</td><td>', new WikiPage( $pageName ), '</td></tr>';
echo '<tr><td>', new GoogleAds(), '</td><td>', new UsedCategories(), '</td></tr></table>';
Профит? Вы имеете полный контроль над всеми элементами внутри и снаружи. Можете располагать элементы в произвольных местах и в любом порядке, а также управлять содержимым этих элементов.
Примеры:
* Как добавить элементы в главное меню:
PHP:
echo new MainMenu( array( 'Моё меню' => array('[[Моя страница]]', '[[Другая страница|еще...]]') ) );
PHP:
if ( $pageName == 'Моя страница' && $userName != 'sysop' ) {
echo 'Доступ к этой странице закрыт';
} else {
echo new WikiPage( $pageName );
}
PHP:
echo new MySuperPuperMegaCoolMenu(); //new MainMenu();
Как это выглядит в живую можно посмотреть на сайте test.foxway.org, на примере виджета Slick
Там же есть открытое для редактирования пространство имен Sandbox можете создать свои странички и поиграться...
Самого скина еще нет, это все только концепция.
Требуется несколько добровольцев (фокус группа) которые понимают о чем тут написано и желающих испытать эту технологию на себе. Нужно будет определить список необходимых элементов, их параметров и прочее. Затем испытать как все это работает и написать отзывы для улучшения продукта.
Сам PhpTags в первую очередь разрабатывался для использования на вики страницах и в шаблонах, но меня сейчас интересует именно использование данной технологии в качестве скина.