public function getPasswordField($confirmed = true)
 {
     if ($confirmed) {
         return ConfirmedPasswordField::create('Password', _t('CheckoutField.PASSWORD', 'Password'));
     }
     return PasswordField::create('Password', _t('CheckoutField.PASSWORD', 'Password'));
 }
 public function getPasswordField()
 {
     if ($this->confirmed) {
         //relies on fix: https://github.com/silverstripe/silverstripe-framework/pull/2757
         return ConfirmedPasswordField::create('Password', _t('CheckoutField.PASSWORD', 'Password'))->setCanBeEmpty(!Checkout::membership_required());
     }
     return PasswordField::create('Password', _t('CheckoutField.PASSWORD', 'Password'));
 }
Пример #3
0
 public function PersonalRegisterForm()
 {
     $fields = FieldList::create(array(EmailField::create('Email', '电子邮件'), ConfirmedPasswordField::create('Password', '密码'), TextField::create('FullName', '姓名'), TextField::create('IDCard', '身份证号码'), TextField::create('Phone', '联系电话'), DropdownField::create('OrganizationID', '所属单位名称', Organization::get()->map('ID', 'company_name'))->setEmptyString('请选择')));
     $actions = FieldList::create(array(FormAction::create('doRegisterPersonal', '提交')));
     $required = RequiredFields::create(array('Email', 'Password', 'FullName', 'IDCard', 'Phone', 'OrganizationID'));
     $form = new Form($this, __FUNCTION__, $fields, $actions, $required);
     return $form;
 }
 public function __construct($controller, $name)
 {
     /* Fields */
     $fields = FieldList::create(TextField::create("FirstName", "First Name"), TextField::create("Surname", "Surname"), TextField::create("CompanyName", "Company Name (optional)"), EmailField::create("Email", "Email Address"), ConfirmedPasswordField::create("Password", "Password"), TextField::create("LandlineNumber", "Landline Number"), TextField::create("MobileNumber", "Mobile Number"));
     /* Actions */
     $actions = FieldList::create(CompositeField::create(FormAction::create('createaccount', 'Create Account')));
     /* Required Fields */
     $required = new RequiredFields(array("FirstName", "Surname", "Email", "Password"));
     /*
      * Now we create the actual form with our fields and actions defined 
      * within this class.
      */
     return parent::__construct($controller, $name, $fields, $actions, $required);
 }
 /**
  * EditProfileForm constructor
  *
  * @param Controller $controller
  * @param String $name
  * @param array $arguments
  */
 public function __construct($controller, $name, $arguments = array())
 {
     /** -----------------------------------------
      * Fields
      * ----------------------------------------*/
     /** @var TextField $firstName */
     $firstName = TextField::create('FirstName');
     $firstName->setAttribute('placeholder', 'Enter your first name')->setAttribute('data-parsley-required-message', 'Please enter your <strong>First Name</strong>')->setCustomValidationMessage('Please enter your <strong>First Name</strong>');
     /** @var TextField $surname */
     $surname = TextField::create('Surname');
     $surname->setAttribute('placeholder', 'Enter your surname')->setAttribute('data-parsley-required-message', 'Please enter your <strong>Surname</strong>')->setCustomValidationMessage('Please enter your <strong>Surname</strong>');
     /** @var EmailField $email */
     $email = EmailField::create('Email');
     $email->setAttribute('placeholder', 'Enter your email address')->setAttribute('data-parsley-required-message', 'Please enter your <strong>Email</strong>')->setCustomValidationMessage('Please enter your <strong>Email</strong>');
     /** @var ConfirmedPasswordField $confirmPassword */
     $confirmPassword = ConfirmedPasswordField::create('Password', 'New Password');
     $confirmPassword->canBeEmpty = true;
     $confirmPassword->setAttribute('placeholder', 'Enter your password');
     /** @var LiteralField $passwordToggle */
     $passwordToggle = LiteralField::create('', '<p><button class="btn--default" type="button" data-toggle="collapse" data-target="#togglePassword" aria-expanded="false" aria-controls="togglePassword">Change Password</button></p><div class="collapse" id="togglePassword">');
     $passwordToggleClose = LiteralField::create('', '</div>');
     $fields = FieldList::create($firstName, $surname, $email, $passwordToggle, $confirmPassword, $passwordToggleClose);
     /** -----------------------------------------
      * Actions
      * ----------------------------------------*/
     $actions = FieldList::create(FormAction::create('Save')->setTitle('Update Profile')->addExtraClass('btn--primary'));
     /** -----------------------------------------
      * Validation
      * ----------------------------------------*/
     $required = RequiredFields::create('FirstName', 'Surname', 'Email');
     /** @var Form $form */
     $form = Form::create($this, $name, $fields, $actions, $required);
     /**
      * Populate the form with the current members data
      */
     $Member = Member::currentUser();
     $form->loadDataFrom($Member->data());
     parent::__construct($controller, $name, $fields, $actions, $required);
     $this->setAttribute('data-parsley-validate', true);
     $this->addExtraClass('form form--profile');
 }
 /**
  * getCMSFields
  * Alter the FieldList provided by the Member class to 
  * the requirements of an online store.
  * 
  * @return FieldList
  */
 public function getCMSFields()
 {
     Requirements::css('torindul-silverstripe-shop/css/LeftAndMain.css');
     $fields = parent::getCMSFields();
     /** REMOVE SCAFFOLDED FIELDS TO ADD LATER
      * -- Locale is removed. As these users will not use the CMS itself so the default values will suffice for now.
      * -- DirectGroups is removed. Customer group membership is handled by onAfterWrite().
      * -- DateFormat and TimeFormat are removed. The default will be fine for nearly all installations.
      * -- Those fields not mentioned are re-added later.
      */
     $fields->removeFieldsFromTab("Root.Main", array("FirstName", "Surname", "CompanyName", "Email", "Password", "StoreCredit", "LandlineNumber", "MobileNumber", "DirectGroups", "Locale", "FailedLoginCount", "LastVisited", "TimeFormat", "DateFormat"));
     //If the customer record has been created, display the ID of the record as the account number.
     if ($this->exists()) {
         $fields->addFieldsToTab("Root.Main", array(HeaderField::create("Account Details"), CompositeField::create(ReadonlyField::create("AccountNo", "Account Number", $this->ID), ReadonlyField::create("LastVisited", "Last Signed In", $this->LastVisited), NumericField::create("StoreCredit", "StoreCredit")->setRightTitle("The amount of credit this customer can spend on orders in your store."))));
     }
     //Add Customer Details Fields
     $fields->addFieldsToTab("Root.Main", array(HeaderField::create("Customer Details"), CompositeField::create(TextField::create("FirstName", "First Name"), TextField::create("Surname", "Surname"), TextField::create("CompanyName", "Company Name"), TextField::create("LandlineNumber", "Landline Number"), TextField::create("MobileNumber", "Mobile Number")), HeaderField::create("Login Details"), CompositeField::create(EmailField::create("Email", "Email Address"), NumericField::create("FailedLoginCount", "Failed Login Count")->setRightTitle("The total number of failed login attempts this customer has made. Set to 0 to unblock their account."))));
     //Add Confirmed Password Field befoe the FailedLoginCount field
     $password = ConfirmedPasswordField::create('Password', null, null, null, true)->setCanBeEmpty(true);
     if (!$this->ID) {
         $password->showOnClick = false;
     }
     $fields->addFieldToTab("Root.Main", $password, "FailedLoginCount");
     //Customer Address Book Tab
     $fields->addFieldsToTab("Root.AddressBook", array(HeaderField::create($this->exists() ? $this->FirstName . " " . $this->Surname . "'s Address Book" : "Customer Address Book"), CompositeField::create(LiteralField::create($title = "CustomFieldsDescription", "<div class=\"literal-field literal-field-noborder\">\n\t\t\t\t\t\tThe address book is used to store multiple customer addresses for shipping and billing purposes.\n\t\t\t\t\t</div>"), $this->exists() ? GridField::create("Customer_AddressBook", "", $this->Addresses(), GridFieldConfig_RecordEditor::create()) : LiteralField::create($title = "AddressBookNotice", "<div class=\"literal-field field\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<div class=\"message notice\">\n\t\t\t\t\t\t\t<i class=\"fa fa-info-circle\"></i>\n\t\t\t\t\t\t\tThis customer doesn't exist in the system yet. To be able to see addresses for this customer you must first \n\t\t\t\t\t\t\tclick create.\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\n\t\t\t\t\t</div>"))));
     //Customer Orders Tab
     $fields->addFieldsToTab("Root.Orders", array(HeaderField::create($this->exists() ? $this->FirstName . " " . $this->Surname . "'s Orders" : "Customer Orders"), CompositeField::create(LiteralField::create($title = "CustomFieldsDescription", "<div class=\"literal-field literal-field-noborder\">\n\t\t\t\t\t\tIf this customer has placed orders with your store you can see them below.\n\t\t\t\t\t</div>"), $this->exists() ? GridField::create("Customers_Orders", "", $this->Orders(), GridFieldConfig_RecordEditor::create()) : LiteralField::create($title = "OrdersNotice", "<div class=\"literal-field field\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<div class=\"message notice\">\n\t\t\t\t\t\t\t<i class=\"fa fa-info-circle\"></i>\n\t\t\t\t\t\t\tThis customer doesn't exist in the system yet. To be able to see orders for this customer you must first \n\t\t\t\t\t\t\tclick create.\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\n\t\t\t\t\t</div>"))));
     //Update Store Credit Field
     $storecredit = NumericField::create("StoreCredit", "Store Credit (" . Product::getDefaultCurrency() . ")");
     $fields->replaceField("StoreCredit", $storecredit);
     //Remove Automatically Generated Address GridField
     $fields->removeFieldFromTab("Root", "Addresses");
     $fields->removeFieldFromTab("Root", "Permissions");
     $fields->removeFieldFromTab("Root.Orders", "Orders");
     return $fields;
 }
