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

Users can add pages to their watchlist via the Sledovat link present on each page. 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
  • Set/Reset/Update notification timestamp
  • Set/Update watched items' expiration date
  • Remove expired pages from the watchlist
  • ...

The SpecialWatchlist.php class is executed when the Special:Watchlist is called.

How a page is added to a watchlist

  1. User requests to add a page to their watchlist. This can happen in the following ways:
    • Clicking the star
    • Creating a page
    • Checking Sledovat tuto stránku after editing
    • Editing Special:Watchlist/edit or Special:Watchlist/raw
  2. The page and talk-page are added to the watchlist table for the user.

What happens when a page is edited

  1. A page is edited.
  2. A hook runs, which calls updateNotificationTimestamp function from WatchedItemStore. This updates the notification timestamp for the page for each of the watcher's watchlist page except for the editor. (This is done by joining the page with the watchlist table for the users.)
  3. The notification timestamp for the user's watchlist table is not NULL anymore and thus, it's now an unread notification.
  4. A job is queued depending on $wgWatchlistPurgeRate and expired items are removed from the watchlist.

What happens when an unread notification is clicked

  1. User clicks an unread watchlist entry
  2. The resetNotificationTimestamp function is called from WatchedItemStore with the user and title as params. This resets the value for that entry back to NULL.

When are expired items removed from the watchlist?

  • After each edit a job is queued depending on the value of $wgWatchlistPurgeRate and expired items are removed from the watchlist.
  • In small wikis, a script is available to be schedule and it will purge expired items from the watchlist.

The watchlist has an API whose code comes from APIQueryWatchlist. This class makes heavy use of WatchedItemQueryService.php class. This class does the complicated queries relating to Recentchanges and Watchlist code. When a user loads Special:Watchlist, the watchlist table is joined on the recentchanges table to display entries to the user. This is why we can't have watchlist entries from beyond 30 days.

Special watchlist modes

  • Extended watchlistThis is the option in Preferences to Na seznamu sledovaných stránek zobrazovat všechny změny, ne jen tu poslední. This options shows you all entries for all pages. If you choose not to see the extended version, you see only one (most recent) entry for each page. In both cases it joins on the recentchanges table, but in the latter it only looks at the "page_latest" revision.
  • Enhanced watchlistThis is the option in Preferences to V posledních změnách a sledovaných stránkách seskupovat změny podle stránek. The formatting is done in JavaScript by the EnhancedChangesList class.

See also

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