* lang the interwiki prefix, automatically set in save()
* oldSize text size before the change
* newSize text size after the change
+ * pageStatus status of the page: created, deleted, moved, restored, changed
*
* temporary: not stored in the database
* notificationtimestamp
* @var Title
*/
var $mMovedToTitle = false;
- var $numberofWatchingusers = 0 ; # Dummy to prevent error message in SpecialRecentchangeslinked
+ var $numberofWatchingusers = 0; # Dummy to prevent error message in SpecialRecentchangeslinked
var $notificationtimestamp;
# Factory methods
/**
* Obtain the recent change with a given rc_id value
*
- * @param $rcid Int rc_id value to retrieve
+ * @param int $rcid rc_id value to retrieve
* @return RecentChange
*/
public static function newFromId( $rcid ) {
/**
* Find the first recent change matching some specific conditions
*
- * @param $conds Array of conditions
+ * @param array $conds of conditions
* @param $fname Mixed: override the method name in profiling/logs
* @return RecentChange
*/
public function &getTitle() {
if ( $this->mTitle === false ) {
$this->mTitle = Title::makeTitle( $this->mAttribs['rc_namespace'], $this->mAttribs['rc_title'] );
- # Make sure the correct page ID is process cached
- $this->mTitle->resetArticleID( $this->mAttribs['rc_cur_id'] );
}
return $this->mTitle;
}
unset( $this->mAttribs['rc_ip'] );
}
+ # Trim spaces on user supplied text
+ $this->mAttribs['rc_comment'] = trim( $this->mAttribs['rc_comment'] );
+
# Make sure summary is truncated (whole multibyte characters)
$this->mAttribs['rc_comment'] = $wgContLang->truncate( $this->mAttribs['rc_comment'], 255 );
$this->mAttribs['rc_timestamp'],
$this->mAttribs['rc_comment'],
$this->mAttribs['rc_minor'],
- $this->mAttribs['rc_last_oldid'] );
+ $this->mAttribs['rc_last_oldid'],
+ $this->mExtra['pageStatus'] );
}
}
}
public function notifyRC2UDP() {
global $wgRC2UDPAddress, $wgRC2UDPOmitBots;
# Notify external application via UDP
- if ( $wgRC2UDPAddress && ( !$this->mAttribs['rc_bot'] || !$wgRC2UDPOmitBots ) ) {
+ # Omit RC_EXTERNAL changes: bots and tools can get these edits from the feed of the external wiki
+ if ( $wgRC2UDPAddress && $this->mAttribs['rc_type'] != RC_EXTERNAL &&
+ ( !$this->mAttribs['rc_bot'] || !$wgRC2UDPOmitBots ) ) {
self::sendToUDP( $this->getIRCLine() );
}
}
/**
* Send some text to UDP.
* @see RecentChange::cleanupForIRC
- * @param $line String: text to send
- * @param $address String: defaults to $wgRC2UDPAddress.
- * @param $prefix String: defaults to $wgRC2UDPPrefix.
- * @param $port Int: defaults to $wgRC2UDPPort. (Since 1.17)
+ * @param string $line text to send
+ * @param string $address defaults to $wgRC2UDPAddress.
+ * @param string $prefix defaults to $wgRC2UDPPrefix.
+ * @param int $port defaults to $wgRC2UDPPort. (Since 1.17)
* @return Boolean: success
*/
public static function sendToUDP( $line, $address = '', $prefix = '', $port = '' ) {
}
/**
- * Remove newlines, carriage returns and decode html entites
+ * Remove newlines, carriage returns and decode html entities
* @param $text String
* @return String
*/
'rc_params' => ''
);
- $rc->mExtra = array(
+ $rc->mExtra = array(
'prefixedDBkey' => $title->getPrefixedDBkey(),
'lastTimestamp' => $lastTimestamp,
'oldSize' => $oldSize,
'newSize' => $newSize,
+ 'pageStatus' => 'changed'
);
$rc->save();
return $rc;
'rc_params' => ''
);
- $rc->mExtra = array(
+ $rc->mExtra = array(
'prefixedDBkey' => $title->getPrefixedDBkey(),
'lastTimestamp' => 0,
'oldSize' => 0,
- 'newSize' => $size
+ 'newSize' => $size,
+ 'pageStatus' => 'created'
);
$rc->save();
return $rc;
$type, $action, $target, $logComment, $params, $newId = 0, $actionCommentIRC = '' ) {
global $wgRequest;
+ ## Get pageStatus for email notification
+ switch ( $type . '-' . $action ) {
+ case 'delete-delete':
+ $pageStatus = 'deleted';
+ break;
+ case 'move-move':
+ case 'move-move_redir':
+ $pageStatus = 'moved';
+ break;
+ case 'delete-restore':
+ $pageStatus = 'restored';
+ break;
+ case 'upload-upload':
+ $pageStatus = 'created';
+ break;
+ case 'upload-overwrite':
+ default:
+ $pageStatus = 'changed';
+ break;
+ }
+
$rc = new RecentChange;
$rc->mTitle = $target;
$rc->mPerformer = $user;
'rc_params' => $params
);
- $rc->mExtra = array(
+ $rc->mExtra = array(
'prefixedDBkey' => $title->getPrefixedDBkey(),
'lastTimestamp' => 0,
'actionComment' => $actionComment, // the comment appended to the action, passed from LogPage
+ 'pageStatus' => $pageStatus,
'actionCommentIRC' => $actionCommentIRC
);
return $rc;
/**
* Get an attribute value
*
- * @param $name String Attribute name
+ * @param string $name Attribute name
* @return mixed
*/
public function getAttribute( $name ) {
$trail = "curid=" . (int)( $this->mAttribs['rc_cur_id'] ) .
"&oldid=" . (int)( $this->mAttribs['rc_last_oldid'] );
if ( $forceCur ) {
- $trail .= '&diff=0' ;
+ $trail .= '&diff=0';
} else {
$trail .= '&diff=' . (int)( $this->mAttribs['rc_this_oldid'] );
}
if ( $szdiff < -500 ) {
$szdiff = "\002$szdiff\002";
} elseif ( $szdiff >= 0 ) {
- $szdiff = '+' . $szdiff ;
+ $szdiff = '+' . $szdiff;
}
// @todo i18n with parentheses in content language?
- $szdiff = '(' . $szdiff . ')' ;
+ $szdiff = '(' . $szdiff . ')';
} else {
$szdiff = '';
}
# see http://www.irssi.org/documentation/formats for some colour codes. prefix is \003,
# no colour (\003) switches back to the term default
$fullString = "$titleString\0034 $flag\00310 " .
- "\00302$url\003 \0035*\003 \00303$user\003 \0035*\003 $szdiff \00310$comment\003\n";
+ "\00302$url\003 \0035*\003 \00303$user\003 \0035*\003 $szdiff \00310$comment\003\n";
return $fullString;
}