fix EditAction not to use ContentHandler
authordaniel <daniel.kinzler@wikimedia.de>
Thu, 24 May 2012 16:30:03 +0000 (18:30 +0200)
committerdaniel <daniel.kinzler@wikimedia.de>
Thu, 24 May 2012 17:09:42 +0000 (19:09 +0200)
also fixing autolaoder details. because i amended the wrong commit and can't be assed to undo that.

includes/AutoLoader.php
includes/actions/EditAction.php

index 6cac368..5736b96 100644 (file)
@@ -1027,13 +1027,13 @@ class AutoLoader {
        static function autoload( $className ) {
                global $wgAutoloadClasses, $wgAutoloadLocalClasses;
 
-               # Workaround for PHP bug <https://bugs.php.net/bug.php?id=49143> (5.3.2. is broken, it's fixed in 5.3.6).
-               # Strip leading backslashes from class names. When namespaces are used, leading backslashes are used to indicate
-               # the top-level namespace, e.g. \foo\Bar. When used like this in the code, the leading backslash isn't passed to
-               # the auto-loader ($className would be 'foo\Bar'). However, if a class is accessed using a string instead of a
-               # class literal (e.g. $class = '\foo\Bar'; new $class()), then some versions of PHP do not strip the leading
-               # backlash in this case, causing autoloading to fail.
-               $className = preg_replace( '/^\\\\/', '', $className );
+               // Workaround for PHP bug <https://bugs.php.net/bug.php?id=49143> (5.3.2. is broken, it's fixed in 5.3.6).
+               // Strip leading backslashes from class names. When namespaces are used, leading backslashes are used to indicate
+               // the top-level namespace, e.g. \foo\Bar. When used like this in the code, the leading backslash isn't passed to
+               // the auto-loader ($className would be 'foo\Bar'). However, if a class is accessed using a string instead of a
+               // class literal (e.g. $class = '\foo\Bar'; new $class()), then some versions of PHP do not strip the leading
+               // backlash in this case, causing autoloading to fail.
+               $className = ltrim( $className, '\\' );
 
                if ( isset( $wgAutoloadLocalClasses[$className] ) ) {
                        $filename = $wgAutoloadLocalClasses[$className];
index 3771586..1c97b26 100644 (file)
@@ -40,19 +40,14 @@ class EditAction extends FormlessAction {
                $context = $this->getContext();
 
                if ( wfRunHooks( 'CustomEditor', array( $page, $user ) ) ) {
-                       if ( ( $page->getContent() instanceof TextContentHandler ) ) {
-                               $modelName = ContentHandler::getContentModelName( $page->getContentModel() );
-                               throw new MWException( "Can't use default editor for non-text content. ContentHandler for $modelName apparently does not provide an action handler for the edit action." );
-                       }
-
                        if ( ExternalEdit::useExternalEngine( $context, 'edit' )
                                && $this->getName() == 'edit' && !$request->getVal( 'section' )
                                && !$request->getVal( 'oldid' ) )
                        {
-                               $extedit = $handler->createExternalEdit( $context );
+                               $extedit = new ExternalEdit( $context );
                                $extedit->execute();
                        } else {
-                               $editor = $handler->createEditPage( $page );
+                               $editor = new EditPage( $page );
                                $editor->edit();
                        }
                }
@@ -76,4 +71,4 @@ class SubmitAction extends EditAction {
                parent::show();
        }
 
-}
+}
\ No newline at end of file