Source of file CampaignMonitorGroupDOD.php
Size: 2,128 Bytes - Last Modified: 2021-12-23T10:39:01+00:00
/var/www/docs.ssmods.com/process/src/src/Decorators/CampaignMonitorGroupDOD.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | <?php namespace Sunnysideup\CampaignMonitor\Decorators; use SilverStripe\Forms\FieldList; use SilverStripe\Forms\ReadonlyField; use SilverStripe\ORM\DataExtension; use SilverStripe\ORM\FieldType\DBField; use SilverStripe\Security\Member; use Sunnysideup\CampaignMonitor\CampaignMonitorSignupPage; /** * @author nicolaas [at] sunnysideup.co.nz */ class CampaignMonitorGroupDOD extends DataExtension { /** * Is this a group for newsletter signing up. * * @return null|CampaignMonitorSignupPage */ public function CampaignMonitorSubscriberGroupPage() { // @var CampaignMonitorSignupPage return CampaignMonitorSignupPage::get()->filter(['GroupID' => $this->getOwner()->ID])->first(); } /** * Is this a group for newsletter signing up. */ public function IsCampaignMonitorSubscriberGroup(): bool { return (bool) $this->CampaignMonitorSubscriberGroupPage(); } public function updateCMSFields(FieldList $fields) { if ($this->IsCampaignMonitorSubscriberGroup()) { /** @var CampaignMonitorSignupPage $page */ $page = $this->CampaignMonitorSubscriberGroupPage(); if ($page instanceof CampaignMonitorSignupPage) { $value = DBField::create_field( 'HTMLText', 'Yes, <a href="' . $page->CMSEditLink() . '"> See ' . $page->Title . ' Page </a>' ); } } else { $value = 'no'; } $fields->addFieldsToTab( 'Root.Newsletter', [ ReadonlyField::create( 'IsCampaignMonitorSubscriberGroupNice', 'Is newsletter group', $value ), ] ); } /** * @param Member $member (optional) * * @return mixed */ public function canEdit($member = null) { if ($this->IsCampaignMonitorSubscriberGroup()) { return false; } return null; } } |