jenkins-bot has submitted this change and it was merged.
Change subject: Split out the HTML generation for Campaigns into new class
......................................................................
Split out the HTML generation for Campaigns into new class
Change-Id: Iaf81cc803b31c2ce495071880675b3b6268aa12c
---
M UploadWizard.php
M includes/CampaignContent.php
A includes/CampaignPageFormatter.php
3 files changed, 129 insertions(+), 97 deletions(-)
Approvals:
Brion VIBBER: Looks good to me, approved
jenkins-bot: Verified
diff --git a/UploadWizard.php b/UploadWizard.php
index 3441b6e..9ee1275 100644
--- a/UploadWizard.php
+++ b/UploadWizard.php
@@ -61,6 +61,7 @@
// Campaign ContentHandler
'CampaignContentHandler' => $wgUpwizDir .
'/includes/CampaignContentHandler.php',
'CampaignContent' => $wgUpwizDir . '/includes/CampaignContent.php',
+ 'CampaignPageFormatter' => $wgUpwizDir .
'/includes/CampaignPageFormatter.php',
'CampaignHooks' => $wgUpwizDir . '/includes/CampaignHooks.php',
// Special Pages
diff --git a/includes/CampaignContent.php b/includes/CampaignContent.php
index 3632141..d75b9d9 100644
--- a/includes/CampaignContent.php
+++ b/includes/CampaignContent.php
@@ -100,106 +100,11 @@
return $po;
}
- private function isCampaignExtensionEnabled() {
- global $wgResourceModules;
- return isset( $wgResourceModules['ext.campaigns'] );
- }
-
function generateHtml( $title ) {
wfProfileIn( __METHOD__ );
- $context = RequestContext::getMain();
-
$campaign = new UploadWizardCampaign( $title,
$this->getJsonData() );
- $config = $campaign->getParsedConfig();
- $campaignTitle = array_key_exists( 'title', $config ) ?
$config['title'] : $campaign->getName();
- $campaignDescription = array_key_exists( 'description', $config
) ? $config['description'] : '';
- $campaignViewMoreLink =
$campaign->getTrackingCategory()->getFullURL();
-
- $gallery = ImageGalleryBase::factory( 'packed-hover' );
- $gallery->setContext( $context );
- $gallery->setWidths( 180 );
- $gallery->setHeights( 180 );
- $gallery->setShowBytes( false );
-
- $context->getOutput()->setSquidMaxage(
UploadWizardConfig::getSetting( 'campaignSquidMaxAge' ) );
- $context->getOutput()->setHTMLTitle( $context->msg(
'pagetitle', $campaignTitle ) );
-
- $images = $campaign->getUploadedMedia();
-
- if ( $context->getUser()->isAnon() ) {
- $urlParams = array( 'returnto' =>
$campaign->getTitle()->getPrefixedText() );
-
- if ( $this->isCampaignExtensionEnabled() ) {
- $campaignTemplate =
UploadWizardConfig::getSetting( 'campaignCTACampaignTemplate' );
- $urlParams['campaign'] = str_replace( '$1',
$campaign->getName(), $campaignTemplate );
- }
- $createAccountUrl = Skin::makeSpecialUrlSubpage(
'UserLogin', 'signup', $urlParams );
- $uploadLink =
- Html::element( 'a',
- array( 'class' =>
'mw-ui-big mw-ui-button mw-ui-primary', 'href' => $createAccountUrl ),
- wfMessage(
'mwe-upwiz-campaign-create-account-button' )->text()
- );
- } else {
- $uploadUrl = Skin::makeSpecialUrl( 'UploadWizard',
array( 'campaign' => $campaign->getName() ) );
- $uploadLink =
- Html::element( 'a',
- array( 'class' =>
'mw-ui-big mw-ui-button mw-ui-primary', 'href' => $uploadUrl ),
- wfMessage(
'mwe-upwiz-campaign-upload-button' )->text()
- );
- }
-
- if ( count( $images ) === 0 ) {
- $body = Html::element( 'div', array( 'id' =>
'mw-campaign-no-uploads-yet' ), wfMessage( 'mwe-upwiz-campaign-no-uploads-yet'
)->plain() );
- } else {
- foreach ( $images as $image ) {
- $gallery->add( $image );
- }
-
- $body =
- Html::rawElement( 'div', array( 'id' =>
'mw-campaign-images' ), $gallery->toHTML() ) .
- Html::rawElement( 'a',
- array( 'id' => 'mw-campaign-view-all',
'href' => $campaignViewMoreLink ),
- Html::rawElement( 'span', array(
'class' => 'mw-campaign-chevron mw-campaign-float-left' ), ' ' ) .
- wfMessage(
'mwe-upwiz-campaign-view-all-media' )->escaped() .
- Html::rawElement( 'span', array(
'class' => 'mw-campaign-chevron mw-campaign-float-right' ), ' ' )
- );
- }
-
- if ( UploadWizardConfig::getSetting(
'campaignExpensiveStatsEnabled' ) === true ) {
- $campaignExpensiveStats =
- Html::rawElement( 'div', array( 'class' =>
'mw-campaign-number-container' ),
- Html::element( 'div', array( 'class' =>
'mw-campaign-number' ), $campaign->getTotalContributorsCount() ) .
- Html::element( 'span', array( 'class'
=> 'mw-campaign-number-desc' ), wfMessage(
'mwe-upwiz-campaign-contributors-count-desc')->plain() )
-
- );
- } else {
- $campaignExpensiveStats = '';
- }
-
-
- $result =
- Html::rawElement( 'div', array( 'id' =>
'mw-campaign-container' ),
- Html::rawElement( 'div', array( 'id' =>
'mw-campaign-header' ),
- Html::rawElement( 'div', array( 'id' =>
'mw-campaign-primary-info' ),
- // No need to escape these,
since they are just parsed wikitext
- // Any stripping that needed to
be done should've been done by the parser
- Html::rawElement( 'p', array(
'id' => 'mw-campaign-title' ), $campaignTitle ) .
- Html::rawElement( 'p', array(
'id' => 'mw-campaign-description' ), $campaignDescription ) .
- $uploadLink
- ) .
- Html::rawElement( 'div', array( 'id' =>
'mw-campaign-numbers' ),
- $campaignExpensiveStats .
- Html::rawElement( 'div', array(
'class' => 'mw-campaign-number-container' ),
- Html::element( 'div',
array( 'class' => 'mw-campaign-number' ), $campaign->getUploadedMediaCount() ) .
- Html::element( 'span',
array( 'class' => 'mw-campaign-number-desc' ), wfMessage(
'mwe-upwiz-campaign-media-count-desc')->plain() )
- )
- )
- ) .
- $body
- );
- wfProfileOut( __METHOD__ );
-
- return $result;
+ $formatter = new CampaignPageFormatter( $campaign );
+ return $formatter->generateReadHtml();
}
}
diff --git a/includes/CampaignPageFormatter.php
b/includes/CampaignPageFormatter.php
new file mode 100644
index 0000000..5d0732c
--- /dev/null
+++ b/includes/CampaignPageFormatter.php
@@ -0,0 +1,126 @@
+<?php
+/**
+ * Upload Campaign Formatter
+ *
+ * @file
+ * @ingroup Extensions
+ * @ingroup UploadWizard
+ *
+ * @author Yuvi Panda <[email protected]>
+ */
+
+
+/**
+ * Helper class to produce formatted HTML output for Campaigns
+ */
+class CampaignPageFormatter {
+ protected $campaign = null;
+ protected $context = null;
+
+ public function __construct( $campaign, $context = null ) {
+ $this->campaign = $campaign;
+ if ( $context === null ) {
+ $this->context = RequestContext::getMain();
+ } else {
+ $this->context = $context;
+ }
+ }
+
+ private function isCampaignExtensionEnabled() {
+ global $wgResourceModules;
+ return isset( $wgResourceModules['ext.campaigns'] );
+ }
+
+ public function generateReadHtml() {
+ $config = $this->campaign->getParsedConfig();
+
+ $campaignTitle = array_key_exists( 'title', $config ) ?
$config['title'] : $this->campaign->getName();
+ $campaignDescription = array_key_exists( 'description', $config
) ? $config['description'] : '';
+ $campaignViewMoreLink =
$this->campaign->getTrackingCategory()->getFullURL();
+
+ $gallery = ImageGalleryBase::factory( 'packed-hover' );
+ $gallery->setContext( $this->context );
+ $gallery->setWidths( 180 );
+ $gallery->setHeights( 180 );
+ $gallery->setShowBytes( false );
+
+ $this->context->getOutput()->setSquidMaxage(
UploadWizardConfig::getSetting( 'campaignSquidMaxAge' ) );
+ $this->context->getOutput()->setHTMLTitle( $this->context->msg(
'pagetitle', $campaignTitle ) );
+
+ $images = $this->campaign->getUploadedMedia();
+
+ if ( $this->context->getUser()->isAnon() ) {
+ $urlParams = array( 'returnto' =>
$this->campaign->getTitle()->getPrefixedText() );
+
+ if ( $this->isCampaignExtensionEnabled() ) {
+ $campaignTemplate =
UploadWizardConfig::getSetting( 'campaignCTACampaignTemplate' );
+ $urlParams['campaign'] = str_replace( '$1',
$this->campaign->getName(), $campaignTemplate );
+ }
+ $createAccountUrl = Skin::makeSpecialUrlSubpage(
'UserLogin', 'signup', $urlParams );
+ $uploadLink =
+ Html::element( 'a',
+ array( 'class' =>
'mw-ui-big mw-ui-button mw-ui-primary', 'href' => $createAccountUrl ),
+ wfMessage(
'mwe-upwiz-campaign-create-account-button' )->text()
+ );
+ } else {
+ $uploadUrl = Skin::makeSpecialUrl( 'UploadWizard',
array( 'campaign' => $this->campaign->getName() ) );
+ $uploadLink =
+ Html::element( 'a',
+ array( 'class' =>
'mw-ui-big mw-ui-button mw-ui-primary', 'href' => $uploadUrl ),
+ wfMessage(
'mwe-upwiz-campaign-upload-button' )->text()
+ );
+ }
+
+ if ( count( $images ) === 0 ) {
+ $body = Html::element( 'div', array( 'id' =>
'mw-campaign-no-uploads-yet' ), wfMessage( 'mwe-upwiz-campaign-no-uploads-yet'
)->plain() );
+ } else {
+ foreach ( $images as $image ) {
+ $gallery->add( $image );
+ }
+
+ $body =
+ Html::rawElement( 'div', array( 'id' =>
'mw-campaign-images' ), $gallery->toHTML() ) .
+ Html::rawElement( 'a',
+ array( 'id' => 'mw-campaign-view-all',
'href' => $campaignViewMoreLink ),
+ Html::rawElement( 'span', array(
'class' => 'mw-campaign-chevron mw-campaign-float-left' ), ' ' ) .
+ wfMessage(
'mwe-upwiz-campaign-view-all-media' )->escaped() .
+ Html::rawElement( 'span', array(
'class' => 'mw-campaign-chevron mw-campaign-float-right' ), ' ' )
+ );
+ }
+
+ if ( UploadWizardConfig::getSetting(
'campaignExpensiveStatsEnabled' ) === true ) {
+ $campaignExpensiveStats =
+ Html::rawElement( 'div', array( 'class' =>
'mw-campaign-number-container' ),
+ Html::element( 'div', array( 'class' =>
'mw-campaign-number' ), $this->campaign->getTotalContributorsCount() ) .
+ Html::element( 'span', array( 'class'
=> 'mw-campaign-number-desc' ), wfMessage(
'mwe-upwiz-campaign-contributors-count-desc')->plain() )
+
+ );
+ } else {
+ $campaignExpensiveStats = '';
+ }
+
+
+ $result =
+ Html::rawElement( 'div', array( 'id' =>
'mw-campaign-container' ),
+ Html::rawElement( 'div', array( 'id' =>
'mw-campaign-header' ),
+ Html::rawElement( 'div', array( 'id' =>
'mw-campaign-primary-info' ),
+ // No need to escape these,
since they are just parsed wikitext
+ // Any stripping that needed to
be done should've been done by the parser
+ Html::rawElement( 'p', array(
'id' => 'mw-campaign-title' ), $campaignTitle ) .
+ Html::rawElement( 'p', array(
'id' => 'mw-campaign-description' ), $campaignDescription ) .
+ $uploadLink
+ ) .
+ Html::rawElement( 'div', array( 'id' =>
'mw-campaign-numbers' ),
+ $campaignExpensiveStats .
+ Html::rawElement( 'div', array(
'class' => 'mw-campaign-number-container' ),
+ Html::element( 'div',
array( 'class' => 'mw-campaign-number' ),
$this->campaign->getUploadedMediaCount() ) .
+ Html::element( 'span',
array( 'class' => 'mw-campaign-number-desc' ), wfMessage(
'mwe-upwiz-campaign-media-count-desc')->plain() )
+ )
+ )
+ ) .
+ $body
+ );
+ wfProfileOut( __METHOD__ );
+ return $result;
+ }
+}
--
To view, visit https://gerrit.wikimedia.org/r/86737
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Iaf81cc803b31c2ce495071880675b3b6268aa12c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/UploadWizard
Gerrit-Branch: master
Gerrit-Owner: Yuvipanda <[email protected]>
Gerrit-Reviewer: Brion VIBBER <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits