RecentChangesMultiple/be

RecentChangesMultiple прызначаны для адначаснага маніторынгу некалькіх вікі, дазваляючы на адной вікі праглядаць усе змены. Хоць гэты скрыпт зроблены як мага бліжэй да стылю стандартных свежых правак, існуе шмат тонкіх адрозненняў (гл. Нататкі ніжэй).

Гэта прылада распрацавана ў першую чаргу для вікі менавіта на ФЭНДОМЕ, але павінен працаваць і для вікі на іншых хостынгах па змаўчанні і мае некаторыя налады для апрацоўкі адменных выпадкаў для пэўных «нефэндомаўскіх» вікі (прыкладам, «&scriptdir=» ніжэй). Пры даданні вікі, не змесцаваных на ФЭНДОМЕ, важна адзначыць, што гэты скрыпт прызначаны для вікі, працоўных на MediaWiki, і патрабуе, каб Mediawiki API быў улучаны на вікі для карэктнай працы скрыпту.


 * Прыклад

Пераклады ці паведамленні пра багі могуць быць апублікаваны на старонцы абмеркавання (але таксама абавязкова паведаміце аўтару Fewfre (на ангельскім), каб выправіць абмылу як мага хутчэй).

Гэты скрыпт можна знайсці на Github, разам з часопісам змен з версіі 1.2.0.

HTTPS
Калі гэты скрыпт запушчаны на вікі з улучаным HTTPS, вы не зможаце загружаць кантэнт з вікі, якія скарыстаюць HTTP. Гэта функцыя бяспекі, улучаная браўзарам. У наш час гэта можа выклікаць праблемы пры выкарыстанні на неангельскіх вікі, бо неангельскія вікі ў наш час не скарыстаюць пратакол HTTPS, а ангельскія вікі скарыстаюць (неангельскія вікі скарыстаюць HTTPS, калі ля вікі ўнікальны дамен, без выкарыстання моўнага прэфікса). У наш час гэту праблему можна вырашыць так: Пасля таго, як HTTPS будзе ўлучаны на ўсіх вікі, гэта праблема будзе выпраўлена.
 * Запусціце гэты скрыпт на вікі, што выкарыстоўвае HTTP.

Гэта праблема будзе па-ранейшаму ўплываць на некаторыя «нефэндомаўскія» вікі, аднак гэта будзе працягвацца і на HTTP. На дадзены момант гэту праблему можна вырашыць памянёным вышэй спосабам, але як толькі HTTPS будзе ўлучаны на ўсіх вікі, «нефэндомаўскія» вікі больш не змогуць загружацца датуль, пакуль не будуць абноўлены да пратакола HTTPS.

Асноўнае прызначэнне
Усё, што сапраўды патрэбна пасля ўсталёўкі скрыпту, — гэта div з  « » і спісам маркераў са спасылкай на дамен вікі (div трэба будзе дадаць праз рэжым выточнага кода). Паўторы ігнаруюцца. Прыклад: Не паказвайце пратакол  ці   перад даменам вікі.
 * runescape.wikia.com
 * wowwiki.com
 * dev.wikia.com

