Movatterモバイル変換


[0]ホーム

URL:


Jump to content
MediaWiki
Search

Расширение:Дерево категорий

From mediawiki.org
This page is atranslated version of the pageExtension:CategoryTree and the translation is 46% complete.
Outdated translations are marked like this.
Languages:
Справка по расширениям MediaWiki
CategoryTree
Статус релиза: стабильно
РеализацияТег,Функция парсера,Служебная страница
ОписаниеОбеспечивает динамическое представление о структуре категорий вики в виде дерева.
Автор(ы)Daniel Kinzler (Duesentriebобсуждение)
Последняя версияпостоянно обновляется
Политика совместимостиСнэпшоты выходят вместе с MediaWiki. Мастер не имеет обратной совместимости.
MediaWiki1.25+
ЛицензияGNU General Public License 2.0 или позднее
Скачать
README
  • $wgCategoryTreeAllowTag
  • $wgCategoryTreeCategoryPageOptions
  • $wgCategoryTreePageCategoryOptions
  • $wgCategoryTreeMaxDepth
  • $wgCategoryTreeSidebarOptions
  • $wgCategoryTreeDefaultOptions
  • $wgCategoryTreeMaxChildren
  • $wgCategoryTreeSpecialPageOptions
  • $wgCategoryTreeOmitNamespace
  • $wgCategoryTreeSidebarRoot
  • $wgCategoryTreeUseCategoryTable
  • $wgCategoryTreeCategoryPageMode
  • $wgCategoryTreeDefaultMode
  • $wgCategoryTreeDisableCache
  • $wgCategoryTreeHijackPageCategories
Переведите расширение CategoryTree, если оно доступно на translatewiki.net
ПроблемыОткрытые задачи ·Сообщить об ошибке

РасширениеCategoryTree обеспечивает динамическое представление о структуре категорий в вики в виде дерева. Он используетAJAX для загрузки части дерева по требованию. CategoryTree был первоначально написан Даниэлем Кинзлером (Daniel Kinzler) как внешний инструмент. Позже это расширение было интегрировано в программное обеспечение MediaWiki с помощью Тима Старлинга (Tim Starling).

Установка CategoryTree

Это расширениепоставляется с MediaWiki 1.31 и выше, так что вам не нужно загружать его. Остальные инструкции по настройке всё равно необходимо соблюдать.
  • Скачайте и распакуйте файл(ы) в папку с названиемCategoryTree в вашей папкеextensions/.
    Вместо этого разработчикам и соавторам кода следует установить расширениеиз Git, используя:
    cdextensions/gitclonehttps://gerrit.wikimedia.org/r/mediawiki/extensions/CategoryTree
  • Добавьте следующий код в конце вашего файлаLocalSettings.php:
    wfLoadExtension('CategoryTree');
  • YesГотово – Перейдите на страницуSpecial:Version на своей вики, чтобы удостовериться в том, что расширение успешно установлено.

Использование

CategoryTree может быть использован тремя путями:

  • непосредственно на страницах категорий,
  • как "пользовательский тег" (или "функция парсера") для отображения структуры категории построчно на вики,
  • а также на специальной странице.

Расширение CategoryTree добавляет виджет, который "разворачивает" подкатегории, перечисленные на страницах категории.

Тег <categorytree>

Пример. Результат можно увидеть в поле ниже и справа:

<categorytreemode="pages">Manual</categorytree>


Пользовательский тег называется‎<categorytree>. Например, если вы поместите $code на вики-странице, он отобразит содержимое категории Foo как динамическое дерево на странице (см. пример справа). Тег принимает следующие атрибуты, используя HTML-подобный синтаксис:For example, if you put <categorytree>Foo</categorytree> on a wiki page, it will show the contents of category Foo as a dynamic tree on that page (see example to the right).The tag accepts the following attributes, using a HTML-like syntax:

