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
- 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
orSpecial:Watchlist/raw
- The page and talk-page are added to the
watchlist
table for the user.
What happens when a page is edited
- A page is edited.
- 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.) - The notification timestamp for the user's
watchlist
table is notNULL
anymore and thus, it's now an unread notification. - A job is queued depending on $wgWatchlistPurgeRate and expired items are removed from the watchlist.
What happens when an unread notification is clicked
- User clicks an unread watchlist entry
- 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 watchlist – This 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 therecentchanges
table, but in the latter it only looks at the "page_latest" revision. - Enhanced watchlist – This 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
- Nápověda:Sledované stránky – User documentation
- Help:Watchlist expiry
- Nápověda:Sledování změn
- Příručka:$wgWatchlistExpiry
- Příručka:$wgWatchlistPurgeRate
- Manual:PurgeExpiredWatchlistItems.php
- Manual:WatchlistExpiryJob.php
- Watchlist wishlist