http://www.mediawiki.org/wiki/Special:Code/MediaWiki/89932
Revision: 89932
Author: ialex
Date: 2011-06-12 18:46:07 +0000 (Sun, 12 Jun 2011)
Log Message:
-----------
Moved action=deletetrackback and action=markpatrolled to Action class.
Also fixed order in DefaultSettings.php
Modified Paths:
--------------
trunk/phase3/includes/Article.php
trunk/phase3/includes/AutoLoader.php
trunk/phase3/includes/DefaultSettings.php
trunk/phase3/includes/Wiki.php
Added Paths:
-----------
trunk/phase3/includes/actions/DeletetrackbackAction.php
trunk/phase3/includes/actions/MarkpatrolledAction.php
Modified: trunk/phase3/includes/Article.php
===================================================================
--- trunk/phase3/includes/Article.php 2011-06-12 16:43:16 UTC (rev 89931)
+++ trunk/phase3/includes/Article.php 2011-06-12 18:46:07 UTC (rev 89932)
@@ -1706,29 +1706,10 @@
/**
* Removes trackback record for current article from trackbacks table
+ * @deprecated since 1.19
*/
public function deletetrackback() {
- global $wgRequest, $wgOut;
-
- if ( !$wgOut->getUser()->matchEditToken( $wgRequest->getVal(
'token' ) ) ) {
- $wgOut->addWikiMsg( 'sessionfailure' );
-
- return;
- }
-
- $permission_errors = $this->mTitle->getUserPermissionsErrors(
'delete', $wgOut->getUser() );
-
- if ( count( $permission_errors ) ) {
- $wgOut->showPermissionsErrorPage( $permission_errors );
-
- return;
- }
-
- $db = wfGetDB( DB_MASTER );
- $db->delete( 'trackbacks', array( 'tb_id' =>
$wgRequest->getInt( 'tbid' ) ) );
-
- $wgOut->addWikiMsg( 'trackbackdeleteok' );
- $this->mTitle->invalidateCache();
+ return Action::factory( 'deletetrackback', $this )->show();
}
/**
@@ -1786,62 +1767,10 @@
/**
* Mark this particular edit/page as patrolled
+ * @deprecated since 1.19
*/
public function markpatrolled() {
- global $wgOut, $wgRequest;
-
- $wgOut->setRobotPolicy( 'noindex,nofollow' );
-
- # If we haven't been given an rc_id value, we can't do anything
- $rcid = (int) $wgRequest->getVal( 'rcid' );
-
- if ( !$wgOut->getUser()->matchEditToken( $wgRequest->getVal(
'token' ), $rcid ) ) {
- $wgOut->showErrorPage( 'sessionfailure-title',
'sessionfailure' );
- return;
- }
-
- $rc = RecentChange::newFromId( $rcid );
-
- if ( is_null( $rc ) ) {
- $wgOut->showErrorPage( 'markedaspatrollederror',
'markedaspatrollederrortext' );
- return;
- }
-
- # It would be nice to see where the user had actually come
from, but for now just guess
- $returnto = $rc->getAttribute( 'rc_type' ) == RC_NEW ?
'Newpages' : 'Recentchanges';
- $return = SpecialPage::getTitleFor( $returnto );
-
- $errors = $rc->doMarkPatrolled();
-
- if ( in_array( array( 'rcpatroldisabled' ), $errors ) ) {
- $wgOut->showErrorPage( 'rcpatroldisabled',
'rcpatroldisabledtext' );
-
- return;
- }
-
- if ( in_array( array( 'hookaborted' ), $errors ) ) {
- // The hook itself has handled any output
- return;
- }
-
- if ( in_array( array( 'markedaspatrollederror-noautopatrol' ),
$errors ) ) {
- $wgOut->setPageTitle( wfMsg( 'markedaspatrollederror' )
);
- $wgOut->addWikiMsg(
'markedaspatrollederror-noautopatrol' );
- $wgOut->returnToMain( null, $return );
-
- return;
- }
-
- if ( !empty( $errors ) ) {
- $wgOut->showPermissionsErrorPage( $errors );
-
- return;
- }
-
- # Inform the user
- $wgOut->setPageTitle( wfMsg( 'markedaspatrolled' ) );
- $wgOut->addWikiMsg( 'markedaspatrolledtext',
$rc->getTitle()->getPrefixedText() );
- $wgOut->returnToMain( null, $return );
+ Action::factory( 'markpatrolled', $this )->show();
}
/**
Modified: trunk/phase3/includes/AutoLoader.php
===================================================================
--- trunk/phase3/includes/AutoLoader.php 2011-06-12 16:43:16 UTC (rev
89931)
+++ trunk/phase3/includes/AutoLoader.php 2011-06-12 18:46:07 UTC (rev
89932)
@@ -249,6 +249,8 @@
# includes/actions
'CreditsAction' => 'includes/actions/CreditsAction.php',
+ 'DeletetrackbackAction' => 'includes/actions/DeletetrackbackAction.php',
+ 'MarkpatrolledAction' => 'includes/actions/MarkpatrolledAction.php',
'PurgeAction' => 'includes/actions/PurgeAction.php',
'RevisiondeleteAction' => 'includes/actions/RevisiondeleteAction.php',
'UnwatchAction' => 'includes/actions/WatchAction.php',
Modified: trunk/phase3/includes/DefaultSettings.php
===================================================================
--- trunk/phase3/includes/DefaultSettings.php 2011-06-12 16:43:16 UTC (rev
89931)
+++ trunk/phase3/includes/DefaultSettings.php 2011-06-12 18:46:07 UTC (rev
89932)
@@ -5026,8 +5026,10 @@
*/
$wgActions = array(
'credits' => true,
+ 'deletetrackback' => true,
+ 'markpatrolled' => true,
+ 'purge' => true,
'revisiondelete' => true,
- 'purge' => true,
'unwatch' => true,
'watch' => true,
);
Modified: trunk/phase3/includes/Wiki.php
===================================================================
--- trunk/phase3/includes/Wiki.php 2011-06-12 16:43:16 UTC (rev 89931)
+++ trunk/phase3/includes/Wiki.php 2011-06-12 18:46:07 UTC (rev 89932)
@@ -430,9 +430,7 @@
case 'protect':
case 'unprotect':
case 'info':
- case 'markpatrolled':
case 'render':
- case 'deletetrackback':
$article->$act();
break;
case 'submit':
Added: trunk/phase3/includes/actions/DeletetrackbackAction.php
===================================================================
--- trunk/phase3/includes/actions/DeletetrackbackAction.php
(rev 0)
+++ trunk/phase3/includes/actions/DeletetrackbackAction.php 2011-06-12
18:46:07 UTC (rev 89932)
@@ -0,0 +1,54 @@
+<?php
+/**
+ * Delete a trackback on a page
+ *
+ * Copyright © 2011 Alexandre Emsenhuber
+ *
+ * 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
+ * (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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA
+ *
+ * @file
+ * @ingroup Actions
+ */
+
+class DeletetrackbackAction extends FormlessAction {
+
+ public function getName() {
+ return 'deletetrackback';
+ }
+
+ public function getRestriction() {
+ return 'delete';
+ }
+
+ protected function getDescription() {
+ return '';
+ }
+
+ protected function checkCanExecute( User $user ) {
+ if ( !$user->matchEditToken( $this->getRequest()->getVal(
'token' ) ) ) {
+ throw new ErrorPageError( 'sessionfailure-title',
'sessionfailure' );
+ }
+
+ return parent::checkCanExecute( $user );
+ }
+
+ public function onView() {
+ $db = wfGetDB( DB_MASTER );
+ $db->delete( 'trackbacks', array( 'tb_id' =>
$this->getRequest()->getInt( 'tbid' ) ) );
+
+ $this->getOutput()->addWikiMsg( 'trackbackdeleteok' );
+ $this->getTitle()->invalidateCache();
+ }
+}
Property changes on: trunk/phase3/includes/actions/DeletetrackbackAction.php
___________________________________________________________________
Added: svn:eol-style
+ native
Added: trunk/phase3/includes/actions/MarkpatrolledAction.php
===================================================================
--- trunk/phase3/includes/actions/MarkpatrolledAction.php
(rev 0)
+++ trunk/phase3/includes/actions/MarkpatrolledAction.php 2011-06-12
18:46:07 UTC (rev 89932)
@@ -0,0 +1,86 @@
+<?php
+/**
+ * Mark a revision as patrolled on a page
+ *
+ * Copyright © 2011 Alexandre Emsenhuber
+ *
+ * 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
+ * (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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
USA
+ *
+ * @file
+ * @ingroup Actions
+ */
+
+class MarkpatrolledAction extends FormlessAction {
+
+ public function getName() {
+ return 'markpatrolled';
+ }
+
+ public function getRestriction() {
+ return 'read';
+ }
+
+ protected function getDescription() {
+ return '';
+ }
+
+ protected function checkCanExecute( User $user ) {
+ if ( !$user->matchEditToken( $this->getRequest()->getVal(
'token' ), $this->getRequest()->getInt( 'rcid' ) ) ) {
+ throw new ErrorPageError( 'sessionfailure-title',
'sessionfailure' );
+ }
+
+ return parent::checkCanExecute( $user );
+ }
+
+ public function onView() {
+ $rc = RecentChange::newFromId( $this->getRequest()->getInt(
'rcid' ) );
+
+ if ( is_null( $rc ) ) {
+ throw new ErrorPageError( 'markedaspatrollederror',
'markedaspatrollederrortext' );
+ }
+
+ # It would be nice to see where the user had actually come
from, but for now just guess
+ $returnto = $rc->getAttribute( 'rc_type' ) == RC_NEW ?
'Newpages' : 'Recentchanges';
+ $return = SpecialPage::getTitleFor( $returnto );
+
+ $errors = $rc->doMarkPatrolled();
+
+ if ( in_array( array( 'rcpatroldisabled' ), $errors ) ) {
+ throw new ErrorPageError( 'rcpatroldisabled',
'rcpatroldisabledtext' );
+ }
+
+ if ( in_array( array( 'hookaborted' ), $errors ) ) {
+ // The hook itself has handled any output
+ return;
+ }
+
+ if ( in_array( array( 'markedaspatrollederror-noautopatrol' ),
$errors ) ) {
+ $this->getOutput()->setPageTitle( wfMsg(
'markedaspatrollederror' ) );
+ $this->getOutput()->addWikiMsg(
'markedaspatrollederror-noautopatrol' );
+ $this->getOutput()->returnToMain( null, $return );
+ return;
+ }
+
+ if ( !empty( $errors ) ) {
+ $this->getOutput()->showPermissionsErrorPage( $errors );
+ return;
+ }
+
+ # Inform the user
+ $this->getOutput()->setPageTitle( wfMsg( 'markedaspatrolled' )
);
+ $this->getOutput()->addWikiMsg( 'markedaspatrolledtext',
$rc->getTitle()->getPrefixedText() );
+ $this->getOutput()->returnToMain( null, $return );
+ }
+}
Property changes on: trunk/phase3/includes/actions/MarkpatrolledAction.php
___________________________________________________________________
Added: svn:eol-style
+ native
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs