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