X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2FEditPage.php;h=5ab5adc923a92b338f49cd72d201d696186d748e;hb=35c222b736c3d5a5500f654f2572d54209d05cea;hp=21a100f0aa252f0c0f494cf05e2ee84d0f7f7c38;hpb=c22e3597aa1d4a79672a678e974d8286f4bbda51;p=lhc%2Fweb%2Fwiklou.git
diff --git a/includes/EditPage.php b/includes/EditPage.php
index 21a100f0aa..5ab5adc923 100644
--- a/includes/EditPage.php
+++ b/includes/EditPage.php
@@ -1063,6 +1063,7 @@ class EditPage {
$title = Title::newFromText( $preload );
# Check for existence to avoid getting MediaWiki:Noarticletext
if ( $title === null || !$title->exists() || !$title->userCan( 'read', $wgUser ) ) {
+ //TODO: somehow show a warning to the user!
return $handler->makeEmptyContent();
}
@@ -1071,6 +1072,7 @@ class EditPage {
$title = $page->getRedirectTarget();
# Same as before
if ( $title === null || !$title->exists() || !$title->userCan( 'read', $wgUser ) ) {
+ //TODO: somehow show a warning to the user!
return $handler->makeEmptyContent();
}
$page = WikiPage::factory( $title );
@@ -1080,9 +1082,25 @@ class EditPage {
$content = $page->getContent( Revision::RAW );
if ( !$content ) {
+ //TODO: somehow show a warning to the user!
return $handler->makeEmptyContent();
}
+ if ( $content->getModel() !== $handler->getModelID() ) {
+ $converted = $content->convert( $handler->getModelID() );
+
+ if ( !$converted ) {
+ //TODO: somehow show a warning to the user!
+ wfDebug( "Attempt to preload incompatible content: "
+ . "can't convert " . $content->getModel()
+ . " to " . $handler->getModelID() );
+
+ return $handler->makeEmptyContent();
+ }
+
+ $content = $converted;
+ }
+
return $content->preloadTransform( $title, $parserOptions );
}
@@ -2762,7 +2780,9 @@ HTML
wfMessage( 'newwindow' )->parse();
$wgOut->addHTML( " {$cancel}\n" );
$wgOut->addHTML( " {$edithelp}\n" );
- $wgOut->addHTML( "\n\n" );
+ $wgOut->addHTML( "\n" );
+ wfRunHooks( 'EditPage::showStandardInputs:options', array( $this, $wgOut, &$tabindex ) );
+ $wgOut->addHTML( "\n" );
}
/**
@@ -2912,6 +2932,12 @@ HTML
try {
$content = $this->toEditContent( $this->textbox1 );
+ $previewHTML = '';
+ if ( !wfRunHooks( 'AlternateEditPreview', array( $this, &$content, &$previewHTML, &$this->mParserOutput ) ) ) {
+ wfProfileOut( __METHOD__ );
+ return $previewHTML;
+ }
+
if ( $this->mTriedSave && !$this->mTokenOk ) {
if ( $this->mTokenOkExceptSuffix ) {
$note = wfMessage( 'token_suffix_mismatch' )->plain() ;