mode
определяет, какие страницы будут отображены в дереве. Может быть изменено с помощьюnamespaces. Возможные значения:
categories
показывать только подкатегории (константа0)
pages
показывать подкатегории и страниц, без изображений (константа10)
all
показывать все подкатегории, страницы, картинки и т.д. (константа20)
parents
список корневых категорий, а не подкатегории (константа100). Это помещает CategoryTree в "инверсивную" операцию (поддерживается начиная сr36892, июль 2008).
depth
определяет, сколько показывать уровней дерева на начальном этапе. По умолчанию 1. 0 означает, только корневой узел. Максимальное значение зависит от указанного режима, и в опции$wgCategoryTreeMaxDepth. (введено междуr20410 иr20840, 30 марта 2007; полностью функциональна даже с$wgCategoryTreeDynamicTag начиная сr36864, июль 2008)
onlyroot
установите его в "on" для показа только "корневого" узла дерева на начальном этапе. Эквивалентdepth="0".(введено вr20385, 13 марта 2007). Запрещено вr36864, июль 2008: вместо него следует использоватьdepth="0".
hideroot
"on" спрячет "корневой" узел дерева, т. е.hideroot=on. Например, он не будет отображать название категории Foo
hideprefix
определяет, когда префикс пространства имён должны быть скрыт от записи в дереве (начиная сr36864, июль 2008). Возможные значения:
always
всегда скрывать префикс. Следует использовать только тогда, когда все страницы имеют одно и то же пространство имён (константа10).
never
никогда не скрывать префикс (константа0).
auto
скрывать пространство имён категорий, если категории показаны черезmode="categories" (константа30); Это эквивалентно старому поведению по умолчанию (до июня 2008).
categories
всегда скрывать пространство имен категорий, но показать все другие префиксы (константа20). Это новое поведение по умолчанию (начиная сr36864, июль 2008).
showcount
установите его в «on», чтобы показать число записей в подкатегории, т. е.showcount="on" (начиная сr36864, июль 2008). По умолчанию отключено для встроенного в страницы дерева категорий, но включено по умолчанию в списках категорий и на Special:CategoryTree.
notranslations
установите его в «on», чтобы скрыть все страницы переводов, соответствующие страницам, относящимся к данной категории, т. е.notranslations="on" (начиная сGerrit change 526234, ноябрь 2019). Это по умолчанию отключено. Если для этого параметра установлено значение «on», вместо различных переводов (например, «Страница», «Страница/en», «Страница/fr», «Страница/de») отображается только стандартный перевод «Страница», а все остальные переводы подавляются.
Это не влияет на «showcount», так что всё еще остается ошибка.
namespaces
список пространств имён, страницы из которых должны отображаться в дереве (начиная сr36864, июль 2008). Записи в списке должны быть разделены пробелами. Основное пространство имён может быть представлено как «-» или «0».
class, style, id,и т.д.
тег‎<categorytree> поддерживает все стандартные HTML-атрибуты блока элементов (начиная сr36864, июль 2008; до этого был поддержан толькоstyle).

Замечания о параметре 'namespaces'

Категория — это пространство имён. Категории по умолчанию отображаются во всех режимах, но при указании параметра $param они скрываются, как и любое другое пространство имён, отсутствующее в списке. Если вы хотите отобразить страницы в заданном пространстве имён, включая страницы в подкатегориях, просто добавьте «Категория» (Category) в список пространств имён.Categories are shown in all modes by default, but specifying thenamespaces parameter hides them just like any other namespace not present on the list.If you want to list pages in a given namespace, including pages in subcategories, simply add Category to the namespace list.

Пример:

  • Перечень страниц основного пространства имён в Category:Manual:
<categorytreemode="pages"namespaces="Main">Manual</categorytree>
  • Перечень страници подкатегорий основного пространства имён в Category:Manual:
<categorytreemode="pages"namespaces="Main Category">Manual</categorytree>

Параметрmode переопределяется параметромnamespaces:

  • если запрашивается только пространство имён Category, это эквивалентноmode=categories;
  • если в списке присутствует пространство имён файлов, это будет означатьmode=all;
  • в противном случае будет использоватьсяmode=pages. Это означает, что если конфигурация сайта не была изменена, то следующие варианты эквивалентны (первые два всегда эквивалентны, третий — только если$wgCategoryTreeDefaultMode является константойCategoryTreeMode::CATEGORIES по умолчанию):
