/** * (non-PHPdoc) * @see tienda/site/TiendaController#validate() */ function validate() { $response = array(); $response['msg'] = ''; $response['error'] = ''; Tienda::load('TiendaHelperBase', 'helpers._base'); $helper = TiendaHelperBase::getInstance(); // get elements from post $elements = json_decode(preg_replace('/[\\n\\r]+/', '\\n', JRequest::getVar('elements', '', 'post', 'string'))); // 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_TIENDA_ERROR_WHILE_VALIDATING_THE_PARAMETERS')); echo json_encode($response); return; } // convert elements to array that can be binded Tienda::load('TiendaHelperBase', 'helpers._base'); $helper = TiendaHelperBase::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_TIENDA_PLEASE_INSERT_A_CORRECT_EMAIL_ADDRESS')); $response['error'] = '1'; echo json_encode($response); return; } Tienda::load('TiendaHelperUser', 'helpers.user'); if (TiendaHelperUser::emailExists($submitted_values['email_address'])) { $response['msg'] = $helper->generateMessage(JText::_('COM_TIENDA_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_TIENDA_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_TIENDA_PLEASE_INSERT_A_CORRECT_EMAIL_ADDRESS')); $response['error'] = '1'; echo json_encode($response); return; } Tienda::load('TiendaHelperUser', 'helpers.user'); if (TiendaHelperUser::emailExists($submitted_values['email_address'])) { $response['msg'] = $helper->generateMessage(JText::_('COM_TIENDA_THIS_EMAIL_ADDRESS_IS_ALREADY_REGISTERED=')); $response['error'] = '1'; echo json_encode($response); return; } if (TiendaHelperUser::usernameExists($submitted_values['username'])) { $response['error'] = '1'; $response['msg'] .= $helper->generateMessage(JText::_('COM_TIENDA_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_TIENDA_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_TIENDA_INVALID_STEP_IN_CHECKOUT_PROCESS')); echo json_encode($response); break; } return; }