コード例 #1
0
 function __construct($controller, $name)
 {
     $member = Member::currentUser();
     $requiredFields = null;
     if ($member && $member->exists()) {
         $fields = $member->getEcommerceFields(true);
         $fields->push(new HeaderField('LoginDetails', _t('Account.LOGINDETAILS', 'Login Details'), 3));
         $logoutLink = ShoppingCart_Controller::clear_cart_and_logout_link();
         $fields->push(new LiteralField('LogoutNote', "<p class=\"message warning\">" . _t("Account.LOGGEDIN", "You are currently logged in as ") . $member->FirstName . ' ' . $member->Surname . '. <a href="' . $logoutLink . '">' . _t('Account.LOGOUT', 'Log out now?') . "</a></p>"));
         // PASSWORD KEPT CHANGING - SO I REMOVED IT FOR NOW - Nicolaas
         $passwordField = new ConfirmedPasswordField('Password', _t('Account.PASSWORD', 'Password'), "", null, true);
         $fields->push($passwordField);
         $requiredFields = new ShopAccountForm_Validator($member->getEcommerceRequiredFields());
         $actions = new FieldSet(new FormAction('submit', _t('Account.SAVE', 'Save Changes')));
         if ($order = ShoppingCart::current_order()) {
             if ($order->Items()) {
                 $actions->push(new FormAction('proceed', _t('Account.SAVEANDPROCEED', 'Save changes and proceed to checkout')));
             }
         }
     } else {
         $member = new Member();
         $fields = new FieldSet();
         $fields->push(new HeaderField('SignUp', _t('ShopAccountForm.CREATEACCOUNT', 'Create Account')));
         $fields->push(new LiteralField('MemberInfo', '<p class="message good">' . _t('OrderForm.MEMBERINFO', 'If you are already have an account then please') . " <a href=\"Security/login?BackURL=" . $controller->Link() . "\">" . _t('OrderForm.LOGIN', 'log in') . '</a>.</p>'));
         $memberFields = $member->getEcommerceFields(true);
         if ($memberFields) {
             foreach ($memberFields as $memberField) {
                 $fields->push($memberField);
             }
         }
         // PASSWORD KEPT CHANGING - SO I REMOVED IT FOR NOW - Nicolaas
         $passwordField = new PasswordField('Password', _t('Account.PASSWORD', 'Password'));
         $fields->push($passwordField);
         $requiredFields = new ShopAccountForm_Validator($member->getEcommerceRequiredFields());
         $actions = new FieldSet(new FormAction('creatememberandaddtoorder', _t('Account.SAVE', 'Create Account')));
     }
     parent::__construct($controller, $name, $fields, $actions, $requiredFields);
     //extensions need to be set after __construct
     if ($this->extend('updateFields', $fields) !== null) {
         $this->setFields($fields);
     }
     if ($this->extend('updateActions', $actions) !== null) {
         $this->setActions($actions);
     }
     if ($this->extend('updateValidator', $requiredFields) !== null) {
         $this->setValidator($requiredFields);
     }
     if ($member && $member->Password) {
         $this->loadDataFrom($member);
         if (!isset($_REQUEST["Password"])) {
             $this->fields()->fieldByName("Password")->SetValue("");
         }
         $this->fields()->fieldByName("Password")->setCanBeEmpty(true);
     }
     $this->extend('updateShopAccountForm', $this);
 }
コード例 #2
0
 /**
  *
  * @param Controller $controller
  * @param String $name, Name of the form
  */
 function __construct($controller, $name)
 {
     $member = Member::currentUser();
     $requiredFields = null;
     if ($member && $member->exists()) {
         $fields = $member->getEcommerceFields(true);
         $clearCartAndLogoutLink = ShoppingCart_Controller::clear_cart_and_logout_link();
         $loginMessage = "<span class=\"customerName\">" . Convert::raw2xml($member->FirstName) . ' ' . Convert::raw2xml($member->Surname) . '</span>, ' . '<a href="' . $clearCartAndLogoutLink . '">' . _t('Account.LOGOUT', 'Log out now?') . '</a>';
         if ($loginMessage) {
             $loginField = new ReadonlyField('LoggedInAsNote', _t("Account.LOGGEDIN", "You are currently logged in as "), $loginMessage);
             $loginField->dontEscape = true;
             $fields->push($loginField);
         }
         $actions = new FieldList(new FormAction('submit', _t('Account.SAVE', 'Save Changes')));
         if ($order = ShoppingCart::current_order()) {
             if ($order->getTotalItems()) {
                 $actions->push(new FormAction('proceed', _t('Account.SAVE_AND_PROCEED', 'Save changes and proceed to checkout')));
             }
         }
     } else {
         if (!$member) {
             $member = new Member();
         }
         $fields = new FieldList();
         $urlParams = $controller->getURLParams();
         $backURLLink = Director::baseURL();
         if ($urlParams) {
             foreach ($urlParams as $urlParam) {
                 if ($urlParam) {
                     $backURLLink = Controller::join_links($backURLLink, $urlParam);
                 }
             }
         }
         $backURLLink = urlencode($backURLLink);
         $fields->push(new LiteralField('MemberInfo', '<p class="message good">' . _t('OrderForm.MEMBERINFO', 'If you already have an account then please') . " <a href=\"Security/login?BackURL=" . $backURLLink . "\">" . _t('OrderForm.LOGIN', 'log in') . '</a>.</p>'));
         $memberFields = $member->getEcommerceFields();
         if ($memberFields) {
             foreach ($memberFields as $memberField) {
                 $fields->push($memberField);
             }
         }
         $passwordField = new PasswordField('PasswordCheck1', _t('Account.PASSWORD', 'Password'));
         $passwordFieldCheck = new PasswordField('PasswordCheck2', _t('Account.PASSWORDCHECK', 'Password (repeat)'));
         $fields->push($passwordField);
         $fields->push($passwordFieldCheck);
         $actions = new FieldList(new FormAction('creatememberandaddtoorder', _t('Account.SAVE', 'Create Account')));
     }
     $requiredFields = ShopAccountForm_Validator::create($member->getEcommerceRequiredFields());
     parent::__construct($controller, $name, $fields, $actions, $requiredFields);
     $this->setAttribute("autocomplete", "off");
     //extensions need to be set after __construct
     //extension point
     $this->extend('updateFields', $fields);
     $this->setFields($fields);
     $this->extend('updateActions', $actions);
     $this->setActions($actions);
     $this->extend('updateValidator', $requiredFields);
     $this->setValidator($requiredFields);
     if ($member) {
         $this->loadDataFrom($member);
     }
     $oldData = Session::get("FormInfo.{$this->FormName()}.data");
     if ($oldData && (is_array($oldData) || is_object($oldData))) {
         $this->loadDataFrom($oldData);
     }
     $this->extend('updateShopAccountForm', $this);
 }