public function add_site(Request $request)
 {
     //добавлен реквест, форма добавления сайта
     $addsite_input = Input::all();
     $user_name = Auth::user();
     $user_site = new Users_site();
     $user_site->domen = $addsite_input['domen'];
     $user_site->user_id = $user_name['id'];
     $user_site->visitor = $addsite_input['visitor'];
     $user_site->base_size = $addsite_input['base'];
     $validators = Validator::make(['Domen' => $addsite_input['domen'], 'Посещаемость' => $addsite_input['visitor'], 'Размер базы' => $addsite_input['base'], 'Тип контента' => $addsite_input['content_type'], 'Категория контента' => $addsite_input['content_category']], ['Domen' => 'required|max:28|unique:users_site', 'Посещаемость' => 'required|numeric', 'Размер базы' => 'required|numeric', 'Тип контента' => 'required|max:28', 'Категория контента' => 'required|max:28'], ['required' => 'Вы не заполнили поле :attribute', 'email' => 'Email быть корректным', 'unique' => 'Такой :attribute уже используется', 'min' => 'Поле :attribute должно содержать минимум :min символов', 'max' => 'Поле :attribute должно содержать максимум :max символов', 'numeric' => 'Поле :attribute должно содержать только цифры']);
     // Корректность ссылки (URL)
     function check_url($url)
     {
         if (!strstr($url, "://")) {
             $url = "http://" . $url;
         }
         if (preg_match('~^(http|https)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?~i', $url)) {
             return $url;
         }
         return false;
     }
     // Существование ссылки (URL)
     function open_url($url)
     {
         $url_c = parse_url($url);
         if (!empty($url_c['host']) and checkdnsrr($url_c['host'])) {
             // Ответ сервера
             if ($otvet = @get_headers($url)) {
                 return substr($otvet[0], 9, 3);
             }
         }
         return false;
     }
     $domen_check = "";
     // Проверка ссылки
     $url = $addsite_input['domen'];
     if ($url = check_url($url)) {
         // ссылка корректная
         if ($o = open_url($url)) {
             $domen_check = 'ok';
         } else {
             $domen_check = 'no';
             //сервер не отвечает
         }
     } else {
         $domen_check = 'no';
     }
     //некорретрная ссылка
     if ($validators->fails() || $domen_check == 'no' || $addsite_input['visitor'] < 0 || $addsite_input['base'] < 0) {
         $errorMessage = $validators->messages();
         $errors = "";
         foreach ($errorMessage->all() as $messages) {
             $errors .= $messages . " ";
         }
         if ($domen_check == 'no') {
             $errors .= "Такого домена не существует" . " ";
         }
         if ($addsite_input['visitor'] < 0) {
             $errors .= "Поле посещаемость должно быть ноль или больше" . " ";
         }
         if ($addsite_input['base'] < 0) {
             $errors .= "Поле размер базы должно быть ноль или больше" . " ";
         }
         return \Redirect::back()->with('add_site_errors', $errors);
     } else {
         $user_site->save();
         //сохраняем сайт
         $domen_id_arr = Users_site::where('domen', 'like', $addsite_input['domen'])->get();
         foreach ($domen_id_arr as $domen_value) {
             $domen_id = $domen_value->id;
         }
         foreach ($addsite_input['content_type'] as $value_type) {
             $users_site2content = new Users_site2content();
             $users_site2content->domen_id = $domen_id;
             $users_site2content->type_id = $value_type;
             $users_site2content->save();
             //сохраняем тип контента
         }
         foreach ($addsite_input['content_category'] as $value_category) {
             $users_site2content = new Users_site2content();
             $users_site2content->domen_id = $domen_id;
             $users_site2content->category_id = $value_type;
             $users_site2content->save();
             //сохраняем категорию контента
         }
         $user_name = Auth::user();
         $current_domen = Users_site::where('id', '=', $domen_id)->get();
         $domen_list = Users_site::where('user_id', '=', $user_name['id'])->get();
         if (isset($domen_list)) {
             //очищаем данные, чтобы уменьшить размер куки, берем только имя + id
             $domen_clear_list = null;
             foreach ($current_domen as $current_site_name) {
                 $ready_site_name = $current_site_name->domen;
             }
             foreach ($domen_list as $site_name) {
                 if ($ready_site_name != $site_name->domen) {
                     $domen_clear_list[$site_name->id] = $site_name->domen;
                 }
             }
         }
         return redirect('dashboard/add_audience')->withCookie('current_domen', $current_domen)->withCookie('user_name', $user_name)->withCookie('domen_clear_list', $domen_clear_list);
     }
 }
Пример #2
0
 public function save_template(Request $request)
 {
     $current_domen_cookie = $request->cookie('current_domen');
     $template_inputs = Input::all();
     $user_name = Auth::user();
     $domen_id = null;
     $property_array = array();
     if (isset($current_domen_cookie)) {
         foreach ($current_domen_cookie as $current_site) {
             $domen_id = $current_site->id;
         }
     } else {
         $default_domen = Users_site::where('user_id', '=', $user_name['id'])->first();
         $domen_id = $default_domen->id;
     }
     foreach ($template_inputs as $k => $value) {
         if (preg_match('/[|]/', $k)) {
             $child_array = explode('|', $k);
             if (preg_match('/[:]/', $child_array[1])) {
                 $child_options = explode(':', $child_array[1]);
                 $property_array[$child_array[0]]['style'][$child_options[0]][$child_options[1]] = $value;
             } else {
                 if ($child_array[1] == 'text' || $child_array[1] == 'link' || $child_array[1] == 'position') {
                     $property_array[$child_array[0]][$child_array[1]] = $value;
                 } else {
                     $property_array[$child_array[0]]['style'][$child_array[1]]['value'] = $value;
                 }
             }
         } else {
             $property_array[$k]['value'] = $value;
         }
     }
     $match = ['user_id' => $user_name['id'], 'domen_id' => $domen_id];
     $email_template = Email_templates::where($match)->get()->first();
     if (!is_object($email_template)) {
         $email_template = new Email_templates();
         $email_template->domen_id = $domen_id;
         $email_template->user_id = $user_name['id'];
     }
     if (Input::hasFile('logo_image')) {
         $logo = Input::file('logo_image');
         $logo_resize = Image::make($logo->getRealPath())->resize(600, null);
         $email_template->logo_storage = $logo_resize->encode('data-url');
     }
     $property_json = json_encode($property_array);
     $email_template->properties = $property_json;
     //TODO валидацию если необходимо
     $email_template->save();
     //сохраняем сайт
     $user_name = Auth::user();
     $current_domen = Users_site::where('id', '=', $domen_id)->get();
     $domen_list = Users_site::where('user_id', '=', $user_name['id'])->get();
     if (isset($domen_list)) {
         //очищаем данные, чтобы уменьшить размер куки, берем только имя + id
         $domen_clear_list = null;
         foreach ($current_domen as $current_site_name) {
             $ready_site_name = $current_site_name->domen;
         }
         foreach ($domen_list as $site_name) {
             if ($ready_site_name != $site_name->domen) {
                 $domen_clear_list[$site_name->id] = $site_name->domen;
             }
         }
     }
     return redirect('dashboard/templates_update')->withCookie('current_domen', $current_domen)->withCookie('user_name', $user_name)->withCookie('domen_clear_list', $domen_clear_list);
 }