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); }
/** * * @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); }