Extension:OnlineStatusBar/cs
Rozšíření OnlineStatusBar přidává na uživatelské a diskusní stránky každého uživatele, který ho povolil, malý pruh, který signalizuje, zda je daný uživatel k dispozici či nikoli.
Také vytváří magické slovo {{ISONLINE}}
, které lze použít na uživatelských stránkách ke kontrole stavu uživatele.
Je k dispozici v uživatelských preferencích.
Instalace
- Stáhněte soubor/y a vložte je do adresáře pojmenovaného
OnlineStatusBar
ve vaší složceextensions/
.
Vývojáři a přispěvatelé kódu by si místo toho měli nainstalovat rozšíření from Git pomocí:cd extensions/ git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/OnlineStatusBar
- Na konec vašeho souboru LocalSettings.php přidejte následující kód:
wfLoadExtension( 'OnlineStatusBar' );
- Spusťte aktualizační skript, který automaticky provede všechny nezbytné databázové změny, jaké rozšíření vyžaduje.
- Spusťte následující SQL dotaz pro vytvoření dalších tabulek v databázi MediaWiki:
CREATE TABLE online_status (
`username` varchar(255) NOT NULL default '',
`timestamp` char(14) NOT NULL default '',
PRIMARY KEY USING HASH (`username`)
) ENGINE=MEMORY;
Pokud používáte SQLite, použijte místo toho tento SQL dotaz:
CREATE TABLE online_status (
username varchar(255) NOT NULL default '',
timestamp char(14) NOT NULL default ''
);
CREATE INDEX username ON online_status (username);
- Vyžaduje nastavení v konfiguračním souboru.
Dokončeno – Přejděte na stránku Special:Version vaší wiki a zkontrolujte, zda bylo rozšíření úspěšně nainstalováno.
Konfigurace
You may insert those parameters into LocalSettings.php:
$wgOnlineStatusBarDefaultIpUsers
– pokud chcete sledovat i uživatele IP adres$wgOnlineStatusBarDefaultOnline
– výchozí online stav$wgOnlineStatusBarDefaultOffline
– výchozí offline stav$wgOnlineStatusBarDefaultEnabled
– pokud je to ve výchozím nastavení povoleno pro všechny uživatele$wgOnlineStatusBarWriteTime
– zpoždění mezi přístupy k zápisu do databáze pro aktualizaci$wgOnlineStatusBar_LogoutTime
Dokumentace
Jak to funguje
Toto rozšíření vytvoří novou tabulku, která obsahuje uživatelské jméno a čas, kdy uživatel naposledy otevřel nějakou stránku. Každý uživatel má možnost tuto možnost povolit v nastavení (v sekci Různé). Všichni uživatelé, kteří ji nemají povolenou, nejsou ovlivněni a tato tabulka se neaktualizuje. Když se uživatel přihlásí nebo odhlásí, vloží/odstraní záznam z tabulky. Prošlé záznamy jsou často odstraňovány, takže tabulka je velmi malá. Uživatelé tabulku aktualizují pokaždé, když si přečtou jakoukoli stránku, aby se aktualizovala informace o tom, zda jsou záznamy k dispozici.
Při zobrazení uživatelské stránky, kde je tato funkce povolena, se aktuální dostupnost uživatelů zobrazí takto:
Ukládání do mezipaměti
Rozšíření používá ukládání do mezipaměti, aby přistupovalo k databázi pouze v nezbytných případech, k tomu je vyžadován memcached.
API
Je k dispozici nový modul pro API s názvem "onlinestatus", online stav uživatele můžete zobrazit otevřením:
api.php?action=query&prop=onlinestatus&onlinestatususer=User
kde User
je uživatelské jméno uživatele
Výkon
Pokaždé, když uživatel, který má toto povoleno, otevře jakoukoli stránku (uloženou v mezipaměti), načte databázi, aby zjistil, zda je nutné aktualizovat časové razítko. Pokud je časové razítko starší než hodnota uvedená v konfiguraci, aktualizuje se, díky čemuž by rozšíření nemělo zapisovat častěji než jednou za 5 minut.
Třídy
Obsahuje 4 třídy, každou v samostatném souboru
OnlineStatusBarHooks
Tato třída obsahuje háčky, které se používají.
ISONLINE
Rozšíření také přidává magické slovo {{isonline}}, které se přepne na aktuální stav uživatele, možné stavy jsou:
- online – uživatel je online
- away / busy – uživatel je pryč nebo zaneprázdněn
- unknown – uživatel si nepřeje být sledován nebo se nejedná o uživatele
- offline – uživatel je offline
Práce uvnitř popředí
Aby se toto rozšíření zobrazovalo na správném místě uvnitř vzhledu Foreground, tedy ve stejném vzhledu jako Wikiapiary, je třeba změnit následující řádek:
Na řádku 36 v resources/ext.onlinestatusbar.js se mění:
// Add status bar wrapper
$( 'h1' ).first().prepend( $statusbarFields );
na
// Add status bar wrapper
$( 'h2.title' ).first().prepend( $statusbarFields );
.
Cindy.cicalese, the writer of the Extension:Title Icon, found this fix.