Асноўныя функцыі
Хоць яны не з'яўляюцца часткай Службовая:RecentChanges, некаторыя дадатковыя функцыі ўлучаны па змаўчанні.
 * AjaxRC: На грунце скрыпту AjaxRC ёсць опцыя «аўтаабнаўлення», якая пры актывацыі будзе абнаўляць спіс кожныя 60 секундаў. Файл cookie выкарыстоўваецца для захавання налады сцяжка пасля зграя.
 * Пасля актывацыі вам будзе прапанавана актываваць апавяшчэнні HTML5 (неабавязкова), якія будуць паведамляць вам пра абнаўленні, калі вы пераходзіце ад акна/укладкі. Каб адключыць іх пасля ўлучэння, пстрыкніце значок шасцярэнькі ў апавяшчэнні.
 * [[File:RecentChangesMultiple AjaxDiff icon.png]] AjaxDiff: На грунце скрыптоў AjaxDiff/LastEdited, вы можаце прагледзець «розніцу версій» старонкі, не пераходзячы на іх, націснуўшы значок справа ад спасылкі «розн».
 * [[File:RecentChangesMultiple AjaxGallery icon.png]] AjaxGallery: Пстрыкнуўшы па значку малюнка поруч з зменамі файлаў (няхай гэта будзе часопіса загрузкі, праўкі старонкі файла), вы можаце прагледзець выяву, з якой яно злучана. Для групавых часопісаў вы можаце прагледзець галерэю ўсіх выяў у спісе.
 * [[File:RecentChangesMultiple AjaxPagePreview icon.png]] AjaxPagePreview: Дазваляе праглядаць старонку, не выходзячы з бягучай старонкі.
 *  Нататка : Гэта функцыя непаўнавартасная. У перадпраглядзе не запускаюцца некалькі файлаў CSS і JS. Такім чынам, перадпрагляд скарыстае толькі CSS з бягучай вікі для адлюстравання старонак. У браўзарах, што падтрымваюць рэдагаванне shadow dom (Chrome на момант напісання гэтага) ці хмарных стыляў (Firefox), ужываецца карыстацкі css з вікі (common.css), а таксама JS (для shadow dom), хоць яшчэ не ўсё.
 * Абмеркаванні: На грунце скрыпту DiscussionsFeed, зараз вы можаце бачыць Абмеркаванні у спісе правак. Гл. ніжэй для атрымання інфармацыі пра розныя нюансы.
 * Панэль спасылак вікі: Каб палегчыць навігацыю па пэўнай вікі ў спісе, націск аднаго са значкоў у падзеле «Загружаныя вікі» у верхняй частцы скрыпту/уздоўж левай часткі скрыпту дасць вам спіс спасылак на некаторыя агульныя старонкі для гэтай пэўнай вікі, а таксама некаторыя статыстычныя дадзеныя для гэтай вікі. Калі ў спісе толькі адна вікі, гэта панэль адкрыецца па змаўчанні.
 * Некалькі асобнікаў: Некалькі асобнікаў («кантэйнеры») могуць запускацца на адной старонцы.
 * Сюды ўваходзяць тыя, якія знаходзяцца ў межах тэгаў  і.
 * Магчыма, што кожны асобнік загружае толькі адну вікі, што дазваляе стварыць больш тыповы дызайн RecentChanges, усё яшчэ праглядаючы трохі вікі на адной старонцы. Таксама магчыма абнавіць усе асобнікі, скарыстаючы функцыю.
 * Майце на ўвазе, аднак, што некаторыя з дадатковых параметраў ніжэй правяраюцца толькі ў першым асобніку і ўплываюць на ўсё вікі на старонцы (data-lang, data-hiderail, data-loaddelay, data-timezone).

Дадатковыя параметры
Тым часам як вышэйапісанае працуе, і гэта ўсё, што можа спатрэбіцца, ёсць таксама мноства іншых дадатковых параметраў, якія можна дадаць трыма спосабамі: 1, які ўплывае на кожны RCM, 1, які ўплывае на кожную вікі ў пэўным спісе RCM, і той, які ўплывае на пэўную вікі.

Зменныя URL
Гэта ўплывае на кожны RCM на старонцы. У наш час адзінымі прынятымі зменнымі URL з'яўляюцца тыя, якія выкарыстоўваюцца на стандартнай старонцы RecentChanges. Гл. больш ніжэй.

прыклад:

Дадзеныя
Яны ўплываюць на кожную вікі/скрыпт у цэлым для аднаго тэга.

Паказаць/схаваць дадатковыя параметры (неабавязкова для большасці ўдзельнікаў)

наборы дадзеных ідуць наўпроста ў div, прыкладам:  *list of wikis
 * Прыклад

Ля элементаў спіса
Кожны элемент у спісе павінен пачынацца з URL-адрасы вікі ў фармаце «name.wikia.com» (ці lang.name.wikia.com ці «wikiname.com» (ці іншага дамена верхняга роўня), калі ля вікі ёсць дамен «wikia»). Не ўлучайце «http://» і ўсё, што пасля, ці ўлучаючы першы «/» у корані.

Яны дазваляюць наладжваць пэўныя вынікі вікі, заміж таго каб патрабаваць, каб для кожнай вікі выкарыстоўваліся адны і тыя ж параметры.

Ля кожнага элемента спіса могуць быць дададзены параметры пасля яго ў фармаце «&paramname=», каб дадаць дадатковыя функцыі для адлюстравання/загрузкі ад гэтай вікі.

*fewfre.wikia.com &hideusers=Fewfre,FewBot *wiki.guildwars2.com &favicon=wiki.guildwars2.com/images/thumb/d/df/GW2Logo_new.png/180px-GW2Logo_new.png *pixelmonmod.com &scriptdir=wiki &params=hidemyself:1,limit:5
 * Прыклады

Панэль параметраў
Прапануе спосаб налады параметраў «data-params =» у рэжыме рэальнага часу. На панэлі параметраў ёсць параметр для запамінання параметраў, якія вы змянілі з дапамогай localStorage (па змаўчанні адключана). Кожныя параметры, змененыя да ўлучэння гэтай функцыі, таксама будуць запомнены. Паўторны націск гэтай кнопкі прывядзе да выдалення інфармацыі са сховішча. Адзін з вышэйпаказаных метадаў варта скарыстаць, калі вы хочаце, каб змены захоўваліся на іншым кампутары/без выкарыстання localStorage. Панэль параметраў таксама дазваляе ўлучаць/выключаць Абмеркаванні.

З-за таго, што гэтыя параметры змяняюць вымогі да дысплэя, усе бягучыя змены, пералічаныя на старонцы, будуць вычышчаны, а потым абноўлены.

Параметры СП
Каб дапамагчы атрымваць спіс Службовая:RecentChanges як мага больш, гэты скрыпт прымае RC-стыль параметраў URL (выкарыстоўваецца, як апісана вышэй, з параметрамі «data-params», «&params», URL-зменнымі ці панэллю параметраў). Існуе трохі параметраў, як апісана ніжэй. Калі ласка, не рабіце, каб кожны эфект кожнай вікі быў індывідуальным (так што абмежаванне 50 для 4 вики фактычна абмежавана сумай 200).

Ёсць 4 спосабы паказаць параметры ў скрыпце. Калі паказана больш за адзін, яны будуць «праточвацца», прытым больш пэўная перапісвае менш пэўную (прыкладам: «&params» больш пэўна, чым «data-params»), але толькі калі яны абодва змяняюць адно і тое ж (прыкладам, «days»). Парадак спецыфічнасці такі:
 * 1) [Значэнні па змаўчанні]
 * 2) Зменныя URL – такое ж, як звычайная старонка RecentChanges.
 * 3) data-params
 * 4) Панэль параметраў (параметры часу выканання)
 * 5) &params (звернеце ўвагу, што «панэль параметраў» не будзе перазапісваць іх)

Звернеце ўвагу, што для лагічных перамыкачоў «true/false» значэнне «0» роўна false, а «1» — true.

Абнавіць усё
Абнавіць усё
 * Калі вы скарыстаеце некалькі асобнікаў на адной старонцы, усе яны могуць быць абноўлены адразу, падаўшы клас «rcm-refresh-all» для элемента на старонцы. прыкладам:

Афармленне CSS
Гэты скрыпт скарыстае як мага больш за класы RecentChanges па змаўчанні, каб дазволіць стылю быць паслядоўным. Большасць функцый, злучаных з RCM, таксама скарыстаюць імёны класаў, якія дазваляюць наладжваць. Некаторыя карысныя класы:
 * ахапляе цэлую групу ўводу/запісы, прытым $ 1 з'яўляецца URL з кропкамі ў выглядзе працяжніка (прыкладам: dev-wikia-com). Па змаўчанні выкарыстоўваецца стыль «.rcm-tiled-favicon», але яго можна скарыстаць для налады кожных дадзеных, выдатных ад іх вікі.
 * ахапляе ўсю групу ўводу/запісы, прытым $1 з'яўляецца нумарам прасторы імёнаў (прыкладам: 0 для асноўнай прасторы, 1 для абмеркаванняў і г. д.).
 * уяўляе значок злева ад кожнага запісу. Можа выкарыстоўвацца для змены/выдаленні значка.

