Rozšíření:StructuredDiscussions
Se strukturovanými diskusemi se již pro další vývoj nepočítá, proto byl jejich další vývoj pozastaven. Víc informací naleznete na Wikitech mailing list. |
Toto rozšíření není v současné době aktivně udržováno! Ačkoli to může stále fungovat, jakákoli hlášení o chybách nebo požadavky na funkce budou pravděpodobně ignorovány. Pokud máte zájem převzít úkol vývoje a údržby tohoto rozšíření, můžete požádat o vlastnictví úložiště. Jako laskavost můžete kontaktovat autora. Měli byste také odstranit tuto šablonu a uvést se jako správce rozšíření v informačním poli stránky {{Extension }}. |
Rozšíření StructuredDiscussions poskytuje diskusní systém a systém spolupráce pro diskusní stránky. Tato stránka popisuje, jak nainstalovat a spravovat strukturované diskuse. Návod k použití najdete na stránce Nápověda:Strukturované diskuse . Strukturované diskuse si můžete sami vyzkoušet na stránce Sandbox.
Toto rozšíření bylo dříve známé jako Flow a názvy na některých místech (jako je úložiště Git) to stále odrážejí.
Rozšíření StructuredDiscussions bylo vyvinuto týmem Collaboration z Wikimedia Foundation. Stále je udržováno, aby se opravovaly chyby, ale od roku 2015 nebyl proveden žádný podstatný vývoj na rozšíření, kromě přejmenování na "StructuredDiscussions" v září 2017. Další informace o stavu vývoje tohoto rozšíření a také přehled jeho designu naleznete na Structured Discussions.
Instalace
Pozor: | Všimněte si, že StructuredDiscussions není kompatibilní s SQLite. |
- Ujistěte se, že všechny požadované závislosti jsou nastaveny a nakonfigurovány.
- Ujistěte se, že jste nastavili
$wgVirtualRestConfig['modules']['parsoid']['url']
, aby ukazoval na rest.php vaší wiki. - If you have problems in MediaWiki 1.40, you should make some changes to remove virtualrestconfig of restbase in Flow. See task T337223.
- Stáhněte soubor/y a vložte je do adresáře pojmenovaného
Flow
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/Flow - Při instalaci z Gitu spusťte Composer pro instalaci závislostí PHP zadáním
composer install --no-dev
v adresáři rozšíření. (Vyskytnou-li se nějaké komplikace, podívejte se na úkol T173141.) - Na konec vašeho souboru LocalSettings.php přidejte následující kód:
wfLoadExtension( 'Flow' );
- Spusťte aktualizační skript, který automaticky provede všechny nezbytné databázové změny, jaké rozšíření vyžaduje.
- Dokončeno – Přejděte na stránku Special:Version vaší wiki a zkontrolujte, zda bylo rozšíření úspěšně nainstalováno.
Instalace Vagrant:
- Pokud používáte Vagrant , instalujte s těmito parametry
vagrant roles enable flow --provision
Po instalaci
/tmp/mw-UIDGeneratorUUID-UID-xx
, které MediaWiki nemusí být schopna otevřít (úkol T55791). Pokud se při první návštěvě nástěnky Flow zobrazí chyba "Povolení odepřeno", musíte tyto soubory smazat. update.php také vytvoří {{FlowMention }} pro podporu funkce zmínek Flow ve VE (buď @ nebo nabídka panelu nástrojů poskytuje pohodlné rozhraní pro automatické dokončování zmínek).Ujistěte se, že postupujete podle úplných pokynů pro aktivaci nebo deaktivaci StructuredDiscussions, včetně skriptů v nich uvedených.
Závislosti
- povinné
- Rozšíření:Echo - pro upozornění (např. odpovědi na váš příspěvek)
- Je nutné mít objekt cache. K tomu se doporučuje používat memcached. V současné době se můžete setkat s problémy s Redis.
- Rozšíření:ParserFunctions - pro šablony, které se instalují automaticky (např. #time)
- silně doporučeno
- Parsoid pro možnost ukládat příspěvky jako HTML (
$wgFlowContentFormat = 'html';
), což zlepšuje výkon. Takto jsou konfigurovány WMF wikiny, a proto je to zdaleka nejvíce testovaná konfigurace. Pokud používáte MediaWiki-Vagrant, povolení StructuredDiscussions povolí Parsoid a nastaví formát na 'html'.
- volitelné
- Rozšíření:BetaFeatures - pokud chcete použít funkci opt-in beta pro uživatelskou konverzaci.
- Rozšíření:CLDR - pro časová razítka přátelská k lidem, jako je "před 3 dny"
- Extension:VisualEditor - pro podporu VisualEditoru
- bug? pokud máte přítomen VisualEditor (např. pro poskytnutí OOUI), pak se StructuredDiscussions pokusí kontaktovat Parsoid, i když VE není povoleno
- StructuredDiscussions lze integrovat s Rozšíření:AbuseFilter , Rozšíření:SpamBlacklist a Rozšíření:ConfirmEdit , viz Extension:StructuredDiscussions/Spam
- StructuredDiscussions se integruje s Rozšíření:CheckUser , pokud jej máte nainstalovaný.
- Rozšíření:Thanks - "Poděkování" uživatelům za jejich příspěvky
Ověřování instalace
Navštivte jednu ze stránek, které jste povolili pro StructuredDiscussions (viz #Configuration), a zkuste přidat téma a upravit jeho záhlaví.
Konfigurace
Zde jsou některá nastavení, která musíte provést v LocalSettings.php
.
Povolení nebo zakázání StructuredDiscussions
Verze MediaWiki: | ≤ 1.34 |
Chcete-li povolit nebo zakázat StructuredDiscussions pro jmenný prostor v MediaWiki před verzí 1.35, nejprve spusťte populateContentModel.php na dotčených jmenných prostorech (nebo to můžete udělat na all
).
Od 1.35 to již není potřeba.
Např. pokud se ho chystáte povolit nebo zakázat na NS_TALK (1) a NS_USER_TALK (3), jak je uvedeno v konfiguraci PHP níže:
mwscript populateContentModel.php --wiki=somewiki --ns=1 --table=revision
mwscript populateContentModel.php --wiki=somewiki --ns=1 --table=archive
mwscript populateContentModel.php --wiki=somewiki --ns=1 --table=page
mwscript populateContentModel.php --wiki=somewiki --ns=3 --table=revision
mwscript populateContentModel.php --wiki=somewiki --ns=3 --table=archive
mwscript populateContentModel.php --wiki=somewiki --ns=3 --table=page
Pokud mwscript není nakonfigurováno, nahraďte mwscript populateContentModel.php
za php maintenance/populateContentModel.php
Po výše uvedeném nastavte $wgNamespaceContentModels [namespace]
pro konkrétní jmenné prostory.
Například:
// Tyto řádky umožňují StructuredDiscussions na jmenných prostorech "Talk" a "User talk".
// Všechny konstanty NS_* zde: https://www.mediawiki.org/wiki/Manual:Namespace_constants
$wgNamespaceContentModels[NS_TALK] = 'flow-board';
$wgNamespacesWithSubpages[NS_TALK] = true;
$wgNamespaceContentModels[NS_USER_TALK] = 'flow-board';
$wgNamespacesWithSubpages[NS_USER_TALK] = true;
Globální (
) znovu přiřaďte ne.
$wgNamespaceContentModels =
Chcete-li jej povolit na jedné stránce, použijte Special:EnableStructuredDiscussions. To vyžaduje právo flow-create-board, které lze udělit jakékoli skupině (viz Příručka:Uživatelská práva#Změna oprávnění skupiny).
$wgGroupPermissions['somegroup']['flow-create-board'] = true;
Viz Extension:StructuredDiscussions/Turning off all StructuredDiscussions , jak vypnout všechny stránky StructuredDiscussions na vaší wiki.
Konfigurace Parsoid
Části této stránky (ty související s Parsoid's LocalSettings.js) jsou zastaralé. |
StructuredDiscussions používá Virtual REST Service ke kontaktování služby Parsoid nebo RESTBase.
Pokud vaše wiki načítá rozšíření VisualEditor , pravděpodobně jste to již nastavili.
Ve svém LocalSettings.php
hledejte následující:
$wgVirtualRestConfig['modules']['parsoid'] = array(
// Adresa URL instance Parsoid
// Pokud používáte balíček Debian, použijte port 8142
'url' => 'http://localhost:8000',
// Parsoid "doména", viz níže (volitelné)
'domain' => 'localhost',
// Parsoid "prefix", viz níže (volitelné)
'prefix' => 'localhost',
);
Jeden server Parsoid zvládne více wikin.
Nastavení Parsoid domain
identifikuje vaši konfiguraci wiki pro Parsoid.
Ve výchozím nastavení je nastaveno na název hostitele $wgCanonicalServer
, ale můžete si vybrat libovolný řetězec.
Starší verze Parsoid také používaly jedinečný "prefix" k identifikaci serveru. Možná to budete muset uvést i zde.
Parsoid musí být nakonfigurován tak, aby odpovídal, pomocí řádku v Parsoid's localsettings.js
jako:
parsoidConfig.setMwApi({ uri: 'http://path/to/my/wiki/api.php', domain: 'localhost', prefix: 'localhost' });
Opět platí, že vlastnost "doména" je v konfiguraci Parsoid volitelná. Jako výchozí se použije název hostitele použitý ve vlastnosti uri
, pokud není zadán.
Vlastnost "prefix" lze také vynechat, pokud nepoužíváte starší verzi Parsoid.
Ujistěte se, že domain
a prefix
uvedené v Parsoidově localsettings.js
odpovídají tomu, co je na vaší wiki LocalSettings.php
.
Další podrobnosti viz Parsoid/Nastavení#Konfigurace.
"dosažena maximální úroveň vnoření funkce '100', přeruší se"
Pokud se zobrazí tato chyba, musíte nastavit xdebug.max_nesting_level = 200
, pravděpodobně v /etc/php5/apache2/php.ini
.[1]
"Zachycena výjimka: CAS není implementován v Xyz"
StructuredDiscussions vyvolává $cache->cas()
a některé implementace mezipaměti včetně CACHE_ACCEL
(APCBagOStuff) neimplementují CAS.
Pravděpodobně budete muset použít jinou mezipaměť, například nainstalovat memcached a nastavit $wgMainCacheType = CACHE_MEMCACHED;
.
Oprávnění
Uživatelé musí mít základní oprávnění edit
, aby mohli provádět jakoukoli akci zápisu v StructuredDiscussions.
Mnoho wikin uděluje toto oprávnění pouze skupině 'user' (přihlášená).
StructuredDiscussions definuje mnoho akcí, jako je edit-post
a delete-topic
(viz seznam v FlowActions.php).
Oprávnění se liší v závislosti na tom, zda je příspěvek váš vlastní a zda byl moderován.
Například ve výchozím nastavení mohou uživatelé upravovat své vlastní příspěvky, ale pouze uživatelé ve skupině 'sysop' mají oprávnění flow-edit-post
upravovat něčí příspěvek.
Můžete přepsat, které skupiny mají která oprávnění a jaká oprávnění jsou vyžadována pro jednotlivé akce toku. Viz Příručka:Uživatelská práva pro přehled oprávnění.
Migrace stávajících stránek
K přemístění jedné stávající stránky použijte Special:EnableStructuredDiscussions. Automaticky se postará o archivaci jedné stránky (poté povolí StructuredDiscussions).
Skript maintenance/convertNamespaceFromWikitext.php
automatizuje konverzi a archivaci jmenného prostoru, viz Flow/Converting talk pages.
Je do jisté míry specifický pro WMF, takže před spuštěním zhodnoťte jeho provoz a zálohujte si databázi.
Další skript maintenance/convertAllLqtPages.php
převede stránky LiquidThreads a jejich vlákna na nástěnky a témata Flow, viz Flow/Converting LiquidThreads. Platí podobná upozornění.
Flow přidá jmenný prostor Topic:, viz Extension default namespaces#flow.
Můžete navštívit Special:PrefixIndex/Topic: a zjistit, zda existují stránky, které jsou s tímto v rozporu. Pokud ano, spusťte údržbový skript maintenance/namespaceDupes.php
.
Konfigurace
parametr | výchozí | komentář |
---|---|---|
$wgFlowHelpPage | //www.mediawiki.org/wiki/Special:MyLanguage/Help:Extension:Flow | URL pro další informace o systému oznámení Flow |
$wgFlowCluster | false | $wgFlowCluster definuje, jaký externí DB server by měl být použit.
Pokud je nastaveno na hodnotu false, aktuální databáze bude použita ke čtení/zápisu dat z/do. Pokud mají být data StructuredDiscussions uložena v externí databázi, nastavte hodnotu této proměnné na klíč $wgExternalServers představující toto externí připojení. |
$wgFlowDefaultWikiDb | false | Databáze k použití pro metadata StructuredDiscussions. Chcete-li použít databázi wiki, nastavte na hodnotu false.
Libovolný počet wikin může a měl by sdílet stejnou databázi StructuredDiscussions. Skutečný název databáze je uložen v interních tabulkách pro každou zprávu. Změna názvu databáze po odeslání zpráv způsobí, že stará vlákna se stanou nedostupnými. |
$wgFlowExternalStore | false | Používá se pro ukládání obsahu.
False pro uložení obsahu v StructuredDiscussions db. Jinak klastr nebo seznam klastrů k použití s ExternalStore. Poskytnuté klastry musí existovat v $wgExternalStores. Pro HA je vyžadováno více klastrů, takže vkládání může pokračovat, pokud je jeden z hlavních serverů mimo provoz z důvodu údržby nebo z jakéhokoli jiného důvodu. $wgFlowExternalStore = array( 'DB://cluster24', 'DB://cluster25' ); |
$wgFlowContentFormat | html | Ve výchozím nastavení budou StructuredDiscussions ukládat obsah v HTML.
To však vyžaduje mít Parsoid spuštěný a v běhu, protože pro základní editor bude nutné převést HTML na wikitext. (např. pro použití VisualEditoru budete určitě potřebovat Parsoid, takže pokud podporujete VE, můžete to rovnou nastavit na HTML) Pokud je $wgFlowParsoidURL null, $wgFlowContentFormat bude nuceno wikitext. Formát 'wikitext' bude pravděpodobně v budoucnu zastaralý. |
$wgFlowParsoidURL | null | Konfigurace StructuredDiscussions Parsoid Vezměte prosím na vědomí, že tato konfigurace je oddělená od konfigurace Parsoid VE. |
$wgFlowParsoidPrefix | null | Konfigurace Flow Parsoid Vezměte prosím na vědomí, že tato konfigurace je oddělená od konfigurace Parsoid VE. |
$wgFlowParsoidTimeout | null | Konfigurace Flow Parsoid Vezměte prosím na vědomí, že tato konfigurace je oddělená od konfigurace Parsoid VE. |
$wgFlowParsoidForwardCookies | false | Přesměrovat soubory cookie uživatelů: Záhlaví do Parsoid. Vyžadováno pro soukromé wikiny (pro čtení je vyžadováno přihlášení). Pokud wiki není soukromá (tj. $wgGroupPermissions['*']['read'] je Tato funkce vyžaduje nezamykatelné úložiště relací. Výchozí úložiště relací nebude fungovat a při pokusu o použití této funkce způsobí uváznutí. Pokud zaznamenáte problémy se zablokováním, povolte $wgSessionsInObjectCache. UPOZORNĚNÍ: Povolte to POUZE na soukromých wikinách a POUZE POKUD rozumíte BEZPEČNOSTNÍM DŮSLEDKŮM odesílání hlaviček souborů cookie do Parsoid přes HTTP. Z bezpečnostních důvodů se důrazně doporučuje, aby byl |
$wgFlowDefaultLimit | 10 | Limity pro stránkování |
$wgFlowMaxLimit | 100 | Limity pro stránkování |
$wgFlowMaxMentionCount | 100 | Maximální počet uživatelů, které lze uvést v jednom komentáři |
$wgFlowMaxThreadingDepth | 8 | Maximální hloubka vlákna |
$wgFlowCacheTime | 60 * 60 * 24 * 3 | Výchozí doba ukládání dat StructuredDiscussions do mezipaměti v memcache.
Tuto hodnotu lze vyladit ve spojení s měřením poměrů mezipaměti hit/miss pro dosažení požadovaného kompromisu mezi využitím paměti, db dotazy a dobou odezvy. Výchozí 3 dny znamená, že StructuredDiscussions se pokusí uchovat v memcache všechny datové modely požadované za poslední 3 dny. |
$wgFlowCacheVersion | 4.9 | Řetězec verze připojený ke klíčům mezipaměti.
Změňte to, pokud se změní formát mezipaměti nebo logika. StructuredDiscussions může být databáze napříč wikinami, ke které mají přístup wikiny s různými verzemi kódu Flow. WMF to někdy globálně přepíše ve wmf-config/CommonSettings.php |
$wgFlowAbuseFilterGroup | 'flow' | Custom group name for AbuseFilter
Acceptable values:
|
$wgFlowAbuseFilterEmergencyDisableThreshold | 0.10 | AbuseFilter emergency disable values for StructuredDiscussions |
$wgFlowAbuseFilterEmergencyDisableCount | 50 | AbuseFilter emergency disable values for StructuredDiscussions |
$wgFlowAbuseFilterEmergencyDisableAge | 86400 // One day. | AbuseFilter emergency disable values for StructuredDiscussions |
$wgFlowAjaxTimeout | 30 | Timeout for StructuredDiscussions's AJAX requests (only affects ones that go through flow-api.js), in seconds |
$wgFlowCoreActionWhitelist | array( 'info', 'protect', 'unprotect', 'unwatch', 'watch', 'history', 'wikilove', 'move', 'delete' ); | Actions that must pass through to MediaWiki on StructuredDiscussions-enabled pages |
$wgFlowServerCompileTemplates | false | When set to true StructuredDiscussions will compile templates into their intermediate forms on every run. When set to false Flow will use the versions already written to disk. Production should always have this set to false. |
$wgFlowSearchServers, $wgFlowSearchConnectionAttempts, $wgFlowSearchBannedPlugins, $wgFlowSearchOptimizeIndexForExperimentalHighlighter, $wgFlowSearchMaxShardsPerNode, $wgFlowSearchRefreshInterval, $wgFlowSearchMaintenanceTimeout, $wgFlowSearchReplicas, $wgFlowSearchShardCount, $wgFlowSearchCacheWarmers, $wgFlowSearchMergeSettings, $wgFlowSearchIndexAllocation, $wgFlowSearchEnabled | N/A | These former settings were removed because the code was unmaintained and broken. (You can look at the previous documentation if you want.) There is currently no code for supporting search in StructuredDiscussions. |
Systémové zprávy
Použitím možnosti "Editace zdroje" na nástěnkách StructuredDiscussions zviditelníte text nápovědy "Wikitext používá formátovací značky a kdykoli si můžete zobrazit náhled výsledku."
.
Část "používá značky" je propojena prostřednictvím systémové zprávy MediaWiki:Flow-wikitext-editor-help-uses-wikitext, která využívá interwiki odkaz na MediaWiki.org.
V některých případech tento interwiki odkaz místo toho, aby ukazoval na Help:Formatting na MediaWiki.org, ukazuje na (obvykle neexistující) Help:Formatting stránku na hostitelské Wiki.
To lze napravit změnou interwiki odkazu na MediaWiki:Flow-wikitext-editor-help-uses-wikitext na externí odkaz, jako je
[https://www.mediawiki.org/wiki/Help:Formatting uses markup]
.
Řešení problémů
Nedostáváte Flow podle očekávání? Existují různé opravy v závislosti na zdroji problému:
Špatně nakonfigurovaný parsoid/VE nefunguje
Když dostanete zprávy jako Conversion from 'html' to 'wikitext' was requested, but core's Parser only supports 'wikitext' to 'html' conversion
, pravděpodobně nemáte parsoid správně nakonfigurované.
Pro použití vizuálního editoru v diskusích vyžaduje toto rozšíření správně nakonfigurovaný parsoid.
For REL1_39 of MediaWiki and StructuredDiscussions, be sure to do all of the following:
wfLoadExtension('Flow');
wfLoadExtension ('Parsoid', "$IP/vendor/wikimedia/parsoid/extension.json" );
- Set appropriately. See example.
$wgVirtualRestConfig['modules']['parsoid']
Older versions of MediaWiki may need Parsoid-JS and perhaps a code patch:
- Ujistěte se, že máte správně nainstalovaný parsoid.
- Když tato chyba nebyla vyřešena, použijte tuto opravu na kódovou základnu StructuredDiscussions.
Pokud problém přetrvává, může vám pomoci tato diskuse.
Chybná objednávka deklarace vlastního jmenného prostoru
Deklarace Flow musí následovat po deklaraci pro vlastní jmenný prostor. Správné pořadí je:
define("NS_PORTAL_TALK", 3005);
$wgExtraNamespaces[NS_PORTAL_TALK] = "Portal_Talk";
$wgNamespaceContentModels[NS_PORTAL_TALK] = 'flow-board';
$wgNamespacesWithSubpages[NS_PORTAL_TALK] = true;
Špatné nativní konstanty
Diskusní stránky v Hlavním jmenném prostoru jsou definovány jako NS_TALK
, ne NS_MAIN_TALK
Správné prohlášení je:
$wgNamespaceContentModels[NS_TALK] = 'flow-board';
Neregistrované konstanty rozšíření
Rozšíření:Page Forms konstanta jmenného prostoru je supposed (předpokládá se) PF_NS_FORM_TALK
.
Ale tato konstanta nefunguje v deklaraci Flow-- musíte použít skutečné číslo: 107.
Toto funguje:
$wgNamespaceContentModels[107] = 'flow-board';
Tomuto autorovi není známo, zda Page_Forms nedokázal správně zaregistrovat své konstanty, nebo zda rozšíření all musí používat čísla (ne konstanty) s Flow. Viz seznam některých dalších konstant jmenného prostoru rozšíření.
Staré zbytky
Pokud správně získáváte Flow na všech diskusních stránkách v jmenném prostoru, kromě jedné stránky v tomto jmenném prostoru, může být na diskusní stránce zbytkový odpad (i když se zdá prázdná). Udělejte následující:
- Přejděte na diskusní stránku, která nenačte Flow, např.: Portal_Talk:Welcome
- Smažte stránku Talk pomocí karty Smazat.
- Přejděte na obsahovou stránku této diskusní stránky, např.: Portal:Welcome
- Klikněte na Diskutovat.
- Získáte Flow.
Parsoid not working in StructuredDiscussions (Flow)
To get Parsoid to work with StructuredDiscussions (Flow):
- In
LocalSettings.php
, explicitely load Parsoid like so:wfLoadExtension( 'Parsoid', "vendor/wikimedia/parsoid/extension.json" );
- Apply the following patch.
For more details, see Topic:X8mv19b4va26u8tz.
Architektura
Podívejte se na stránku Flow/Architecture.
Spam
Další informace o tom, jak bojovat proti spamu ve Flow, najdete na stránce Extension:StructuredDiscussions/Spam .
Moderování
Další informace o moderování ve Flow najdete na stránce Extension:StructuredDiscussions/Moderation .
Export a import
Existuje skript údržby pro export dat Flow podobný Manual:DumpBackup.php
php extensions/Flow/maintenance/dumpBackup.php
úkol T114703 - dává nějaké rady ohledně importu.
Toto rozšíření se používá na jednom nebo více projektech Wikimedia. Pravděpodobně to znamená, že rozšíření je stabilní a funguje dostatečně dobře, aby jej mohly používat weby s tak vysokou návštěvností. Vyhledejte tento název rozšíření v konfiguračních souborech CommonSettings.php a InitialiseSettings.php Wikimedie, abyste viděli, kde je nainstalováno. Úplný seznam rozšíření nainstalovaných na konkrétní wiki lze vidět na stránce wiki Special:Version. |
Toto rozšíření je zahrnuto v následujících wiki farmách/hostitelích a/nebo balíčcích: Toto není autoritativní seznam. Některé wiki farmy/hostitelé a/nebo balíčky mohou toto rozšíření obsahovat, i když zde nejsou uvedeny. Pro potvrzení se vždy obraťte na své wiki farmy/hostitele nebo balíček. |