From: Alexandre Emsenhuber Date: Sun, 12 Jun 2011 18:46:07 +0000 (+0000) Subject: Moved action=deletetrackback and action=markpatrolled to Action class. X-Git-Tag: 1.31.0-rc.0~29566 X-Git-Url: https://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/banques/ajouter.php?a=commitdiff_plain;h=535a8adea8af575105d0232bf10570b94752e634;p=lhc%2Fweb%2Fwiklou.git Moved action=deletetrackback and action=markpatrolled to Action class. Also fixed order in DefaultSettings.php --- diff --git a/includes/Article.php b/includes/Article.php index c4c6f6a53a..2f6031b736 100644 --- a/includes/Article.php +++ b/includes/Article.php @@ -1706,29 +1706,10 @@ class Article { /** * 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 @@ class Article { /** * 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(); } /** diff --git a/includes/AutoLoader.php b/includes/AutoLoader.php index 34c34e071e..cc75366bf9 100644 --- a/includes/AutoLoader.php +++ b/includes/AutoLoader.php @@ -249,6 +249,8 @@ $wgAutoloadLocalClasses = array( # 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', diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index 2c5c2480a6..5dd6d63b2e 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -5026,8 +5026,10 @@ $wgMaxRedirectLinksRetrieved = 500; */ $wgActions = array( 'credits' => true, - 'revisiondelete' => true, + 'deletetrackback' => true, + 'markpatrolled' => true, 'purge' => true, + 'revisiondelete' => true, 'unwatch' => true, 'watch' => true, ); diff --git a/includes/Wiki.php b/includes/Wiki.php index 38a27ae660..6ce2d48f41 100644 --- a/includes/Wiki.php +++ b/includes/Wiki.php @@ -430,9 +430,7 @@ class MediaWiki { case 'protect': case 'unprotect': case 'info': - case 'markpatrolled': case 'render': - case 'deletetrackback': $article->$act(); break; case 'submit': diff --git a/includes/actions/DeletetrackbackAction.php b/includes/actions/DeletetrackbackAction.php new file mode 100644 index 0000000000..0efebdf54f --- /dev/null +++ b/includes/actions/DeletetrackbackAction.php @@ -0,0 +1,54 @@ +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(); + } +} diff --git a/includes/actions/MarkpatrolledAction.php b/includes/actions/MarkpatrolledAction.php new file mode 100644 index 0000000000..5ea986ed2f --- /dev/null +++ b/includes/actions/MarkpatrolledAction.php @@ -0,0 +1,86 @@ +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 ); + } +}