Extension:HideCategorizedOrphans

From MediaWiki.org
Jump to navigation Jump to search

Other languages:
English • ‎español • ‎polski • ‎日本語
MediaWiki extensions manual
OOjs UI icon advanced.svg
HideCategorizedOrphans
Release status: beta
Implementation MyWiki
Description Makes MediaWiki consider pages that belong to a category not be orphans
Author(s) Steven Orvis (Sorvistalk)
Latest version 0.2.0 (2014-06-09)
MediaWiki 1.23+
PHP 5.3+
Database changes No
License GNU General Public License 2.0 or later
Download See the code section
Hooks used
LonelyPagesQuery
Translate the HideCategorizedOrphans extension if it is available at translatewiki.net
Check usage and version matrix.

The HideCategorizedOrphans extension makes MediaWiki consider pages that belong to a category not be orphans. This is useful if you want to link to a category off of a page, but the links to that individual page show up nowhere else.

Installation[edit]

  • Add the following code at the bottom of your LocalSettings.php:
    require_once "$IP/extensions/HideCategorizedOrphans/HideCategorizedOrphans.php";
    
  • Yes Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

Code[edit]

HideCategorizedOrphans.php
<?php
/**
 * HideCategoizedOrphans extension
 *
 * For more info see https://mediawiki.org/wiki/Extension:HideCategorizedOrphans
 *
 * @file
 * @ingroup Extensions
 * @author Steven Orvis, 2014
 * @license GNU General Public Licence 2.0 or later
 */

$wgExtensionCredits['other'][] = array(
        'path' => __FILE__,
        'name' => 'HideCategorizedOrphans',
        'author' => array(
                'Steven Orvis',
        ),
        'version'  => '0.2.0',
        'url' => 'https://www.mediawiki.org/wiki/Extension:HideCategorizedOrphans',
        'descriptionmsg' => 'Hides orphaned pages that belong to a category',
);

/* Setup */

// Register files
$wgAutoloadClasses['HideCategorizedOrphansHooks'] = __DIR__ . '/HideCategorizedOrphans.hooks.php';

// Register hooks
$wgHooks['LonelyPagesQuery'][] = 'HideCategorizedOrphansHooks::onLonelyPagesQuery';


HideCategorizedOrphans.hooks.php
<?php
/**
 * Hooks for HideCategorizedOrphans extension
 *
 * @file
 * @ingroup Extensions
 */

class HideCategorizedOrphansHooks {

        /**
         * Add condition to LonelyPagesQuery to hide pages in categories
         */
        public static function onLonelyPagesQuery( &$tables, &$conds, &$joinConds) {
                $joinConds['categorylinks'] = array(
                        'LEFT JOIN', array(
                                'cl_from = page_id'
                        )
                );

                $tables[] = 'categorylinks';

                $conds[] = 'cl_from is null';
                return true;
        }
}