MediaWiki r46631 - Code Review

Jump to: navigation, search
Repository:MediaWiki
Revision:r46630‎ | r46631 (on ViewVC)‎ | r46632 >
Date:01:59, 31 January 2009
Author:werdna
Status:deferred
Tags:
Comment:
Allow af_public_comments to be wikitext.
Relatedly, add parseInline function to OutputPage, to avoid duplicating the same awful regex in wfMsgExt.
Modified paths:

Diff [purge]

Index: trunk/phase3/includes/OutputPage.php
===================================================================
--- trunk/phase3/includes/OutputPage.php	(revision 46630)
+++ trunk/phase3/includes/OutputPage.php	(revision 46631)
@@ -645,6 +645,18 @@
 		return $parserOutput->getText();
 	}
 
+	/** Parse wikitext, strip paragraphs, and return the HTML. */
+	public function parseInline( $text, $linestart = true, $interface = false ) {
+		$parsed = $this->parse( $text, $linestart, $interface );
+
+		$m = array();
+		if ( preg_match( '/^<p>(.*)\n?<\/p>\n?/sU', $parsed, $m ) ) {
+			$parsed = $m[1];
+		}
+
+		return $parsed;
+	}
+
 	/**
 	 * @param Article $article
 	 * @param User    $user
Index: trunk/extensions/AbuseFilter/SpecialAbuseLog.php
===================================================================
--- trunk/extensions/AbuseFilter/SpecialAbuseLog.php	(revision 46630)
+++ trunk/extensions/AbuseFilter/SpecialAbuseLog.php	(revision 46631)
@@ -180,13 +180,16 @@
 			}
 			$actions_taken = implode( ', ', $displayActions );
 		}
+
+		global $wgOut;
+		$parsed_comments = $wgOut->parseInline( $row->af_public_comments );
 		
 		if ($this->canSeeDetails()) {
 			$detailsLink = $sk->makeKnownLinkObj( $this->getTitle(  ), wfMsg( 'abusefilter-log-detailslink' ), 'details='.$row->afl_id );
 			
-			$description = wfMsgExt( 'abusefilter-log-detailedentry', array( 'parseinline', 'replaceafter' ), array( $timestamp, $user, $row->afl_filter, $row->afl_action, $sk->makeKnownLinkObj( $title ), $actions_taken, $row->af_public_comments, $detailsLink ) );
+			$description = wfMsgExt( 'abusefilter-log-detailedentry', array( 'parseinline', 'replaceafter' ), array( $timestamp, $user, $row->afl_filter, $row->afl_action, $sk->makeKnownLinkObj( $title ), $actions_taken, $parsed_comments, $detailsLink ) );
 		} else {
-			$description = wfMsgExt( 'abusefilter-log-entry', array( 'parseinline', 'replaceafter' ), array( $timestamp, $user, $row->afl_action, $sk->makeKnownLinkObj( $title ), $actions_taken, $row->af_public_comments ) );
+			$description = wfMsgExt( 'abusefilter-log-entry', array( 'parseinline', 'replaceafter' ), array( $timestamp, $user, $row->afl_action, $sk->makeKnownLinkObj( $title ), $actions_taken, $parsed_comments ) );
 		}
 		
 		return $li ? Xml::tags( 'li', null, $description ) : $description;
Index: trunk/extensions/AbuseFilter/Views/AbuseFilterViewList.php
===================================================================
--- trunk/extensions/AbuseFilter/Views/AbuseFilterViewList.php	(revision 46630)
+++ trunk/extensions/AbuseFilter/Views/AbuseFilterViewList.php	(revision 46631)
@@ -168,7 +168,7 @@
 			case 'af_id':
 				return $sk->link( SpecialPage::getTitleFor( 'AbuseFilter', intval($value) ), intval($value) );
 			case 'af_public_comments':
-				return $sk->link( SpecialPage::getTitleFor( 'AbuseFilter', intval($row->af_id) ), $wgOut->parse( $value ) );
+				return $sk->link( SpecialPage::getTitleFor( 'AbuseFilter', intval($row->af_id) ), $wgOut->parseInline( $value ) );
 			case 'af_actions':
 				$actions = explode(',', $value);
 				$displayActions = array();
Index: trunk/extensions/AbuseFilter/AbuseFilter.class.php
===================================================================
--- trunk/extensions/AbuseFilter/AbuseFilter.class.php	(revision 46630)
+++ trunk/extensions/AbuseFilter/AbuseFilter.class.php	(revision 46631)
@@ -253,6 +253,8 @@
 
 		foreach( $actionsByFilter as $filter => $actions ) {
 			// Special-case handling for warnings.
+			global $wgOut;
+			$parsed_public_comments = $wgOut->parseInline( self::$filters[$filter]->af_public_comments );
 
 			if ( !empty( $actions['throttle'] ) ) {
 				$parameters = $actions['throttle']['parameters'];
@@ -281,7 +283,7 @@
 
 					// Threaten them a little bit
 					$msg = ( !empty($parameters[0]) && strlen($parameters[0]) ) ? $parameters[0] : 'abusefilter-warning';
-					$messages[] = wfMsgNoTrans( $msg, self::$filters[$filter]->af_public_comments ) . "<br />\n";
+					$messages[] = wfMsgExt( $msg, 'parseinline', array( $parsed_public_comments) ) . "<br />\n";
 
 					$actionsTaken[$filter][] = 'warn';
 
@@ -300,7 +302,7 @@
 
 			// Do the rest of the actions
 			foreach( $actions as $action => $info ) {
-				$newMsg = self::takeConsequenceAction( $action, $info['parameters'], $title, $vars, self::$filters[$filter]->af_public_comments );
+				$newMsg = self::takeConsequenceAction( $action, $info['parameters'], $title, $vars, self::$filters[$filter]->af_public_comments);
 
 				if ($newMsg)
 					$messages[] = $newMsg;
@@ -365,10 +367,10 @@
 		switch ($action) {
 			case 'disallow':
 				if (strlen($parameters[0])) {
-					$display .= wfMsgNoTrans( $parameters[0], $rule_desc ) . "\n";
+					$display .= wfMsgExt( $parameters[0], 'parseinline', array($rule_desc) ) . "\n";
 				} else {
 					// Generic message.
-					$display .= wfMsgNoTrans( 'abusefilter-disallowed', $rule_desc ) ."<br />\n";
+					$display .= wfMsgExt( 'abusefilter-disallowed', 'parseinline', array($rule_desc) ) ."<br />\n";
 				}
 				break;
 				
@@ -400,7 +402,7 @@
 				$log->addEntry( 'block', Title::makeTitle( NS_USER, $wgUser->getName() ),
 					wfMsgForContent( 'abusefilter-blockreason', $rule_desc ), $logParams, self::getFilterUser() );
 				
-				$display .= wfMsgNoTrans( 'abusefilter-blocked-display', $rule_desc ) ."<br />\n";
+				$display .= wfMsgExt( 'abusefilter-blocked-display', 'parseinline', array($rule_desc) ) ."<br />\n";
 				break;
 			case 'rangeblock':
 				global $wgUser;
@@ -436,7 +438,7 @@
 				$log->addEntry( 'block', Title::makeTitle( NS_USER, $range ),
 					wfMsgForContent( 'abusefilter-blockreason', $rule_desc ), $logParams, self::getFilterUser() );
 				
-				$display .= wfMsgNoTrans( 'abusefilter-blocked-display', $rule_desc ) ."<br />\n";
+				$display .= wfMsgExt( 'abusefilter-blocked-display', 'parseinline', $rule_desc ) ."<br />\n";
 				break;
 			case 'degroup':
 				global $wgUser;
@@ -448,7 +450,7 @@
 						$wgUser->removeGroup( $group );
 					}
 
-					$display .= wfMsgNoTrans( 'abusefilter-degrouped', $rule_desc ) ."<br />\n";
+					$display .= wfMsgExt( 'abusefilter-degrouped', 'parseinline', array($rule_desc) ) ."<br />\n";
 
 					// Don't log it if there aren't any groups being removed!
 					if (!count($groups)) {
@@ -475,7 +477,7 @@
 					$blockPeriod = (int)mt_rand( 3*86400, 7*86400 ); // Block for 3-7 days.
 					$wgMemc->set( self::autoPromoteBlockKey( $wgUser ), true, $blockPeriod );
 
-					$display .= wfMsgNoTrans( 'abusefilter-autopromote-blocked', $rule_desc ) ."<br />\n";
+					$display .= wfMsgExt( 'abusefilter-autopromote-blocked', 'parseinline', array($rule_desc) ) ."<br />\n";
 				}
 				break;
 
Index: trunk/extensions/AbuseFilter/AbuseFilter.hooks.php
===================================================================
--- trunk/extensions/AbuseFilter/AbuseFilter.hooks.php	(revision 46630)
+++ trunk/extensions/AbuseFilter/AbuseFilter.hooks.php	(revision 46631)
@@ -26,7 +26,10 @@
 		$filter_result = AbuseFilter::filterAction( $vars, $editor->mTitle, $oldLinks );
 
 		if( $filter_result !== true ){
-			$error = $filter_result;
+			global $wgOut;
+			$wgOut->addHTML( $filter_result );
+			$editor->showEditForm();
+			return false;
 		}
 		return true;
 	}

Status & tagging log

  • 23:35, 11 February 2009 Werdna (Talk | contribs) changed the status of r46631 [removed: new added: deferred]
Personal tools
Namespaces
Variants
Views
Actions
Site
Support
Download
Development
Communication
Toolbox