http://www.mediawiki.org/wiki/Special:Code/MediaWiki/100506

Revision: 100506
Author:   johnduhart
Date:     2011-10-22 17:44:14 +0000 (Sat, 22 Oct 2011)
Log Message:
-----------
Moved CheckUser log stuff into a separate special page

Modified Paths:
--------------
    trunk/extensions/CheckUser/CheckUser.alias.php
    trunk/extensions/CheckUser/CheckUser.i18n.php
    trunk/extensions/CheckUser/CheckUser.php
    trunk/extensions/CheckUser/CheckUser_body.php

Added Paths:
-----------
    trunk/extensions/CheckUser/CheckUserLogPager.php
    trunk/extensions/CheckUser/SpecialCheckUserLog.php

Modified: trunk/extensions/CheckUser/CheckUser.alias.php
===================================================================
--- trunk/extensions/CheckUser/CheckUser.alias.php      2011-10-22 17:35:20 UTC 
(rev 100505)
+++ trunk/extensions/CheckUser/CheckUser.alias.php      2011-10-22 17:44:14 UTC 
(rev 100506)
@@ -11,6 +11,7 @@
 /** English (English) */
 $specialPageAliases['en'] = array(
        'CheckUser' => array( 'CheckUser' ),
+       'CheckUserLog' => array( 'CheckUserLog' ),
 );
 
 /** Arabic (العربية) */

Modified: trunk/extensions/CheckUser/CheckUser.i18n.php
===================================================================
--- trunk/extensions/CheckUser/CheckUser.i18n.php       2011-10-22 17:35:20 UTC 
(rev 100505)
+++ trunk/extensions/CheckUser/CheckUser.i18n.php       2011-10-22 17:44:14 UTC 
(rev 100506)
@@ -20,6 +20,7 @@
        'checkuser-desc'             => 'Grants users with the appropriate 
permission the ability to check user\'s IP addresses and other information',
        'checkuser-logcase'          => 'The log search is case sensitive.',
        'checkuser'                  => 'Check user',
+       'checkuserlog'               => 'Check user log',
        'checkuser-contribs'         => 'check user IP addresses',
        'group-checkuser'            => 'Check users',
        'group-checkuser-member'     => '{{GENDER:$1|check user}}',
@@ -29,7 +30,6 @@
        'checkuser-reason'           => 'Reason:',
        'checkuser-reason-api'       => 'API: $1',
        'checkuser-showlog'          => 'Show log',
-       'checkuser-log'              => 'CheckUser log',
        'checkuser-query'            => 'Query recent changes',
        'checkuser-target'           => 'IP address or username:',
        'checkuser-users'            => 'Get users',
@@ -124,6 +124,7 @@
        'checkuser' => 'Check user extension. The name of the special page 
where checkusers can check the IP addresses of users. The message is used in 
the list of special pages, and at the top of [[Special:Checkuser]].
 
 {{Identical|Check user}}',
+       'checkuserlog' => 'The name of the special page where checkusers can 
look at a log of past checkuser actions. The message is used in the list of 
special pages, and at the top of [[Special:CheckUserLog]].',
        'group-checkuser' => '{{doc-group|checkuser}}
 check is a noun, not a verb here
 

Modified: trunk/extensions/CheckUser/CheckUser.php
===================================================================
--- trunk/extensions/CheckUser/CheckUser.php    2011-10-22 17:35:20 UTC (rev 
100505)
+++ trunk/extensions/CheckUser/CheckUser.php    2011-10-22 17:44:14 UTC (rev 
100506)
@@ -81,9 +81,13 @@
 // Set up the new special page
 $wgSpecialPages['CheckUser'] = 'CheckUser';
 $wgSpecialPageGroups['CheckUser'] = 'users';
+$wgSpecialPages['CheckUserLog'] = 'SpecialCheckUserLog';
+$wgSpecialPageGroups['CheckUserLog'] = 'changes';
 
 $wgAutoloadClasses['CheckUser'] = $dir . '/CheckUser_body.php';
 $wgAutoloadClasses['CheckUserHooks'] = $dir . '/CheckUser.hooks.php';
+$wgAutoloadClasses['CheckUserLogPager'] = $dir . '/CheckUserLogPager.php';
+$wgAutoloadClasses['SpecialCheckUserLog'] = $dir . '/SpecialCheckUserLog.php';
 
 // API modules
 $wgAutoloadClasses['ApiQueryCheckUser'] = "$dir/api/ApiQueryCheckUser.php";

Added: trunk/extensions/CheckUser/CheckUserLogPager.php
===================================================================
--- trunk/extensions/CheckUser/CheckUserLogPager.php                            
(rev 0)
+++ trunk/extensions/CheckUser/CheckUserLogPager.php    2011-10-22 17:44:14 UTC 
(rev 100506)
@@ -0,0 +1,89 @@
+<?php
+
+class CheckUserLogPager extends ReverseChronologicalPager {
+       var $searchConds, $specialPage, $y, $m;
+
+       function __construct( $specialPage, $searchConds, $y, $m ) {
+               parent::__construct();
+               /*
+               $this->messages = array_map( 'wfMsg',
+                       array( 'comma-separator', 'checkuser-log-userips', 
'checkuser-log-ipedits', 'checkuser-log-ipusers',
+                       'checkuser-log-ipedits-xff', 
'checkuser-log-ipusers-xff' ) );*/
+
+               $this->getDateCond( $y, $m );
+               $this->searchConds = $searchConds ? $searchConds : array();
+               $this->specialPage = $specialPage;
+       }
+
+       function formatRow( $row ) {
+               global $wgLang;
+
+               $skin = $this->getSkin();
+
+               if ( $row->cul_reason === '' ) {
+                       $comment = '';
+               } else {
+                       $comment = $skin->commentBlock( $row->cul_reason );
+               }
+
+               $user = $skin->userLink( $row->cul_user, $row->user_name );
+
+               if ( $row->cul_type == 'userips' || $row->cul_type == 
'useredits' ) {
+                       $target = $skin->userLink( $row->cul_target_id, 
$row->cul_target_text ) .
+                               $skin->userToolLinks( $row->cul_target_id, 
$row->cul_target_text );
+               } else {
+                       $target = $row->cul_target_text;
+               }
+
+               return '<li>' .
+                       $wgLang->timeanddate( wfTimestamp( TS_MW, 
$row->cul_timestamp ), true ) .
+                       wfMsg( 'comma-separator' ) .
+                       wfMsg(
+                               'checkuser-log-' . $row->cul_type,
+                               $user,
+                               $target
+                       ) .
+                       $comment .
+                       '</li>';
+       }
+
+       function getStartBody() {
+               if ( $this->getNumRows() ) {
+                       return '<ul>';
+               } else {
+                       return '';
+               }
+       }
+
+       function getEndBody() {
+               if ( $this->getNumRows() ) {
+                       return '</ul>';
+               } else {
+                       return '';
+               }
+       }
+
+       function getEmptyBody() {
+               return '<p>' . wfMsgHtml( 'checkuser-empty' ) . '</p>';
+       }
+
+       function getQueryInfo() {
+               $this->searchConds[] = 'user_id = cul_user';
+               return array(
+                       'tables' => array( 'cu_log', 'user' ),
+                       'fields' => $this->selectFields(),
+                       'conds'  => $this->searchConds
+               );
+       }
+
+       function getIndexField() {
+               return 'cul_timestamp';
+       }
+
+       function selectFields() {
+               return array(
+                       'cul_id', 'cul_timestamp', 'cul_user', 'cul_reason', 
'cul_type',
+                       'cul_target_id', 'cul_target_text', 'user_name'
+               );
+       }
+}

Modified: trunk/extensions/CheckUser/CheckUser_body.php
===================================================================
--- trunk/extensions/CheckUser/CheckUser_body.php       2011-10-22 17:35:20 UTC 
(rev 100505)
+++ trunk/extensions/CheckUser/CheckUser_body.php       2011-10-22 17:44:14 UTC 
(rev 100506)
@@ -11,11 +11,7 @@
         */
        public function __construct() {
                global $wgUser;
-               if ( $wgUser->isAllowed( 'checkuser' ) || !$wgUser->isAllowed( 
'checkuser-log' ) ) {
-                       parent::__construct( 'CheckUser', 'checkuser' );
-               } else {
-                       parent::__construct( 'CheckUser', 'checkuser-log' );
-               }
+               parent::__construct( 'CheckUser', 'checkuser' );
 
                $this->sk = $wgUser->getSkin();
        }
@@ -25,37 +21,6 @@
 
                $this->setHeaders();
 
