Merge "Make image/vnd.microsoft.icon be an alias for image/x-icon mime type."
[lhc/web/wiklou.git] / includes / specials / SpecialTags.php
index 80c38d5..b762728 100644 (file)
  * @ingroup SpecialPage
  */
 class SpecialTags extends SpecialPage {
+       /**
+        * @var array List of defined tags
+        */
+       public $definedTags;
 
        function __construct() {
                parent::__construct( 'Tags' );
@@ -42,16 +46,24 @@ class SpecialTags extends SpecialPage {
 
                // Write the headers
                $html = Xml::tags( 'tr', null, Xml::tags( 'th', null, $this->msg( 'tags-tag' )->parse() ) .
-                               Xml::tags( 'th', null, $this->msg( 'tags-display-header' )->parse() ) .
-                               Xml::tags( 'th', null, $this->msg( 'tags-description-header' )->parse() ) .
-                               Xml::tags( 'th', null, $this->msg( 'tags-hitcount-header' )->parse() )
-                       );
+                       Xml::tags( 'th', null, $this->msg( 'tags-display-header' )->parse() ) .
+                       Xml::tags( 'th', null, $this->msg( 'tags-description-header' )->parse() ) .
+                       Xml::tags( 'th', null, $this->msg( 'tags-active-header' )->parse() ) .
+                       Xml::tags( 'th', null, $this->msg( 'tags-hitcount-header' )->parse() )
+               );
+
+               // Used in #doTagRow()
+               $this->definedTags = array_fill_keys( ChangeTags::listDefinedTags(), true );
 
                foreach ( ChangeTags::tagUsageStatistics() as $tag => $hitcount ) {
                        $html .= $this->doTagRow( $tag, $hitcount );
                }
 
-               $out->addHTML( Xml::tags( 'table', array( 'class' => 'wikitable sortable mw-tags-table' ), $html ) );
+               $out->addHTML( Xml::tags(
+                       'table',
+                       array( 'class' => 'wikitable sortable mw-tags-table' ),
+                       $html
+               ) );
        }
 
        function doTagRow( $tag, $hitcount ) {
@@ -62,7 +74,10 @@ class SpecialTags extends SpecialPage {
                $disp = ChangeTags::tagDescription( $tag );
                if ( $user->isAllowed( 'editinterface' ) ) {
                        $disp .= ' ';
-                       $editLink = Linker::link( Title::makeTitle( NS_MEDIAWIKI, "Tag-$tag" ), $this->msg( 'tags-edit' )->escaped() );
+                       $editLink = Linker::link(
+                               Title::makeTitle( NS_MEDIAWIKI, "Tag-$tag" ),
+                               $this->msg( 'tags-edit' )->escaped()
+                       );
                        $disp .= $this->msg( 'parentheses' )->rawParams( $editLink )->escaped();
                }
                $newRow .= Xml::tags( 'td', null, $disp );
@@ -71,13 +86,26 @@ class SpecialTags extends SpecialPage {
                $desc = !$msg->exists() ? '' : $msg->parse();
                if ( $user->isAllowed( 'editinterface' ) ) {
                        $desc .= ' ';
-                       $editDescLink = Linker::link( Title::makeTitle( NS_MEDIAWIKI, "Tag-$tag-description" ), $this->msg( 'tags-edit' )->escaped() );
+                       $editDescLink = Linker::link(
+                               Title::makeTitle( NS_MEDIAWIKI, "Tag-$tag-description" ),
+                               $this->msg( 'tags-edit' )->escaped()
+                       );
                        $desc .= $this->msg( 'parentheses' )->rawParams( $editDescLink )->escaped();
                }
                $newRow .= Xml::tags( 'td', null, $desc );
 
+               $active = isset( $this->definedTags[$tag] ) ? 'tags-active-yes' : 'tags-active-no';
+               $active = $this->msg( $active )->escaped();
+               $newRow .= Xml::tags( 'td', null, $active );
+
                $hitcountLabel = $this->msg( 'tags-hitcount' )->numParams( $hitcount )->escaped();
-               $hitcountLink = Linker::link( SpecialPage::getTitleFor( 'Recentchanges' ), $hitcountLabel, array(), array( 'tagfilter' => $tag ) );
+               $hitcountLink = Linker::link(
+                       SpecialPage::getTitleFor( 'Recentchanges' ),
+                       $hitcountLabel,
+                       array(),
+                       array( 'tagfilter' => $tag )
+               );
+
                // add raw $hitcount for sorting, because tags-hitcount contains numbers and letters
                $newRow .= Xml::tags( 'td', array( 'data-sort-value' => $hitcount ), $hitcountLink );