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

Reply via email to