Датуль, пакуль «data-extraLoadingEnabled» не будзе адключана, карыстацкія спасылкі таксама маюць атрыбуты, дададзеныя пасля атрымання дадзеных. азначае, што ўдзельнік заблакаваны на гэтай вікі,  дазваляе наладжваць імёны на грунце групы ўдзельнікаў (з «$1», якая з'яўляецца ідэнтыфікатарам uniq для гэтай групы), і дадаецца   для ананімных удзельнікаў. [ Тут] вы можаце знайсці агульныя ідэнтыфікатары груп (пералічаныя як «group-$1»), і [//dev.wikia.com/api.php?action=query&format=xml&list=&meta=siteinfo&siprop=usergroups тут] вы можаце знайсці спіс усіх груп (і праў, якія прыходзяць з імі, калі цікава); проста зменіце URL-адрас вікі, каб убачыць яго для вашай мэтавай вікі (калі ўдзельнік мае якія-небудзь правы). Прыкладам:

Існуе мноства іншых класаў (або карыстацкіх, або класаў RecentChanges), якія можна скарыстаць для налады скрыпту. Лепшы спосаб знайсці іх — проста праверыць элемент, які вы хочаце наладзіць, і перайсці адтуль.

Абмеркаванні
Пад канец 2016 года ФЭНДАМ пачаў укараняць сваю сістэму Абмеркаванняў на новых вікі, паступова выцясняючы звыклыя форумы. Праўкі ў Абмеркаваннях не адлюстроўваюцца на старонцы Свежых правак, таму яны таксама ўлучаны ў скрыпт. За гэтым рушыла ўслед трохі нечаканых вынікаў:
 * Абмеркаванні ўлучаюцца па змаўчанні. Яго можна адключыць на панэлі параметраў ці праз атрыбут.
 * Не ўсе тэмы ў Абмеркаваннях маюць назвы, таму, калі загаловак адсутнічае, першыя 35 знакаў выточнага паведамлення выкарыстоўваюцца для яго ідэнтыфікацыі.
 * Бо загаловак тэмы не ўлучаны ў інфармацыю ад API, вернутую для пэўнага паста, загалоўкі часта трэба здабываць асобна (скарыстаючы той жа механізм другой загрузкі, што і загалоўкаў тым на сцяне/форуме, гэтак жа як і гэта, бягучая функцыя можа быць адключана з дапамогай атрыбута.
 * Многія налады не ўплываюць на Абмеркаванні. Некаторыя з іх працуюць: hidemyself, hideusers, onlyshowusers, limit і days (дэталі гл. ніжэй).
 * Limit - толькі да 50. Будзе працаваць ліміт менш 50.
 * hidemyself / hideusers - паўплывае на максімальную колькасць тым у Абмеркаваннях, якія вы бачыце (бо частка тым будзе выдалена з загружанага спіса).
 * Гэтыя змены ў наладах загружаюцца у дадатак да нармальным зменам. Калі для ліміту ўсталявана значэнне менш ці роўна 50, гэта можа падвоіць вынікі, што адлюстроўваюцца для пэўнай вікі.
 * Абмеркаванні правяраюцца толькі на вікі на ФЭНДОМЕ (бо яны існуюць вылучна на ім). Тым не менш, першы раз, калі скрыпт загружае змены на вікі-праектах, яму трэба праверыць усё вікі, каб даведацца, ці існуюць Абмеркаванні там. Калі яны вернуць абмылу 404, спроба загрузіць гэту пэўную вікі не паўторыцца.
 * Бо API вяртае аватары і вынікі галасавання, гэта інфармацыя таксама ўлучана. Яе можна выдаліць з дапамогай карыстацкага CSS, скарыстаючы класы  і   адпаведна.
 * З-за асаблівасцяў працы API праўка паведамленняў не адлюстроўваецца як асобная праўка. Заміж гэтага паведамленне будзе проста адлюстроўвацца вышэй у спісе (калі дата стварэння ўсё яшчэ знаходзіцца ў межах верхніх 50). Адзін з магчымых нечаканых пабочных эфектаў палягае ў тым, што калі нехта рэдагуе паведамленне на наступны дзень пасля яго стварэння, ён не будзе адлюстроўвацца абодва дні.

Пераклад
Гэты скрыпт пераводзіцца двума рознымі спосабамі: JS-файл для перакладаў можна знайсці на Github; пераклады таксама могуць быць апублікаваны на старонцы абмеркавання ці тут. Перавядзіце толькі першы падзел «TEXT», а не «MESSAGES».
 * 1) Тэкст скрыпту ("TEXT" у кодзе) — звычайны спосаб перакладу, таксама як і пераклад кожнага іншага скрыпту, які трэба абнаўляць ручна.
 * 2) Тэкст са старонкі Свежых Правак ("MESSAGES" у кодзе) — гэта робіцца аўтаматычна, загружаючы тэкст, што звычайна знаходзіцца на старонцы Службовая:RecentChanges з сервера. Кожная мова, што падтрымваецца ФЭНДАМАМ, павінна падтрымвацца гэтым скрыптам для такога тыпу перакладу.

