summaryrefslogtreecommitdiff
path: root/includes/WatchedItem.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/WatchedItem.php')
-rw-r--r--includes/WatchedItem.php35
1 files changed, 15 insertions, 20 deletions
diff --git a/includes/WatchedItem.php b/includes/WatchedItem.php
index 2d2d34f1..a2c1f036 100644
--- a/includes/WatchedItem.php
+++ b/includes/WatchedItem.php
@@ -38,11 +38,10 @@ class WatchedItem {
public function isWatched() {
# Pages and their talk pages are considered equivalent for watching;
# remember that talk namespaces are numbered as page namespace+1.
- $fname = 'WatchedItem::isWatched';
$dbr = wfGetDB( DB_SLAVE );
$res = $dbr->select( 'watchlist', 1, array( 'wl_user' => $this->id, 'wl_namespace' => $this->ns,
- 'wl_title' => $this->ti ), $fname );
+ 'wl_title' => $this->ti ), __METHOD__ );
$iswatched = ($dbr->numRows( $res ) > 0) ? 1 : 0;
return $iswatched;
}
@@ -53,31 +52,30 @@ class WatchedItem {
* @return bool (always true)
*/
public function addWatch() {
- $fname = 'WatchedItem::addWatch';
- wfProfileIn( $fname );
+ wfProfileIn( __METHOD__ );
// Use INSERT IGNORE to avoid overwriting the notification timestamp
// if there's already an entry for this page
$dbw = wfGetDB( DB_MASTER );
$dbw->insert( 'watchlist',
array(
- 'wl_user' => $this->id,
- 'wl_namespace' => ($this->ns & ~1),
+ 'wl_user' => $this->id,
+ 'wl_namespace' => MWNamespace::getSubject($this->ns),
'wl_title' => $this->ti,
'wl_notificationtimestamp' => NULL
- ), $fname, 'IGNORE' );
+ ), __METHOD__, 'IGNORE' );
// Every single watched page needs now to be listed in watchlist;
// namespace:page and namespace_talk:page need separate entries:
$dbw->insert( 'watchlist',
array(
'wl_user' => $this->id,
- 'wl_namespace' => ($this->ns | 1 ),
+ 'wl_namespace' => MWNamespace::getTalk($this->ns),
'wl_title' => $this->ti,
'wl_notificationtimestamp' => NULL
- ), $fname, 'IGNORE' );
+ ), __METHOD__, 'IGNORE' );
- wfProfileOut( $fname );
+ wfProfileOut( __METHOD__ );
return true;
}
@@ -86,16 +84,14 @@ class WatchedItem {
* @return bool
*/
public function removeWatch() {
- $fname = 'WatchedItem::removeWatch';
-
$success = false;
$dbw = wfGetDB( DB_MASTER );
$dbw->delete( 'watchlist',
array(
'wl_user' => $this->id,
- 'wl_namespace' => ($this->ns & ~1),
+ 'wl_namespace' => MWNamespace::getSubject($this->ns),
'wl_title' => $this->ti
- ), $fname
+ ), __METHOD__
);
if ( $dbw->affectedRows() ) {
$success = true;
@@ -108,9 +104,9 @@ class WatchedItem {
$dbw->delete( 'watchlist',
array(
'wl_user' => $this->id,
- 'wl_namespace' => ($this->ns | 1),
+ 'wl_namespace' => MWNamespace::getTalk($this->ns),
'wl_title' => $this->ti
- ), $fname
+ ), __METHOD__
);
if ( $dbw->affectedRows() ) {
@@ -134,8 +130,7 @@ class WatchedItem {
/**
* Handle duplicate entries. Backend for duplicateEntries().
*/
- private static function doDuplicateEntries( $ot, $nt ) {
- $fname = "WatchedItem::duplicateEntries";
+ private static function doDuplicateEntries( $ot, $nt ) {
$oldnamespace = $ot->getNamespace();
$newnamespace = $nt->getNamespace();
$oldtitle = $ot->getDBkey();
@@ -144,7 +139,7 @@ class WatchedItem {
$dbw = wfGetDB( DB_MASTER );
$res = $dbw->select( 'watchlist', 'wl_user',
array( 'wl_namespace' => $oldnamespace, 'wl_title' => $oldtitle ),
- $fname, 'FOR UPDATE'
+ __METHOD__, 'FOR UPDATE'
);
# Construct array to replace into the watchlist
$values = array();
@@ -165,7 +160,7 @@ class WatchedItem {
# Perform replace
# Note that multi-row replace is very efficient for MySQL but may be inefficient for
# some other DBMSes, mostly due to poor simulation by us
- $dbw->replace( 'watchlist', array(array( 'wl_user', 'wl_namespace', 'wl_title')), $values, $fname );
+ $dbw->replace( 'watchlist', array( array( 'wl_user', 'wl_namespace', 'wl_title' ) ), $values, __METHOD__ );
return true;
}
}