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); } }
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); }