-               // This is horribly shitty.
-               // Lacking formal aliases, it's tough to ensure we have 
compatibility.
-               // Links may break, which sucks.
-               // Language fallbacks will not always be properly utilized.
-               $logMatches = array(
-                       wfMsgForContent( 'checkuser-log-subpage' ),
-                       'Log'
-               );
-
-               foreach ( $logMatches as $log ) {
-                       if ( str_replace( '_', ' ', $wgContLang->lc( $subpage ) 
)
-                               == str_replace( '_ ', ' ', $wgContLang->lc( 
$log ) ) ) {
-                               if ( !$wgUser->isAllowed( 'checkuser-log' ) ) {
-                                       $wgOut->permissionRequired( 
'checkuser-log' );
-                                       return;
-                               }
-
-                               $this->showLog();
-                               return;
-                       }
-               }
-
-               if ( !$wgUser->isAllowed( 'checkuser' ) ) {
-                       if ( $wgUser->isAllowed( 'checkuser-log' ) ) {
-                               $this->showGuide();
-                       } else {
-                               $wgOut->permissionRequired( 'checkuser' );
-                       }
-                       return;
-               }
-
                $user = $wgRequest->getText( 'user' ) ?
                        $wgRequest->getText( 'user' ) : $wgRequest->getText( 
'ip' );
                $user = trim( $user );
@@ -130,17 +95,17 @@
        /**
         * @return Title
         */
-       public function getLogSubpageTitle() {
+       public function getLogTitle() {
                if ( !isset( $this->logSubpageTitle ) ) {
-                       $this->logSubpageTitle = $this->getTitle( 
wfMsgForContent( 'checkuser-log-subpage' ) );
+                       $this->logTitle = Title::makeTitle( NS_SPECIAL, 
'CheckUserLog' );
                }
-               return $this->logSubpageTitle;
+               return $this->logTitle;
        }
 
        protected function showGuide() {
                global $wgOut;
                $wgOut->addWikiText( wfMsg( 'checkuser-summary' ) .
-                       "\n\n[[" . 
$this->getLogSubpageTitle()->getPrefixedText() .
+                       "\n\n[[" . $this->getLogTitle()->getPrefixedText() .
                                '|' . wfMsg( 'checkuser-showlog' ) . ']]'
                );
        }
@@ -1325,133 +1290,6 @@
                return "cuc_timestamp > $cutoff";
        }
 
-       protected function showLog() {
-               global $wgRequest, $wgOut;
-               $type = $wgRequest->getVal( 'cuSearchType' );
-               $target = $wgRequest->getVal( 'cuSearch' );
-               $year = $wgRequest->getIntOrNull( 'year' );
-               $month = $wgRequest->getIntOrNull( 'month' );
-               $error = false;
-               $dbr = wfGetDB( DB_SLAVE );
-               $searchConds = false;
-
-               $wgOut->setPageTitle( wfMsg( 'checkuser-log' ) );
-
-               $wgOut->addHTML( $this->sk->makeKnownLinkObj( 
$this->getTitle(), wfMsgHtml( 'checkuser-log-return' ) ) );
-
-               if ( $type === null ) {
-                       $type = 'target';
-               } elseif ( $type == 'initiator' ) {
-                       $user = User::newFromName( $target );
-                       if ( !$user || !$user->getID() ) {
-                               $error = 'checkuser-user-nonexistent';
-                       } else {
-                               $searchConds = array( 'cul_user' => 
$user->getID() );
-                       }
-               } else /* target */ {
-                       $type = 'target';
-                       // Is it an IP?
-                       list( $start, $end ) = IP::parseRange( $target );
-                       if ( $start !== false ) {
-                               if ( $start == $end ) {
-                                       $searchConds = array( 'cul_target_hex = 
' . $dbr->addQuotes( $start ) . ' OR ' .
-                                               '(cul_range_end >= ' . 
$dbr->addQuotes( $start ) . ' AND ' .
-                                               'cul_range_start <= ' . 
$dbr->addQuotes( $end ) . ')'
-                                       );
-                               } else {
-                                       $searchConds = array(
-                                               '(cul_target_hex >= ' . 
$dbr->addQuotes( $start ) . ' AND ' .
-                                               'cul_target_hex <= ' . 
$dbr->addQuotes( $end ) . ') OR ' .
-                                               '(cul_range_end >= ' . 
$dbr->addQuotes( $start ) . ' AND ' .
-                                               'cul_range_start <= ' . 
$dbr->addQuotes( $end ) . ')'
-                                       );
-                               }
-                       } else {
-                               // Is it a user?
-                               $user = User::newFromName( $target );
-                               if ( $user && $user->getID() ) {
-                                       $searchConds = array(
-                                               'cul_type' => array( 'userips', 
'useredits' ),
-                                               'cul_target_id' => 
$user->getID(),
-                                       );
-                               } elseif ( $target ) {
-                                       $error = 'checkuser-user-nonexistent';
-                               }
-                       }
-               }
-
-               $searchTypes = array( 'initiator', 'target' );
-               $select = "<select name=\"cuSearchType\" 
style='margin-top:.2em;'>\n";
-               foreach ( $searchTypes as $searchType ) {
-                       if ( $type == $searchType ) {
-                               $checked = 'selected="selected"';
-                       } else {
-                               $checked = '';
-                       }
-                       $caption = wfMsgHtml( 'checkuser-search-' . $searchType 
);
-                       $select .= "<option value=\"$searchType\" 
$checked>$caption</option>\n";
-               }
-               $select .= '</select>';
-
-               $encTarget = htmlspecialchars( $target );
-               $msgSearch = wfMsgHtml( 'checkuser-search' );
-               $input = "<input type=\"text\" name=\"cuSearch\" 
value=\"$encTarget\" size=\"40\"/>";
-               $msgSearchForm = wfMsgHtml( 'checkuser-search-form', $select, 
$input );
-               $formAction = $this->getLogSubpageTitle()->escapeLocalURL();
-               $msgSearchSubmit = '&#160;&#160;' . wfMsgHtml( 
'checkuser-search-submit' ) . '&#160;&#160;';
-
-               $s = "<form method='get' action=\"$formAction\">\n" .
-                       "<fieldset><legend>$msgSearch</legend>\n" .
-                       "<p>$msgSearchForm</p>\n" .
-                       "<p>" . $this->getDateMenu( $year, $month ) . 
"&#160;&#160;&#160;\n" .
-                       "<input type=\"submit\" name=\"cuSearchSubmit\" 
value=\"$msgSearchSubmit\"/></p>\n" .
-                       "</fieldset></form>\n";
-               $wgOut->addHTML( $s );
-
-               if ( $error !== false ) {
-                       $wgOut->wrapWikiMsg( '<div class="errorbox">$1</div>', 
$error );
-                       return;
-               }
-
-               $pager = new CheckUserLogPager( $this, $searchConds, $year, 
$month );
-               $wgOut->addHTML(
-                       $pager->getNavigationBar() .
-                       $pager->getBody() .
-                       $pager->getNavigationBar()
-               );
-       }
-
-       /**
-        * @return string Formatted HTML
-        * @param int $year
-        * @param int $month
-        */
-       protected function getDateMenu( $year, $month ) {
-               # Offset overrides year/month selection
-               if ( $month && $month !== - 1 ) {
-                       $encMonth = intval( $month );
-               } else {
-                       $encMonth = '';
-               }
-               if ( $year ) {
-                       $encYear = intval( $year );
-               } elseif ( $encMonth ) {
-                       $thisMonth = intval( gmdate( 'n' ) );
-                       $thisYear = intval( gmdate( 'Y' ) );
-                       if ( intval( $encMonth ) > $thisMonth ) {
-                               $thisYear--;
-                       }
-                       $encYear = $thisYear;
-               } else {
-                       $encYear = '';
-               }
-               return Xml::label( wfMsg( 'year' ), 'year' ) . ' ' .
-                       Xml::input( 'year', 4, $encYear, array( 'id' => 'year', 
'maxlength' => 4 ) ) .
-                       ' ' .
-                       Xml::label( wfMsg( 'month' ), 'month' ) . ' ' .
-                       Xml::monthSelector( $encMonth, - 1 );
-       }
-
        public static function addLogEntry( $logType, $targetType, $target, 
$reason, $targetID = 0 ) {
                global $wgUser;
 
@@ -1485,94 +1323,3 @@
        }
 }
 
