Manual:Watchlist/cs

watchlist (seznam ke sledování) je sada stránek, které si uživatel vybral ke sledování změn. Seznamy sledovaných položek jsou dostupné všem přihlášeným uživatelům a v seznamech změn způsobují specifické další chování, například "nedávné změny". Obecněji řečeno, seznam sledovaných položek uživatele umožňuje identifikaci změn, které ho zajímají. Titul nemusí existovat, aby se dal sledovat.

Seznam sledovaných stránek uživatele není k dispozici ostatním uživatelům s výjimkou případů, kdy je zahrnut v agregaci, jako je například přehled nesledovaných stránek dostupný privilegovaným uživatelům. Uživatelé si mohou své seznamy sledovaných stránek ponechat v soukromí nebo je sdílet s ostatními, například za účelem sledování vandalismu či nežádoucích změn na konkrétních stránkách.

Sledování stránek

Uživatelé si mohou přidat stránky do svého seznamu sledovaných stránek pomocí odkazu Sledovat, který se nachází na každé stránce. Ve výchozím vzhledu se nachází jako záložka akcí v horní části stránky. Pokud je povoleno sledování AJAX, použije se požadavek AJAX, pokud je to možné, k přidání sledování a aktualizaci rozhraní.

Stránky lze také přidávat do seznamu sledovaných položek během úprav a při provádění určitých operací, včetně přesouvání a mazání. V těchto případech se při potvrzení operace zpřístupní zaškrtávací políčko, které umožňuje přepínání. Toto chování lze dále upravit na kartě Sledované stránky v sekci Special:Preferences.

Od MediaWiki 1.35 si můžete volitelně zvolit dočasné sledování stránky. K aktivaci je potřeba $wgWatchlistExpiry. Tato možnost je pak k dispozici při úpravách nebo výběru sledování stránky přes odkaz Sledovat nebo action=watch. Doby platnosti dostupné při úpravách lze upravit pomocí systémové zprávy MediaWiki:Watchlist-expiry-options.

Stránky do seznamu sledovaných stránek je také možné hromadně přidávat pomocí editoru seznamu sledovaných stránek v režimu #Raw.

Odebírání stránek

Odebrání stránky ze seznamu sledovaných stránek lze provést téměř identickým způsobem jako její přidání. Při prohlížení sledované stránky se odkaz Sledovat nahradí odkazem Nesledovat, který po kliknutí odstraní stránku ze seznamu sledovaných stránek. Stejně jako u sledování se v tomto případě používá požadavek AJAX, pokud je to možné.

Stránky ze seznamu sledovaných stránek je také možné odstranit pomocí editoru seznamu sledovaných stránek v režimu normal nebo raw, oba jsou popsány níže.

Úprava seznamu sledovaných položek

Editor seznamu sledovaných položek nabízí několik režimů pro správu obsahu seznamu sledovaných položek. Uživatelé mohou ze svého seznamu sledovaných stránek najednou odstranit několik položek, mohou vymazat celý seznam sledovaných stránek a mohou upravovat nezpracovaný seznam sledovaných stránek.

Normální režim

Standardní editor seznamu sledovaných titulů je dostupný na a nabízí seznam sledovaných titulů. Uživatelé vybírají tituly, které chtějí ze seznamu sledovaných titulů odstranit, a po potvrzení operace je tak učiněno.

Režim Raw

Pohodlným způsobem úpravy seznamu sledovaných položek je použití režimu úprav v surovém stavu, který je přístupný přes Special:Watchlist/raw. Zobrazí se celý obsah seznamu sledovaných položek v prostém textovém seznamu s jedním názvem na řádek, který lze poté dle potřeby upravovat.

To poskytuje pohodlný způsob hromadného přidávání nebo hromadného odebírání položek ze seznamu sledovaných položek a přístup k seznamu sledovaných položek za účelem jeho kopírování do jiných wiki stránek nebo sdílení s ostatními uživateli.

Seznamy změn

Nedávné změny

Přítomnost stránky na seznamu sledovaných položek způsobí, že se zvýrazní, když se objeví v seznamech změn, například Special:Recentchanges a Special:Recentchangeslinked.

Seznam sledovaných stránek

Stránka Special:Watchlist poskytuje uživatelům kompletní seznam nejnovějších změn stránek na jejich seznamu sledovaných stránek, který lze dále filtrovat a přesně určit konkrétní třídy úprav.

Některé funkce této stránky lze přizpůsobit pomocí uživatelských nastavení, které jsou přístupné na kartě Sledované stránky v aplikaci Special:Preferences, včetně:

  • doba zobrazení v seznamu sledovaných položek nebo maximální počet úprav
  • zda se má omezit na nejnovější úpravu stránky, nebo se mají zobrazit všechny relevantní změny
  • výchozí nastavení filtrování pro úpravy od robota, drobné úpravy nebo vlastní úpravy

