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); }
public function create_body($id) { $match = ['id' => $id]; $email_template = Email_templates::where($match)->get()->first(); if (is_object($email_template)) { $property_array = json_decode($email_template->properties, true); } else { return false; } ////////////////////////////// Шапка шаблона и ее стили ////////////////////////////////// $header_bg = isset($property_array['header']['style']['background']['value']) ? 'background: ' . $property_array['header']['style']['background']['color'] . ';' : ''; $header_br = isset($property_array['header']['style']['border']['value']) ? 'border: 1px solid ' . $property_array['header']['style']['border']['color'] . ';' : ''; $logo_center_img_style = $property_array["logo"]["position"] == "center" && isset($property_array['header_title']['value']) ? "margin: 20px auto 0px;" : "margin: 20px auto 20px;"; $logo_title_style = $property_array["logo"]["position"] == "center" ? "padding: 20px;" : "padding: 10px;"; $logo_img_style = $property_array["logo"]["position"] == "center" ? $logo_center_img_style : "margin-" . $property_array["logo"]["position"] . ": 31px;"; $logo_between = $property_array["logo"]["position"] == "center" ? "</tr><tr>" : ""; $logo_hello = $logo_image = $header_block = ''; if (isset($property_array['logo']['value'])) { $logo_image = "<td align='" . $property_array['logo']['position'] . "' valign='middle' >\n <div style='background: #F7CEE0;font-size: 23px; color: #A7AAA8;font-weight: 600;width: 180px;padding: 18px 0;text-align: center;" . $logo_img_style . "'>YOUR LOGO</div>\n </td>" . $logo_between; } else { $property_array['logo']['position'] = 'center'; } if (isset($property_array['header_title']['value'])) { $logo_hello = "<td align='" . $property_array['logo']['position'] . "' valign='middle' style='border-collapse:collapse;" . $logo_title_style . "'>\n <span style='font-size: 18px;font-weight: bold;'>Здравствуйте {*name*}!</span>\n </td>"; } $logo_position = $property_array["logo"]["position"] == "right" ? $logo_hello . $logo_image : $logo_image . $logo_hello; if ($logo_position) { $header_block = "<tr>\n <td style='" . $header_bg . $header_br . "'>\n <table cellpadding='0' width='100%' cellspacing='0' border='0' align='center' style='border-collapse:collapse;line-height:100%;margin:0;padding:0;'>\n <tr>\n " . $logo_position . "\n </tr>\n </table>\n </td>\n </tr>"; } ////////////////////////////// Кнопка на карточке статей ////////////////////////////////// $article_button_bg = isset($property_array['article_button']['style']['background']['value']) ? 'background: ' . $property_array['article_button']['style']['background']['color'] . ';' : ''; $article_button_br = 'border-radius: ' . $property_array['article_button']['style']['border-radius']['value'] . ';'; $article_button_br_color = isset($property_array['article_button']['style']['border']['value']) ? 'border: 1px solid ' . $property_array['article_button']['style']['border']['color'] . ';' : ''; $article_button_style = $article_button_bg . ' ' . $article_button_br . ' ' . $article_button_br_color; $article_button_text = isset($property_array['article_button']['text']) ? $property_array['article_button']['text'] : 'Подробнее'; $article_button = []; if (isset($property_array['article_button']['value'])) { for ($i = 0; $i < 3; $i++) { $article_button[] = "<a href='{*link" . $i . "*}' style='color: #C23B73; text-decoration: none; font-size: 12px;padding: 5px 5px; " . $article_button_style . "'>Подробнее</a>"; } } ///////////////////////////// Карточки статей и их стили //////////////////////////////////// $middle_tr = $property_array["body"]["position"] == "columns" ? "" : "</tr><tr>"; $article_td_style = $property_array['body']['position'] == 'columns' ? 'padding-right: 8px;' : ''; $columns_tr = $property_array['body']['position'] == 'rows' ? '' : '</tr><tr>'; $rows_padding_style = $property_array['body']['position'] == 'rows' ? 'padding: 70px 109px;' : 'padding: 102px 0;'; $column_width_style = $property_array['body']['position'] == 'column' ? 'width: 544px;' : ''; $rows_v_align = $property_array['body']['position'] == 'rows' ? 'top' : 'middle'; $article_cart_bg = isset($property_array['article']['style']['background']['value']) ? 'background: ' . $property_array['article']['style']['background']['color'] . ';' : ''; $article_cart_br = 'border-radius: ' . $property_array['article']['style']['border-radius']['value'] . ';'; $article_cart_br_color = isset($property_array['article']['style']['border']['value']) ? 'border: 1px solid ' . $property_array['article']['style']['border']['color'] . ';' : ''; $article_cart_style = $article_cart_bg . ' ' . $article_cart_br . ' ' . $article_cart_br_color; $body_types = "<tr>\n <td>\n <table cellpadding='0' cellspacing='0' border='0' align='center' style='border-collapse:collapse;line-height:100%;margin:0;padding:0;width:100%; '>\n <tr>\n <td align='center' valign='middle' style='" . $article_td_style . " '>\n <table cellpadding='0' cellspacing='0' border='0' align='center' style='border-collapse:collapse;line-height:100%;margin:12px 0 0 0;padding:0;width:100%;" . $article_cart_style . " overflow: hidden; display: block;'>\n <tr>\n <td align='center' valign='middle' >\n <div class='change__template__image' style='background: #F7CEE0; " . $rows_padding_style . $column_width_style . " text-align: center;'></div>\n </td>\n " . $columns_tr . "\n <td align='center' valign=' " . $rows_v_align . " ' style='border-collapse:collapse;padding:10px 10px 14px 10px;'>\n <a href='{*link1*}' style='color: black; cursor: pointer; font-size: 15px; padding-top: 2px; margin-bottom: 21px; padding-left: 8px; font-weight: bold; text-align: left; display: block; line-height: 19px;'>Заголовок статьи, заголовок статьи, заголовок статьи...</a>\n " . $article_button[1] . "\n </td>\n </tr>\n </table>\n </td>" . $middle_tr . "\n <td align='center' valign='middle'>\n <table cellpadding='0' cellspacing='0' border='0' align='center' style='border-collapse:collapse;line-height:100%;margin:12px 0 0 0;padding:0;width:100%;" . $article_cart_style . " overflow: hidden; display: block;'>\n <tr>\n <td align='center' valign='middle' >\n <div class='change__template__image' style='background: #F7CEE0; " . $rows_padding_style . $column_width_style . " text-align: center;'></div>\n </td>\n " . $columns_tr . "\n <td align='center' valign=' " . $rows_v_align . " ' style='border-collapse:collapse;padding:10px 10px 14px 10px;'>\n <a href='{*link2*}' style='color: black; cursor: pointer; font-size: 15px; padding-top: 2px; margin-bottom: 21px; padding-left: 8px; font-weight: bold; text-align: left; display: block; line-height: 19px;'>Заголовок статьи, заголовок статьи, заголовок статьи...</a>\n " . $article_button[2] . "\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n </td>\n </tr>"; $full_block = "<tr>\n <td >\n <table cellpadding='0' cellspacing='0' align='center' style='" . $article_cart_style . "border-collapse:collapse;line-height:100%;margin:8px 0 0 0;padding:0;width:100%; overflow: hidden; display: block;'>\n <tr>\n <td align='center' valign='middle' >\n <div class='change__template__image' style='background: #F7CEE0; font-size: 23px; color: #A7AAA8; font-weight: 600; padding: 150px 0; text-align: center;'>Изображение</div>\n </td>\n </tr>\n <tr>\n <td align='center' valign='middle' style='border-collapse:collapse;padding:10px 10px 15px 10px;'>\n <a href='{*link0*}' style=' color: black; cursor: pointer; font-size: 18px; padding-top: 5px; margin-bottom: 4px; padding-left: 9px; font-weight: bold;text-align: left; display: block;line-height: 21px;'>Заголовок статьи, заголовок статьи, заголовок статьи, заголовок статьи...</a>\n " . $article_button[0] . "\n </td>\n </tr>\n </table>\n </td>\n </tr>"; $full_block = isset($property_array['main_block']['value']) ? $full_block : ''; ///////////////////////////// Открыть еще //////////////////////////////////// $bottom_button_bg = isset($property_array['open_else']['style']['background']['value']) ? 'background: ' . $property_array['open_else']['style']['background']['color'] . ';' : ''; $bottom_button_br_color = isset($property_array['open_else']['style']['border']['value']) ? 'border: 1px solid ' . $property_array['open_else']['style']['border']['color'] . ';' : ''; $bottom_button_style = $bottom_button_bg . ' ' . $bottom_button_br_color; $bottom_button_text = isset($property_array['open_else']['text']) ? $property_array['open_else']['text'] : 'Открыть еще'; $open_more = "<tr>\n <td style='padding-top: 19px;'>\n <a href='{*open_else*}' style='text-align: center;cursor: pointer; display: block; padding: 11px 0; font-size: 19px;color: #575B59; " . $bottom_button_style . "'>Открыть еще</a>\n </td>\n </tr>"; $open_more = isset($property_array['open_else']['value']) ? $open_more : ''; ///////////////////////////// Ссылки на социальные сети и их стили //////////////////////////////////// $social_block_style = 'border-radius: ' . $property_array['social_buttons']['style']['border-radius']['value'] . ';'; $social_block_text = isset($property_array['sb_text']['text']) ? $property_array['sb_text']['text'] : 'Мы в социальных сетях'; $vk_link = $fb_link = $sb_text = $social_links = ''; if ($property_array['address_vk']['link'] && isset($property_array['address_vk']['value'])) { $vk_link = "<a href='" . $property_array['address_vk']['link'] . "' style='padding: 2px 11px; margin: 0 0 0 10px; background: url(/images/t_icons.jpg) no-repeat 0px 1px;'></a>"; } if ($property_array['address_fb']['link'] && isset($property_array['address_fb']['value'])) { $fb_link = " <a href='" . $property_array['address_fb']['link'] . "' style='padding: 2px 11px; margin: 0 0 0 10px; background: url(/images/t_icons.jpg) no-repeat -27px 1px;'></a>"; } if (isset($property_array['sb_text']['value'])) { $sb_text = "<span style='margin: 24px 0 19px 0; text-align: center; font-size: 16px;'>Мы в социальных сетях</span>"; } if (($vk_link || $fb_link) && !empty($property_array['social_buttons']['value'])) { $social_links = "<tr>\n <td style='margin-top: 7px; text-align: center; padding: 21px 0; font-size: 16px; font-weight: bold; background: white;" . $social_block_style . "'>\n " . $sb_text . $vk_link . $fb_link . "\n </td>\n </tr>"; } $middle_footer_tr = $property_array["application_block"]["position"] == "left" ? "" : "</tr><tr>"; $appstore_td_align = $property_array["application_block"]["position"] == "center" ? "left" : "right"; $google_td_align = $property_array["application_block"]["position"] == "right" ? "right" : "left"; $google_td_style = $property_array["application_block"]["position"] == "left" ? "padding-left: 10px" : "padding-top: 10px"; $applications_style = 'border-radius: ' . $property_array['application_link']['style']['border-radius']['value'] . ';'; $app_positions = $as_link = $gp_link = ''; if ($property_array['address_as']['link'] && isset($property_array['address_as']['value'])) { $as_link = "<a href='" . $property_array['address_as']['link'] . "' style='display: block; width: 155px; color: white;padding: 2px 39px 29px 50px; background: url(/images/ap_bg.jpg) no-repeat 8px 5px black; border: 1px solid black; font-size: 11px;" . $applications_style . "'>Загрузите в</a>"; } if ($property_array['address_gp']['link'] && isset($property_array['address_gp']['value'])) { $gp_link = "<a href='" . $property_array['address_gp']['link'] . "' style='display: block; width: 155px; color: white; padding: 2px 36px 29px 47px; background: url(/images/gp_bg.jpg) no-repeat 8px 4px black; border: 1px solid black; font-size: 11px;" . $applications_style . "'>Загрузите на</a>"; } if ((!$gp_link || !$as_link) && $property_array["application_block"]["position"] == 'left') { $appstore_td_align = $google_td_align = 'center'; } if (!$gp_link || !$as_link) { $google_td_style = ''; } if (isset($property_array['application_block']['value'])) { $app_positions = "<tr>\n <td style='padding-top: 15px;'>\n <table cellpadding='0' cellspacing='0' border='0' align='center' style='border-collapse:collapse;line-height:100%;margin:0;padding:0;width:100%; '>\n <tr>\n <td align='" . $appstore_td_align . "' valign='middle'>\n " . $as_link . "\n </td>\n " . $middle_footer_tr . "\n <td align='" . $google_td_align . "' valign='middle' style='border-collapse:collapse;" . $google_td_style . "'>\n " . $gp_link . "\n </td>\n </tr>\n </table>\n </td>\n </tr>"; } ///////////////// Формирование шаблона ///////////////////////// $str_template = "<div style=''><table width='100%' style='margin-bottom: 20px; max-width: 620px;'>" . $header_block . $full_block . $body_types . $open_more . "<tr><td><span style='text-align: center; font-size: 17px; margin-top: 20px; display: block; margin-bottom: 17px;'>\n Если вы не видите картинки, пожалуйста <a href='' style='text-decoration: underline'>нажмите сюда »</a></span>\n </td></tr>" . $social_links . $app_positions . "</table></div>"; return $str_template; }