Пример #7
0
 /**
  * Builds "Change / Create Password" field for this member
  *
  * @return ConfirmedPasswordField
  */
 public function getMemberPasswordField()
 {
     $editingPassword = $this->isInDB();
     $label = $editingPassword ? _t('Member.EDIT_PASSWORD', 'New Password') : $this->fieldLabel('Password');
     /** @var ConfirmedPasswordField $password */
     $password = ConfirmedPasswordField::create('Password', $label, null, null, $editingPassword);
     // If editing own password, require confirmation of existing
     if ($editingPassword && $this->ID == Member::currentUserID()) {
         $password->setRequireExistingPassword(true);
     }
     $password->setCanBeEmpty(true);
     $this->extend('updateMemberPasswordField', $password);
     return $password;
 }
 /**
  * Registration form
  *
  * @return Form
  */
 public function RegisterForm()
 {
     // If back URL set, push to session
     if (isset($_REQUEST['BackURL'])) {
         Session::set('BackURL', $_REQUEST['BackURL']);
     }
     // Setup form fields
     $fields = FieldList::create(TextField::create("FirstName"), TextField::create("Surname"), EmailField::create("Email"), ConfirmedPasswordField::create("Password"));
     // Setup form actions
     $actions = new FieldList(FormAction::create("doRegister", "Register")->addExtraClass("btn")->addExtraClass("btn-green"));
     // Setup required fields
     $required = new RequiredFields(array("FirstName", "Surname", "Email", "Password"));
     $form = Form::create($this, "RegisterForm", $fields, $actions, $required)->addExtraClass("forms")->addExtraClass("forms-columnar");
     $this->extend("updateRegisterForm", $form);
     $session_data = Session::get("Form.{$form->FormName()}.data");
     if ($session_data && is_array($session_data)) {
         $form->loadDataFrom($session_data);
         Session::clear("Form.{$form->FormName()}.data");
     }
     return $form;
 }
Пример #9
0
 /**
  * Creates the registration form
  *
  * @return  BootstrapForm
  */
 public function RegistrationForm()
 {
     $speaker_registration_token = Session::get(SpeakerRegistrationRequest::ConfirmationTokenParamName);
     $fields = FieldList::create($first_name = TextField::create('FirstName', 'Your First Name'), $last_name = TextField::create('Surname', 'Your Last Name'), $email = EmailField::create('Email', 'Your email address'), $password = ConfirmedPasswordField::create('Password', 'Password'));
     $password->setAttribute('required', 'true');
     //if we have in session a registration token, autopopulate values
     if (!empty($speaker_registration_token)) {
         $request = $this->speaker_registration_request_repository->getByConfirmationToken($speaker_registration_token);
         if (is_null($request) || $request->alreadyConfirmed()) {
             return $this->httpError(404, 'speaker registration request not found!');
         }
         $first_name->setValue($request->proposedSpeakerFirstName());
         $last_name->setValue($request->proposedSpeakerLastName());
         $email->setValue($request->proposedSpeakerEmail());
     }
     $form = BootstrapForm::create($this, 'RegistrationForm', $fields, FieldList::create(FormAction::create('doRegister', 'Register now')), RequiredFields::create('FirstName', 'Surname', 'Email'));
     $data = Session::get("FormInfo.{$form->getName()}.data");
     return $form->loadDataFrom($data ?: array());
 }
Пример #10
0
 public function SignUp()
 {
     return Form::create($this, 'SignUp', FieldList::create(TextField::create('FirstName'), TextField::create('Surname'), EmailField::create('Email'), ConfirmedPasswordField::create('Password', 'Password'), CheckboxField::create('Terms', 'I accept the <a href="/terms-and-conditions">terms and conditions</a>')), FieldList::create(FormAction::create('Register')->setTitle('Register')), new RequiredFields(array('FirstName', 'Surename', 'Password', 'Email', 'Terms')));
 }