Tpt has uploaded a new change for review.
https://gerrit.wikimedia.org/r/90741
Change subject: Move rendering of Page: pages to ProofreadPageViewAction
......................................................................
Move rendering of Page: pages to ProofreadPageViewAction
Change-Id: I6ad5d7488e47d9c3184d5d2a9e4bb9aae67166eb
---
M ProofreadPage.body.php
M ProofreadPage.php
M includes/page/EditProofreadPagePage.php
M includes/page/ProofreadPageContent.php
M includes/page/ProofreadPageContentHandler.php
M includes/page/ProofreadPagePage.php
A includes/page/ProofreadPageViewAction.php
7 files changed, 107 insertions(+), 45 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ProofreadPage
refs/changes/41/90741/1
diff --git a/ProofreadPage.body.php b/ProofreadPage.body.php
index 3156ffe..242037b 100644
--- a/ProofreadPage.body.php
+++ b/ProofreadPage.body.php
@@ -198,14 +198,7 @@
$out->proofreadPageDone = true;
$title = $out->getTitle();
- if ( $title->inNamespace( self::getPageNamespaceId() ) ) {
- //TODO move it somewhere better
- $page = ProofreadPagePage::newFromTitle( $title );
- $content = $page->getContent();
- $out->addJsConfigVars( array(
- 'prpPageQuality' =>
$content->getLevel()->getLevel()
- ) );
- } elseif ( $title->inNamespace( self::getIndexNamespaceId() ) )
{
+ if ( $title->inNamespace( self::getIndexNamespaceId() ) ) {
if( !$isEdit ) {
$out->addModuleStyles( 'ext.proofreadpage.base'
);
}
diff --git a/ProofreadPage.php b/ProofreadPage.php
index 7b579b1..c51d630 100644
--- a/ProofreadPage.php
+++ b/ProofreadPage.php
@@ -59,6 +59,7 @@
$wgAutoloadClasses['ProofreadPageContent'] =
$dir.'includes/page/ProofreadPageContent.php';
$wgAutoloadClasses['ProofreadPageLevel'] =
$dir.'includes/page/ProofreadPageLevel.php';
$wgAutoloadClasses['ProofreadPageContentHandler'] =
$dir.'includes/page/ProofreadPageContentHandler.php';
+$wgAutoloadClasses['ProofreadPageViewAction'] = $dir .
'includes/page/ProofreadPageViewAction.php';
$wgExtensionCredits['other'][] = array(
'path' => __FILE__,
diff --git a/includes/page/EditProofreadPagePage.php
b/includes/page/EditProofreadPagePage.php
index a61a85b..fe4178a 100644
--- a/includes/page/EditProofreadPagePage.php
+++ b/includes/page/EditProofreadPagePage.php
@@ -82,20 +82,20 @@
$content = $page->getContentForEdition();
$wgOut->addHTML(
- $page->createPageContainer(
- Html::openElement( 'div', array( 'class' =>
'prp-page-edit-header' ) ) .
- Html::element( 'label', array( 'for' =>
'wpHeaderTextbox' ), wfMessage( 'proofreadpage_header' )->text() ) .
- Html::textarea( 'wpHeaderTextbox',
$content->getHeader()->serialize(), $headerAttributes ) .
- Html::closeElement( 'div' ) .
- Html::openElement( 'div', array( 'class' =>
'prp-page-edit-body' ) ) .
- Html::element( 'label', array( 'for' =>
'wpTextbox1' ), wfMessage( 'proofreadpage_body' )->text() ) .
- Html::textarea( 'wpTextbox1',
$content->getBody()->serialize(), $bodyAttributes ) .
- Html::closeElement( 'div' ) .
- Html::openElement( 'div', array( 'class' =>
'prp-page-edit-footer' ) ) .
- Html::element( 'label', array( 'for' =>
'wpFooterTextbox' ), wfMessage( 'proofreadpage_footer' )->text() ) .
- Html::textarea( 'wpFooterTextbox',
$content->getFooter()->serialize(), $footerAttributes ) .
- Html::closeElement( 'div' )
- )
+ $page->getPageContainerBegin() .
+ Html::openElement( 'div', array( 'class' =>
'prp-page-edit-header' ) ) .
+ Html::element( 'label', array( 'for' =>
'wpHeaderTextbox' ), wfMessage( 'proofreadpage_header' )->text() ) .
+ Html::textarea( 'wpHeaderTextbox',
$content->getHeader()->serialize(), $headerAttributes ) .
+ Html::closeElement( 'div' ) .
+ Html::openElement( 'div', array( 'class' =>
'prp-page-edit-body' ) ) .
+ Html::element( 'label', array( 'for' => 'wpTextbox1' ),
wfMessage( 'proofreadpage_body' )->text() ) .
+ Html::textarea( 'wpTextbox1',
$content->getBody()->serialize(), $bodyAttributes ) .
+ Html::closeElement( 'div' ) .
+ Html::openElement( 'div', array( 'class' =>
'prp-page-edit-footer' ) ) .
+ Html::element( 'label', array( 'for' =>
'wpFooterTextbox' ), wfMessage( 'proofreadpage_footer' )->text() ) .
+ Html::textarea( 'wpFooterTextbox',
$content->getFooter()->serialize(), $footerAttributes ) .
+ Html::closeElement( 'div' ) .
+ $page->getPageContainerEnd()
);
$wgOut->addModules( 'ext.proofreadpage.page.edit' );
}
diff --git a/includes/page/ProofreadPageContent.php
b/includes/page/ProofreadPageContent.php
index 11fb4d3..fa26c99 100644
--- a/includes/page/ProofreadPageContent.php
+++ b/includes/page/ProofreadPageContent.php
@@ -235,7 +235,6 @@
if ( $options === null ) {
$options =
$this->getContentHandler()->makeParserOptions( 'canonical' );
}
- $page = new ProofreadPagePage( $title, $this );
//create content
$wikitextContent = new WikitextContent(
@@ -247,32 +246,18 @@
$title->getText()
);
- //add dependencies on the image and on the index
- $index = $page->getIndex();
- if ( $index ) {
- $indexTitle = $index->getTitle();
- $parserOutput->addTemplate( $indexTitle,
$indexTitle->getArticleID(), $indexTitle->getLatestRevID() );
- }
- $image = $page->getImage();
- if ( $image ) {
- $parserOutput->addImage(
$image->getTitle()->getDBkey(), $image->getTimestamp(), $image->getSha1() );
- }
- //page html
+ //html container
$html = Html::openElement( 'div', array( 'class' =>
'prp-page-qualityheader quality' . $this->level->getLevel() ) ) .
wfMessage( 'proofreadpage_quality' .
$this->level->getLevel() . '_message' )->inContentLanguage()->parse() .
Html::closeElement( 'div' ) .
Html::openElement( 'div', array( 'class' => 'pagetext'
) ) .
$parserOutput->getText() .
Html::closeElement( 'div' );
- $parserOutput->setText( $page->createPageContainer( $html ) );
+ $parserOutput->setText( $html );
//add modules
- $parserOutput->addModules( 'ext.proofreadpage.page' );
- $parserOutput->addModuleStyles( array(
- 'ext.proofreadpage.base',
- 'ext.proofreadpage.page'
- ) );
+ $parserOutput->addModuleStyles( 'ext.proofreadpage.base' );
return $parserOutput;
}
diff --git a/includes/page/ProofreadPageContentHandler.php
b/includes/page/ProofreadPageContentHandler.php
index 3f0d755..f81b6d9 100644
--- a/includes/page/ProofreadPageContentHandler.php
+++ b/includes/page/ProofreadPageContentHandler.php
@@ -110,6 +110,15 @@
}
/**
+ * @see ContentHandler::getActionOverrides
+ */
+ public function getActionOverrides() {
+ return array(
+ 'view' => 'ProofreadPageViewAction'
+ );
+ }
+
+ /**
* @see ContentHandler::makeEmptyContent
*/
public function makeEmptyContent() {
diff --git a/includes/page/ProofreadPagePage.php
b/includes/page/ProofreadPagePage.php
index 2f3c14e..953a0e8 100644
--- a/includes/page/ProofreadPagePage.php
+++ b/includes/page/ProofreadPagePage.php
@@ -236,15 +236,21 @@
}
/**
- * Embed the page content into a container and add the image
- * @param string $content html content of the page
+ * Return the part of the page container that is before page content
* @return string
*/
- public function createPageContainer( $content ) {
+ public function getPageContainerBegin() {
return
Html::openElement( 'div', array( 'class' =>
'prp-page-container' ) ) .
- Html::openElement( 'div', array( 'class' =>
'prp-page-content' ) ) .
- $content .
+ Html::openElement( 'div', array( 'class' =>
'prp-page-content' ) );
+ }
+
+ /**
+ * Return the part of the page container that after page cnotent
+ * @return string
+ */
+ public function getPageContainerEnd() {
+ return
Html::closeElement( 'div' ) .
Html::openElement( 'div', array( 'class' =>
'prp-page-image' ) ) .
$this->getImageHtml( array( 'max-width' => 800 ) ) .
diff --git a/includes/page/ProofreadPageViewAction.php
b/includes/page/ProofreadPageViewAction.php
new file mode 100644
index 0000000..b489fc2
--- /dev/null
+++ b/includes/page/ProofreadPageViewAction.php
@@ -0,0 +1,68 @@
+<?php
+/**
+ * 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.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup ProofreadPage
+ */
+
+/**
+ * ViewAction for a Page: page
+ */
+class ProofreadPageViewAction extends ViewAction {
+
+ /**
+ * @see FormlessAction::show()
+ */
+ public function show() {
+ $out = $this->getOutput();
+ $title = $this->page->getTitle();
+ if ( !$title->inNamespace( ProofreadPage::getPageNamespaceId()
) ||
+ $out->isPrintable() ||
+ $this->getContext()->getRequest()->getCheck( 'diff' )
+ ) {
+ $this->page->view();
+ return;
+ }
+
+ $wikiPage = $this->page->getPage();
+ $content = $wikiPage->getContent( Revision::FOR_THIS_USER,
$this->getUser() );
+ if ( $content === null ||
+ $content->getModel() !== CONTENT_MODEL_PROOFREAD_PAGE ||
+ $content->isRedirect()
+ ) {
+ $this->page->view();
+ return;
+ }
+ $page = new ProofreadPagePage( $wikiPage->getTitle(), $content
);
+ $out = $this->getOutput();
+
+ //render HTML
+ $out->addHTML( $page->getPageContainerBegin() );
+ $this->page->view();
+ $out->addHTML( $page->getPageContainerEnd() );
+
+ //add modules
+ $out->addModules( 'ext.proofreadpage.page' );
+ $out->addModuleStyles( array(
+ 'ext.proofreadpage.base',
+ 'ext.proofreadpage.page'
+ ) );
+ $out->addJsConfigVars( array(
+ 'prpPageQuality' => $content->getLevel()->getLevel()
+ ) );
+ }
+}
\ No newline at end of file
--
To view, visit https://gerrit.wikimedia.org/r/90741
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I6ad5d7488e47d9c3184d5d2a9e4bb9aae67166eb
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ProofreadPage
Gerrit-Branch: pagePagesRefactoring
Gerrit-Owner: Tpt <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits