Source of file SignupDataExtension.php
Size: 3,087 Bytes - Last Modified: 2021-12-24T05:17:41+00:00
/var/www/docs.ssmods.com/process/src/src/Extensions/SignupDataExtension.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | <?php namespace Innoweb\MailChimpSignup\Extensions; use Psr\SimpleCache\CacheInterface; use SilverStripe\Core\Injector\Injector; use SilverStripe\Forms\CheckboxField; use SilverStripe\Forms\FieldGroup; use SilverStripe\Forms\FieldList; use SilverStripe\Forms\RequiredFields; use SilverStripe\Forms\TextField; use SilverStripe\Forms\TextareaField; use SilverStripe\ORM\DataExtension; class SignupDataExtension extends DataExtension { private static $db = [ 'APIKey' => 'Varchar(255)', 'ListID' => 'Varchar(255)', 'ContentSuccess' => 'Text', 'ContentError' => 'Text', 'RequireEmailConfirmation' => 'Boolean', ]; private static $defaults = [ 'ContentSuccess' => 'The subscription was successful. You will receive a confirmation email shortly.', 'ContentError' => 'Unfortunately an error occurred during your subscription. Please try again.', 'RequireEmailConfirmation' => true, ]; public function updateCMSFields(FieldList $fields) { $fields->removeByName([ 'APIKey', 'ListID', 'RequireEmailConfirmation', 'ContentSuccess', 'ContentError'] ); $fields->addFieldsToTab( 'Root.Mailchimp', [ TextField::create( 'APIKey', _t('Innoweb\\MailChimpSignup\\Extensions\\SignupDataExtension.APIKEY', 'API Key') ), TextField::create( 'ListID', _t('Innoweb\\MailChimpSignup\\Extensions\\SignupDataExtension.LISTID', 'Audience ID') ), FieldGroup::create( CheckboxField::create( 'RequireEmailConfirmation', _t('Innoweb\\MailChimpSignup\\Extensions\\SignupDataExtension.RequireEmailConfirmation', 'Require Email Confirmation') ) )->setTitle(_t('Innoweb\\MailChimpSignup\\Extensions\\SignupDataExtension.EmailConfirmation', 'Email Confirmation')), TextareaField::create( 'ContentSuccess', _t('Innoweb\\MailChimpSignup\\Extensions\\SignupDataExtension.CONTENTSUCCESS', 'Text for successful submission') ), TextareaField::create( 'ContentError', _t('Innoweb\\MailChimpSignup\\Extensions\\SignupDataExtension.CONTENTERROR', 'Text for unsuccessful submission') ) ] ); } public function getCMSValidator() { return RequiredFields::create('APIKey', 'ListID'); } public function onAfterWrite() { // clear form field cache $cache = Injector::inst()->get(CacheInterface::class . '.MailchimpFieldCache'); $cache->clear(); } public function onAfterPublish() { // clear form field cache $cache = Injector::inst()->get(CacheInterface::class . '.MailchimpFieldCache'); $cache->clear(); } } |