public function save_new_widget($data, $id_user)
 {
     $this->db->trans_start();
     $array1 = array('site_url' => $data['site_url'], 'id_user' => $id_user, 'code_widget' => create_random_code(32), 'img_marker' => $data['new_img_marker'], 'img_map' => $data['new_img_map']);
     $this->db->insert('widgets', $array1);
     $id_widget = $this->db->insert_id();
     if ($data['html_priv_transport'] != '') {
         $array2 = array('id_widget' => $id_widget, 'html_priv_transport' => htmlspecialchars($data['html_priv_transport']));
         $this->db->insert('priv_transport', $array2);
     }
     if ($data['html_pub_transport'] != '') {
         $array3 = array('id_widget' => $id_widget, 'html_pub_transport' => htmlspecialchars($data['html_pub_transport']));
         $this->db->insert('pub_transport', $array3);
     }
     if ($data['html_taxi'] != '') {
         $array4 = array('id_widget' => $id_widget, 'html_taxi' => htmlspecialchars($data['html_taxi']));
         $this->db->insert('taxi', $array4);
     }
     if ($data['html_rent_car'] != '') {
         $array5 = array('id_widget' => $id_widget, 'html_rent_car' => htmlspecialchars($data['html_rent_car']));
         $this->db->insert('rent_car', $array5);
     }
     if ($this->db->trans_status() === FALSE) {
         $this->db->trans_rollback();
         return 'error_insert';
     } else {
         $this->db->trans_commit();
         return $id_widget;
     }
 }
 /**
  * функция добавления и редактирования "конвертика"
  * @param int $id
  */
 public function add_widget()
 {
     if (!$this->authorization_model->check_auth()) {
         redirect('/p404', 'refresh');
     }
     $upload_dir = FCPATH . self::PATH_TEMPORARY_UPLOADS;
     $final_folder = FCPATH . self::PATH_IMG;
     $id_user = $this->session->userdata('id_user');
     $error_mass = '';
     if ($this->input->post('phone') == '') {
         $error_mass .= '<span>Заполните поле "Номер телефона"</span><br/>';
     }
     if ($this->input->post('email') == '') {
         $error_mass .= '<span>Заполните поле "Email отдела продаж"</span><br/>';
     }
     if (mb_strlen($this->input->post('title_window')) > 49) {
         $error_mass .= '<span>Длина заголовка окна не должна превышать 49 символов</span><br/>';
     }
     if (mb_strlen($this->input->post('content_window')) > 98) {
         $error_mass .= '<span>Длина контента окна не должна превышать 98 символов</span><br/>';
     }
     if (mb_strlen($this->input->post('text_button')) > 28) {
         $error_mass .= '<span>Длина текста кнопки не должна превышать 28 символов</span><br/>';
     }
     if ($this->input->post('site_url') == '') {
         $error_mass .= '<span>Заполните поле "Ссылка на сайт"</span><br/>';
     }
     if ($this->input->post('title_window') != '') {
         $title_window = nl2br(strip_tags($this->input->post('title_window'), '<br>,<br/>'), FALSE);
         $count_br = substr_count($title_window, '<br/>') + substr_count($title_window, '<br>');
         if ($count_br > 1) {
             $error_mass .= '<span>В заголовке окна не должно быть больше одного переноса на новую строку</span><br/>';
         }
     } else {
         $title_window = 'Получите медиаплан уже сегодня!';
     }
     if ($this->input->post('content_window') != '') {
         $content_window = nl2br(strip_tags($this->input->post('content_window'), '<br>,<br/>'), FALSE);
         $count_br = substr_count($content_window, '<br/>') + substr_count($content_window, '<br>');
         if ($count_br > 2) {
             $error_mass .= '<span>В тексте окна не должно быть больше одного переноса на новую строку</span><br/>';
         }
     } else {
         $content_window = 'Я перезвоню Вам для уточнения деталей <br>и помогу с заполнением брифа.';
     }
     if ($this->input->post('name_uploaded_image') == '' && !$this->input->post('img_window')) {
         $error_mass .= '<span>Выберите изображение для "Конвертика"</span><br/>';
     }
     if ($error_mass == '') {
         $data_array['options_widget'] = array('phone' => mysql_real_escape_string(strip_tags($this->input->post('phone'))), 'email' => mysql_real_escape_string(strip_tags($this->input->post('email'))), 'title_window' => $title_window, 'content_window' => $content_window, 'text_button' => $this->input->post('text_button') != '' ? mysql_real_escape_string(strip_tags(nl2br($this->input->post('text_button')))) : 'Позвоните в течение 15 минут', 'time_attention' => (int) $this->input->post('time_attention') * 1000, 'detect_exit' => $this->input->post('detect_exit') ? 1 : 0);
         if ($this->input->post('name_uploaded_image') != '') {
             $name_uploaded_image = $this->input->post('name_uploaded_image');
             if ($this->input->post('id') != 0) {
                 $check_img_exist = $this->generate_widget_model->check_img_exist($name_uploaded_image, $id_user, $this->input->post('id'));
                 if (empty($check_img_exist)) {
                     $result_save_img = $this->generate_widget_model->save_img($name_uploaded_image);
                     if ($result_save_img == 'big_img' || $result_save_img == 'small_img') {
                         $data_ajax['status_ajax'] = 'error';
                         $data_ajax['error_mass'] = '<span>Изображение должно быть размером 487 на 274 px</span><br/>
                                                     <span>Допускается изображение на 10% большее этого размера</span>';
                         print_r(json_encode($data_ajax));
                         exit;
                     } elseif ($result_save_img == 'error_save_img') {
                         $data_ajax['status_ajax'] = 'error';
                         $data_ajax['error_mass'] = '<span>Произошла ошибка при загрузке изображения</span><br/>';
                         print_r(json_encode($data_ajax));
                         exit;
                     } else {
                         $img_window = $result_save_img;
                     }
                 } else {
                     $img_window = mysql_real_escape_string(strip_tags($name_uploaded_image));
                 }
             } else {
                 $result_save_img = $this->generate_widget_model->save_img($name_uploaded_image);
                 if ($result_save_img == 'big_img' || $result_save_img == 'small_img') {
                     $data_ajax['status_ajax'] = 'error';
                     $data_ajax['error_mass'] = '<span>Изображение должно быть размером 487 на 274 px</span><br/>
                                                 <span>Допускается изображение на 10% большее этого размера</span>';
                     print_r(json_encode($data_ajax));
                     exit;
                 } elseif ($result_save_img == 'error_save_img') {
                     $data_ajax['status_ajax'] = 'error';
                     $data_ajax['error_mass'] = '<span>Произошла ошибка при загрузке изображения</span><br/>';
                     print_r(json_encode($data_ajax));
                     exit;
                 } else {
                     $img_window = $result_save_img;
                 }
             }
         } else {
             $img_window = mysql_real_escape_string(strip_tags($this->input->post('img_window'))) . '.jpg';
         }
         $data_array['options_widget']['img_window'] = $img_window;
         $data_array['site'] = array('site_url' => mysql_real_escape_string(strip_tags($this->input->post('site_url'))), 'id_user' => (int) $id_user);
         $data_ajax = array('site_url' => $data_array['site']['site_url'], 'email' => $data_array['options_widget']['email'], 'phone' => $data_array['options_widget']['phone']);
         if ($this->input->post('id') == 0) {
             $data_array['options_widget']['id_user'] = $id_user;
             do {
                 $conversioner_code = create_random_code(32);
                 $conv_code_exist = $this->generate_widget_model->check_conv_code_exist($conversioner_code);
             } while (!empty($conv_code_exist));
             $data_array['options_widget']['conversioner_code'] = $conversioner_code;
             $data = $this->generate_widget_model->save_options_widget($data_array);
             if ($data != 'error_insert') {
                 if (!$this->generate_widget($data)) {
                     $data_ajax['status_ajax'] = 'error';
                     $data_ajax['error_mass'] = '<span>Произошла ошибка, попробуйте позже</span><br/>';
                     print_r(json_encode($data_ajax));
                     exit;
                 }
                 if ($this->input->post('name_uploaded_image') != '') {
                     @unlink("{$upload_dir}/{$name_uploaded_image}");
                 }
                 $data_ajax['id_widget'] = $data;
                 $data_ajax['is_installed'] = 0;
                 $data_ajax['is_active'] = 1;
                 $data_ajax['is_update'] = 0;
                 $data_ajax['status_ajax'] = 'ok';
                 print_r(json_encode($data_ajax));
                 exit;
             } else {
                 $new_img_window = $data_array['options_widget']['img_window'];
                 if ($new_img_window != 'man.jpg' && $new_img_window != 'wom.jpg') {
                     @unlink("{$final_folder}/{$new_img_window}");
                 }
                 $data_ajax['status_ajax'] = 'error';
                 $data_ajax['error_mass'] = '<span>Произошла ошибка, попробуйте позже</span><br/>';
                 print_r(json_encode($data_ajax));
                 exit;
             }
         } else {
             $old_img_window = $this->generate_widget_model->get_img_window_for_widget($this->input->post('id'), $id_user);
             $data = $this->generate_widget_model->update_options_widget($this->input->post('id'), $id_user, $data_array);
             if ($data == 'update_ok') {
                 if (!$this->generate_widget($this->input->post('id'))) {
                     $data_ajax['status_ajax'] = 'error';
                     $data_ajax['error_mass'] = '<span>Произошла ошибка, попробуйте позже</span><br/>';
                     print_r(json_encode($data_ajax));
                     exit;
                 }
                 if ($old_img_window != 'man.jpg' && $old_img_window != 'wom.jpg') {
                     @unlink("{$final_folder}/{$old_img_window}");
                 }
                 if ($this->input->post('name_uploaded_image') != '' && empty($check_img_exist)) {
                     @unlink("{$upload_dir}/{$name_uploaded_image}");
                 }
                 $data_status_widget = $this->generate_widget_model->get_active_instal_by_id($this->input->post('id'), $id_user);
                 $data_ajax['is_installed'] = $data_status_widget['is_installed'];
                 $data_ajax['is_active'] = $data_status_widget['is_active'];
                 $data_ajax['id_widget'] = $this->input->post('id');
                 $data_ajax['is_update'] = 1;
                 $data_ajax['status_ajax'] = 'ok';
                 print_r(json_encode($data_ajax));
                 exit;
             } else {
                 $new_img_window = $data_array['options_widget']['img_window'];
                 if ($new_img_window != 'man.jpg' && $new_img_window != 'wom.jpg') {
                     @unlink("{$final_folder}/{$new_img_window}");
                 }
                 $data_ajax['status_ajax'] = 'error';
                 $data_ajax['error_mass'] = '<span>Произошла ошибка, попробуйте позже</span><br/>';
                 print_r(json_encode($data_ajax));
                 exit;
             }
         }
     } else {
         $data_ajax['status_ajax'] = 'error';
         $data_ajax['error_mass'] = $error_mass;
         print_r(json_encode($data_ajax));
         exit;
     }
 }
 /**
  * функция востановления пароля (1-я часть - проверяется на существование email и отправляется код подтверждения на телефон пользователя)
  */
 public function password_recovery()
 {
     $data['title'] = 'Восстановление пароля';
     $data['other_js'] = array('js/script.js');
     if ($this->input->post('email_password_recovery') == '') {
         echo '<span>Заполните поле "Введите Email"</span><br/>';
         exit;
     } else {
         $this->load->library('transport');
         $this->load->helper('work_helper');
         $data_user = $this->authorization_model->check_email_exist($this->input->post('email_password_recovery'));
         if (empty($data_user)) {
             echo '<span>Данный email не найден</span><br/>';
             exit;
         }
         $random_code = create_random_code(5);
         $params = array("text" => "Код: " . $random_code, "source" => "Conversion");
         $phones = array($data_user['phone']);
         $send_status = $this->transport->send($params, $phones);
         if ($send_status['code'] == 1) {
             $data_session = array('id_user_password_recovery' => $data_user['id'], 'email_password_recovery' => $data_user['email'], 'code_confirm_password_recovery' => $random_code);
             $this->session->set_userdata($data_session);
             echo 'ok';
             exit;
         } else {
             echo '<span>Произошла ошибка, повторите попытку позже</span><br/>';
             exit;
         }
     }
 }