Esempio n. 1
0
 /**
  * (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;
 }