Yuvipanda has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/86737


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(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/UploadWizard 
refs/changes/37/86737/1

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' ), '&nbsp' ) .
-                                       wfMessage( 
'mwe-upwiz-campaign-view-all-media' )->escaped() .
-                                       Html::rawElement( 'span', array( 
'class' => 'mw-campaign-chevron mw-campaign-float-right' ), '&nbsp' )
-                               );
-               }
-
-               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' ), '&nbsp' ) .
+                                       wfMessage( 
'mwe-upwiz-campaign-view-all-media' )->escaped() .
+                                       Html::rawElement( 'span', array( 
'class' => 'mw-campaign-chevron mw-campaign-float-right' ), '&nbsp' )
+                               );
+               }
+
+               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: newchange
Gerrit-Change-Id: Iaf81cc803b31c2ce495071880675b3b6268aa12c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/UploadWizard
Gerrit-Branch: master
Gerrit-Owner: Yuvipanda <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to