MailchimpCampaign.php in Mailchimp 2.x
File
modules/mailchimp_campaign/src/Entity/MailchimpCampaign.php
View source
<?php
namespace Drupal\mailchimp_campaign\Entity;
use Drupal\Core\Entity\ContentEntityBase;
use Drupal\Core\Entity\EntityTypeInterface;
use Drupal\Core\Field\BaseFieldDefinition;
use Drupal\Core\Session\AccountInterface;
use Drupal\mailchimp_campaign\MailchimpCampaignInterface;
class MailchimpCampaign extends ContentEntityBase implements MailchimpCampaignInterface {
public function getMcCampaignId() {
return $this
->get('mc_campaign_id')->value;
}
public function getTemplate() {
return unserialize($this
->get('template')->value);
}
public function getCreated() {
return $this
->get('created')->value;
}
public function setMcCampaignId($mc_campaign_id) {
$this
->set('mc_campaign_id', $mc_campaign_id);
}
public function setTemplate($template) {
$this
->set('template', serialize($template));
}
public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
$fields = [];
$fields['mc_campaign_id'] = BaseFieldDefinition::create('string')
->setLabel(t('Mailchimp Campaign ID'))
->setDescription(t('Mailchimp campaign ID.'))
->setSetting('max_length', 16);
$fields['uuid'] = BaseFieldDefinition::create('uuid')
->setLabel(t('UUID'))
->setDescription(t('The UUID of the campaign.'))
->setReadOnly(TRUE);
$fields['template'] = BaseFieldDefinition::create('string_long')
->setLabel(t('Template'))
->setDescription(t('Campaign body template.'))
->setSetting('case_sensitive', TRUE)
->setDisplayOptions('view', [
'label' => 'above',
'type' => 'string_long',
'weight' => 0,
]);
$fields['created'] = BaseFieldDefinition::create('created')
->setLabel(t('Created'))
->setDescription(t('The Unix timestamp when the campaign was created.'));
$fields['changed'] = BaseFieldDefinition::create('changed')
->setLabel(t('Changed'))
->setDescription(t('The Unix timestamp when the campaign was most recently saved.'));
return $fields;
}
public function access($operation, AccountInterface $account = NULL, $return_as_object = FALSE) {
if ($operation == 'create') {
return $this
->entityTypeManager()
->getAccessControlHandler($this->entityTypeId)
->createAccess($this
->bundle(), $account, [], $return_as_object);
}
return $this
->entityTypeManager()
->getAccessControlHandler($this->entityTypeId)
->access($this, $operation, $account, $return_as_object);
}
public function label() {
if (!isset($this->mc_data) || !$this->mc_data || !isset($this->mc_data->settings) || !$this->mc_data->settings) {
return "";
}
return $this->mc_data->settings->title;
}
public function isInitialized() {
return isset($this->mc_data);
}
}