Example #1
0
 /**
  * Bind events
  */
 public function autoload()
 {
     if ($this->settings['enabled'] == '1' and !empty($this->settings['app_key'])) {
         // Inject JS only for non-ajax requests
         if (!$this->input->is_ajax_request()) {
             $this->RegisterConveadMainScript();
             CMSFactory\Events::create()->onProductPageLoad()->setListener('ViewProductEvent');
         }
         // Bind update cart events
         CMSFactory\Events::create()->onAddItemToCart()->setListener('UpdateCartEvent');
         CMSFactory\Events::create()->onRemoveFromCart()->setListener('UpdateCartEvent');
         CMSFactory\Events::create()->onSetQuantity()->setListener('UpdateCartEvent');
         CMSFactory\Events::create()->onEmptyCart()->setListener('UpdateCartEvent');
         // Bind purchase event
         CMSFactory\Events::create()->onShopMakeOrder()->setListener('PurchaseEvent');
     }
 }
Example #2
0
 public function index()
 {
     $success = FALSE;
     $this->load->library('Form_validation');
     $this->form_validation->set_error_delimiters(FALSE, FALSE);
     $model = new SCallbacks();
     if ($this->input->post()) {
         $this->form_validation->set_message('required', $model->validationMessage('required'));
         $this->form_validation->set_rules($model->rules());
         if ($this->form_validation->run($this) !== FALSE) {
             $theme = SCallbackThemesQuery::create()->orderByPosition()->findOne();
             if ($theme) {
                 $model->setThemeId($theme->getId());
             } else {
                 $model->setThemeId(0);
             }
             $model->fromArray($this->input->post());
             $model->setDate(time());
             $model->setStatusId(SCallbackStatusesQuery::create()->filterByIsDefault(TRUE)->findOne()->getId());
             $model->save();
             $info = array();
             $info['userName'] = $model->getName();
             $info['userPhone'] = $model->getPhone();
             $info['dateCreated'] = $model->getDate();
             $info['callbackStatus'] = $model->getSCallbackStatuses()->getText();
             if ($theme) {
                 $info['callbackTheme'] = $model->getSCallbackThemes()->getText();
             }
             $info['userComment'] = $model->getComment();
             $this->composeAndSendEmail($info);
             $locale = \MY_Controller::getCurrentLocale();
             $notif = $this->db->where('locale', $locale)->where('name', 'callback')->get('answer_notifications')->row();
             $success = $notif->message;
             /** Register event 'category:load' */
             CMSFactory\Events::create()->raiseEvent(['model' => $model], 'Shop:callback');
             echo json_encode(array('msg' => $success, 'status' => true, 'close' => true, 'refresh' => $this->input->post('refresh') ? $this->input->post('refresh') : FALSE, 'redirect' => $this->input->post('redirect') ? $this->input->post('redirect') : FALSE));
         } else {
             echo json_encode(array('msg' => validation_errors(), 'status' => false, 'validations' => array('Name' => form_error('Name'), 'Phone' => form_error('Phone'), 'Comment' => form_error('Comment'))));
         }
     } else {
         echo json_encode(array('msg' => "Ошибка, не достаточно данных", 'status' => false));
     }
 }