Вялікі дзякуй чальцам Моўнай Брыгады Вікія за вялікую колькасць перакладаў, зробленых для гэтага скрыпту!

Гісторыя змен
Гл. часопіс змен для дэталёвых змен ці старонкі гісторыі для кожнага скрыпту (/code.js для V1.0.3 і папярэдніх, /code.2.js для V1.1.7 і папярэдніх і /core.js для бягучага).
 * 14 лютага 2015 – Гатова альфа-версія (з наступным перапынкам).
 * 22-27 траўня 2015 – Гатова бэта-версія.
 * 28 чэрвеня 2015 – Скрыпт апублікаваны.
 * V1.1.0 – 26 ліпеня 2015 – Кодаў перапісаны для выкарыстання API MediaWiki (гл. ніжэй).
 * V1.2.0 – 12 снежня 2015 – Зараз скрыпт скарыстае загрузнік для загрузкі дадзены ў скрыпт.
 * V2.0 - 29 кастрычніка 2016 - Скрыпт перапісаны ў TypeScript.
 * V2.6 - 28 студзеня 2017 - Абнаўленне зараз толькі здабывае і дадае новыя элементы заміж таго, каб здабываць і паўторна дадаваць усе змены. Гэта дазволіць больш эфектыўна скарыстаць абмежаванні вялікай выбаркі.

26 ліпеня 2015 - ліставанне кода для API MediaWiki – V1.1.0
Паказаць дэталі Асноўнымі мэтамі гэтага ліставання былі:


 * 1) Даданне аўтаматычнай падтрымкі перакладу тэксту Свежых правак.
 * 2) Выдаленне залежнасцяў ад YQL (інфармацыя, атрыманая наўпроста з вікі праз API). Гэта таксама спрыяе прыводзіць да хутчэйшай загрузкі.
 * 3) Скарыстаючы падтрымку API, пашырана падтрымка Службовая:RecentChanges (дробныя змены адзначаны, больш за кантроль над кантэнтам ("days", "limit", "showbots" і г. д.)).
 * 4) Ліставанне кода для таго, каб ён быў крыху больш эфектыўным.


 * Важныя нататкі:
 * "&subdir" выдалены і "&scriptdir" дададзены (можа запатрабавацца для нефэндомаўскіх вікі, гл. вышэй). Прыкладам:
 * «data-params» зараз прапануе значна большую падтрымку. "days" і "limit" зараз працуюць да той жа сумы, што і для кожнай вікі у спісе. Такім чынам, гэта павінна быць абмежавана некалькімі днямі / ніжняй мяжой, каб пазбегнуць загрузкі патэнцыйна некалькіх тысяч змен. Асобныя вікі могуць мець гэтыя абмежаванні, змененыя з дапамогай «&params»


 * Змены:
 * Зменены пераклад, каб скарыстаць дакладнейшую інфармацыю i18n са старонкі GitHub на ФЭНДОМЕ для RC_TEXT. Загружае RC_TEXT з сервера на грунце вашай мовы.
 * Асноўныя тэмы форума/сцены зараз таксама правяраюцца [аднаўленне, выдаленне, пераназванне] для «адказаў», заміж таго, каб чытаць іх цаліком як адну тэму.
 * Усе (нармальныя) параметры Свежых правак падтрымваюцца, за выняткам « hideenhanced », «from» і прагляду абранай прасторы імёнаў.
 * Зараз праўкі ботаў могуць быць паказаны (адключана па змаўчанні), і адзначаны як «малыя» праўкі.
 * Параметр gApp ператварыўся ў клас RecentChangesMultiple (каб патэнцыйна запускаць трохі па якой-небудзь прычыне, плюс аўтар аддае перавагу «традыцыйныя» структуры класа OO)
 * Такім чынам, #rc-content-multiple id зараз павінен быць класам .rc-content-multiple, каб дазволіць некалькі асобнікаў (хоць выкарыстанне ідэнтыфікатараў па-ранейшаму падтрымваецца)
 * Дадатковыя CSS-класы для старонкі Свежых правак.
 * Перапісаны параметры ў спісах СП (каб прыўнесці крыху больш за інфармацыю пра тое, як гэта выглядае ў сістэме mw)
 * Новы клас «WikiData» для захоўвання дадзеных, спецыфічных для вікі, больш зразумелай выявай, а таксама падаванне дапаможных метадаў