<categorytreemode="categories">Manual</categorytree><categorytreenamespaces="Category">Manual</categorytree><categorytree>Manual</categorytree>

Функция парсера {{#categorytree}}

Начиная сr25825 (2007-9-13), вы можете также использовать синтаксисфункций парсера чтобы поместить дерево категорий на странице. Работает подобно тегу <categorytree>, используя другой синтаксис, например,{{#categorytree:Foo}}; опции могут быть определены с использованием синтаксиса именованных параметров шаблона, например,{{#categorytree:Foo|hideroot|mode=pages}}.

Использование синтаксиса функций парсера имеет преимущество, позволяющее использовать волшебные слова, шаблоны и параметры шаблонов при определении категории для отображения. Вот некоторые примеры:

  • Использование волшебной переменной для отображенияэтих страниц дерева категорий (могут быть полезны на страницах описания категории):{{#categorytree:{{PAGENAME}}}}.
  • Использование шаблонов для указания категории:{{#categorytree:{{root category}}}} - имя корневой категории будут определены по содержанию Template:Root_category.
  • Использование шаблонов для указания категории, при использовании CategoryTree внутри шаблона:{{#categorytree:{{{1}}}}} в Template:Baz может вызываться при помощи {{Baz|Foo}}

Страница Special:CategoryTree

Служебная страница называется Special:CategoryTree; здесь вы можете ввести название категории, а затем просмотреть её содержание.

Конфигурация

Существуют некоторые опции, которые вы можете указать в своем файлеLocalSettings.php:

Вы больше не можете использовать в LocalSettings.php константы CT_*. Вместо этого используйте0 для режима категорий,10 для страниц,20 для всех,100 для родителей.
$wgCategoryTreeMaxChildren
максимальное количество дочерних категорий в дереве. По умолчанию 200.
$wgCategoryTreeAllowTag
включить тег <categorytree>. По умолчанию true.
$wgCategoryTreeDynamicTag
загрузка первого уровня в дерево <categorytree> динамически. Таким образом, кэширование не должно быть отключено. По умолчанию false.
$wgCategoryTreeDisableCache
отключить кэширование для страниц с тегом <categorytree>. По умолчанию 21600, что составляет 6 часов.
$wgCategoryTreeUseCache
enable HTTP cache for anon users. Default is false.
$wgCategoryTreeOmitNamespace
do not show the namespace name for pages and categories. Default is false, namespaces are shown unless showing categories only. Deprecated as ofr36864, July 2008: use$wgCategoryTreeDefaultOptions['hideprefix'] instead.
$wgCategoryTreeMaxDepth
an array defining the maximum depth for eachmode, to which the tree may be expanded initially using the depth parameter in a <category> tag. By default, this is set to 2 for the "categories" mode, and 1 for other modes. To set it to 3 for categories and 2 for other modes, for example, you can use$wgCategoryTreeMaxDepth=[10=>2,20=>2,0=>3,100=>2];.
$wgCategoryTreeDefaultMode
the default mode to use when no mode attribute is specified in a <categorytree> tag. May be0 (the default - categories),10 (pages), or20 (all).
$wgCategoryTreeCategoryPageMode
the mode to use when rendering trees on category pages. Deprecated as ofr36864, July 2008: use$wgCategoryTreeCategoryPageOptions['mode'] instead.
$wgCategoryTreeSidebarRoot
root category to use for integrating the category tree in the sidebar (sincer36920, July 2008).If not set, no tree is integrated (this is the default).Integrating a CategoryTree into the sidebar only works with skins based upon SkinTemplate, that is, Modern, Monobook, Chick, Simple, and MySkin, but not Standard, Nostalgia or CologneBlue.This is currently broken for MediaWiki 1.35.1 and the vector skin, seephab:T278306.
$wgCategoryTreeDefaultOptions
default options to apply, as an array (sincer36864, July 2008). The availableoptions are described above. Example:$wgCategoryTreeDefaultOptions['mode']='pages';.
$wgCategoryTreeCategoryPageOptions
options to use on category pages, as an array (sincer36864, July 2008).
$wgCategoryTreeSpecialPageOptions
options to use on Special:CategoryTree, as an array (sincer36864, July 2008).
$wgCategoryTreeSidebarOptions
options to use when showing the tree in the sidebar, as an array (sincer36920, July 2008)


Системные сообщения

categorytree-member-num

By default, when listing subcategories on a category page, each subcategory is followed by an integer, indicating how many subcategories lie beneath it, how many pages it contains, and how many files are in the category (if applicable):

My category name (5 C, 2 P, 1 F)

You can change this behavior by overriding the system messageMediaWiki:Categorytree-member-num. It takes five parameters:

ParameterMeaning
$1Number of subcategories
$2Number of articles (not including category pages or file pages)
$3Number of uploaded files
$4Total number of member pages, including category pages and file pages
$5Something close to ($1 C, $2 P, $3 F) but with anything that is 0 omitted.

More precisely, a comma separated list of the number of pages (mediawiki:categorytree-num-pages), subcategories (mediawiki:categorytree-num-categories), and files (mediawiki:categorytree-num-files) in the category, or empty (mediawiki:categorytree-num-empty) in the case the category has no members. In versions prior to those around 1.19 this value was different. Seeolder version of these docs.

The default value is($5).

Tip: Use theParserFunctions extension to provide if/then/else logic to display different parts conditionally. For example:

{{#ifeq:$1|0||$1 categories}}

A configuration to manage commas and spaces when outputting all info:

Abbreviation version:

({{#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}}}})

Full name version:

({{#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}}}})

Поиск и устранение неисправностей

Wiki не работает после установки CategoryTree

  • Включитеerror reporting
  • Убедитесь, что установлены все необходимые файлы
  • Убедитесь, что все файлы расширения имеют правильно настроенные права доступаmode 644, и права на папку CategoryTree - 755.

Параметры в LocalSettings.php не дают эффекта

  • Убедитесь, что вы указываете параметрыпосле подключения расширения.

Clicking the has no effect, gives a JavaScript error or just sits onloading

  • Note that using the <categorytree> tag in system messages (MediaWiki namespace) may not work as expected - this is a known caveat. For a workaround, seeUsing CategoryTree in the Sidebar below.
  • Make sure you have$wgUseAjax=true; in your LocalSettings.phpbefore including the extension.
  • If you are usingrewrite rules or aliasing (e.g. to have "very short URLs" - i.e. wiki pages in the document root or perhaps redirecting to a www-version of the requested URL), make sure you have an exception in place for the /extensions directory, just like you would for the /skins directory. Also see below.

Clicking the showsno sub-categories error

  • Try to fix this by adding this code to LocalSettings.php:$wgCategoryTreeDefaultOptions['namespaces']=[0,NS_CATEGORY,NS_FILE];

Browser reports a bad MIME type for CategoryTree.js and/or CategoryTree.css

  • Make sure your web server uses the correct MIME types for .js and .css files
  • Enter the URLs directly into the browser and see if it is serving the pages at all, and not some error page; especially:
  • If you are usingrewrite rules or aliasing (e.g. to have "very short URLs" - i.e. wiki pages in the document root), make sure you have an exception in place for the /extensions directory, just like you would for the /skins directory.

Member counts are wrong, grey arrows are shown instead of

Since MediaWiki 1.13, CategoryTree can show the number of members of a category, and can show a grey arrow for tree nodes that do not have any children based on that number. This information is based on the newcategory table. However, populating that table with the current values does not always work when upgrading to 1.13. In that case, run thepopulateCategory.php maintenance script, if necessary with the--force option.

toggles shown only on the first level of the category tree view

In case you get only one level depth while visualing the tree, try to set in modules/ext.categoryTree.styles.css filedisplay:none; todisplay:inline!important;.

The JavaScript intended to switch the tag style is somehow buggy.

Note to bot users

Bots and scripts that parse the HTML of category pages can use thenotree URL parameter to force the traditional output. However, HTML output is generally not stable, so it is recommended to change your script to use theAPI to fetch category listings and similar.

"Category Not Found" message

After you implement the CategoryTree plugin and add the code to show the tree, if you see a message that saysCategory Not Found, you need to add some content in your category pages. The category pages can't be red pages, basically. Click your category names, add some text in the category page, and then your tree should work fine.

Next 200 links do not work with CategoryTree installed

Make sure the right version of this extension is installed, relative to the version of MediaWiki you have installed. In particular, versions of this extension made for versions of MediaWiki prior to 1.17 are not compatible with MediaWiki 1.17 and greater, and will cause issues where all the paging links on category pages are broken.

No pages are shown when using the "namespaces" parameter

Seeabove.

Hacks

Using CategoryTree in system messages and custom skins

In older versions of CategoryTree, you have to modify the code to make this work: find theefCategoryTreeParserOutput function in the file CategoryTree.php, and remove the condition; i.e. it should then look like this:

functionefCategoryTreeParserOutput(&$outputPage,&$parserOutput){CategoryTree::setHeaders($outputPage);returntrue;}

Using CategoryTree in the Sidebar

Using JavaScript

Sincer36920 (July 2008) with MediaWiki 1.13 (r36917), you can integrate a CategoryTree in the sidebar simply by setting$wgCategoryTreeSidebarRoot to the category you want to use as a root. This only works with skins based upon SkinTemplate however, that is, Modern, Monobook, Chick, Simple, and MySkin, but not Standard, Nostalgia or CologneBlue.

If you want the CategoryTree on a different position in the sidebar, you can reference it onMediaWiki:Sidebar as "categorytree-portlet".

For earlier versions of CategoryTree and/or MediaWiki, you'll need to install a mod to MonoBook.php to enable normal wikitext in the sidebar, seeWikitext in side bar --DJ 19:26, 24 January 2008 (UTC)

To append a link "CategoryTree" to your toolbox (sidebar) add following code to the JavaScript page (e.g.monobook.js) of yourskin and customize the 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 happenedreturn;}}addOnloadHook(AppendCategoryTreeToSidebar);

A more generic version of this code can be found atManual:Interface/Sidebar#content of sidebar and toolbox (javascript).

Step by step if works easy:

$wgCategoryTreeSidebarRoot='Category:article_name';

Using MediaWiki: namespace pages

If you want to create a link that goes to the generic categorytree (displayed asCategory tree) when you're on a non-category page, and to a particular categorytree (displayed asView as category tree, with foo being the name of the category you're viewing) when you're on a category page:

  • Add to yourMediaWiki:Sidebar (right above the SEARCH is a good place) a line,** sidebarcategorytree-url|sidebarcategorytree
  • Create a [[MediaWiki:Sidebarcategorytree]] with, say:{{#ifeq: {{NAMESPACE}}|Category|View as category tree|Category tree}}
  • Create a [[MediaWiki:Sidebarcategorytree-url]] with, say:{{#ifeq: {{NAMESPACE}}|Category|Special:CategoryTree/{{BASEPAGENAME}}|Special:CategoryTree/Categories}}

See also

Это расширение используется в одном или несколькихпроектах Викимедиа. Вероятно, это означает, что расширение стабильно и работает достаточно хорошо, чтобы использоваться такими сайтами с высоким трафиком. Найдите название этого расширения в файлах конфигурации ВикимедиаCommonSettings.php иInitialiseSettings.php, чтобы узнать, где оно установлено. Полный список расширений, установленных на конкретной вики, можно увидеть на страницеSpecial:Version wiki.
Это расширение включено в следующие вики-фермы/хостинги и/или пакеты:
Retrieved from "https://www.mediawiki.org/w/index.php?title=Extension:CategoryTree/ru&oldid=8040626"
Categories:
Hidden category:

[8]ページ先頭

©2009-2025 Movatter.jp