misc/class
lib/jquery_pnotify, lib/moment, lib/lodash, misc/notification, site/engine, misc/social
if( $.browser.msie && $.browser.version <= 8 ) include('lib/respond'); $._social.__cfg = {"init":[{"service":"basic"},{"fb_app_id":"1997094873850041","service":"fb"},{"vk_app_id":"2978320","service":"vk"},{"service":"twi"}],"like":[{"service":"fb"},{"service":"vk"},{"via":"","channel":"","hash_tag":"","service":"twi"}]}; window._SiteEngine = new classes.SiteEngine( { user_id: 0, controller: 'content_article', action: 'view', content_css_version: '1459538664', social_enabled: 0} );

Faiwer

Блог web-программиста

Заметки про MediaWiki #1

 — 
13 октября 2010 05:05

Плагины

Плагины (Extentions) - позволяют добавить движку какой-либо дополнительный функционал. Например возможность встраивания в статьи видео с youtube-а. Для установки этого плагина необходимо:

  • Закинуть файл (или папку с файлами, что реже) в директорию /extensions
  • Открыть файл LocalSettings.php и добавить в конец require_once("$IP/extensions/YouTube.php"); где в скобках указывается главный файл плагина

В случае youtube плагина, видео можно встроить в статью просто применив конструкцию <youtube>ссылка на ролик</youtube> в своей статье. Есть и более функциональные плагины для этой цели, которые поддерживают сразу несколько видео-хостингов, да и к тому же позволяют менять размер встраиваемого объекта, но в моём случае они почему то взбунтовались... В прочем это отдельная история. Рекомендую также установить плагин ParserFunctions, он понадобиться вам для написания шаблонов (мини-программирование), и Cite, который позволит легко и красиво организовать список сносок, разбрасывая их посреди статьи.

Шаблоны

Шаблоны — это такие же страницы, как и обычные статьи, но в отличие от последних, могут быть использованы как внешняя процедура, которой можно передать параметры. По ссылке неплохое руководство по их созданию и применению (хотя, стоит отметить, далеко не полное). Очень удобная штука, позволит вам систематизировать и одинаково оформить похожие элементы информации или организовать статью как сборную солярку. Например в качестве шаблона может выступать табличка для показа параметров города или игры. Вот небольшой пример. Нажмите просмотр чтобы увидеть его код. В нём используются шаблон условия {{#if}}, который отсутствует в базовой комплектации, но необходим для задания хотя бы элементарной логики. Его и многое другое добавляет в вики плагин ParserFunctions. Думаю нет особого резона расписывать здесь то же, что вы можете найти в статье. Однако вам наверняка пригодиться это - {{:название_статьи}}. Именно таким образом можно встроить в одну статью содержимое другой. На пару с шаблонами можно организовать какую никакую динамичную главную страницу.  

Панель редактирования статьей

Думаю многих не устраивает стандартная панель редактирования статей в mediawiki. Мягко говоря, она убога и даже близко не покрывает возможности базовой сборки движка. Да и к тому же оформление просто туши свет. С него и начну. Я несколько изменил стандартные кнопки, скачать их можно здесь.

На мой взгляд они получились более скромными и понятными. Хотя о вкусах не спорят конечно. В архиве есть и нестандартные кнопки, о которых речь пойдёт позднее. Почти все изображения кнопок хранятся в папке /common/images, размер (23х22) к сожалению без бубна изменить нельзя, да и не особо нужно.

Так как же добавить новые кнопки? Если вас устроит простая подстановка, то достаточно открыть файл /skins/common/edit.js и добавить туда следующую функцию:

function addInsertButton(img, speedTip, tagOpen, tagClose, sampleText) {
    mwCustomEditButtons[mwCustomEditButtons.length] =
    {
        'imageFile': '/skins/common/images/' + img,
        'speedTip': speedTip,
        'tagOpen': tagOpen,
        'tagClose': tagClose,
        'sampleText': sampleText
    };
}
После этого можно приступать к созданию собственных кнопок. Суть функции такова:

  • img — рисунок, загрузите его в папку /skins/common/images/ и назовите (желательно) button_а_тут_по_смыслу.png (ну или .gif)
  • speedTip — всплывающая подсказка кнопки
  • tagOpen и tagClose — встраиваемые куски текста слева и справа от курсора (или выделенного текста)
  • sampleText — в случае, если никакой текст не выделен, указанное здесь значение подставится между tagOpen и tagClose

Вот примеры готовых кнопок:

addInsertButton('button_redirect.png','Перенаправление','#Перенаправление [[',']]','');
addInsertButton('button_category.png','Категория','[[Категория:',']]','');
addInsertButton('inner_link_separated.png','Внутренняя ссылка','[[','|]]','');
addInsertButton(«button_flag.png,'Флаг','{{Флаг|','|}}' ,'');
addInsertButton('button-dash.png','Тире','—','','');
addInsertButton('button_quotes.png','Кавычки','„','»','');
addInsertButton(«button_comment.png»,'Комментарий','<!--','-->' ,'');
addInsertButton(«button_youtube.png»,'Видео с youtube','<youtube>','</youtube>' ,'');
addInsertButton(«button_gallery.png»,'Галерея','<gallery>\nИзображение:|', 
    '\nИзображение:|\nИзображение:|\nИзображение:|\n</gallery>' ,'');
addInsertButton(«button_footnote.png»,'Сноска','<ref>[',']</ref>' ,'');
addInsertButton(«button_footnote_sector.png»,'Список сносок','<references/>','','');
Саму функцию и понравившиеся вам кнопки можно добавить в начало или в конец файла. Некоторые из представленных кнопок требуют установки плагинов (Cite, Youtube).

Теги:
JavaScript MediaWiki
Комментарии
Оставить комментарий
Оставить комментарий:
Отправить через:
Предпросмотр
modules/comment
window._Comment_content_article_90 = new classes.Comment( '#comment_block_content_article_90', { type: 'content_article', node_id: '90', user: 1, user_id: 0, admin: 0, view_time: null, msg: { empty: 'Комментарий пуст', ask_link: 'Ссылка:', ask_img: 'Ссылка на изображение:' } });