Technické detaily implementace

Kód seznamu sledovaných položek je rozptýlen v několika souborech, včetně:

  • /includes/actions
    • WatchAction.php
    • UnWatchAction.php
  • /includes/user/User.php
  • /includes/specials/SpecialEditWatchlist.php
  • /includes/jobqueue/jobs/WatchlistExpiryJob.php
  • /resources/src/mediawiki.page.watch.ajax.js

Všechny výše uvedené však používají třídu WatchedItemStore.php pro provádění akcí souvisejících s databází, což je třída úložné vrstvy pro třídu WatchedItems. Třída WatchedItem představuje jednoduchý sledovaný objekt (uživatel, stránka (objekt LinkTarget), časové razítko oznámení, doba platnosti).

WatchedItemStore se postará o:

  • Přidání stránky/seznamu stránek do seznamu sledovaných stránek
  • Odebrání stránky ze seznamu sledovaných stránek
  • Počítání sledovaných položek
  • Počítání počtu nepřečtených oznámení
  • Kontrola, zda je stránka sledována
  • Nastavení/Resetování/Aktualizace časového razítka oznámení
  • Nastavení/aktualizace data vypršení platnosti sledovaných položek
  • Odebrání stránek s prošlou platností ze seznamu sledovaných stránek
  • ...

Třída SpecialWatchlist.php se provede při volání třídy Special:Watchlist.

Jak se stránka přidá do seznamu sledovaných stránek

  1. Uživatel žádá o přidání stránky do svého seznamu sledovaných stránek. To se může stát následujícími způsoby:
    • Kliknutím na hvězdičku
    • Vytvoření stránky
    • Kontrola Sledovat tuto stránku po úpravě
    • Úprava Special:Watchlist/edit nebo Special:Watchlist/raw
  2. Stránka a diskusní stránka jsou pro uživatele přidány do tabulky watchlist.

Co se stane, když je stránka upravena

  1. Stránka je upravena.
  2. Spustí se háček, který volá funkci updateNotificationTimestamp z WatchedItemStore. Tím se aktualizuje časové razítko oznámení pro danou stránku pro každou stránku seznamu sledovaných položek sledovaného uživatele, s výjimkou stránky editora. (To se provede spojením stránky s tabulkou watchlist pro uživatele.)
  3. Časové razítko oznámení pro tabulku uživatele s hodnotou watchlist již není NULL, a proto se nyní jedná o nepřečtené oznámení.
  4. Úloha je zařazena do fronty v závislosti na hodnotě $wgWatchlistPurgeRate a položky s prošlou platností jsou odstraněny ze seznamu sledovaných položek.

Co se stane, když se klikne na nepřečtené oznámení

  1. Uživatel klikne na nepřečtenou položku v seznamu sledovaných položek
  2. Funkce resetNotificationTimestamp je volána z proměnné WatchedItemStore s parametry user a title. Tím se hodnota dané položky resetuje zpět na NULL.

Kdy jsou položky s prošlou platností odstraněny ze seznamu sledovaných položek?

  • Po každé úpravě je do fronty zařazena úloha v závislosti na hodnotě $wgWatchlistPurgeRate a položky s prošlou platností jsou odstraněny ze seznamu sledovaných položek.
  • V malých wikinách je k dispozici skript, který lze naplánovat a který odstraní prošlé položky ze seznamu sledovaných položek.

Kód sledovacího seznamu API pochází z APIQueryWatchlist. Tato třída hojně využívá kurz WatchedItemQueryService.php. Tato třída provádí složité dotazy týkající se kódu Recentchanges a Watchlist. Když uživatel načte tabulku Special:Watchlist, tabulka watchlist se připojí k tabulce recentchanges, aby se uživateli zobrazily položky. Proto nemůžeme mít záznamy na seznamu sledovaných po dobu delší než 30 dnů.

Speciální režimy seznamu sledovaných položek

  • Rozšířený seznam sledovaných položek – toto je možnost v Nastavení na Na seznamu sledovaných stránek zobrazovat všechny změny, ne jen tu poslední. Tato možnost zobrazí všechny položky pro všechny stránky. Pokud se rozhodnete nezobrazovat rozšířenou verzi, zobrazí se pro každou stránku pouze jeden (nejnovější) záznam. In both cases it joins on the recentchanges table, but in the latter it only looks at the "page_latest" revision.
  • Vylepšený seznam sledovaných položek – toto je možnost v Nastavení na V posledních změnách a sledovaných stránkách seskupovat změny podle stránek. Formátování se provádí v JavaScriptu třídou EnhancedChangesList.

Související odkazy

Category:Special Pages/cs#Watchlist Category:Everything to do with watchlists/cs
Category:Everything to do with watchlists/cs Category:Special Pages/cs