-class CheckUserLogPager extends ReverseChronologicalPager {
-       var $searchConds, $specialPage, $y, $m;
-
-       function __construct( $specialPage, $searchConds, $y, $m ) {
-               parent::__construct();
-               /*
-               $this->messages = array_map( 'wfMsg',
-                       array( 'comma-separator', 'checkuser-log-userips', 
'checkuser-log-ipedits', 'checkuser-log-ipusers',
-                       'checkuser-log-ipedits-xff', 
'checkuser-log-ipusers-xff' ) );*/
-
-               $this->getDateCond( $y, $m );
-               $this->searchConds = $searchConds ? $searchConds : array();
-               $this->specialPage = $specialPage;
-       }
-
-       function formatRow( $row ) {
-               global $wgLang;
-
-               $skin = $this->getSkin();
-
-               if ( $row->cul_reason === '' ) {
-                       $comment = '';
-               } else {
-                       $comment = $skin->commentBlock( $row->cul_reason );
-               }
-
-               $user = $skin->userLink( $row->cul_user, $row->user_name );
-
-               if ( $row->cul_type == 'userips' || $row->cul_type == 
'useredits' ) {
-                       $target = $skin->userLink( $row->cul_target_id, 
$row->cul_target_text ) .
-                               $skin->userToolLinks( $row->cul_target_id, 
$row->cul_target_text );
-               } else {
-                       $target = $row->cul_target_text;
-               }
-
-               return '<li>' .
-                       $wgLang->timeanddate( wfTimestamp( TS_MW, 
$row->cul_timestamp ), true ) .
-                       wfMsg( 'comma-separator' ) .
-                       wfMsg(
-                               'checkuser-log-' . $row->cul_type,
-                               $user,
-                               $target
-                       ) .
-                       $comment .
-                       '</li>';
-       }
-
-       function getStartBody() {
-               if ( $this->getNumRows() ) {
-                       return '<ul>';
-               } else {
-                       return '';
-               }
-       }
-
-       function getEndBody() {
-               if ( $this->getNumRows() ) {
-                       return '</ul>';
-               } else {
-                       return '';
-               }
-       }
-
-       function getEmptyBody() {
-               return '<p>' . wfMsgHtml( 'checkuser-empty' ) . '</p>';
-       }
-
-       function getQueryInfo() {
-               $this->searchConds[] = 'user_id = cul_user';
-               return array(
-                       'tables' => array( 'cu_log', 'user' ),
-                       'fields' => $this->selectFields(),
-                       'conds'  => $this->searchConds
-               );
-       }
-
-       function getIndexField() {
-               return 'cul_timestamp';
-       }
-
-       function getTitle() {
-               return $this->specialPage->getLogSubpageTitle();
-       }
-
-       function selectFields() {
-               return array(
-                       'cul_id', 'cul_timestamp', 'cul_user', 'cul_reason', 
'cul_type',
-                       'cul_target_id', 'cul_target_text', 'user_name'
-               );
-       }
-}

