/** * If any of the extended fields are empty then set them to the label for the field. */ public function onBeforeWrite() { parent::onBeforeWrite(); $dbFields = CrackerjackModule::get_config_setting(__CLASS__, 'db', null, Config::UNINHERITED); foreach ($dbFields as $fieldName => $fieldSpec) { if (!$this->{$fieldName}) { $this->{$fieldName} = self::get_field_label($fieldName); } } }
/** * If no ProfiledPage exists and no Page exists called 'Profile' then creates one * titled 'Profile' and writes it to stage. * */ public function requireDefaultRecords() { if ($this->config()->get('auto_build_models')) { if (!ProfiledPage::get()->count()) { if (!SiteTree::get_by_link('/profile')) { /** @var ProfiledPage $page */ $page = ProfiledPage::create(array('Title' => CrackerjackModule::get_localised_config_string('ProfiledBuild', 'ProfiledPageTitle', 'Title'))); $page->writeToStage('Stage'); DB::alteration_message("Added ProfiledPage 'Page' at '/profile'", 'changed'); } } } }
public function verify(SS_HTTPRequest $request) { $token = $request->param('Token'); /** @var CryptofierImplementation $crypto */ $crypto = Injector::inst()->get('CryptofierService'); if ($email = $crypto->decrypt_friendly($token)) { /** @var Customer $member */ if ($member = Customer::get()->filter('Email', $email)->first()) { $member->{ProfiledMemberExtension::VerificationDateName} = date('Y-m-d H:i:s'); $member->write(); ProfiledMemberForm::set_form_message(ProfiledMemberForm::get_form_message('VerificationOK'), 'Your account has been activated', CrackerjackForm::Good); return $this()->redirect(CrackerjackModule::get_config_setting(null, 'post_verify_url')); } } ProfiledMemberForm::set_form_message('VerificationFail', 'bad'); return $this()->redirectBack(); }
public function configureForAction($action, $who, Member $member, array $templateData = []) { $action = ucfirst($action); $who = ucfirst($who); $this->setSubject(CrackerjackModule::get_site_localised_config_setting(__CLASS__, $who . $action . 'Subject', $who . $action, $member->toMap())); if ($who == 'Admin') { $to = $this->config()->get('admin_email_address') ?: Security::findAnAdministrator()->Email; $from = $this->config()->get('admin_sender_email_address') ?: $member->Email; } else { $to = $member->Email; $from = $this->config()->get('member_sender_email_address') ?: Security::findAnAdministrator()->Email; } $this->setTo($to); $this->setFrom($from); $this->setTemplate("Profiled{$who}_{$action}"); $this->populateTemplate($templateData); }
/** * Add phone number fields as defined in StreakAddresses_PhoneNumberExtension to OrderForm * @param FieldList $fields */ public function updateFields(FieldList $fields) { $compositeFields = array('Shipping', 'Billing'); list($phoneFields, $labels) = CrackerjackModule::get_config_settings('StreakAddresses_PhoneNumbersExtension', array('db', 'field_labels')); list($insertAfter, $insertBefore, $required) = CrackerjackModule::get_config_settings(__CLASS__, array('streak_addresses_insert_after', 'streak_addresses_insert_before', 'streak_addresses_required_fields')); foreach ($compositeFields as $prefix) { foreach ($phoneFields as $fieldName => $schema) { if ($compositeField = $fields->fieldByName($prefix . 'Address')) { /** FormField */ if ($insertAfter) { $field = $compositeField->insertAfter(new TextField($prefix . $fieldName, isset($labels[$fieldName]) ? $labels[$fieldName] : $fieldName), $prefix . $insertAfter); } else { $field = $compositeField->insertBefore(new TextField($prefix . $fieldName, isset($labels[$fieldName]) ? $labels[$fieldName] : $fieldName), $prefix . $insertBefore); } $field->addExtraClass('phone-number'); if (isset($required[$fieldName])) { $field->setCustomValidationMessage(_t('CheckoutPage.PLEASE_ENTER_PHONE', "Please enter a phone number.")); } } } } }
public function updateCMSFields(FieldList $fields) { $fields->addFieldToTab(CrackerjackModule::get_config_setting(__CLASS__, 'tab_name'), $uploadField = new UploadField(self::FieldName, $this->fieldLabel(self::FieldName, $this()->i18n_singular_name() . ' images'))); $uploadField->setAllowedFileCategories(array('image')); }