Нататкі

 * «Чырвоныя спасылкі» для старонак, якія не існуюць, не будуць адлюстроўвацца ў большасці часопісаў, бо гэту інфармацыю трэба будзе здабываць асобна для кожнай старонкі. Па змаўчанні яны адлюстроўваюцца чырвоным колерам.
 * Патруляванне не падтрымваецца ў наш час. Гэта злучана з абаронай MediaWiki, якая забараняе доступ да інфармацыі пра патруляванне, калі яна не дазволена (строга парушае працу скрыпту, калі ён спрабуе атрымаць яе без дазволу). Нават калі права існуе, інфармацыя не можа быць атрымана з-за патрэбы ўваходу ў гэту вікі, якая недаступная з-за крос-дамена (скрыжаванні адрасоў розных вікі (для бяспекі браўзара)).
 * Часопісы:
 * Часопісы могуць рабіць дзіўныя рэчы ў «рэдкіх» выпадках (прыкладам, дзеяння толькі для супрацоўнікаў і рэдка дзеяння толькі для пашырэнняў). Іх падтрымка можа быць дададзена, але яна не ўлучана па змаўчанні, бо кожны з гэтых параметраў павінен быць правераны ручна для кожнага тыпу дадзеных (а часам і кожнага пэўнага дзеяння).
 * (Часопіс праў удзельніка) — мае рацыю будуць пералічаны з выкарыстаннем іх «id» заміж перакладу назвы групы ўдзельнікаў. Такім чынам, гэта будзе падобна на «sysop». Не ўсё вікі маюць аднолькавыя групы, таму атрыманне перакладаў ад кожнай вікі больш злучана з нечым вялікім.
 * Гэты скрыпт здабывае пераклады RecentChanges наўпроста з сервера, бо такія пераклады могуць адрознівацца пры выкарыстанні на нефэндомаўскіх вікі. Калі загрузка не атрымоўваецца даволі доўга, старонка проста па змаўчанні будзе на ангельскай мове.

Рознае

 * «http: //» не варта скарыстаць у гэтым скрыпце, каб ён аўтаматычна не рабіўся спасылкай (гэта замінае працэсу), і з'яўляецца на Службовая:LinkSearch як старонка з вонкавай спасылкай (можа быць непажадана).
 * Скрыпт прызначаны для вікі на ФЭНДОМЕ, але павінен працаваць для кожнай вікі (пры ўмове, што яе версія рухавічка не вельмі састарэла).
 * Некаторыя нефэндомаўскія вікі проста не працуюць з-за асаблівасцяў налад (старая версія MediaWiki, адключаны API і г. д.)
 * Скрыпт павінен запускацца з выкарыстаннем code.2.js. Хоць першая версія больш не падтрымваецца, выточную версію Atom-feed можна знайсці ў файле code.js з дакументацыяй, якую можна знайсці тут.

Вымогі

 * jQuery
 * Усе вікі ў скрыпце павінны:
 * Працаваць на рухавічку Mediawiki (версія не ніжэй 1.16)
 * Працаваць з падлучаным Mediawiki API.
 * Браўзар павінен падтрымваць ECMAScript5 (падыдзе кожная не вельмі старая версія браўзара)
 * Скрыпт павінен працаваць на вікі ФЭНДОМА (каб быць упэўненымі, што ён мае доступ да такіх рэчаў, як код для згортвання спісаў).