Added: trunk/extensions/CheckUser/SpecialCheckUserLog.php
===================================================================
--- trunk/extensions/CheckUser/SpecialCheckUserLog.php                          
(rev 0)
+++ trunk/extensions/CheckUser/SpecialCheckUserLog.php  2011-10-22 17:44:14 UTC 
(rev 100506)
@@ -0,0 +1,133 @@
+<?php
+
+class SpecialCheckUserLog extends SpecialPage {
+       public function __construct() {
+               parent::__construct( 'CheckUserLog', 'checkuser-log' );
+       }
+
+       function execute( $par ) {
+               $out = $this->getOutput();
+               $request = $this->getRequest();
+               $this->setHeaders();
+
+               $type = $request->getVal( 'cuSearchType' );
+               $target = $request->getVal( 'cuSearch' );
+               $year = $request->getIntOrNull( 'year' );
+               $month = $request->getIntOrNull( 'month' );
+               $error = false;
+               $dbr = wfGetDB( DB_SLAVE );
+               $searchConds = false;
+
+               if ( $type === null ) {
+                       $type = 'target';
+               } elseif ( $type == 'initiator' ) {
+                       $user = User::newFromName( $target );
+                       if ( !$user || !$user->getID() ) {
+                               $error = 'checkuser-user-nonexistent';
+                       } else {
+                               $searchConds = array( 'cul_user' => 
$user->getID() );
+                       }
+               } else /* target */ {
+                       $type = 'target';
+                       // Is it an IP?
+                       list( $start, $end ) = IP::parseRange( $target );
+                       if ( $start !== false ) {
+                               if ( $start == $end ) {
+                                       $searchConds = array( 'cul_target_hex = 
' . $dbr->addQuotes( $start ) . ' OR ' .
+                                               '(cul_range_end >= ' . 
$dbr->addQuotes( $start ) . ' AND ' .
+                                               'cul_range_start <= ' . 
$dbr->addQuotes( $end ) . ')'
+                                       );
+                               } else {
+                                       $searchConds = array(
+                                               '(cul_target_hex >= ' . 
$dbr->addQuotes( $start ) . ' AND ' .
+                                               'cul_target_hex <= ' . 
$dbr->addQuotes( $end ) . ') OR ' .
+                                               '(cul_range_end >= ' . 
$dbr->addQuotes( $start ) . ' AND ' .
+                                               'cul_range_start <= ' . 
$dbr->addQuotes( $end ) . ')'
+                                       );
+                               }
+                       } else {
+                               // Is it a user?
+                               $user = User::newFromName( $target );
+                               if ( $user && $user->getID() ) {
+                                       $searchConds = array(
+                                               'cul_type' => array( 'userips', 
'useredits' ),
+                                               'cul_target_id' => 
$user->getID(),
+                                       );
+                               } elseif ( $target ) {
+                                       $error = 'checkuser-user-nonexistent';
+                               }
+                       }
+               }
+               
+               $searchTypes = array( 'initiator', 'target' );
+               $select = "<select name=\"cuSearchType\" 
style='margin-top:.2em;'>\n";
+               foreach ( $searchTypes as $searchType ) {
+                       if ( $type == $searchType ) {
+                               $checked = 'selected="selected"';
+                       } else {
+                               $checked = '';
+                       }
+                       $caption = wfMsgHtml( 'checkuser-search-' . $searchType 
);
+                       $select .= "<option value=\"$searchType\" 
$checked>$caption</option>\n";
+               }
+               $select .= '</select>';
+
+               $encTarget = htmlspecialchars( $target );
+               $msgSearch = wfMsgHtml( 'checkuser-search' );
+               $input = "<input type=\"text\" name=\"cuSearch\" 
value=\"$encTarget\" size=\"40\"/>";
+               $msgSearchForm = wfMsgHtml( 'checkuser-search-form', $select, 
$input );
+               $formAction = $this->getTitle()->escapeLocalURL();
+               $msgSearchSubmit = '&#160;&#160;' . wfMsgHtml( 
'checkuser-search-submit' ) . '&#160;&#160;';
+
+               $s = "<form method='get' action=\"$formAction\">\n" .
+                       "<fieldset><legend>$msgSearch</legend>\n" .
+                       "<p>$msgSearchForm</p>\n" .
+                       "<p>" . $this->getDateMenu( $year, $month ) . 
"&#160;&#160;&#160;\n" .
+                       "<input type=\"submit\" name=\"cuSearchSubmit\" 
value=\"$msgSearchSubmit\"/></p>\n" .
+                       "</fieldset></form>\n";
+               $out->addHTML( $s );
+
+               if ( $error !== false ) {
+                       $out->wrapWikiMsg( '<div class="errorbox">$1</div>', 
$error );
+                       return;
+               }
+
+               $pager = new CheckUserLogPager( $this, $searchConds, $year, 
$month );
+               $out->addHTML(
+                       $pager->getNavigationBar() .
+                       $pager->getBody() .
+                       $pager->getNavigationBar()
+               );
+       }
+
+       /**
+        * @return string Formatted HTML
+        * @param int $year
+        * @param int $month
+        */
+       protected function getDateMenu( $year, $month ) {
+               # Offset overrides year/month selection
+               if ( $month && $month !== - 1 ) {
+                       $encMonth = intval( $month );
+               } else {
+                       $encMonth = '';
+               }
+               if ( $year ) {
+                       $encYear = intval( $year );
+               } elseif ( $encMonth ) {
+                       $thisMonth = intval( gmdate( 'n' ) );
+                       $thisYear = intval( gmdate( 'Y' ) );
+                       if ( intval( $encMonth ) > $thisMonth ) {
+                               $thisYear--;
+                       }
+                       $encYear = $thisYear;
+               } else {
+                       $encYear = '';
+               }
+               return Xml::label( wfMsg( 'year' ), 'year' ) . ' ' .
+                       Xml::input( 'year', 4, $encYear, array( 'id' => 'year', 
'maxlength' => 4 ) ) .
+                       ' ' .
+                       Xml::label( wfMsg( 'month' ), 'month' ) . ' ' .
+                       Xml::monthSelector( $encMonth, - 1 );
+       }
+}


_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to