Spaces:
No application file
No application file
namespace Mautic\CoreBundle\Entity; | |
use Mautic\CoreBundle\Doctrine\Mapping\ClassMetadataBuilder; | |
trait DynamicContentEntityTrait | |
{ | |
/** | |
* Keep the default content set outside of $dynamicContent so that it can be used if $dynamicContent is emptied. | |
* | |
* @var array | |
*/ | |
public static $defaultDynamicContent = [ | |
[ | |
'tokenName' => 'Dynamic Content 1', | |
'content' => 'Default Dynamic Content', | |
'filters' => [ | |
[ | |
'content' => null, | |
'filters' => [ | |
[ | |
'glue' => null, | |
'field' => null, | |
'object' => null, | |
'type' => null, | |
'operator' => null, | |
'display' => null, | |
'filter' => null, | |
], | |
], | |
], | |
], | |
], | |
]; | |
/** | |
* @var array | |
*/ | |
private $dynamicContent = []; | |
protected static function addDynamicContentMetadata(ClassMetadataBuilder $builder) | |
{ | |
$builder->createField('dynamicContent', 'array') | |
->columnName('dynamic_content') | |
->nullable() | |
->build(); | |
} | |
/** | |
* @return array | |
*/ | |
public function getDynamicContent() | |
{ | |
return (empty($this->dynamicContent)) ? $this->getDefaultDynamicContent() : $this->dynamicContent; | |
} | |
/** | |
* @return $this | |
*/ | |
public function setDynamicContent($dynamicContent) | |
{ | |
if (empty($dynamicContent)) { | |
$dynamicContent = $this->getDefaultDynamicContent(); | |
} | |
$this->dynamicContent = $dynamicContent; | |
return $this; | |
} | |
/** | |
* @return array | |
*/ | |
public function getDefaultDynamicContent() | |
{ | |
return self::$defaultDynamicContent; | |
} | |
} | |