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