*
*/
require_once( 'SpecialRecentchanges.php' );
-require_once( 'WatchedItem.php' );
/**
- * constructor
+ * Constructor
+ * @todo Document $par parameter.
+ * @param $par String: FIXME
*/
function wfSpecialWatchlist( $par ) {
global $wgUser, $wgOut, $wgLang, $wgMemc, $wgRequest, $wgContLang;
$defaults = array(
/* float */ 'days' => floatval( $wgUser->getOption( 'watchlistdays' ) ), /* 3.0 or 0.5, watch further below */
- /* bool */ 'hideOwn' => $wgUser->getBoolOption( 'watchlisthideown' ),
- /* bool */ 'hideBots' => $wgUser->getBoolOption( 'watchlisthidebots' ),
- 'namespace' => 'all',
+ /* bool */ 'hideOwn' => (int)$wgUser->getBoolOption( 'watchlisthideown' ),
+ /* bool */ 'hideBots' => (int)$wgUser->getBoolOption( 'watchlisthidebots' ),
+ /* ? */ 'namespace' => 'all',
);
extract($defaults);
if( $wl->removeWatch() === false ) {
$wgOut->addHTML( "<br />\n" . wfMsg( 'couldntremove', htmlspecialchars($one) ) );
} else {
+ wfRunHooks('UnwatchArticle', array(&$wgUser, new Article($t)));
$wgOut->addHTML( ' (' . htmlspecialchars($one) . ')' );
}
} else {
$wgOut->addHTML( "<br />\n" . wfMsg( 'iteminvalidname', htmlspecialchars($one) ) );
}
}
- $wgOut->addHTML( "done.</p>\n" );
+ $wgOut->addHTML( "<br />\n" . wfMsg( 'wldone' ) . "</p>\n" );
}
if ( $wgUseWatchlistCache ) {
$header .= wfMsg( 'wlheader-showupdated' ) . "\n";
}
+ # Toggle watchlist content (all recent edits or just the latest)
+ if( $wgUser->getOption( 'extendwatchlist' )) {
+ $andLatest='';
+ $limitWatchlist = 'LIMIT ' . intval( $wgUser->getOption( 'wllimit' ) );
+ } else {
+ $andLatest= 'AND rc_this_oldid=page_latest';
+ $limitWatchlist = '';
+ }
+
# TODO: Consider removing the third parameter
$header .= wfMsg( 'watchdetails', $wgLang->formatNum( $nitems ),
$wgLang->formatNum( $npages ), '',
rc_user AS rev_user, rc_user_text AS rev_user_text,
rc_timestamp AS rev_timestamp, rc_minor AS rev_minor_edit,
rc_this_oldid AS rev_id,
- rc_last_oldid,
+ rc_last_oldid, rc_id, rc_patrolled,
rc_new AS page_is_new,wl_notificationtimestamp
FROM $watchlist,$recentchanges,$page
WHERE wl_user=$uid
AND wl_title=rc_title
AND rc_timestamp > '$cutoff'
AND rc_cur_id=page_id
+ $andLatest
$andHideOwn
$andHideBots
$nameSpaceClause
- ORDER BY rc_timestamp DESC";
+ ORDER BY rc_timestamp DESC
+ $limitWatchlist";
$res = $dbr->query( $sql, $fname );
$numRows = $dbr->numRows( $res );
if($days >= 1)
$wgOut->addWikiText( wfMsg( 'rcnote', $wgLang->formatNum( $numRows ),
- $wgLang->formatNum( $days ) ) . '<br />' , false );
+ $wgLang->formatNum( $days ), $wgLang->timeAndDate( wfTimestampNow(), true ) ) . '<br />' , false );
elseif($days > 0)
$wgOut->addWikiText( wfMsg( 'wlnote', $wgLang->formatNum( $numRows ),
$wgLang->formatNum( round($days*24) ) ) . '<br />' , false );
# Form for namespace filtering
$thisAction = $thisTitle->escapeLocalUrl();
$nsForm = "<form method=\"post\" action=\"{$thisAction}\">\n";
- $nsForm .= "<label for=\"namespace\">" . wfMsg( 'namespace' ) . "</label> ";
+ $nsForm .= "<label for=\"namespace\">" . wfMsgExt( 'namespace', array( 'parseinline') ) . "</label> ";
$nsForm .= HTMLnamespaceselector( $nameSpace, '' ) . "\n";
$nsForm .= ( $hideOwn ? "<input type=\"hidden\" name=\"hideown\" value=\"1\" />\n" : "" );
$nsForm .= ( $hideBots ? "<input type=\"hidden\" name=\"hidebots\" value=\"1\" />\n" : "" );
$nsForm .= "<input type=\"hidden\" name=\"days\" value=\"" . $days . "\" />\n";
- $nsForm .= "<input type=\"submit\" name=\"submit\" value=\"" . wfMsgHtml( 'allpagessubmit' ) . "\" />\n";
+ $nsForm .= "<input type=\"submit\" name=\"submit\" value=\"" . wfMsgExt( 'allpagessubmit', array( 'escape') ) . "\" />\n";
$nsForm .= "</form>\n";
$wgOut->addHTML( $nsForm );
return $s;
}
+/**
+ * Returns html
+ */
function wlCutoffLinks( $days, $page = 'Watchlist', $options = array() ) {
$hours = array( 1, 2, 6, 12 );
$days = array( 1, 3, 7 );
foreach( $days as $d ) {
$days[$i++] = wlDaysLink( $d, $page, $options );
}
- return wfMsg ('wlshowlast',
+ return wfMsgExt('wlshowlast',
+ array('parseinline', 'replaceafter'),
implode(' | ', $hours),
implode(' | ', $days),
wlDaysLink( 0, $page, $options ) );