Rtdwivedi has uploaded a new change for review. https://gerrit.wikimedia.org/r/73437
Change subject: Addition of code that will be used for setting up of editing system in PHP instead of JS. ...................................................................... Addition of code that will be used for setting up of editing system in PHP instead of JS. Change-Id: I62b10d3d23d3282c26babdab364f4b97a6f2c85e --- M ProofreadPage.body.php M ProofreadPage.i18n.php M ProofreadPage.php M includes/ProofreadPageParser.php M includes/page/EditProofreadPagePage.php M includes/page/ProofreadPagePage.php 6 files changed, 77 insertions(+), 7 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ProofreadPage refs/changes/37/73437/1 diff --git a/ProofreadPage.body.php b/ProofreadPage.body.php index ddf91eb..4b52961 100644 --- a/ProofreadPage.body.php +++ b/ProofreadPage.body.php @@ -113,6 +113,10 @@ $editor = new EditProofreadIndexPage( $article ); $editor->edit(); return false; + } elseif ( $article->getTitle()->inNamespace( self::getPageNamespaceId() ) ) { + $editor = new EditProofreadPagePage( $article ); + $editor->edit(); + return false; } else { return true; } diff --git a/ProofreadPage.i18n.php b/ProofreadPage.i18n.php index 03ffa92..91e67a0 100644 --- a/ProofreadPage.i18n.php +++ b/ProofreadPage.i18n.php @@ -89,6 +89,8 @@ 'proofreadpage-indexoai-eprint-content-text' => 'Metadata of books managed by ProofreadPage.', 'proofreadpage-indexoai-error-schemanotfound' => 'Schema not found', 'proofreadpage-indexoai-error-schemanotfound-text' => 'The $1 schema have not been found.', + 'proofreadpage_page_invalid' => 'Invalid page', + 'proofreadpage_page_invalid_text' => 'The page you are trying to edit is invalid.', ); /** Message documentation (Message documentation) diff --git a/ProofreadPage.php b/ProofreadPage.php index 5fbf428..fc76df4 100644 --- a/ProofreadPage.php +++ b/ProofreadPage.php @@ -143,15 +143,15 @@ $wgHooks['BeforePageDisplay'][] = 'ProofreadPage::onBeforePageDisplay'; $wgHooks['GetLinkColours'][] = 'ProofreadPage::onGetLinkColours'; $wgHooks['ImageOpenShowImageInlineBefore'][] = 'ProofreadPage::onImageOpenShowImageInlineBefore'; -$wgHooks['EditPage::attemptSave'][] = 'EditProofreadPagePage::onEditPageAttemptSave'; +//$wgHooks['EditPage::attemptSave'][] = 'EditProofreadPagePage::onEditPageAttemptSave'; $wgHooks['ArticleSaveComplete'][] = 'EditProofreadPagePage::onArticleSaveComplete'; $wgHooks['ArticleDelete'][] = 'ProofreadPage::onArticleDelete'; $wgHooks['ArticleUndelete'][] = 'ProofreadPage::onArticleUndelete'; -$wgHooks['EditFormPreloadText'][] = 'EditProofreadPagePage::onEditFormPreloadText'; +//$wgHooks['EditFormPreloadText'][] = 'EditProofreadPagePage::onEditFormPreloadText'; $wgHooks['ArticlePurge'][] = 'ProofreadPage::onArticlePurge'; $wgHooks['SpecialMovepageAfterMove'][] = 'ProofreadPage::onSpecialMovepageAfterMove'; $wgHooks['LoadExtensionSchemaUpdates'][] = 'ProofreadIndexDbConnector::onLoadExtensionSchemaUpdates'; -$wgHooks['EditPage::importFormData'][] = 'EditProofreadPagePage::onEditPageImportFormData'; +//$wgHooks['EditPage::importFormData'][] = 'EditProofreadPagePage::onEditPageImportFormData'; $wgHooks['OutputPageParserOutput'][] = 'ProofreadPage::onOutputPageParserOutput'; $wgHooks['wgQueryPages'][] = 'ProofreadPage::onwgQueryPages'; $wgHooks['GetPreferences'][] = 'ProofreadPage::onGetPreferences'; diff --git a/includes/ProofreadPageParser.php b/includes/ProofreadPageParser.php index 9ee4273..2b0388d 100644 --- a/includes/ProofreadPageParser.php +++ b/includes/ProofreadPageParser.php @@ -32,7 +32,7 @@ if( !preg_match( $page_regexp, $text, $m ) ) { ProofreadPage::loadIndex( $title ); if ( $title->prpIndexPage !== null ) { - list( $header, $footer, $css, $editWidth ) = $title->prpIndexPage->getIndexDataForPage(); + list( $header, $footer, $css, $editWidth ) = $title->prpIndexPage->getIndexDataForPage( $title ); } else { $header = ''; $footer = ''; diff --git a/includes/page/EditProofreadPagePage.php b/includes/page/EditProofreadPagePage.php index 82b1e65..58a9403 100644 --- a/includes/page/EditProofreadPagePage.php +++ b/includes/page/EditProofreadPagePage.php @@ -19,7 +19,32 @@ * @ingroup ProofreadPage */ -class EditProofreadPagePage { +class EditProofreadPagePage extends EditPage{ + + protected function isSectionEditSupported() { + return false; // sections and forms don't mix + } + + /** + * Init $this->textbox1 from form content + * + * @param $request WebRequest + */ + protected function importContentFormData( &$request ) { + if ( $this->textbox1 !== '' ) { + return; + } + + $value = ProofreadPageContent::newEmpty(); + $value->setHeader( $this->safeUnicodeInput( $request, 'wpHeaderTextbox' ) ); + $value->setBody( $this->safeUnicodeInput( $request, 'wpTextbox1') ); + $value->setFooter( $this->safeUnicodeInput( $request, 'wpFooterTextbox' ) ); + $value->setLevel( $request->getInt( 'wpQuality' ) ); + $value->setProofreaderFromName( $this->safeUnicodeInput( $request, 'wpProofreader' ) ); + + $this->textbox1 = $request->getText( 'wpTextbox1' ); + return true; + } /** * Preload text layer from multipage formats @@ -197,4 +222,43 @@ return true; } + + protected function showContentForm() { + global $wgOut; + + $pageLang = $this->mTitle->getPageLanguage(); + $inputAttributes = array( 'lang' => $pageLang->getCode(), 'dir' => $pageLang->getDir() ); + if( wfReadOnly() === true ) { + $inputAttributes['readonly'] = ''; + } + + $index = new ProofreadIndexPage( $this->mTitle, ProofreadIndexPage::getDataConfig(), $this->textbox1 ); + $content = new ProofreadPageContent( '', $this->textbox1 ); + $page = new ProofreadPagePage( $this->mTitle, $content, $index ); + $wgOut->addHTML( Html::textarea( 'wpTextBox1', $this->textbox1, array( 'tabindex' => '1', 'accesskey' =>',', 'id' => 'wpTextbox1', 'cols' => '80', 'rows' => '25', 'style' =>'', 'lang' => 'en', 'dir' => 'ltr' ) ) ); + } + + /** + * Check the validity of the page + */ + function internalAttemptSave( &$result, $bot = false ) { + global $wgOut; + + $index = new ProofreadIndexPage( $this->mTitle, ProofreadIndexPage::getDataConfig(), $this->textbox1 ); + var_dump( $this->textbox1 ); + $content = new ProofreadPageContent( '', $this->textbox1 ); + $page = new ProofreadPagePage( $this->mTitle, $content, $index ); + +// var_dump( $result ); + if( !$this->mTitle->inNamespace( ProofreadPage::getPageNamespaceId() ) && $index!== null ) { + var_dump( $this->textbox1 ); + $wgOut->showErrorPage( 'proofreadpage_page_invalid', 'proofreadpage_page_invalid_text' ); + $status = Status::newGood(); + $status->fatal( 'hookaborted' ); + $status->value = self::AS_HOOK_ERROR; + return $status; + } + return parent::internalAttemptSave( $result, $bot ); + } + } diff --git a/includes/page/ProofreadPagePage.php b/includes/page/ProofreadPagePage.php index 004dc3c..ebb2443 100644 --- a/includes/page/ProofreadPagePage.php +++ b/includes/page/ProofreadPagePage.php @@ -127,9 +127,9 @@ if ( $this->content === null ) { $rev = Revision::newFromTitle( $this->title ); if ( $rev === null ) { - $this->content = ProofreadPageValue::newEmpty(); + $this->content = ProofreadPageContent::newEmpty(); } else { - $this->content = ProofreadPageValue::newFromWikitext( $rev->getText() ); + $this->content = ProofreadPageContent::newFromWikitext( $rev->getText() ); } } return $this->content; -- To view, visit https://gerrit.wikimedia.org/r/73437 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I62b10d3d23d3282c26babdab364f4b97a6f2c85e Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/ProofreadPage Gerrit-Branch: pagePagesRefactoring Gerrit-Owner: Rtdwivedi <ellydwivedi2...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits