MediaWiki:Comments.js
Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.
- Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
- Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
- Internet Explorer / Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
- Opera: Нажмите Ctrl+F5.
// из [[:en:MediaWiki:Comments.js]], автор [[:en:User:TheFearow]]
// смотрите [[en:Wikinews:Commentary pages on news events]].
// ==========================================================================
// MediaWiki interface button for Comments page based on [[commons:mediawiki:extra-tabs.js]].
// Originally written by Dbenbenn, Avatar, Duesentrieb and Arnomane
// Усовершенствовал для Викиновостей bawolff. Установил darklama
// переписал bawolff в мае 2011.
//
// При копировании в другие Вики, желательно создать специальный css.
// Выполняет проверку api.php на существование страницы,
// поэтому несуществующая страница комментариев будет красной,
// а существующая - обычной вкладкой.
// Будет лучше, если он сможет проверит несколько страниц одного запроса.
var checkCommentaryPageExist = function (pageName, id, query) {
pageName = mw.util.wikiUrlencode( pageName );
var success = function (x) {
if ( !x || !x.query || !x.query.pages ) {
mw.log( "Error getting redlinks for opinion tab" );
return;
}
if ( x.query.pages['-1'] ) {
// Means its missing.
var url = mw.config.get( 'wgScriptPath' ) +
'/index.php?action=edit&redlink=1&title=' + pageName + '&' + query;
$( '#' + id + ' a' ).attr( 'href', url );
$( '#' + id ).addClass( 'new' );
}
};
$.ajax(
mw.config.get( 'wgScriptPath' ) + '/api.php?action=query&format=json&titles=' + pageName
).then(success);
};
$(function comment() {
// Интерфейс. При переводе изменять только это.
var OpinionTabName = 'Комментарии';
var TalkTabName = 'Обсуждение статьи';
var ArticleTabName = 'Статья';
var OpinionTabTooltip = 'Выскажите свою точку зрения';
var OpinionNS = 102;
// Дополнительно для добавления и редактирования url:
var OpinionParams = 'preload=Викиновости:Комментарии/Заготовка&editintro=Викиновости:Комментарии/Вступление';
// Конец перевода.
// -------------------
var title = mw.config.get('wgTitle');
var skin = mw.config.get('skin');
if (title === 'Main Page' || title === 'Заглавная страница') return;
var portlet = skin === 'vector' ? 'p-namespaces' : 'p-cactions';
switch(mw.config.get('wgNamespaceNumber')) {
case 1:
case 0:
var targetPage = mw.config.get( 'wgFormattedNamespaces' )[OpinionNS] + ':' + title;
var url = mw.util.getUrl( targetPage );
var res = mw.util.addPortletLink(
'p-namespaces',
url,
OpinionTabName,
'ca-comments',
OpinionTabTooltip
);
if ( !res ) {
// No p-namespaces portal. Must be monobook then.
var res2 = mw.util.addPortletLink(
'p-cactions',
url,
OpinionTabName,
'ca-comments',
OpinionTabTooltip,
undefined, /* accesskey */
jQuery('#ca-edit')[0] /* nextnode */
);
if ( !res2 ) {
mw.log( "Error adding opinions tab" );
}
}
checkCommentaryPageExist(targetPage, 'ca-comments', OpinionParams);
break;
case 90: /* LQT thread */
var targetPage = mw.config.get( 'wgTitle' ).replace(/\/.*$/, '');
var talkTarget = mw.config.get( 'wgFormattedNamespaces' )[1] + ':' + targetPage;
var before = document.getElementById('ca-nstab-thread');
var talk = mw.util.addPortletLink(
portlet,
mw.util.getUrl( talkTarget ),
TalkTabName,
"ca-main-talk", undefined, undefined, before
);
mw.util.addPortletLink(
portlet,
mw.util.getUrl( targetPage ),
ArticleTabName,
"ca-nstab-main",
undefined, undefined, talk
);
checkCommentaryPageExist(targetPage, 'ca-nstab-main', '');
checkCommentaryPageExist(talkTarget, 'ca-main-talk', '');
break;
case OpinionNS:
var targetPage = mw.config.get( 'wgTitle' );
var talkTarget = mw.config.get( 'wgFormattedNamespaces' )[1] + ':' + targetPage;
var before = document.getElementById('ca-nstab-' +
mw.config.get( 'wgFormattedNamespaces' )[OpinionNS].toLowerCase() );
var talk = mw.util.addPortletLink(
portlet,
mw.util.getUrl( talkTarget ),
TalkTabName,
"ca-main-talk", undefined, undefined, before
);
mw.util.addPortletLink(
portlet,
mw.util.getUrl( targetPage ),
ArticleTabName,
"ca-nstab-main",
undefined, undefined, talk
);
checkCommentaryPageExist(targetPage, 'ca-nstab-main', '');
checkCommentaryPageExist(talkTarget, 'ca-main-talk', '');
break;
/* do stuff */
}
});