MediaWiki:Update-newpages.js
Материал из Телевики — свободной вики-энциклопедии о мире телекоммуникаций
INSAR (обсуждение | вклад) м (оформление) |
INSAR (обсуждение | вклад) м (оформление) |
||
Строка 65: | Строка 65: | ||
/* !!! СЛЕДУЮЩАЯ СТРОКА ОПРЕДЕЛЯЕТ ФОРМАТ ШАБЛОНА */ | /* !!! СЛЕДУЮЩАЯ СТРОКА ОПРЕДЕЛЯЕТ ФОРМАТ ШАБЛОНА */ | ||
− | text += "'''[[Служебная:NewPages|Все]]'''<noinclude>[[Категория:Заглавная страница|{{PAGENAME}}]]</noinclude>"; | + | text += " '''[[Служебная:NewPages|Все]]'''<noinclude>[[Категория:Заглавная страница|{{PAGENAME}}]]</noinclude>"; |
$.post(wgScriptPath + '/api.php', { | $.post(wgScriptPath + '/api.php', { |
Текущая версия на 13:02, 8 марта 2012
/* <pre><nowiki> Автообновление шаблона {{Новые статьи}} -- 23 Августа 2011. Автор: Edward Chernenko Когда участник создаёт статью, автоматически обновляет шаблон {{Новые статьи}}. Дополнительных действий со стороны самого участника не требуется. */ var update_newpages_count = 5; /* можно менять */ var newpages_pageids_unfiltered = new Array(); var newpages_pageids = new Array(); var newpages = new Object(); var edittoken; function get_newpages_ids(how_many_more, callback_when_done) { $.getJSON(wgScriptPath + "/api.php?format=json&action=query&prop=info&pageids=" + newpages_pageids_unfiltered.splice(0, 50).join("|") + (edittoken == undefined ? "&intoken=edit" : ""), function(rq) { var pages = rq['query']['pages']; for(var p in pages) { if(edittoken == undefined) edittoken = pages[p]['edittoken']; if(pages[p]['redirect'] != undefined || pages[p]['ns'] != 0) continue; newpages_pageids.push(p); newpages[p] = pages[p]['title']; } how_many_more -= newpages_pageids.length; if(how_many_more > 0 && newpages_pageids_unfiltered.length > 0) get_newpages_ids(how_many_more, callback_when_done); else callback_when_done(newpages_pageids); } ); } function updateNewPages() { $.getJSON(wgScriptPath + '/api.php?format=json&action=query&list=recentchanges&rcnamespace=0&rclimit=500&rctype=new&rcprop=ids', function(ret){ var pages = ret['query']['recentchanges']; for(var i = 0; i < pages.length; i ++) newpages_pageids_unfiltered.push(pages[i].pageid); get_newpages_ids(update_newpages_count, function(pageids) { var pageids = pageids.sort(function(a,b){return b-a}).splice(0, update_newpages_count); var j = 0; var text = ''; for(var i = 0; i < pageids.length; i ++) { var title = newpages[pageids[i]]; /* !!! СЛЕДУЮЩАЯ СТРОКА ОПРЕДЕЛЯЕТ ФОРМАТ ШАБЛОНА */ text += '• [[' + title + ']]<br />'; } /* !!! СЛЕДУЮЩАЯ СТРОКА ОПРЕДЕЛЯЕТ ФОРМАТ ШАБЛОНА */ text += " '''[[Служебная:NewPages|Все]]'''<noinclude>[[Категория:Заглавная страница|{{PAGENAME}}]]</noinclude>"; $.post(wgScriptPath + '/api.php', { format: 'json', action: 'edit', title: 'Шаблон:Новые_статьи', minor: 1, summary: '[[MediaWiki:Update-newpages.js]]: автоматическое обновление шаблона {{Новые статьи}}', token: edittoken, text: text }); }); }); } if(wgAction == 'edit' || wgAction == 'submit') { $(function(){ if(wgNamespaceNumber == 0 && wgArticleId == 0) $('#wpSave').click(function(){ document.cookie = 'creatingArticle=' + encodeURIComponent(wgPageName) + '; path=/'; }); }); } if(wgArticleId != 0 && wgAction == 'view' && document.referrer.match(/action=(edit|submit)/) && document.cookie.match('creatingArticle=' + encodeURIComponent(wgPageName))) { updateNewPages(); } /* </nowiki></pre> */