/**
  * 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);
 }
Пример #5
0
 /**
  * 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."));
                 }
             }
         }
     }
 }
Пример #6
0
 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'));
 }