Extension:CategoryTree
Stav rozšíření: stabilní |
|
---|---|
Implementace | Značka , Funkce analyzátoru , Speciální stránka |
Popis | Poskytuje dynamický pohled na strukturu kategorií wiki jako stromu. |
Autoři | Daniel Kinzler (Duesentrieb diskuse ) |
Nejnovější verze | průběžné aktualizace |
Zásady kompatibility | Vydání snímků současně s MediaWiki. Hlavní vývojová větev není zpětně kompatibilní. |
MediaWiki | 1.25+ |
Licence | GNU General Public License 2.0 nebo novější |
Stáhnout | ČTETE |
|
|
Přeložte rozšíření CategoryTree, používá-li lokalizaci z translatewiki.net | |
Problémy | Otevřené úkoly · Nahlásit chybu |
Rozšíření CategoryTree poskytuje dynamický pohled na strukturu kategorií wiki jako stromu. K načtení částí stromu na vyžádání používá AJAX. CategoryTree původně napsal Daniel Kinzler jako externí nástroj, ale později byl integrován do softwaru MediaWiki s pomocí Tima Starlinga.
Instalace
- Stáhněte soubor/y a vložte je do adresáře pojmenovaného
CategoryTree
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í:cdextensions/ gitclonehttps://gerrit.wikimedia.org/r/mediawiki/extensions/CategoryTree
- Na konec vašeho souboru LocalSettings.php přidejte následující kód:
wfLoadExtension( 'CategoryTree' );
- Yes Dokončeno – Přejděte na stránku Special:Version vaší wiki a zkontrolujte, zda bylo rozšíření úspěšně nainstalováno.
Použití
CategoryTree lze použít třemi způsoby:
- přímo na stránkách kategorií,
- jako "vlastní značku" (nebo "funkce analyzátoru") pro zobrazení struktury kategorií přímo na stránce wiki
- a jako speciální stránka.
Rozšíření CategoryTree přidává "rozbalovací" widgety ► do podkategorií uvedených na stránkách kategorií.
Značka <categorytree>
Příklad. Výsledek můžete vidět v rámečku níže a vpravo:
<categorytree mode="pages">Manual</categorytree>
Vlastní značka se nazývá <categorytree>
.
Pokud například vložíte <categorytree>Foo</categorytree> na wiki stránku, zobrazí se obsah kategorie Foo jako dynamický strom na této stránce (viz příklad vpravo).
Značka přijímá následující atributy s použitím syntaxe podobné HTML:
- mode
- určuje, které stránky se zobrazí ve stromu. To může být potlačeno použitím volby
namespaces
. Možné hodnoty:- categories
- zobrazit pouze podkategorie (konfigurační konstanta
0
) - pages
- zobrazí podkategorie a stránky, kromě obrázků (konfigurační konstanta
10
), omezeno na 200 stránek - all
- zobrazí všechny stránky, podkategorie, obrázky atd. (konfigurační konstanta
20
) - parents
- vypíše nadřazené kategorie místo podkategorií (konfigurační konstanta
100
). To uvádí CategoryTree do "inverzní" operace (podporováno od r36892 , červenec 2008).
- depth
- určuje, kolik úrovní stromu se zobrazí na začátku. Výchozí hodnota je 1. 0 znamená pouze kořenový uzel. Maximální hodnota závisí na zadaném režimu a na volbě
$wgCategoryTreeMaxDepth
. (Zavedeno mezi r20410 a r20840 , 30. března 2007. Plně funkční i s$wgCategoryTreeDynamicTag
od r36864 , červenec 2008.) (削除) onlyroot (削除ここまで)(削除) nastavte toto na "on", chcete-li zpočátku zobrazit pouze "kořenový" uzel stromu. EkvivalentZastaralé od r36864 , červenec 2008: Místo toho použijtedepth="0"
. (Zavedeno v r20385 , 13. března 2007.) (削除ここまで)depth="0"
.- hideroot
- nastavte toto na "on", chcete-li skrýt "kořenový" uzel stromu, tj.
hideroot=on
. Například nebude zobrazovat název kategorie Foo. - hideprefix
- určuje, kdy má být předpona jmenného prostoru skryta před položkami ve stromu (od r36864 , červenec 2008). Možné hodnoty jsou:
- always
- vždy skryje předponu. Mělo by být použito pouze v případě, že všechny stránky pocházejí ze stejného jmenného prostoru (konfigurační konstanta
10
). - never
- nikdy neschovávejte prefix jmenného prostoru, a to ani u kategorií (konfigurační konstanta
0
). - auto
- skryjte jmenný prostor kategorií, pokud jsou zobrazeny pouze kategorie, jako u
mode="categories"
(konfigurační konstanta30
). To je ekvivalentní starému výchozímu chování (před červnem 2008). - categories
- vždy skrýt jmenný prostor kategorií, ale zobrazit všechny ostatní prefixy (konfigurační konstanta
20
). Toto je nové výchozí chování (od r36864 , červenec 2008).
- showcount
- nastavte toto na "on" pro zobrazení počtu položek v podkategoriích, tj.
showcount="on"
(od r36864 , červenec 2008). Toto je ve výchozím nastavení zakázáno pro stromy kategorií vložených na stránkách, ale ve výchozím nastavení je povoleno ve výpisech kategorií a na Special:CategoryTree. - notranslations
- nastavte toto na "on", chcete-li skrýt všechny stránky překladů odpovídající stránkám patřícím do kategorie, tj.
notranslations="on"
(od Gerrit change 526234, listopad 2019). Toto je ve výchozím nastavení zakázáno. Pokud je tato možnost nastavena na "on", namísto různých překladů (např. Stránka, Stránka/cs, Page/fr, Page/de) se zobrazí pouze standardní překlad "Stránka" a všechny překlady se potlačí.To nemá vliv na "showcount", takže stále hlásí chybu. - namespaces
- seznam jmenných prostorů, ze kterých by se stránky měly zobrazovat ve stromu (od r36864 , červenec 2008). Položky v seznamu musí být názvy jmenných prostorů oddělené mezerami. Hlavní jmenný prostor může být reprezentován "-" nebo "0". Podkategorie se zobrazí pouze v případě, že je v seznamu přítomen jmenný prostor kategorie.
- třída, styl, id, atd
<categorytree>
tag podporuje všechny standardní atributy HTML pro prvky bloku (od r36864 , červenec 2008; předtím byl podporován pouzestyle
).
Poznámky k parametru 'namespaces'
Kategorie je jmenný prostor.
Kategorie se ve výchozím nastavení zobrazují ve všech režimech, ale zadáním parametru namespaces
je skryjete stejně jako jakýkoli jiný jmenný prostor, který není v seznamu.
Pokud chcete vypsat stránky v daném jmenném prostoru, včetně stránek v podkategoriích, jednoduše přidejte kategorii do seznamu jmenného prostoru.
Příklad:
- Výpis stránek hlavního jmenného prostoru v Category:Manual:
<categorytree mode="pages" namespaces="Main">Manual</categorytree>
- Výpis hlavních stránek jmenného prostoru a podkategorií v Category:Manual:
<categorytree mode="pages" namespaces="Main Category">Manual</categorytree>
Parametr mode
je přepsán namespaces
:
- pokud je dotazován pouze jmenný prostor Category, je to ekvivalent
mode=categories
; - pokud je na seznamu přítomen jmenný prostor, bude to znamenat
mode=all
; - jinak bude použit
mode=pages
. To znamená, že pokud konfigurace webu nebyla změněna, následující jsou ekvivalentní (první dvě jsou vždy ekvivalentní, třetí pouze v případě, že$wgCategoryTreeDefaultMode
je výchozíCategoryTreeMode::CATEGORIES
):
<categorytree mode="categories">Manual</categorytree> <categorytree namespaces="Category">Manual</categorytree> <categorytree>Manual</categorytree>
Funkce analyzátoru {{#categorytree}}
Od r25825 (13. září 2007) můžete také použít syntaxi parser function (funkce analyzátoru) k umístění stromu kategorií na stránku. Funguje to stejně jako tag <categorytree> s použitím jiné syntaxe, např. {{#categorytree:Foo}}
. Možnosti lze zadat pomocí syntaxe pro pojmenované parametry šablony, např. {{#categorytree:Foo|hideroot|mode=pages}}
.
Použití syntaxe funkce analyzátoru má tu výhodu, že vám umožňuje používat magická slova, šablony a parametry šablony při určování kategorie, která se má zobrazit. Nějaké příklady:
- Použití magické proměnné k zobrazení stromu kategorií this page's (tyto stránky) (může být užitečné na stránkách s popisem kategorie):
{{#categorytree:{{PAGENAME}}}}
. - Použití šablony pro specifikaci kategorie:
{{#categorytree:{{root category}}}}
- název kořenové kategorie by byl definován obsahem Template:Root_category. - Použití parametru šablony k určení kategorie při použití CategoryTree uvnitř šablony:
{{#categorytree:{{{1}}}}}
v Template:Baz lze volat pomocí {{Baz|Foo}}.
Stránka Special:CategoryTree
Speciální stránka se nazývá Special:CategoryTree. Tam můžete zadat název kategorie a poté procházet její obsah.
Konfigurace
Existují některé možnosti, které můžete zadat ve svém souboru LocalSettings.php .
0
pro režim kategorií, 10
pro stránky, 20
pro všechny, 100
pro rodiče.- $wgCategoryTreeMaxChildren
- maximální počet potomků zobrazených v uzlu stromu. Výchozí hodnota je 200.
- $wgCategoryTreeAllowTag
- povolit <categorytree> tag. Výchozí hodnota je true.
- $wgCategoryTreeDynamicTag
- dynamicky načte první úroveň stromu v <categorytree>u. Tímto způsobem není nutné vypínat mezipaměť. Výchozí hodnota je false.
- $wgCategoryTreeDisableCache
- deaktivuje mezipaměť analyzátoru pro stránky se značkou <categorytree> nebo poskytuje maximální dobu mezipaměti v sekundách. Výchozí hodnota je 21600, což je 6 hodin.
- $wgCategoryTreeUseCache
- povolit mezipaměť HTTP pro anonymní uživatele. Výchozí hodnota je false.
(削除) $wgCategoryTreeOmitNamespace (削除ここまで)(削除) nezobrazovat název jmenného prostoru pro stránky a kategorie. Výchozí hodnota je false, jmenné prostory jsou zobrazeny, pokud nezobrazují pouze kategorie. (削除ここまで)Zastaralo od r36864 , červenec 2008: Místo toho použijte$wgCategoryTreeDefaultOptions['hideprefix']
.- $wgCategoryTreeMaxDepth
- pole definující maximální hloubku pro každý režim, do kterého lze strom zpočátku rozšířit pomocí parametru hloubky v tagu <category>. Ve výchozím nastavení je tato hodnota nastavena na 2 pro režim "kategorií" a 1 pro ostatní režimy. Chcete-li jej nastavit například na 3 pro kategorie a 2 pro ostatní režimy, můžete použít
$wgCategoryTreeMaxDepth = [10 => 2, 20 => 2, 0 => 3, 100 => 2];
. - $wgCategoryTreeDefaultMode
(削除) výchozí režim, který se použije, když není ve značce <categorytree> uveden žádný atribut režimu. (削除ここまで)Může to být0
(výchozí - kategorie),10
(stránky) nebo20
(all).(削除) $wgCategoryTreeCategoryPageMode (削除ここまで)(削除) režim, který se má použít při vykreslování stromů na stránkách kategorií. (削除ここまで)Zastaralé od r36864 , červenec 2008: Místo toho použijte$wgCategoryTreeCategoryPageOptions['mode']
.- $wgCategoryTreeSidebarRoot
- kořenová kategorie k použití pro integraci stromu kategorií do postranního panelu (od r36920 , červenec 2008). Pokud není nastaveno, není integrován žádný strom (toto je výchozí nastavení). Integrace CategoryTree do postranního panelu funguje pouze se vzhledy založenými na SkinTemplate, tj. Modern, Monobook, Chick, Simple a MySkin, ale nikoli Standard, Nostalgia nebo CologneBlue. Toto je v současné době nefunkční pro MediaWiki 1.35.1 a vektorový vzhled, viz phab:278306.
- $wgCategoryTreeDefaultOptions
- výchozí možnosti použít jako pole (od r36864 , červenec 2008). Dostupné možnosti jsou popsány výše. Příklad:
$wgCategoryTreeDefaultOptions['mode'] = 'pages';
. - $wgCategoryTreeCategoryPageOptions
- možnosti použití na stránkách kategorií jako pole (od r36864 , červenec 2008).
- $wgCategoryTreeSpecialPageOptions
- možnosti použití na Special:CategoryTree jako pole (od r36864 , červenec 2008).
- $wgCategoryTreeSidebarOptions
- možnosti, které se mají použít při zobrazení stromu na postranním panelu jako pole (od r36920 , červenec 2008)
Systémové zprávy
categorytree-member-num
Ve výchozím nastavení je při vypisování podkategorií na stránce kategorie každá podkategorie následována celým číslem, které udává, kolik podkategorií se pod ní nachází, kolik stránek obsahuje a kolik souborů je v kategorii (pokud existuje):
- Název mé kategorie (5 C, 2 P, 1 F)
Toto chování můžete změnit přepsáním systémové zprávy MediaWiki:Categorytree-member-num. Vyžaduje pět parametrů:
Parametr | Význam |
---|---|
1ドル | Počet podkategorií |
2ドル | Počet článků (bez stránek kategorií nebo stránek souborů) |
3ドル | Počet nahraných souborů |
4ドル | Celkový počet členských stránek, včetně stránek kategorií a stránek souborů |
5ドル | Něco blízkého (1ドル C, 2ドル P, 3ドル F), ale s čímkoli, co je vynecháno 0.
Přesněji, čárkami oddělený seznam počtu stránek (mediawiki:categorytree-num-pages), podkategorií (mediawiki:categorytree-num-categories) a souborů (mediawiki:categorytree-num-files) v kategorii nebo prázdný (mediawiki:categorytree-num-empty) v případě, že kategorie nemá žádné členy. Ve verzích před verzemi kolem 1.19 byla tato hodnota odlišná. Viz starší verze těchto dokumentů. |
Výchozí hodnota je (5ドル)
.
Tip: Použijte rozšíření ParserFunctions k poskytnutí logiky if/then/else pro podmíněné zobrazení různých částí. Například:
{{#ifeq:1ドル|0||1ドル categories}}
Konfigurace pro správu čárek a mezer při výstupu všech informací:
Zkratka verze:
({{#ifeq:4ドル|0|empty|{{#ifeq:1ドル|0||1ドル C{{#ifeq:{{#expr:3ドル+2ドル}}|0||,}}}} {{#ifeq:2ドル|0||2ドル P{{#ifeq:3ドル|0||,}}}} {{#ifeq:3ドル|0||3ドル F}}}})
Celé jméno verze:
({{#ifeq:4ドル|0|empty|{{#ifeq:1ドル|0||1ドル categories{{#ifeq:{{#expr:3ドル+2ドル}}|0||,}}}} {{#ifeq:2ドル|0||2ドル pages{{#ifeq:3ドル|0||,}}}} {{#ifeq:3ドル|0||3ドル files}}}})
Řešení problémů
Wiki je po instalaci CategoryTree nefunkční
- Zapněte hlášení chyb
- Ujistěte se, že máte nainstalované všechny soubory
- Ujistěte se, že všechny soubory rozšíření CategoryTree mají režim 644 a adresář CategoryTree má režim 755.
Možnosti v LocalSettings.php nemají žádný vliv
- Ujistěte se, že jste zadali možnosti po včetně přípony.
<span id="Clicking_the_►_has_no_effect,_gives_a_JavaScript_error_or_just_sits_on_loading">
Kliknutí na tlačítko ► nemá žádný účinek, způsobí chybu JavaScriptu nebo jen sedne na načítání
- Všimněte si, že použití tagu <categorytree> v systémových zprávách (jmenný prostor MediaWiki) nemusí fungovat podle očekávání – toto je známé upozornění. Řešení viz Použití CategoryTree na postranním panelu níže.
- Ujistěte se, že máte
$wgUseAjax = true;
v LocalSettings.php před včetně přípony. - Ujistěte se, že používáte nejnovější verzi rozšíření – okraj je na git:mediawiki/extensions/CategoryTree
- Pokud používáte pravidla přepisu nebo aliasing (např. chcete-li mít "velmi krátké adresy URL" – tj. stránky wiki v kořenovém adresáři dokumentu nebo možná přesměrování na www-verzi požadované adresy URL), ujistěte se, že máte platnou výjimku pro adresář /rozšíření, stejně jako pro adresář /vzhledů. Viz také níže.
<span id="Clicking_the_►_shows_no_sub-categories_error">
Kliknutím na tlačítko ► se zobrazí chyba no sub-categories (žádné podkategorie)
- Zkuste to opravit přidáním tohoto kódu do LocalSettings.php:
$wgCategoryTreeDefaultOptions['namespaces'] = [ 0, NS_CATEGORY, NS_FILE ];
Prohlížeč hlásí špatný typ MIME pro CategoryTree.js a/nebo CategoryTree.css
- Ujistěte se, že váš webový server používá pro soubory .js a .css správné typy MIME
- Zadejte adresy URL přímo do prohlížeče a zjistěte, zda vůbec obsluhuje stránky a ne nějakou chybovou stránku. Zvláště:
- Pokud používáte pravidla pro přepis nebo aliasing (např. chcete-li mít "velmi krátké adresy URL" - tj. stránky wiki v kořenovém adresáři dokumentu), ujistěte se, že máte nastavenou výjimku pro adresář /rozšíření, stejně jako byste pro adresář /vzhledů.
<span id="Member_counts_are_wrong,_grey_arrows_►_are_shown_instead_of_►">
Počty členů jsou chybné, místo modré ► jsou zobrazeny šedé šipky ►
Od MediaWiki 1.13 může CategoryTree zobrazovat počet členů kategorie a může zobrazovat šedou šipku ► pro uzly stromu, které na základě tohoto čísla nemají žádné potomky. Tyto informace jsou založeny na nové tabulce category . Vyplnění této tabulky aktuálními hodnotami však při aktualizaci na 1.13 vždy nefunguje. V takovém případě spusťte skript údržby populateCategory.php
, v případě potřeby s volbou --force
.
<span id="► ► ▼_toggles_shown_only_on_the_first_level_of_the_category_tree_view">
► ► ▼ přepíná zobrazené pouze na první úrovni stromového zobrazení kategorií
V případě, že při vizualizaci stromu získáte pouze hloubku jedné úrovně, zkuste v souboru modules/ext.categoryTree.styles.css nastavit display:none;
do display:inline!important;
.
JavaScript určený k přepnutí stylu značky je nějak chybný.
Poznámka pro uživatele botů
Roboti a skripty, které analyzují HTML stránek kategorií, mohou použít parametr notree URL k vynucení tradičního výstupu. Výstup HTML však obecně není stabilní, takže se doporučuje změnit skript tak, aby používal API k načítání seznamů kategorií a podobně.
Zpráva "Category Not Found" (kategorie nenalezena)
Pokud po implementaci pluginu CategoryTree a přidání kódu pro zobrazení stromu uvidíte zprávu Kategorie nenalezena, musíte na stránky kategorií přidat nějaký obsah. Stránky kategorií v zásadě nemohou být červené stránky. Klikněte na názvy kategorií, přidejte nějaký text na stránku kategorie a potom by váš strom měl fungovat dobře.
Dalších 200 odkazů nefunguje s nainstalovaným CategoryTree
Ujistěte se, že je nainstalována správná verze tohoto rozšíření vzhledem k verzi MediaWiki, kterou jste nainstalovali. Zejména verze tohoto rozšíření vytvořené pro verze MediaWiki starší než 1.17 nejsou kompatibilní s MediaWiki 1.17 a vyšší a způsobí problémy, kdy budou všechny stránkovací odkazy na stránkách kategorií nefunkční.
Při použití parametru "namespaces" se nezobrazí žádné stránky
Viz nahoře.
Hacky
Použití CategoryTree v systémových zprávách a vlastních vzhledech
Ve starších verzích CategoryTree musíte upravit kód, aby to fungovalo: Najděte funkci efCategoryTreeParserOutput
v souboru CategoryTree.php a odstraňte podmínku. Tj. pak by to mělo vypadat takto:
function efCategoryTreeParserOutput( &$outputPage, &$parserOutput ) { CategoryTree::setHeaders( $outputPage ); return true; }
Použití CategoryTree v postranním panelu
Použití JavaScriptu
Od r36920 (červenec 2008) s MediaWiki 1.13 (r36917 ) můžete začlenit CategoryTree do postranního panelu jednoduše nastavením $wgCategoryTreeSidebarRoot
na kategorii, kterou chcete použít jako kořen. To však funguje pouze se vzhledy založenými na SkinTemplate, tedy Modern, Monobook, Chick, Simple a MySkin, nikoli však Standard, Nostalgia nebo CologneBlue.
Pokud chcete, aby byl CategoryTree v postranním panelu na jiné pozici, můžete na něj odkazovat na MediaWiki:Sidebar jako "portlet stromu kategorií".
Pro starší verze CategoryTree a/nebo MediaWiki budete muset nainstalovat mod do MonoBook.php, abyste povolili normální wikitext na postranním panelu, viz Wikitext na postranním panelu --DJ 19:26, 24 January 2008 (UTC)
Chcete-li přidat odkaz "CategoryTree" do svého panelu nástrojů (postranní panel ), přidejte následující kód na stránku JavaScript (např. monobook.js) svého skin a přizpůsobte adresu URL "w:Special:CategoryTree ".
functionAppendCategoryTreeToSidebar(){ try{ varnode=document.getElementById("p-tb") .getElementsByTagName('div')[0] .getElementsByTagName('ul')[0]; varaNode=document.createElement('a'); varliNode=document.createElement('li'); aNode.appendChild(document.createTextNode('CategoryTree')); aNode.setAttribute('href','[[w:Special:CategoryTree]]'); liNode.appendChild(aNode); liNode.className='plainlinks'; node.appendChild(liNode); }catch(e){ // lets just ignore what's happened return; } } addOnloadHook(AppendCategoryTreeToSidebar);
Obecnější verzi tohoto kódu lze nalézt na Příručka:Interface/Sidebar#obsah postranního panelu a panelu nástrojů (javascript) .
Krok za krokem, pokud to funguje snadno:
- Přidejte tyto řádky do LocalSettings.php :
$wgCategoryTreeSidebarRoot = 'Kategorie:article_name';
Použití MediaWiki: stránky jmenného prostoru
Pokud chcete vytvořit odkaz, který vede na obecný strom kategorií (zobrazený jako strom kategorií), když jste na stránce bez kategorií, a na konkrétní strom kategorií (vykreslený jako Zobrazit jako strom kategorií, přičemž foo je název kategorie, kterou si prohlížíte), když jste na stránce kategorie:
- Přidejte do svého MediaWiki:Sidebar (přímo nad SEARCH je dobré místo) řádek,
** sidebarcategorytree-url|sidebarcategorytree
- Vytvořte [[MediaWiki:Sidebarcategorytree]] pomocí, řekněme:
{{#ifeq: {{NAMESPACE}}|Category|View as category tree|Category tree}}
- Vytvořte [[MediaWiki:Sidebarcategorytree-url]] pomocí, řekněme:
{{#ifeq: {{NAMESPACE}}|Category|Special:CategoryTree/{{BASEPAGENAME}}|Special:CategoryTree/Categories}}
See also
- Stable extensions/cs
- Tag extensions/cs
- Parser function extensions/cs
- Special page extensions/cs
- GPL licensed extensions/cs
- Extensions in Wikimedia version control/cs
- CategoryViewer::doCategoryQuery extensions/cs
- CategoryViewer::generateLink extensions/cs
- MediaWikiServices extensions/cs
- OutputPageRenderCategoryLink extensions/cs
- ParserFirstCallInit extensions/cs
- SkinAfterPortlet extensions/cs
- SkinBuildSidebar extensions/cs
- SpecialTrackingCategories::generateCatLink extensions/cs
- SpecialTrackingCategories::preprocess extensions/cs
- All extensions/cs
- Extensions bundled with MediaWiki 1.31/cs
- Extensions used on Wikimedia/cs
- Extensions included in BlueSpice/cs
- Extensions included in Canasta/cs
- Extensions available as Debian packages/cs
- Extensions included in Fandom/cs
- Extensions included in Miraheze/cs
- Extensions included in MyWikis/cs
- Extensions included in ProWiki/cs
- Extensions included in semantic::core/cs
- Extensions included in ShoutWiki/cs
- Extensions included in Telepedia/cs
- Extensions included in wiki.gg/cs
- Extensions included in WikiForge/cs
- Category extensions/cs
- Tree extensions/cs
- Ajax extensions/cs