public function validate($values, $options = array()) { // fail if user hasn't checked terms & condition if ($this->defines->get('require_terms', '0') && empty($values["terms-conditions"])) { $this->setError(JText::_('COM_CITRUSCART_PLEASE_CHECK_THE_TERMS_CONDITIONS')); } // fail if no user->id and email address fails validation jimport('joomla.mail.helper'); if ($values["user_id"] < 1 && !JMailHelper::isEmailAddress($values['email_address'])) { $this->setError(JText::_('COM_CITRUSCART_PLEASE_ENTER_CORRECT_EMAIL')); } // fail if registering new user but one of passwords is empty if ($values["user_id"] < 1 && $values["checkout_method"] == 'register' && (empty($values["register-new-password"]) || empty($values["register-new-password2"]))) { $this->setError(JText::_('COM_CITRUSCART_PASSWORD_INVALID')); } // fail if registering new user but passwords don't match if ($values["user_id"] < 1 && $values["checkout_method"] == 'register' && $values["register-new-password"] != $values["register-new-password2"]) { $this->setError(JText::_('COM_CITRUSCART_PASSWORDS_DO_NOT_MATCH')); } // fail if registering new user but account exists for email address provided $userHelper = new CitruscartHelperUser(); if ($values["user_id"] < 1 && $values["checkout_method"] == 'register' && $userHelper->emailExists($values['email_address'])) { $this->setError(JText::_('COM_CITRUSCART_EMAIL_ALREADY_EXIST')); } // fail if user logged in and guest/register method selected if ($values["user_id"] > 0 && ($values["checkout_method"] == 'register' || $values["checkout_method"] == 'guest')) { $this->setError(JText::_('COM_CITRUSCART_CANNOT_REGISTER_OR_GUEST_CHECKOUT_WHEN_LOGGED_IN')); } // fail if password doesn't validate and validation is enabled if ($this->defines->get('password_php_validate', '0')) { Citruscart::load('CitruscartHelperUser', 'helpers.user'); $userHelper = new CitruscartHelperUser(); $validate_pass = $userHelper->validatePassword($values['register-new-password']); if (!$validate_pass[0]) { foreach ($validate_pass[1] as $error) { $this->setError($error); } } } return $this->check(); }
/** * (non-PHPdoc) * see citruscart/site/CitruscartController#validate() */ function validate() { $input = JFactory::getApplication()->input; $response = array(); $response['msg'] = ''; $response['error'] = ''; Citruscart::load('CitruscartHelperBase', 'helpers._base'); $helper = CitruscartHelperBase::getInstance(); // get elements from post $elements = json_decode(preg_replace('/[\\n\\r]+/', '\\n', $input->get('elements'))); // Test if elements are empty // Return proper message to user if (empty($elements)) { // do form validation // if it fails check, return message $response['error'] = '1'; $response['msg'] = $helper->generateMessage(JText::_('COM_CITRUSCART_ERROR_WHILE_VALIDATING_THE_PARAMETERS')); echo json_encode($response); return; } // convert elements to array that can be binded Citruscart::load('CitruscartHelperBase', 'helpers._base'); $helper = CitruscartHelperBase::getInstance(); $submitted_values = $helper->elementsToArray($elements); $step = !empty($submitted_values['step']) ? strtolower($submitted_values['step']) : ''; switch ($step) { case "selectshipping": // Validate the email address if it is a guest checkout! if ($this->defines->get('guest_checkout_enabled', '1') && !empty($submitted_values['guest'])) { jimport('joomla.mail.helper'); if (!JMailHelper::isEmailAddress($submitted_values['email_address'])) { $response['msg'] = $helper->generateMessage(JText::_('COM_CITRUSCART_PLEASE_INSERT_A_CORRECT_EMAIL_ADDRESS')); $response['error'] = '1'; echo json_encode($response); return; } Citruscart::load('CitruscartHelperUser', 'helpers.user'); if (CitruscartHelperUser::emailExists($submitted_values['email_address'])) { $response['msg'] = $helper->generateMessage(JText::_('COM_CITRUSCART_THIS_EMAIL_ADDRESS_IS_ALREADY_REGISTERED')); $response['error'] = '1'; echo json_encode($response); return; } } // checking for the registartion if (!empty($submitted_values['register'])) { // verify that fields are present if (empty($submitted_values['email_address']) || empty($submitted_values['name']) || empty($submitted_values['username']) || empty($submitted_values['password']) || empty($submitted_values['password2'])) { $response['error'] = '1'; $response['msg'] .= $helper->generateMessage(JText::_('COM_CITRUSCART_ALL_FIELDS_OF_REGISTRATION_SECTIONS_ARE_MANDATORY')); echo json_encode($response); return; } jimport('joomla.mail.helper'); if (!JMailHelper::isEmailAddress($submitted_values['email_address'])) { $response['msg'] = $helper->generateMessage(JText::_('COM_CITRUSCART_PLEASE_INSERT_A_CORRECT_EMAIL_ADDRESS')); $response['error'] = '1'; echo json_encode($response); return; } Citruscart::load('CitruscartHelperUser', 'helpers.user'); if (CitruscartHelperUser::emailExists($submitted_values['email_address'])) { $response['msg'] = $helper->generateMessage(JText::_('COM_CITRUSCART_THIS_EMAIL_ADDRESS_IS_ALREADY_REGISTERED=')); $response['error'] = '1'; echo json_encode($response); return; } if (CitruscartHelperUser::usernameExists($submitted_values['username'])) { $response['error'] = '1'; $response['msg'] .= $helper->generateMessage(JText::_('COM_CITRUSCART_USER_NAME_ALREADY_EXISTS')); echo json_encode($response); return; // TODO user already exists } if (strcmp($submitted_values['password'], $submitted_values['password2'])) { $response['error'] = '1'; $response['msg'] .= $helper->generateMessage(JText::_('COM_CITRUSCART_PASSWORDS_ARE_NOT_MATCHING')); echo json_encode($response); return; // TODO user already exists } } // Check if there are errors in the Shipping area. If yes, return without going on if (!$this->validateSelectShipping($submitted_values)) { return; } break; case "selectpayment": $this->validateSelectPayment($submitted_values); break; default: $response['error'] = '1'; $response['msg'] = $helper->generateMessage(JText::_('COM_CITRUSCART_INVALID_STEP_IN_CHECKOUT_PROCESS')); echo json_encode($response); break; } return; }