Add/update doc blocks for MWTidy
[lhc/web/wiklou.git] / includes / CategoryViewer.php
index f749003..490f548 100644 (file)
@@ -138,9 +138,13 @@ class CategoryViewer extends ContextSource {
                }
 
                $lang = $this->getLanguage();
-               $langAttribs = [ 'lang' => $lang->getHtmlCode(), 'dir' => $lang->getDir() ];
+               $attribs = [
+                       'class' => 'mw-category-generated',
+                       'lang' => $lang->getHtmlCode(),
+                       'dir' => $lang->getDir()
+               ];
                # put a div around the headings which are in the user language
-               $r = Html::openElement( 'div', $langAttribs ) . $r . '</div>';
+               $r = Html::openElement( 'div', $attribs ) . $r . '</div>';
 
                return $r;
        }
@@ -403,11 +407,26 @@ class CategoryViewer extends ContextSource {
                return $r;
        }
 
+       /**
+        * Return pretty name which is display name if given and different from prefix text or
+        * the unprefixed page name.
+        *
+        * @return string HTML safe name.
+        */
+       function getPrettyPageNameHtml() {
+               $displayTitle = $this->getOutput()->getPageTitle();
+               if ( $displayTitle === $this->getTitle()->getPrefixedText() ) {
+                       return htmlspecialchars( $this->getTitle()->getText() );
+               } else {
+                       return $displayTitle;
+               }
+       }
+
        /**
         * @return string
         */
        function getPagesSection() {
-               $ti = wfEscapeWikiText( $this->title->getText() );
+               $name = $this->getPrettyPageNameHtml();
                # Don't show articles section if there are none.
                $r = '';
 
@@ -423,7 +442,7 @@ class CategoryViewer extends ContextSource {
 
                if ( $rescnt > 0 ) {
                        $r = "<div id=\"mw-pages\">\n";
-                       $r .= '<h2>' . $this->msg( 'category_header', $ti )->parse() . "</h2>\n";
+                       $r .= '<h2>' . $this->msg( 'category_header' )->rawParams( $name )->parse() . "</h2>\n";
                        $r .= $countmsg;
                        $r .= $this->getSectionPagingLinks( 'page' );
                        $r .= $this->formatList( $this->articles, $this->articles_start_char );
@@ -437,6 +456,7 @@ class CategoryViewer extends ContextSource {
         * @return string
         */
        function getImageSection() {
+               $name = $this->getPrettyPageNameHtml();
                $r = '';
                $rescnt = $this->showGallery ? $this->gallery->count() : count( $this->imgsNoGallery );
                $dbcnt = $this->cat->getFileCount();
@@ -446,10 +466,7 @@ class CategoryViewer extends ContextSource {
                if ( $rescnt > 0 ) {
                        $r .= "<div id=\"mw-category-media\">\n";
                        $r .= '<h2>' .
-                               $this->msg(
-                                       'category-media-header',
-                                       wfEscapeWikiText( $this->title->getText() )
-                               )->text() .
+                               $this->msg( 'category-media-header' )->rawParams( $name )->parse() .
                                "</h2>\n";
                        $r .= $countmsg;
                        $r .= $this->getSectionPagingLinks( 'file' );
@@ -528,17 +545,17 @@ class CategoryViewer extends ContextSource {
        }
 
        /**
-        * Format a list of articles chunked by letter in a three-column
-        * list, ordered vertically.
+        * Format a list of articles chunked by letter in a three-column list, ordered
+        * vertically. This is used for categories with a significant number of pages.
         *
         * TODO: Take the headers into account when creating columns, so they're
         * more visually equal.
         *
         * TODO: shortList and columnList are similar, need merging
         *
-        * @param array $articles
-        * @param string[] $articles_start_char
-        * @return string
+        * @param string[] $articles HTML links to each article
+        * @param string[] $articles_start_char The header characters for each article
+        * @return string HTML to output
         * @private
         */
        static function columnList( $articles, $articles_start_char ) {
@@ -575,10 +592,11 @@ class CategoryViewer extends ContextSource {
        }
 
        /**
-        * Format a list of articles chunked by letter in a bullet list.
-        * @param array $articles
-        * @param string[] $articles_start_char
-        * @return string
+        * Format a list of articles chunked by letter in a bullet list. This is used
+        * for categories with a small number of pages (when columns aren't needed).
+        * @param string[] $articles HTML links to each article
+        * @param string[] $articles_start_char The header characters for each article
+        * @return string HTML to output
         * @private
         */
        static function shortList( $articles, $articles_start_char ) {