36 global $wgCategoryTreeForceHeaders;
37 return $wgCategoryTreeForceHeaders;
46 global $wgCategoryTreeDefaultOptions, $wgCategoryTreeDefaultMode;
47 global $wgCategoryTreeCategoryPageOptions, $wgCategoryTreeCategoryPageMode;
48 global $wgCategoryTreeOmitNamespace;
50 if ( !isset( $wgCategoryTreeDefaultOptions[
'mode'] )
51 || is_null( $wgCategoryTreeDefaultOptions[
'mode'] )
53 $wgCategoryTreeDefaultOptions[
'mode'] = $wgCategoryTreeDefaultMode;
56 if ( !isset( $wgCategoryTreeDefaultOptions[
'hideprefix'] )
57 || is_null( $wgCategoryTreeDefaultOptions[
'hideprefix'] )
59 $wgCategoryTreeDefaultOptions[
'hideprefix'] = $wgCategoryTreeOmitNamespace;
62 if ( !isset( $wgCategoryTreeCategoryPageOptions[
'mode'] )
63 || is_null( $wgCategoryTreeCategoryPageOptions[
'mode'] )
66 $wgCategoryTreeCategoryPageOptions[
'mode'] = ( $mode )
75 global $wgCategoryTreeAllowTag;
76 if ( !$wgCategoryTreeAllowTag ) {
79 $parser->
setHook(
'categorytree',
'CategoryTreeHooks::parserHook' );
80 $parser->
setFunctionHook(
'categorytree',
'CategoryTreeHooks::parserFunction' );
96 $cat = array_shift( $params );
100 foreach ( $params as $p ) {
101 if ( preg_match(
'/^\s*(\S.*?)\s*=\s*(.*?)\s*$/', $p, $m ) ) {
104 $v = preg_replace(
'/^"\s*(.*?)\s*"$/',
'$1', $m[2] );
115 return [ $html,
'noparse' =>
true,
'isHTML' =>
true ];
125 global $wgCategoryTreeSidebarRoot, $wgCategoryTreeSidebarOptions;
127 if ( !$wgCategoryTreeSidebarRoot ) {
131 $html =
self::parserHook( $wgCategoryTreeSidebarRoot, $wgCategoryTreeSidebarOptions );
133 $sidebar[
'categorytree-portlet'] = $html;
152 $allowMissing =
false
155 # flag for use by CategoryTreeHooks::parserOutput
156 $parser->mOutput->mCategoryTreeTag =
true;
161 $attr = Sanitizer::validateTagAttributes( $argv,
'div' );
163 $hideroot = isset( $argv[
'hideroot'] )
165 $onlyroot = isset( $argv[
'onlyroot'] )
167 $depthArg = isset( $argv[
'depth'] ) ? (int)$argv[
'depth'] :
null;
174 return $ct->getTag( $parser, $cat, $hideroot, $attr, $depth, $allowMissing );
186 if ( self::shouldForceHeaders() ) {
190 if ( !empty( $parserOutput->mCategoryTreeTag ) ) {
202 if ( !self::shouldForceHeaders() ) {
232 global $wgCategoryTreePageCategoryOptions, $wgCategoryTreeHijackPageCategories;
234 if ( !$wgCategoryTreeHijackPageCategories ) {
239 foreach ( $categories as $category =>
$type ) {
254 global $wgCategoryTreeCategoryPageOptions;
257 $ct =
new CategoryTree( $wgCategoryTreeCategoryPageOptions );
260 'defaultCtOptions' => $ct->getOptionsAsJsStructure(),
271 SpecialPage $specialPage, array $trackingCategories
273 $categoryDbKeys = [];
274 foreach ( $trackingCategories as $catMsg => $data ) {
275 foreach ( $data[
'cats'] as $catTitle ) {
276 $categoryDbKeys[] = $catTitle->getDbKey();
280 if ( $categoryDbKeys ) {
284 [
'cat_id',
'cat_title',
'cat_pages',
'cat_subcats',
'cat_files' ],
285 [
'cat_title' => array_unique( $categoryDbKeys ) ],
288 foreach (
$res as $row ) {
289 $categories[$row->cat_title] = Category::newFromRow( $row );
292 $specialPage->categoryTreeCategories = $categories;
305 if ( !isset( $specialPage->categoryTreeCategories ) ) {
310 if ( isset( $specialPage->categoryTreeCategories[$catTitle->getDbKey()] ) ) {
311 $cat = $specialPage->categoryTreeCategories[$catTitle->getDbKey()];
wfGetDB( $db, $groups=[], $wiki=false)
Get a Database object.
if(! $wgDBerrorLogTZ) $wgRequest
Class for viewing MediaWiki article and history.
Hooks for the CategoryTree extension, an AJAX based gadget to display the category structure of a wik...
static outputPageMakeCategoryLinks(OutputPage &$out, array $categories, array &$links)
OutputPageMakeCategoryLinks hook, override category links.
static onSpecialTrackingCategoriesPreprocess(SpecialPage $specialPage, array $trackingCategories)
Hook handler for the SpecialTrackingCategories::preprocess hook PhanUndeclaredProperty SpecialPage->c...
static parserHook( $cat, array $argv, Parser $parser=null, $allowMissing=false)
Entry point for the <categorytree> tag parser hook.
static parserFunction(Parser $parser,... $params)
Entry point for the {{#categorytree}} tag parser function.
static setHooks(Parser $parser)
static parserOutput(OutputPage $outputPage, ParserOutput $parserOutput)
Hook callback that injects messages and things into the <head> tag, if needed in the current page.
static articleFromTitle(Title $title, Article &$article=null)
ArticleFromTitle hook, override category page handling.
static initialize()
Adjusts config once MediaWiki is fully initialised TODO: Don't do this, lazy initialize the config.
static addHeaders(OutputPage $out)
BeforePageDisplay and BeforePageDisplayMobile hooks.
static onSpecialTrackingCategoriesGenerateCatLink(SpecialPage $specialPage, Title $catTitle, &$html)
Hook handler for the SpecialTrackingCategories::generateCatLink hook PhanUndeclaredProperty SpecialPa...
static shouldForceHeaders()
static getDataForJs()
Get exported data for the "ext.categoryTree" ResourceLoader module.
static onSkinBuildSidebar(Skin $skin, array &$sidebar)
Hook implementation for injecting a category tree into the sidebar.
Core functions for the CategoryTree extension, an AJAX based gadget to display the category structure...
static setHeaders(OutputPage $outputPage)
Add ResourceLoader modules to the OutputPage object.
static decodeBoolean( $value)
Helper function to convert a string to a boolean value.
static decodeMode( $mode)
static createCountString(IContextSource $context, Category $cat=null, $countMode)
Create a string which format the page, subcat and file counts of a category PhanParamReqAfterOpt $cat...
static capDepth( $mode, $depth)
Internal function to cap depth PhanPluginDuplicateConditionalNullCoalescing until PHP7 is required.
This is one of the Core classes and should be read at least once by any new developers.
PHP Parser - Processes wiki markup (which uses a more user-friendly syntax, such as "[[link]]" for ma...
setFunctionHook( $id, callable $callback, $flags=0)
Create a function, e.g.
setHook( $tag, callable $callback)
Create an HTML-style tag, e.g.
The main skin class which provides methods and properties for all other skins.
Parent class for all special pages.
getContext()
Gets the context this SpecialPage is executed in.
Represents a title within MediaWiki.