Файл: concrete5.7.5.6/concrete/src/StyleCustomizer/Inline/StyleSet.php
Строк: 821
<?php
namespace ConcreteCoreStyleCustomizerInline;
use ConcreteCoreBackupContentExporter;
use ConcreteCoreBackupContentImporter;
use ConcreteCorePageThemeGridFrameworkGridFramework;
use Database;
use SymfonyComponentHttpFoundationRequest;
/**
* @Entity
* @Table(name="StyleCustomizerInlineStyleSets")
*/
class StyleSet
{
/**
* @Id @Column(type="integer")
* @GeneratedValue
*/
protected $issID;
/**
* @Column(type="string")
*/
protected $customClass;
/**
* @param mixed $customClass
*/
public function setCustomClass($customClass)
{
$this->customClass = $customClass;
}
/**
* @return mixed
*/
public function getCustomClass()
{
return $this->customClass;
}
/**
* @Column(type="string")
*/
protected $backgroundColor;
/**
* @Column(type="integer")
*/
protected $backgroundImageFileID = 0;
/**
* @Column(type="string")
*/
protected $backgroundRepeat = 'no-repeat';
/**
* @Column(type="string")
*/
protected $backgroundSize = 'auto';
/**
* @Column(type="string")
*/
protected $backgroundPosition = '0% 0%';
/**
* @Column(type="string")
*/
protected $borderColor;
/**
* @Column(type="string")
*/
protected $borderStyle;
/**
* @Column(type="string")
*/
protected $borderWidth;
/**
* @Column(type="string")
*/
protected $borderRadius;
/**
* @param mixed $borderWidth
*/
public function setBorderWidth($borderWidth)
{
$this->borderWidth = $borderWidth;
}
/**
* @return mixed
*/
public function getBorderWidth()
{
return $this->borderWidth;
}
/**
* @Column(type="string")
*/
protected $baseFontSize;
/**
* @Column(type="string")
*/
protected $alignment;
/**
* @Column(type="string")
*/
protected $textColor;
/**
* @Column(type="string")
*/
protected $linkColor;
/**
* @Column(type="string")
*/
protected $marginTop;
/**
* @Column(type="string")
*/
protected $marginBottom;
/**
* @Column(type="string")
*/
protected $marginLeft;
/**
* @Column(type="string")
*/
protected $marginRight;
/**
* @Column(type="string")
*/
protected $paddingTop;
/**
* @Column(type="string")
*/
protected $paddingBottom;
/**
* @Column(type="string")
*/
protected $paddingLeft;
/**
* @Column(type="string")
*/
protected $paddingRight;
/**
* @Column(type="string")
*/
protected $rotate;
/**
* @Column(type="string")
*/
protected $boxShadowHorizontal;
/**
* @Column(type="string")
*/
protected $boxShadowVertical;
/**
* @Column(type="string")
*/
protected $boxShadowBlur;
/**
* @Column(type="string")
*/
protected $boxShadowSpread;
/**
* @Column(type="string")
*/
protected $boxShadowColor;
/**
* @Column(type="boolean")
*/
protected $hideOnExtraSmallDevice = false;
/**
* @Column(type="boolean")
*/
protected $hideOnSmallDevice = false;
/**
* @Column(type="boolean")
*/
protected $hideOnMediumDevice = false;
/**
* @Column(type="boolean")
*/
protected $hideOnLargeDevice = false;
/**
* @param mixed $alignment
*/
public function setAlignment($alignment)
{
$this->alignment = $alignment;
}
/**
* @return mixed
*/
public function getAlignment()
{
return $this->alignment;
}
/**
* @param mixed $backgroundRepeat
*/
public function setBackgroundRepeat($backgroundRepeat)
{
$this->backgroundRepeat = $backgroundRepeat;
}
/**
* @return mixed
*/
public function getBackgroundRepeat()
{
return $this->backgroundRepeat;
}
/**
* @param mixed $backgroundSize
*/
public function setBackgroundSize($backgroundSize)
{
$this->backgroundSize = $backgroundSize;
}
/**
* @return mixed
*/
public function getBackgroundSize()
{
return $this->backgroundSize;
}
/**
* @param mixed $backgroundPosition
*/
public function setBackgroundPosition($backgroundPosition)
{
$this->backgroundPosition = $backgroundPosition;
}
/**
* @return mixed
*/
public function getBackgroundPosition()
{
return $this->backgroundPosition;
}
/**
* @param mixed $baseFontSize
*/
public function setBaseFontSize($baseFontSize)
{
$this->baseFontSize = $baseFontSize;
}
/**
* @return mixed
*/
public function getBaseFontSize()
{
return $this->baseFontSize;
}
/**
* @param mixed $borderColor
*/
public function setBorderColor($borderColor)
{
$this->borderColor = $borderColor;
}
/**
* @return mixed
*/
public function getBorderColor()
{
return $this->borderColor;
}
/**
* @param mixed $borderStyle
*/
public function setBorderStyle($borderStyle)
{
$this->borderStyle = $borderStyle;
}
/**
* @return mixed
*/
public function getBorderStyle()
{
return $this->borderStyle;
}
/**
* @param mixed $borderStyle
*/
public function setBorderRadius($borderRadius)
{
$this->borderRadius = $borderRadius;
}
/**
* @return mixed
*/
public function getBorderRadius()
{
return $this->borderRadius;
}
/**
* @param mixed $boxShadowBlur
*/
public function setBoxShadowBlur($boxShadowBlur)
{
$this->boxShadowBlur = $boxShadowBlur;
}
/**
* @return mixed
*/
public function getBoxShadowBlur()
{
return $this->boxShadowBlur;
}
/**
* @param mixed $boxShadowColor
*/
public function setBoxShadowColor($boxShadowColor)
{
$this->boxShadowColor = $boxShadowColor;
}
/**
* @return mixed
*/
public function getBoxShadowColor()
{
return $this->boxShadowColor;
}
/**
* @param mixed $boxShadowHorizontal
*/
public function setBoxShadowHorizontal($boxShadowHorizontal)
{
$this->boxShadowHorizontal = $boxShadowHorizontal;
}
/**
* @return mixed
*/
public function getBoxShadowHorizontal()
{
return $this->boxShadowHorizontal;
}
/**
* @param mixed $boxShadowSpread
*/
public function setBoxShadowSpread($boxShadowSpread)
{
$this->boxShadowSpread = $boxShadowSpread;
}
/**
* @return mixed
*/
public function getBoxShadowSpread()
{
return $this->boxShadowSpread;
}
/**
* @param mixed $boxShadowVertical
*/
public function setBoxShadowVertical($boxShadowVertical)
{
$this->boxShadowVertical = $boxShadowVertical;
}
/**
* @return mixed
*/
public function getBoxShadowVertical()
{
return $this->boxShadowVertical;
}
/**
* @param mixed $linkColor
*/
public function setLinkColor($linkColor)
{
$this->linkColor = $linkColor;
}
/**
* @return mixed
*/
public function getLinkColor()
{
return $this->linkColor;
}
/**
* @param mixed $textColor
*/
public function setTextColor($textColor)
{
$this->textColor = $textColor;
}
/**
* @return mixed
*/
public function getTextColor()
{
return $this->textColor;
}
/**
* @param mixed $rotate
*/
public function setRotate($rotate)
{
$this->rotate = $rotate;
}
/**
* @return mixed
*/
public function getRotate()
{
return $this->rotate;
}
public function getID()
{
return $this->issID;
}
/**
* @param mixed $marginBottom
*/
public function setMarginBottom($marginBottom)
{
$this->marginBottom = $marginBottom;
}
/**
* @return mixed
*/
public function getMarginBottom()
{
return $this->marginBottom;
}
/**
* @param mixed $marginLeft
*/
public function setMarginLeft($marginLeft)
{
$this->marginLeft = $marginLeft;
}
/**
* @return mixed
*/
public function getMarginLeft()
{
return $this->marginLeft;
}
/**
* @param mixed $marginRight
*/
public function setMarginRight($marginRight)
{
$this->marginRight = $marginRight;
}
/**
* @return mixed
*/
public function getMarginRight()
{
return $this->marginRight;
}
/**
* @param mixed $marginTop
*/
public function setMarginTop($marginTop)
{
$this->marginTop = $marginTop;
}
/**
* @return mixed
*/
public function getMarginTop()
{
return $this->marginTop;
}
/**
* @param mixed $paddingBottom
*/
public function setPaddingBottom($paddingBottom)
{
$this->paddingBottom = $paddingBottom;
}
/**
* @return mixed
*/
public function getPaddingBottom()
{
return $this->paddingBottom;
}
/**
* @param mixed $paddingLeft
*/
public function setPaddingLeft($paddingLeft)
{
$this->paddingLeft = $paddingLeft;
}
/**
* @return mixed
*/
public function getPaddingLeft()
{
return $this->paddingLeft;
}
/**
* @param mixed $paddingRight
*/
public function setPaddingRight($paddingRight)
{
$this->paddingRight = $paddingRight;
}
/**
* @return mixed
*/
public function getPaddingRight()
{
return $this->paddingRight;
}
/**
* @param mixed $paddingTop
*/
public function setPaddingTop($paddingTop)
{
$this->paddingTop = $paddingTop;
}
/**
* @return mixed
*/
public function getPaddingTop()
{
return $this->paddingTop;
}
public function setBackgroundColor($backgroundColor)
{
$this->backgroundColor = $backgroundColor;
}
public function setBackgroundImageFileID($backgroundImageFileID)
{
$this->backgroundImageFileID = $backgroundImageFileID;
}
public function getBackgroundColor()
{
return $this->backgroundColor;
}
public function getBackgroundImageFileID()
{
return $this->backgroundImageFileID;
}
public function getBackgroundImageFileObject()
{
if ($this->backgroundImageFileID) {
$f = File::getByID($this->backgroundImageFileID);
return $f;
}
}
/**
* @return mixed
*/
public function getHideOnExtraSmallDevice()
{
return $this->hideOnExtraSmallDevice;
}
/**
* @param mixed $hideOnExtraSmallDevice
*/
public function setHideOnExtraSmallDevice($hideOnExtraSmallDevice)
{
$this->hideOnExtraSmallDevice = $hideOnExtraSmallDevice;
}
/**
* @return mixed
*/
public function getHideOnSmallDevice()
{
return $this->hideOnSmallDevice;
}
/**
* @param mixed $hideOnSmallDevice
*/
public function setHideOnSmallDevice($hideOnSmallDevice)
{
$this->hideOnSmallDevice = $hideOnSmallDevice;
}
/**
* @return mixed
*/
public function getHideOnMediumDevice()
{
return $this->hideOnMediumDevice;
}
/**
* @param mixed $hideOnMediumDevice
*/
public function setHideOnMediumDevice($hideOnMediumDevice)
{
$this->hideOnMediumDevice = $hideOnMediumDevice;
}
/**
* @return mixed
*/
public function getHideOnLargeDevice()
{
return $this->hideOnLargeDevice;
}
/**
* @param mixed $hideOnLargeDevice
*/
public function setHideOnLargeDevice($hideOnLargeDevice)
{
$this->hideOnLargeDevice = $hideOnLargeDevice;
}
/**
* @param $issID
*
* @return ConcreteCoreStyleCustomizerSet
*/
public static function getByID($issID)
{
$db = Database::get();
$em = $db->getEntityManager();
return $em->find('ConcreteCoreStyleCustomizerInlineStyleSet', $issID);
}
public function save()
{
$db = Database::get();
$em = $db->getEntityManager();
$em->persist($this);
$em->flush();
}
public static function import(SimpleXMLElement $node)
{
$o = new self();
$o->setBackgroundColor((string) $node->backgroundColor);
$filename = (string) $node->backgroundImage;
if ($filename) {
$inspector = Core::make('import/value_inspector');
$result = $inspector->inspect($filename);
$fID = $result->getReplacedValue();
if ($fID) {
$o->setBackgroundImageFileID($fID);
}
}
$o->setBackgroundRepeat((string) $node->backgroundRepeat);
$o->setBackgroundSize((string) $node->backgroundSize);
$o->setBackgroundPosition((string) $node->backgroundPosition);
$o->setBorderWidth((string) $node->borderWidth);
$o->setBorderColor((string) $node->borderColor);
$o->setBorderStyle((string) $node->borderStyle);
$o->setBorderRadius((string) $node->borderRadius);
$o->setBaseFontSize((string) $node->baseFontSize);
$o->setAlignment((string) $node->alignment);
$o->setTextColor((string) $node->textColor);
$o->setLinkColor((string) $node->linkColor);
$o->setPaddingTop((string) $node->paddingTop);
$o->setPaddingBottom((string) $node->paddingBottom);
$o->setPaddingLeft((string) $node->paddingLeft);
$o->setPaddingRight((string) $node->paddingRight);
$o->setMarginTop((string) $node->marginTop);
$o->setMarginBottom((string) $node->marginBottom);
$o->setMarginLeft((string) $node->marginLeft);
$o->setMarginRight((string) $node->marginRight);
$o->setRotate((string) $node->rotate);
$o->setBoxShadowHorizontal((string) $node->boxShadowHorizontal);
$o->setBoxShadowVertical((string) $node->boxShadowVertical);
$o->setBoxShadowSpread((string) $node->boxShadowSpread);
$o->setBoxShadowBlur((string) $node->boxShadowBlur);
$o->setBoxShadowColor((string) $node->boxShadowColor);
$o->setCustomClass((string) $node->customClass);
$o->save();
return $o;
}
public function export(SimpleXMLElement $node)
{
$node = $node->addChild('style');
$node->addChild('backgroundColor', $this->getBackgroundColor());
$fID = $this->backgroundImageFileID;
if ($fID) {
$node->addChild('backgroundImage', ContentExporter::replaceFileWithPlaceHolder($fID));
}
$node->addChild('backgroundRepeat', $this->getBackgroundRepeat());
$node->addChild('backgroundSize', $this->getBackgroundSize());
$node->addChild('backgroundPosition', $this->getBackgroundPosition());
$node->addChild('borderWidth', $this->getBorderWidth());
$node->addChild('borderColor', $this->getBorderColor());
$node->addChild('borderStyle', $this->getBorderStyle());
$node->addChild('borderRadius', $this->getBorderRadius());
$node->addChild('baseFontSize', $this->getBaseFontSize());
$node->addChild('alignment', $this->getAlignment());
$node->addChild('textColor', $this->getTextColor());
$node->addChild('linkColor', $this->getLinkColor());
$node->addChild('paddingTop', $this->getPaddingTop());
$node->addChild('paddingBottom', $this->getPaddingBottom());
$node->addChild('paddingLeft', $this->getPaddingLeft());
$node->addChild('paddingRight', $this->getPaddingRight());
$node->addChild('marginTop', $this->getMarginTop());
$node->addChild('marginBottom', $this->getMarginBottom());
$node->addChild('marginLeft', $this->getMarginLeft());
$node->addChild('marginRight', $this->getMarginRight());
$node->addChild('rotate', $this->getRotate());
$node->addChild('boxShadowHorizontal', $this->getBoxShadowHorizontal());
$node->addChild('boxShadowVertical', $this->getBoxShadowVertical());
$node->addChild('boxShadowBlur', $this->getBoxShadowBlur());
$node->addChild('boxShadowSpread', $this->getBoxShadowSpread());
$node->addChild('boxShadowColor', $this->getBoxShadowColor());
$node->addChild('customClass', $this->getCustomClass());
$node->addChild('hideOnExtraSmallDevice', $this->getHideOnExtraSmallDevice());
$node->addChild('hideOnSmallDevice', $this->getHideOnSmallDevice());
$node->addChild('hideOnMediumDevice', $this->getHideOnMediumDevice());
$node->addChild('hideOnLargeDevice', $this->getHideOnLargeDevice());
}
/**
* If the request contains any fields that are valid to save as a style set, we return the style set object
* pre-save. If it's not (e.g. there's a background repeat but no actual background image, empty strings, etc...)
* then we return null.
* return ConcreteCoreStyleCustomizerInlineStyleSet|null
* @param Request $request
*/
public static function populateFromRequest(Request $request)
{
$r = $request->request->all();
$set = new StyleSet();
$return = false;
if (trim($r['backgroundColor']) != '') {
$set->setBackgroundColor($r['backgroundColor']);
$set->setBackgroundRepeat($r['backgroundRepeat']);
$set->setBackgroundSize($r['backgroundSize']);
$set->setBackgroundPosition($r['backgroundPosition']);
$return = true;
}
$fID = intval($r['backgroundImageFileID']);
if ($fID > 0) {
$set->setBackgroundImageFileID($fID);
$set->setBackgroundRepeat($r['backgroundRepeat']);
$set->setBackgroundSize($r['backgroundSize']);
$set->setBackgroundPosition($r['backgroundPosition']);
$return = true;
}
if (isset($r['hideOnDevice'])) {
if (isset($r['hideOnDevice'][GridFramework::DEVICE_CLASSES_HIDE_ON_EXTRA_SMALL]) && $r['hideOnDevice'][GridFramework::DEVICE_CLASSES_HIDE_ON_EXTRA_SMALL] == 1) {
$set->setHideOnExtraSmallDevice(true);
$return = true;
}
if (isset($r['hideOnDevice'][GridFramework::DEVICE_CLASSES_HIDE_ON_SMALL]) && $r['hideOnDevice'][GridFramework::DEVICE_CLASSES_HIDE_ON_SMALL] == 1) {
$set->setHideOnSmallDevice(true);
$return = true;
}
if (isset($r['hideOnDevice'][GridFramework::DEVICE_CLASSES_HIDE_ON_MEDIUM]) && $r['hideOnDevice'][GridFramework::DEVICE_CLASSES_HIDE_ON_MEDIUM] == 1) {
$set->setHideOnMediumDevice(true);
$return = true;
}
if (isset($r['hideOnDevice'][GridFramework::DEVICE_CLASSES_HIDE_ON_LARGE]) && $r['hideOnDevice'][GridFramework::DEVICE_CLASSES_HIDE_ON_LARGE] == 1) {
$set->setHideOnLargeDevice(true);
$return = true;
}
}
if (trim($r['linkColor']) != '') {
$set->setLinkColor($r['linkColor']);
$return = true;
}
if (trim($r['textColor']) != '') {
$set->setTextColor($r['textColor']);
$return = true;
}
if (trim($r['baseFontSize']) && trim($r['baseFontSize']) != '0px') {
$set->setBaseFontSize($r['baseFontSize']);
$return = true;
}
if (trim($r['marginTop']) && trim($r['marginTop']) != '0px') {
$set->setMarginTop($r['marginTop']);
$return = true;
}
if (trim($r['marginRight']) && trim($r['marginRight']) != '0px') {
$set->setMarginRight($r['marginRight']);
$return = true;
}
if (trim($r['marginBottom']) && trim($r['marginBottom']) != '0px') {
$set->setMarginBottom($r['marginBottom']);
$return = true;
}
if (trim($r['marginLeft']) && trim($r['marginLeft']) != '0px') {
$set->setMarginLeft($r['marginLeft']);
$return = true;
}
if (trim($r['paddingTop']) && trim($r['paddingTop']) != '0px') {
$set->setPaddingTop($r['paddingTop']);
$return = true;
}
if (trim($r['paddingRight']) && trim($r['paddingRight']) != '0px') {
$set->setPaddingRight($r['paddingRight']);
$return = true;
}
if (trim($r['paddingBottom']) && trim($r['paddingBottom']) != '0px') {
$set->setPaddingBottom($r['paddingBottom']);
$return = true;
}
if (trim($r['paddingLeft']) && trim($r['paddingLeft']) != '0px') {
$set->setPaddingLeft($r['paddingLeft']);
$return = true;
}
if (trim($r['borderWidth']) && trim($r['borderWidth']) != '0px') {
$set->setBorderWidth($r['borderWidth']);
$set->setBorderStyle($r['borderStyle']);
$set->setBorderColor($r['borderColor']);
$set->setBorderRadius($r['borderRadius']);
$return = true;
}
if (trim($r['alignment']) != '') {
$set->setAlignment($r['alignment']);
$return = true;
}
if ($r['rotate']) {
$set->setRotate($r['rotate']);
$return = true;
}
if ((trim($r['boxShadowHorizontal']) && trim($r['boxShadowHorizontal']) != '0px')
|| (trim($r['boxShadowVertical']) && trim($r['boxShadowVertical']) != '0px')) {
$set->setBoxShadowBlur($r['boxShadowBlur']);
$set->setBoxShadowColor($r['boxShadowColor']);
$set->setBoxShadowHorizontal($r['boxShadowHorizontal']);
$set->setBoxShadowVertical($r['boxShadowVertical']);
$set->setBoxShadowSpread($r['boxShadowSpread']);
$return = true;
}
if ($r['customClass']) {
$set->setCustomClass($r['customClass']);
$return = true;
}
if ($return) {
return $set;
}
return null;
}
public function isHiddenOnDevice($class)
{
switch($class) {
case GridFramework::DEVICE_CLASSES_HIDE_ON_EXTRA_SMALL:
return $this->getHideOnExtraSmallDevice();
case GridFramework::DEVICE_CLASSES_HIDE_ON_SMALL:
return $this->getHideOnSmallDevice();
case GridFramework::DEVICE_CLASSES_HIDE_ON_MEDIUM:
return $this->getHideOnMediumDevice();
case GridFramework::DEVICE_CLASSES_HIDE_ON_LARGE:
return $this->getHideOnLargeDevice();
}
}
}