X-Git-Url: https://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2FLogPage.php;h=6d28ba319d53be4292dbaa082df33363c6a7ede4;hb=380a6661a14e96709f6b03f1d350d850ac22493e;hp=54ab1b6735a508764cddd4ac955f694072905b80;hpb=f61ae30bedcb7b881a139b623ca1d834aaae7114;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/LogPage.php b/includes/LogPage.php index 54ab1b6735..6d28ba319d 100644 --- a/includes/LogPage.php +++ b/includes/LogPage.php @@ -2,17 +2,17 @@ # # Copyright (C) 2002, 2004 Brion Vibber # http://www.mediawiki.org/ -# +# # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. -# +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. @@ -32,12 +32,21 @@ * @package MediaWiki */ class LogPage { - /* private */ var $type, $action, $comment, $params, $target; - var $updateRecentChanges = true; + /* @access private */ + var $type, $action, $comment, $params, $target; + /* @acess public */ + var $updateRecentChanges; - function LogPage( $type ) { - # Type is one of 'block', 'protect', 'rights', 'delete', 'upload', 'move' + /** + * Constructor + * + * @param string $type One of '', 'block', 'protect', 'rights', 'delete', + * 'upload', 'move' + * @param bool $rc Whether to update recent changes as well as the logging table + */ + function LogPage( $type, $rc = true ) { $this->type = $type; + $this->updateRecentChanges = $rc; } function saveContent() { @@ -62,15 +71,18 @@ class LogPage { 'log_params' => $this->params ), $fname ); - + # And update recentchanges if ( $this->updateRecentChanges ) { $titleObj = Title::makeTitle( NS_SPECIAL, 'Log/' . $this->type ); $rcComment = $this->actionText; if( '' != $this->comment ) { - $rcComment .= ': ' . $this->comment; + if ($rcComment == '') + $rcComment = $this->comment; + else + $rcComment .= ': ' . $this->comment; } - + RecentChange::notifyLog( $now, $titleObj, $wgUser, $rcComment ); } return true; @@ -81,32 +93,17 @@ class LogPage { */ function validTypes() { static $types = array( '', 'block', 'protect', 'rights', 'delete', 'upload', 'move' ); + wfRunHooks( 'LogPageValidTypes', array( &$types ) ); return $types; } - - /** - * @static - */ - function validActions( $type ) { - static $actions = array( - '' => NULL, - 'block' => array( 'block', 'unblock' ), - 'protect' => array( 'protect', 'unprotect' ), - 'rights' => array( 'rights' ), - 'delete' => array( 'delete', 'restore' ), - 'upload' => array( 'upload' ), - 'move' => array( 'move' ) - ); - return $actions[$type]; - } - + /** * @static */ function isLogType( $type ) { return in_array( $type, LogPage::validTypes() ); } - + /** * @static */ @@ -120,9 +117,11 @@ class LogPage { 'upload' => 'uploadlogpage', 'move' => 'movelogpage' ); + wfRunHooks( 'LogPageLogName', array( &$typeText ) ); + return str_replace( '_', ' ', wfMsg( $typeText[$type] ) ); } - + /** * @static */ @@ -136,22 +135,28 @@ class LogPage { 'upload' => 'uploadlogpagetext', 'move' => 'movelogpagetext' ); + wfRunHooks( 'LogPageLogHeader', array( &$headerText ) ); + return wfMsg( $headerText[$type] ); } - + /** * @static */ - function actionText( $type, $action, $title = NULL, $skin = NULL, $params = array(), $filterWikilinks=false ) { + function actionText( $type, $action, $title = NULL, $skin = NULL, $params = array(), $filterWikilinks=false, $translate=false ) { + global $wgLang; static $actions = array( 'block/block' => 'blocklogentry', 'block/unblock' => 'unblocklogentry', 'protect/protect' => 'protectedarticle', 'protect/unprotect' => 'unprotectedarticle', + + // TODO: This whole section should be moved to extensions/Makesysop/SpecialMakesysop.php 'rights/rights' => 'bureaucratlogentry', 'rights/addgroup' => 'addgrouplogentry', 'rights/rngroup' => 'renamegrouplogentry', 'rights/chgroup' => 'changegrouplogentry', + 'delete/delete' => 'deletedarticle', 'delete/restore' => 'undeletedarticle', 'upload/upload' => 'uploadedimage', @@ -159,10 +164,12 @@ class LogPage { 'move/move' => '1movedto2', 'move/move_redir' => '1movedto2_redir' ); + wfRunHooks( 'LogPageActionText', array( &$actions ) ); + $key = "$type/$action"; if( isset( $actions[$key] ) ) { if( is_null( $title ) ) { - $rv=wfMsgForContent( $actions[$key] ); + $rv=wfMsg( $actions[$key] ); } else { if( $skin ) { if ( $type == 'move' ) { @@ -177,15 +184,18 @@ class LogPage { $titleLink = $title->getPrefixedText(); } if( count( $params ) == 0 ) { - $rv = wfMsgForContent( $actions[$key], $titleLink ); + $rv = wfMsg( $actions[$key], $titleLink ); } else { array_unshift( $params, $titleLink ); - $rv = wfMsgReal( $actions[$key], $params, true, true ); + if ( $translate && $key == 'block/block' ) { + $params[1] = $wgLang->translateBlockExpiry($params[1]); + } + $rv = wfMsgReal( $actions[$key], $params, true, false ); // FIXME: use wfMsgForContent() ? } } } else { wfDebug( "LogPage::actionText - unknown action $key\n" ); - $rv = "$action $titleLink"; + $rv = "$action"; } if( $filterWikilinks ) { $rv = str_replace( "[[", "", $rv ); @@ -196,7 +206,7 @@ class LogPage { /** * Add a log entry - * @param string $action one of 'block', 'protect', 'rights', 'delete', 'upload', 'move', 'move_redir' + * @param string $action one of '', 'block', 'protect', 'rights', 'delete', 'upload', 'move', 'move_redir' * @param object &$target A title object. * @param string $comment Description associated * @param array $params Parameters passed later to wfMsg.* functions @@ -205,19 +215,18 @@ class LogPage { if ( !is_array( $params ) ) { $params = array( $params ); } - + $this->action = $action; $this->target =& $target; $this->comment = $comment; $this->params = LogPage::makeParamBlob( $params ); - - $this->actionText = LogPage::actionText( $this->type, $action, - $target, NULL, $params ); + + $this->actionText = LogPage::actionText( $this->type, $action, $target, NULL, $params ); return $this->saveContent(); } - /** + /** * Create a blob from a parameter array * @static */