- Refactored using @badshark's comments

- Integrated changes to JSON data
This commit is contained in:
MrCasual
2015-09-23 11:24:08 -04:00
parent 01b5416882
commit b3e376cd01
14 changed files with 1066 additions and 1197 deletions

View File

@ -3,7 +3,6 @@
use MailPoet\Newsletter\Renderer\StylesHelper; use MailPoet\Newsletter\Renderer\StylesHelper;
class Button { class Button {
static function render($element) { static function render($element) {
$stylesHelper = new StylesHelper(); $stylesHelper = new StylesHelper();
@ -45,5 +44,4 @@ class Button {
return $template; return $template;
} }
} }

View File

@ -1,7 +1,6 @@
<?php namespace MailPoet\Newsletter\Renderer\Blocks; <?php namespace MailPoet\Newsletter\Renderer\Blocks;
class Divider { class Divider {
static function render($element) { static function render($element) {
$template = ' $template = '
<tr> <tr>
@ -21,5 +20,4 @@ class Divider {
return $template; return $template;
} }
} }

View File

@ -3,7 +3,6 @@
use MailPoet\Newsletter\Renderer\StylesHelper; use MailPoet\Newsletter\Renderer\StylesHelper;
class Footer { class Footer {
static function render($element) { static function render($element) {
$stylesHelper = new StylesHelper(); $stylesHelper = new StylesHelper();
@ -28,5 +27,4 @@ class Footer {
return $template; return $template;
} }
} }

View File

@ -3,7 +3,6 @@
use MailPoet\Newsletter\Renderer\StylesHelper; use MailPoet\Newsletter\Renderer\StylesHelper;
class Header { class Header {
static function render($element) { static function render($element) {
$stylesHelper = new StylesHelper(); $stylesHelper = new StylesHelper();
@ -28,5 +27,4 @@ class Header {
return $template; return $template;
} }
} }

View File

@ -3,7 +3,6 @@
use MailPoet\Newsletter\Renderer\StylesHelper; use MailPoet\Newsletter\Renderer\StylesHelper;
class Image { class Image {
static function render($element) { static function render($element) {
$stylesHelper = new StylesHelper(); $stylesHelper = new StylesHelper();
@ -22,5 +21,4 @@ class Image {
return $template; return $template;
} }
} }

View File

@ -1,8 +1,7 @@
<?php namespace MailPoet\Newsletter\Renderer\Blocks; <?php namespace MailPoet\Newsletter\Renderer\Blocks;
class Renderer { class Renderer {
function render($data) {
function render($data, $column = null) {
array_map(function ($block) use (&$blockContent, &$columns) { array_map(function ($block) use (&$blockContent, &$columns) {
$blockContent .= $this->createElementFromBlockType($block); $blockContent .= $this->createElementFromBlockType($block);
if(isset($block['blocks'])) { if(isset($block['blocks'])) {

View File

@ -1,7 +1,6 @@
<?php namespace MailPoet\Newsletter\Renderer\Blocks; <?php namespace MailPoet\Newsletter\Renderer\Blocks;
class Social { class Social {
static function render($element) { static function render($element) {
$iconsBlock = ''; $iconsBlock = '';
@ -24,5 +23,4 @@ class Social {
return $template; return $template;
} }
} }

View File

@ -3,7 +3,6 @@
use MailPoet\Newsletter\Renderer\StylesHelper; use MailPoet\Newsletter\Renderer\StylesHelper;
class Spacer { class Spacer {
static function render($element) { static function render($element) {
$stylesHelper = new StylesHelper(); $stylesHelper = new StylesHelper();
@ -21,5 +20,4 @@ class Spacer {
return $template; return $template;
} }
} }

View File

@ -1,7 +1,6 @@
<?php namespace MailPoet\Newsletter\Renderer\Blocks; <?php namespace MailPoet\Newsletter\Renderer\Blocks;
class Text { class Text {
static $typeFace = array( static $typeFace = array(
'Arial' => "Arial, 'Helvetica Neue', Helvetica, sans-serif", 'Arial' => "Arial, 'Helvetica Neue', Helvetica, sans-serif",
'Comic Sans MS' => "'Comic Sans MS', 'Marker Felt-Thin', Arial, sans-serif", 'Comic Sans MS' => "'Comic Sans MS', 'Marker Felt-Thin', Arial, sans-serif",
@ -112,5 +111,4 @@ EOD;
return preg_replace($pattern, '', $html); return preg_replace($pattern, '', $html);
} }
} }

View File

@ -1,7 +1,6 @@
<?php namespace MailPoet\Newsletter\Renderer\Columns; <?php namespace MailPoet\Newsletter\Renderer\Columns;
class Renderer { class Renderer {
public $columnWidths = array( public $columnWidths = array(
1 => 600, 1 => 600,
2 => 300, 2 => 300,
@ -15,7 +14,6 @@ class Renderer {
); );
function render($columnsCount, $columnsData) { function render($columnsCount, $columnsData) {
$columnWidth = $this->columnWidths[$columnsCount]; $columnWidth = $this->columnWidths[$columnsCount];
$columnClass = $this->columnClasses[$columnsCount]; $columnClass = $this->columnClasses[$columnsCount];

View File

@ -3,7 +3,6 @@ namespace MailPoet\Newsletter\Renderer;
if(!defined('ABSPATH')) exit; if(!defined('ABSPATH')) exit;
class Renderer { class Renderer {
public $template = 'Template.html'; public $template = 'Template.html';
function __construct($newsletterData) { function __construct($newsletterData) {
@ -17,8 +16,8 @@ class Renderer {
} }
function renderAll() { function renderAll() {
$newsletterContent = $this->renderContent($this->data['data']); $newsletterContent = $this->renderContent($this->data['content']);
$newsletterStyles = $this->renderStyles($this->data['styles']); $newsletterStyles = $this->renderStyles($this->data['globalStyles']);
$renderedTemplate = $this->renderTemplate($this->template, array( $renderedTemplate = $this->renderTemplate($this->template, array(
$newsletterStyles, $newsletterStyles,
@ -30,12 +29,12 @@ class Renderer {
} }
function renderContent($content) { function renderContent($content) {
array_map(function ($contentBlock) use (&$newsletterContent) { $newsletterContent = array_map(function ($contentBlock) {
$columnCount = count($contentBlock['blocks']); $columnCount = count($contentBlock['blocks']);
$columnData = $this->blocksRenderer->render($contentBlock); $columnData = $this->blocksRenderer->render($contentBlock);
$newsletterContent .= $this->columnsRenderer->render($columnCount, $columnData); return $this->columnsRenderer->render($columnCount, $columnData);
}, $content['blocks']); }, $content['blocks']);
return $newsletterContent; return implode('', $newsletterContent);
} }
function renderStyles($styles) { function renderStyles($styles) {
@ -45,13 +44,13 @@ class Renderer {
case 'text': case 'text':
$selector = 'span.paragraph, ul, ol'; $selector = 'span.paragraph, ul, ol';
break; break;
case 'background': case 'body':
$selector = '.mailpoet_content-wrapper'; $selector = '.mailpoet_content-wrapper';
break; break;
case 'link': case 'link':
$selector = '.mailpoet_content-wrapper a'; $selector = '.mailpoet_content-wrapper a';
break; break;
case 'newsletter': case 'wrapper':
$selector = '.mailpoet_container, .mailpoet_col-one, .mailpoet_col-two, .mailpoet_col-three'; $selector = '.mailpoet_container, .mailpoet_col-one, .mailpoet_col-two, .mailpoet_col-three';
break; break;
} }

View File

@ -1,7 +1,6 @@
<?php namespace MailPoet\Newsletter\Renderer; <?php namespace MailPoet\Newsletter\Renderer;
class StylesHelper { class StylesHelper {
public $cssAtributesTable = array( public $cssAtributesTable = array(
'backgroundColor' => 'background-color', 'backgroundColor' => 'background-color',
'fontColor' => 'color', 'fontColor' => 'color',
@ -16,22 +15,20 @@ class StylesHelper {
'lineHeight' => 'line-height' 'lineHeight' => 'line-height'
); );
function getBlockStyles($element, $ignore = false) { function getBlockStyles($element) {
if(!isset($element['styles']['block'])) { if(!isset($element['styles']['block'])) {
return; return;
} }
return $this->getStyles($element['styles'], 'block', $ignore); return $this->getStyles($element['styles'], 'block');
} }
function getStyles($data, $type, $ignore = false) { function getStyles($data, $type) {
array_map(function ($attribute, $style) use (&$styles, $ignore) { $styles = array_map(function ($attribute, $style) {
if(!$ignore || !in_array($attribute, $ignore)) { return $this->translateCSSAttribute($attribute) . ': ' . $style . ' !important;';
$styles .= $this->translateCSSAttribute($attribute) . ': ' . $style . ' !important;';
}
}, array_keys($data[$type]), $data[$type]); }, array_keys($data[$type]), $data[$type]);
return $styles; return implode('', $styles);
} }
function translateCSSAttribute($attribute) { function translateCSSAttribute($attribute) {

View File

@ -151,7 +151,7 @@
.mailpoet_padded { .mailpoet_padded {
padding-left: 20px; padding-left: 20px;
padding-right: 20px; padding-right: 20px;
word-break: break-word; /*word-break: break-all;*/
word-wrap: break-word; word-wrap: break-word;
} }
@ -238,7 +238,7 @@
} }
.mailpoet_social img { .mailpoet_social img {
height: 32x !important; height: 32px !important;
width: 32px !important; width: 32px !important;
padding-bottom: 20px !important; padding-bottom: 20px !important;
} }

File diff suppressed because it is too large Load Diff