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 MediaWiki-CVS@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs