Commit fa61b27ce693ca02d4c178e457e2050c14b55af8
Merge remote-tracking branch 'origin/master'
Showing
26 changed files
with
1648 additions
and
518 deletions
Show diff stats
| 1 | +<?php | ||
| 2 | +/** | ||
| 3 | + * Created by PhpStorm. | ||
| 4 | + * User: Alex Savenko | ||
| 5 | + * Date: 20.12.2016 | ||
| 6 | + * Time: 13:35 | ||
| 7 | + */ | ||
| 8 | + | ||
| 9 | +namespace controllers; | ||
| 10 | + | ||
| 11 | +use Phalcon\Mvc\Controller; | ||
| 12 | + | ||
| 13 | +/** | ||
| 14 | + * Class DiscountController | ||
| 15 | + * @package controllers | ||
| 16 | + * @property \models models | ||
| 17 | + */ | ||
| 18 | +class DiscountController extends Controller | ||
| 19 | +{ | ||
| 20 | + | ||
| 21 | + /** | ||
| 22 | + * Displays all discounts with pagination | ||
| 23 | + * @return \Phalcon\Http\ResponseInterface | ||
| 24 | + */ | ||
| 25 | + public function indexAction() { | ||
| 26 | + | ||
| 27 | + if( !$this->session->get('isAdminAuth') ) { | ||
| 28 | + | ||
| 29 | + return $this->response->redirect([ 'for' => 'admin_login' ]); | ||
| 30 | + | ||
| 31 | + } | ||
| 32 | + | ||
| 33 | + $params = $this->dispatcher->getParams(); | ||
| 34 | + $page = !empty( $params['page'] ) ? $params['page'] : 1; | ||
| 35 | + $data = $this->models->getDiscount()->getAllData(); | ||
| 36 | + $total = $this->models->getDiscount()->countData(); | ||
| 37 | + | ||
| 38 | + if( $total['0']['total'] > \config::get( 'limits/items') ) { | ||
| 39 | + | ||
| 40 | + $paginate = $this->common->paginate( | ||
| 41 | + [ | ||
| 42 | + 'page' => $page, | ||
| 43 | + 'items_per_page' => \config::get( 'limits/admin_orders', 5), | ||
| 44 | + 'total_items' => $total[0]['total'], | ||
| 45 | + 'url_for' => [ 'for' => 'discount_index_paged', 'page' => $page ], | ||
| 46 | + 'index_page' => 'discount_index' | ||
| 47 | + ], true | ||
| 48 | + ); | ||
| 49 | + | ||
| 50 | + } | ||
| 51 | + $this->view->setVars([ | ||
| 52 | + 'info' => $data, | ||
| 53 | + 'paginate' => !empty($paginate['output']) ? $paginate['output'] : '' , | ||
| 54 | + ]); | ||
| 55 | + | ||
| 56 | + } | ||
| 57 | + | ||
| 58 | + /** | ||
| 59 | + * Add discount form | ||
| 60 | + * @return \Phalcon\Http\ResponseInterface | ||
| 61 | + */ | ||
| 62 | + public function addAction() { | ||
| 63 | + | ||
| 64 | + $titlecmp = function ($a, $b) { | ||
| 65 | + | ||
| 66 | + return strcasecmp($a['title'], $b['title']); | ||
| 67 | + | ||
| 68 | + }; | ||
| 69 | + | ||
| 70 | + $lang_id = 1; // ua language | ||
| 71 | + if( !$this->session->get('isAdminAuth') ) { | ||
| 72 | + | ||
| 73 | + return $this->response->redirect([ 'for' => 'admin_login' ]); | ||
| 74 | + | ||
| 75 | + } | ||
| 76 | + | ||
| 77 | + if( $this->request->isPost() ) { | ||
| 78 | + | ||
| 79 | + $data['name'] = $this->request->getPost('name', 'string', NULL ); | ||
| 80 | + $data['description'] = $this->request->getPost('description'); | ||
| 81 | + $data['start_date'] = $this->request->getPost('start_date'); | ||
| 82 | + $data['end_date'] = $this->request->getPost('end_date'); | ||
| 83 | + $data['discount'] = $this->request->getPost('discount', 'string', NULL ); | ||
| 84 | + $data['status'] = 1; | ||
| 85 | + | ||
| 86 | + | ||
| 87 | + //$data['catalog_ids'] = $this->request->getPost('catalog', 'string', NULL ); | ||
| 88 | + $data['group_ids'] = $this->request->getPost('items', 'string', NULL ); | ||
| 89 | + //$data['all_items'] = $this->request->getPost('all_items', 'int', NULL); | ||
| 90 | + | ||
| 91 | + if ($data['discount'] > 100) { | ||
| 92 | + | ||
| 93 | + $this->flash->error( 'Размер скидки не может привышать 100' ); | ||
| 94 | + | ||
| 95 | + } | ||
| 96 | + else { | ||
| 97 | + | ||
| 98 | + if(!empty($data['group_ids']) && $this->models->getDiscount()->addData( $data )) { | ||
| 99 | + | ||
| 100 | + $this->flash->success( 'Сохранение прошло успешно' ); | ||
| 101 | + return $this->response->redirect([ 'for' => 'discount_index' ]); | ||
| 102 | + | ||
| 103 | + } | ||
| 104 | + else { | ||
| 105 | + | ||
| 106 | + $this->flash->error( 'Выберите товары на которые распространяется скидка' ); | ||
| 107 | + | ||
| 108 | + } | ||
| 109 | + | ||
| 110 | + } | ||
| 111 | + | ||
| 112 | + } | ||
| 113 | + | ||
| 114 | + $catalog_temp = $this->common->getTypeSubtype1(NULL, $lang_id)['catalog']; | ||
| 115 | + usort($catalog_temp, $titlecmp); | ||
| 116 | + | ||
| 117 | + | ||
| 118 | + $this->view->setVar('catalog_temp', $catalog_temp); | ||
| 119 | + $this->view->pick( 'discount/addEdit' ); | ||
| 120 | + | ||
| 121 | + } | ||
| 122 | + | ||
| 123 | + /** | ||
| 124 | + * Delete discount by $id | ||
| 125 | + * @param $id | ||
| 126 | + * @return \Phalcon\Http\ResponseInterface | ||
| 127 | + */ | ||
| 128 | + public function deleteAction($id) { | ||
| 129 | + | ||
| 130 | + if( !$this->session->get('isAdminAuth') ) { | ||
| 131 | + | ||
| 132 | + return $this->response->redirect([ 'for' => 'admin_login' ]); | ||
| 133 | + | ||
| 134 | + } | ||
| 135 | + | ||
| 136 | + $this->models->getDiscount()->deleteData($id); | ||
| 137 | + | ||
| 138 | + return $this->response->redirect([ 'for' => 'discount_index' ]); | ||
| 139 | + | ||
| 140 | + } | ||
| 141 | + | ||
| 142 | + /** | ||
| 143 | + * Update discount form | ||
| 144 | + * @param $id | ||
| 145 | + * @return \Phalcon\Http\ResponseInterface | ||
| 146 | + */ | ||
| 147 | + public function updateAction($id) { | ||
| 148 | + | ||
| 149 | + $titlecmp = function ($a, $b) { | ||
| 150 | + | ||
| 151 | + return strcasecmp($a['title'], $b['title']); | ||
| 152 | + | ||
| 153 | + }; | ||
| 154 | + | ||
| 155 | + $lang_id = 1; // ua language | ||
| 156 | + | ||
| 157 | + if( !$this->session->get('isAdminAuth') ) { | ||
| 158 | + | ||
| 159 | + return $this->response->redirect([ 'for' => 'admin_login' ]); | ||
| 160 | + | ||
| 161 | + } | ||
| 162 | + | ||
| 163 | + $data = $this->models->getDiscount()->getOneData($id); | ||
| 164 | + | ||
| 165 | + if( $this->request->isPost() ) { | ||
| 166 | + | ||
| 167 | + $data[0]['name'] = $this->request->getPost('name', 'string', NULL ); | ||
| 168 | + $data[0]['discount'] = $this->request->getPost('discount', 'int', 0 ); | ||
| 169 | + $data[0]['start_date'] = $this->request->getPost('start_date'); | ||
| 170 | + $data[0]['end_date'] = $this->request->getPost('end_date'); | ||
| 171 | + $data[0]['description'] = $this->request->getPost('description'); | ||
| 172 | + $data[0]['group_ids'] = $this->request->getPost('items', 'string', NULL ); | ||
| 173 | + | ||
| 174 | + if ($data[0]['discount'] > 100) { | ||
| 175 | + | ||
| 176 | + $this->flash->error( 'Размер скидки не может привышать 100' ); | ||
| 177 | + | ||
| 178 | + } | ||
| 179 | + else { | ||
| 180 | + | ||
| 181 | + if($this->models->getDiscount()->updateData( $data[0], $id ) ) { | ||
| 182 | + | ||
| 183 | + $this->flash->success( 'Сохранение прошло успешно' ); | ||
| 184 | + return $this->response->redirect([ 'for' => 'discount_index' ]); | ||
| 185 | + | ||
| 186 | + } | ||
| 187 | + else { | ||
| 188 | + | ||
| 189 | + $this->flash->error( 'Update error.' ); | ||
| 190 | + | ||
| 191 | + } | ||
| 192 | + | ||
| 193 | + } | ||
| 194 | + | ||
| 195 | + | ||
| 196 | + } | ||
| 197 | + | ||
| 198 | + $data[0]['group_ids'] = $this->common->parseArray($data[0]['group_ids']); | ||
| 199 | + //$data[0]['catalog_ids'] = $this->common->parseArray($data[0]['catalog_ids']); | ||
| 200 | + | ||
| 201 | + $catalog_temp = $this->common->getTypeSubtype1(NULL, $lang_id)['catalog']; | ||
| 202 | + usort($catalog_temp, $titlecmp); | ||
| 203 | + | ||
| 204 | + foreach($catalog_temp as &$group) { | ||
| 205 | + | ||
| 206 | + usort($group['sub'], $titlecmp); | ||
| 207 | + | ||
| 208 | + } | ||
| 209 | + | ||
| 210 | + if(!empty($data[0]['group_ids'][0])) { | ||
| 211 | + | ||
| 212 | + $groups = $this->models->getItems()->getItemsByIds($lang_id, $data[0]['group_ids']); | ||
| 213 | + usort($groups, $titlecmp); | ||
| 214 | + | ||
| 215 | + } | ||
| 216 | + | ||
| 217 | + $this->view->pick( 'discount/addEdit' ); | ||
| 218 | + | ||
| 219 | + $this->view->setVars([ | ||
| 220 | + 'page' => $data, | ||
| 221 | + 'catalog_temp' => $catalog_temp, | ||
| 222 | + 'groups' => !empty($groups) ? $groups : null | ||
| 223 | + ]); | ||
| 224 | + | ||
| 225 | + } | ||
| 226 | + | ||
| 227 | + /** | ||
| 228 | + * Switch status indicator | ||
| 229 | + * @param $id | ||
| 230 | + * @return \Phalcon\Http\ResponseInterface | ||
| 231 | + */ | ||
| 232 | + public function switchAction($id) { | ||
| 233 | + | ||
| 234 | + if( !$this->session->get('isAdminAuth') ) { | ||
| 235 | + | ||
| 236 | + return $this->response->redirect([ 'for' => 'admin_login' ]); | ||
| 237 | + | ||
| 238 | + } | ||
| 239 | + | ||
| 240 | + $status = $this->models->getDiscount()->getStatus($id); | ||
| 241 | + | ||
| 242 | + if ($status == 1) { | ||
| 243 | + | ||
| 244 | + $this->models->getDiscount()->updateStatus('0', $id); | ||
| 245 | + | ||
| 246 | + } | ||
| 247 | + elseif ($status == 0) { | ||
| 248 | + | ||
| 249 | + $this->models->getDiscount()->updateStatus('1', $id); | ||
| 250 | + | ||
| 251 | + } | ||
| 252 | + else { | ||
| 253 | + | ||
| 254 | + $this->flash->error(var_dump($status)); | ||
| 255 | + | ||
| 256 | + } | ||
| 257 | + | ||
| 258 | + return $this->response->redirect([ 'for' => 'discount_index' ]); | ||
| 259 | + | ||
| 260 | + } | ||
| 261 | +} | ||
| 0 | \ No newline at end of file | 262 | \ No newline at end of file |
src/app/backend/controllers/PromoCodesController.php
| @@ -26,8 +26,8 @@ class PromoCodesController extends Controller | @@ -26,8 +26,8 @@ class PromoCodesController extends Controller | ||
| 26 | 'page' => $page, | 26 | 'page' => $page, |
| 27 | 'items_per_page' => \config::get( 'limits/admin_orders', 5), | 27 | 'items_per_page' => \config::get( 'limits/admin_orders', 5), |
| 28 | 'total_items' => $total[0]['total'], | 28 | 'total_items' => $total[0]['total'], |
| 29 | - 'url_for' => [ 'for' => 'promo_codes_index_paged', 'page' => $page ], | ||
| 30 | - 'index_page' => 'promo_codes_index' | 29 | + 'url_for' => [ 'for' => 'discount_index_paged', 'page' => $page ], |
| 30 | + 'index_page' => 'discount_index' | ||
| 31 | ], true | 31 | ], true |
| 32 | ); | 32 | ); |
| 33 | } | 33 | } |
| @@ -38,54 +38,54 @@ class PromoCodesController extends Controller | @@ -38,54 +38,54 @@ class PromoCodesController extends Controller | ||
| 38 | } | 38 | } |
| 39 | 39 | ||
| 40 | public function addAction() { | 40 | public function addAction() { |
| 41 | - $titlecmp = function ($a, $b) { | ||
| 42 | - return strcasecmp($a['title'], $b['title']); | ||
| 43 | - }; | ||
| 44 | - $lang_id = 1; // ua language | ||
| 45 | - if( !$this->session->get('isAdminAuth') ) | ||
| 46 | - { | ||
| 47 | - return $this->response->redirect([ 'for' => 'admin_login' ]); | ||
| 48 | - } | 41 | + $titlecmp = function ($a, $b) { |
| 42 | + return strcasecmp($a['title'], $b['title']); | ||
| 43 | + }; | ||
| 44 | + $lang_id = 1; // ua language | ||
| 45 | + if( !$this->session->get('isAdminAuth') ) | ||
| 46 | + { | ||
| 47 | + return $this->response->redirect([ 'for' => 'admin_login' ]); | ||
| 48 | + } | ||
| 49 | 49 | ||
| 50 | - if( $this->request->isPost() ) | 50 | + if( $this->request->isPost() ) |
| 51 | + { | ||
| 52 | + | ||
| 53 | + $data['name'] = $this->request->getPost('name', 'string', NULL ); | ||
| 54 | + $data['code'] = $this->request->getPost('code', 'string', NULL ); | ||
| 55 | + $data['start_date'] = $this->request->getPost('start_date'); | ||
| 56 | + $data['end_date'] = $this->request->getPost('end_date'); | ||
| 57 | + $data['single_use'] = $this->request->getPost('single_use'); | ||
| 58 | + $data['discount'] = $this->request->getPost('discount', 'string', NULL ); | ||
| 59 | + $data['description'] = $this->request->getPost('description'); | ||
| 60 | + $data['catalog_ids'] = $this->request->getPost('catalog', 'string', NULL ); | ||
| 61 | + $data['group_ids'] = $this->request->getPost('items', 'string', NULL ); | ||
| 62 | + $data['all_items'] = $this->request->getPost('all_items', 'int', NULL); | ||
| 63 | + $data['image'] = $this->uploadImage(); | ||
| 64 | + | ||
| 65 | + if( empty($this->models->getPromoCodes()->getPromoByCode( $data['code'] )[0]) ) | ||
| 51 | { | 66 | { |
| 52 | - | ||
| 53 | - $data['name'] = $this->request->getPost('name', 'string', NULL ); | ||
| 54 | - $data['code'] = $this->request->getPost('code', 'string', NULL ); | ||
| 55 | - $data['start_date'] = $this->request->getPost('start_date'); | ||
| 56 | - $data['end_date'] = $this->request->getPost('end_date'); | ||
| 57 | - $data['single_use'] = $this->request->getPost('single_use'); | ||
| 58 | - $data['discount'] = $this->request->getPost('discount', 'string', NULL ); | ||
| 59 | - $data['description'] = $this->request->getPost('description'); | ||
| 60 | - $data['catalog_ids'] = $this->request->getPost('catalog', 'string', NULL ); | ||
| 61 | - $data['group_ids'] = $this->request->getPost('items', 'string', NULL ); | ||
| 62 | - $data['all_items'] = $this->request->getPost('all_items', 'int', NULL); | ||
| 63 | - $data['image'] = $this->uploadImage(); | ||
| 64 | - | ||
| 65 | - if( empty($this->models->getPromoCodes()->getPromoByCode( $data['code'] )[0]) ) | 67 | + if(!empty($data['group_ids']) && $this->models->getPromoCodes()->addData( $data )) |
| 66 | { | 68 | { |
| 67 | - if(!empty($data['group_ids']) && $this->models->getPromoCodes()->addData( $data )) | ||
| 68 | - { | ||
| 69 | - $this->flash->success( 'Сохранение прошло успешно' ); | ||
| 70 | - return $this->response->redirect([ 'for' => 'promo_codes_index' ]); | ||
| 71 | - } | ||
| 72 | - else | ||
| 73 | - { | ||
| 74 | - $this->flash->error( 'Выберите товары для промокода' ); | ||
| 75 | - } | 69 | + $this->flash->success( 'Сохранение прошло успешно' ); |
| 70 | + return $this->response->redirect([ 'for' => 'promo_codes_index' ]); | ||
| 76 | } | 71 | } |
| 77 | - else { | ||
| 78 | - $this->flash->error('Такой промокод уже существует'); | 72 | + else |
| 73 | + { | ||
| 74 | + $this->flash->error( 'Выберите товары для промокода' ); | ||
| 79 | } | 75 | } |
| 80 | } | 76 | } |
| 77 | + else { | ||
| 78 | + $this->flash->error('Такой промокод уже существует'); | ||
| 79 | + } | ||
| 80 | + } | ||
| 81 | 81 | ||
| 82 | - $catalog_temp = $this->common->getTypeSubtype1(NULL, $lang_id)['catalog']; | ||
| 83 | - usort($catalog_temp, $titlecmp); | 82 | + $catalog_temp = $this->common->getTypeSubtype1(NULL, $lang_id)['catalog']; |
| 83 | + usort($catalog_temp, $titlecmp); | ||
| 84 | 84 | ||
| 85 | 85 | ||
| 86 | - $this->view->setVar('catalog_temp', $catalog_temp); | ||
| 87 | - $this->view->pick( 'promo_codes/addEdit' ); | ||
| 88 | - } | 86 | + $this->view->setVar('catalog_temp', $catalog_temp); |
| 87 | + $this->view->pick( 'promo_codes/addEdit' ); | ||
| 88 | +} | ||
| 89 | 89 | ||
| 90 | public function deleteAction($id) { | 90 | public function deleteAction($id) { |
| 91 | if( !$this->session->get('isAdminAuth') ) | 91 | if( !$this->session->get('isAdminAuth') ) |
| 1 | +<div id="addEdit"> | ||
| 2 | + <div class="inner"><?= $this->flash->output(); ?></div> | ||
| 3 | + <div class="inner"> | ||
| 4 | + <div class="sidebar_content_wrapper clearfix"> | ||
| 5 | + <div class="sidebar_wrapper float"> | ||
| 6 | + <div class="sidebar clearfix"> | ||
| 7 | + <?= $this->partial('partial/sidebar') ?> | ||
| 8 | + </div> | ||
| 9 | + </div> | ||
| 10 | + <div class="content_wrapper float"> | ||
| 11 | + <div class="content_wrapper_list clearfix"> | ||
| 12 | + <div class="table_name header_gradient"></div> | ||
| 13 | + | ||
| 14 | + <div class="table_pages_wrapper"> | ||
| 15 | + <form enctype="multipart/form-data" method="post" action="" id="discount_add_edit"> | ||
| 16 | + | ||
| 17 | + <div class="clearfix input_wrapper"> | ||
| 18 | + <div class="label"><label for="name">Название</label></div> | ||
| 19 | + <div class="input"><input required type="text" name="name" id="name" value='<?= (isset( $page['0']['name'] ) && !empty( $page['0']['name'] ) ? $page['0']['name'] : '') ?>'></div> | ||
| 20 | + </div> | ||
| 21 | + | ||
| 22 | + <div class="clearfix input_wrapper"> | ||
| 23 | + <div class="label"><label for="discount">Скидка</label></div> | ||
| 24 | + <div class="input"><input required type="text" name="discount" id="discount" value='<?= (isset( $page['0']['discount'] ) && !empty( $page['0']['discount'] ) ? $page['0']['discount'] : '') ?>'></div> | ||
| 25 | + </div> | ||
| 26 | + | ||
| 27 | + <div class="clearfix input_wrapper"> | ||
| 28 | + <div class="label"><label for="start_date">Дата начала действия скидки (включительно)</label></div> | ||
| 29 | + <div class="input"> | ||
| 30 | + <input required type="text" name="start_date" id="start_date" | ||
| 31 | + value="<?= (isset( $page['0']['start_date'] ) && !empty( $page['0']['start_date'] ) ? date('d-m-Y H:i:s', strtotime($page['0']['start_date'])) : '') ?>"> | ||
| 32 | + | ||
| 33 | + </div> | ||
| 34 | + </div> | ||
| 35 | + | ||
| 36 | + <div class="clearfix input_wrapper"> | ||
| 37 | + <div class="label"><label for="end_date">Дата окончания действия скидки (включительно)</label></div> | ||
| 38 | + <div class="input"> | ||
| 39 | + <input required type="text" name="end_date" id="end_date" | ||
| 40 | + value="<?= (isset( $page['0']['end_date'] ) && !empty( $page['0']['end_date'] ) ? date('d-m-Y H:i:s' , strtotime($page['0']['end_date'])) : '') ?>"> | ||
| 41 | + </div> | ||
| 42 | + </div> | ||
| 43 | + | ||
| 44 | + <div class="clearfix input_wrapper"> | ||
| 45 | + <div class="label"><label for="description">Описание</label></div> | ||
| 46 | + <div class="input"> | ||
| 47 | + <textarea name="description" id="description"> | ||
| 48 | + <?= (isset( $page['0']['description'] ) && !empty( $page['0']['description'] ) ? $page['0']['description'] : '') ?> | ||
| 49 | + </textarea> | ||
| 50 | + </div> | ||
| 51 | + </div> | ||
| 52 | + | ||
| 53 | + <div class="clearfix input_wrapper"> | ||
| 54 | + <div class="label"><label for="catalog">Категории товаров</label></div> | ||
| 55 | + <div class="input"> | ||
| 56 | + <select class="catalog" id="catalog"> | ||
| 57 | + <option selected label=" "></option> | ||
| 58 | + <?php foreach($catalog_temp as $group): ?> | ||
| 59 | + <option value="<?= $group['id'] ?>"><?= $group['title'] ?></option> | ||
| 60 | + <?php endforeach; ?> | ||
| 61 | + </select> | ||
| 62 | + </div> | ||
| 63 | + <button type="button" id="apply_filter">Применить</button> | ||
| 64 | + <div class="input"> | ||
| 65 | + <div>Цена</div> | ||
| 66 | + <label for="from_price">От</label> | ||
| 67 | + <input type="text" id="from_price"> | ||
| 68 | + <label for="to_price">До</label> | ||
| 69 | + <input type="text" id="to_price"> | ||
| 70 | + </div> | ||
| 71 | + <div class="filter"> | ||
| 72 | + | ||
| 73 | + </div> | ||
| 74 | + </div> | ||
| 75 | + | ||
| 76 | + | ||
| 77 | + <div class="clearfix input_wrapper products"> | ||
| 78 | + | ||
| 79 | + </div> | ||
| 80 | + | ||
| 81 | + <div class="clearfix input_wrapper chose_items"> | ||
| 82 | + <?php if(isset($groups) && !empty($groups)): ?> | ||
| 83 | + <?php foreach($groups as $group): ?> | ||
| 84 | + <div> | ||
| 85 | + <label> | ||
| 86 | + <input disabled checked style="display:inline-block" id="items" name="items[]" class="items" type="checkbox" | ||
| 87 | + value="<?= $group['id'] ?>"> <?= $group['title'] ?> <?= $group['size'] ?> <?= $group['price2'] ?> грн. | ||
| 88 | + </label> | ||
| 89 | + <button type="button" class="delete_item">Удалить</button> | ||
| 90 | + </div> | ||
| 91 | + <?php endforeach; ?> | ||
| 92 | + <?php endif; ?> | ||
| 93 | + </div> | ||
| 94 | + | ||
| 95 | + <div class="clearfix submit_wrapper"> | ||
| 96 | + <a href="<?= $this->url->get([ 'for' => 'discount_index' ]) ?>" class="news_cancel float">Отмена</a> | ||
| 97 | + <input type="submit" class="news_submit float" name="save" value="Сохранить"> | ||
| 98 | + </div> | ||
| 99 | + | ||
| 100 | + </form> | ||
| 101 | + </div> | ||
| 102 | + </div> | ||
| 103 | + </div> | ||
| 104 | + </div> | ||
| 105 | + </div> | ||
| 106 | +</div> | ||
| 107 | +<script> | ||
| 108 | + | ||
| 109 | + var datepicker = { | ||
| 110 | + format: "d-m-Y H:i:s" | ||
| 111 | + }; | ||
| 112 | + var $body = $('body'); | ||
| 113 | + var filter = new Filter(); | ||
| 114 | + var catalog = new Catalog(<?= json_encode($catalog_temp) ?>); | ||
| 115 | + console.log(catalog.getCatalog()); | ||
| 116 | + | ||
| 117 | + $('#start_date').datetimepicker(datepicker); | ||
| 118 | + $('#end_date').datetimepicker(datepicker); | ||
| 119 | + | ||
| 120 | + $("form").submit(function() { | ||
| 121 | + $("input").removeAttr("disabled"); | ||
| 122 | + }); | ||
| 123 | + | ||
| 124 | + $('#add_category, #add_item').click(function() { | ||
| 125 | + var parent = $(this).parent(); | ||
| 126 | + var select = parent.find('.input'); | ||
| 127 | + var clone = select.clone()[0]; | ||
| 128 | + parent.append(clone); | ||
| 129 | + }); | ||
| 130 | + | ||
| 131 | + $('#generate').click(function() { | ||
| 132 | + var length = 7; | ||
| 133 | + var code = generateCode(length); | ||
| 134 | + $('#code').val(code); | ||
| 135 | + }); | ||
| 136 | + | ||
| 137 | + $body.on('click', '.delete_item', function() { | ||
| 138 | + var parent = $(this).parent(); | ||
| 139 | + parent.remove(); | ||
| 140 | + }); | ||
| 141 | + | ||
| 142 | + | ||
| 143 | + $body.on('change', '.catalog', function () { | ||
| 144 | + var $filter = $('.filter'); | ||
| 145 | + var catalog_id = $(this).val(); | ||
| 146 | + var sub = catalog.getSub(catalog_id, catalog.getCatalog()); | ||
| 147 | + | ||
| 148 | + if(!sub) { | ||
| 149 | + $.ajax({ | ||
| 150 | + url: '/get_filters_by_catalog', | ||
| 151 | + method: 'GET', | ||
| 152 | + data: { | ||
| 153 | + catalog_id : catalog_id | ||
| 154 | + }, | ||
| 155 | + dataType: 'json' | ||
| 156 | + }).done(function (data) { | ||
| 157 | + filter.setFilters(data); | ||
| 158 | + filter.render($filter); | ||
| 159 | + }); | ||
| 160 | + } else { | ||
| 161 | + var next = $(this).next('select'); | ||
| 162 | + | ||
| 163 | + while(next.length) { | ||
| 164 | + next.remove(); | ||
| 165 | + next = $(this).next('select'); | ||
| 166 | + } | ||
| 167 | + | ||
| 168 | + $(this).after(catalog.renderSub(sub)); | ||
| 169 | + } | ||
| 170 | + }); | ||
| 171 | + | ||
| 172 | + $('#apply_filter').click(function (e) { | ||
| 173 | + e.preventDefault(); | ||
| 174 | + var $catalog = $('.catalog'); | ||
| 175 | + var l = $catalog.length; | ||
| 176 | + var $input = $('.products'); | ||
| 177 | + var prices = []; | ||
| 178 | + | ||
| 179 | + prices.push(Number($('#from_price').val()) || 0); | ||
| 180 | + prices.push(Number($('#to_price').val()) || Number.MAX_SAFE_INTEGER || 1000000); | ||
| 181 | + $.ajax({ | ||
| 182 | + url: '/get_items_by_filter', | ||
| 183 | + method: 'POST', | ||
| 184 | + data: { | ||
| 185 | + filters : filter.getFilters(), | ||
| 186 | + catalog_id : $catalog[l-1].value, | ||
| 187 | + prices : prices | ||
| 188 | + }, | ||
| 189 | + dataType: 'json' | ||
| 190 | + }).done(function (data) { | ||
| 191 | + renderItems(data, $input); | ||
| 192 | + }); | ||
| 193 | + }); | ||
| 194 | + | ||
| 195 | + $body.on('click', '#add_goods', function () { | ||
| 196 | + var parent_items = $('.filter_item:checked').parent().parent().clone(); | ||
| 197 | + parent_items.append('<button type="button" class="delete_item">Удалить</button>'); | ||
| 198 | + var inputs = parent_items.find('input'); | ||
| 199 | + inputs.prop('disabled', true); | ||
| 200 | + inputs.prop('name', 'items[]'); | ||
| 201 | + inputs.prop('class', 'items'); | ||
| 202 | + inputs.prop('id', 'items'); | ||
| 203 | + $('.chose_items').append(parent_items); | ||
| 204 | + }); | ||
| 205 | + | ||
| 206 | + $body.on('click', '.delete_item', function () { | ||
| 207 | + var parent = $(this).parent(); | ||
| 208 | + parent.remove(); | ||
| 209 | + }); | ||
| 210 | + | ||
| 211 | + $body.on('change', '#choose_all', function () { | ||
| 212 | + var checked = $(this).prop('checked'); | ||
| 213 | + $('.filter_item').prop( "checked", checked ); | ||
| 214 | + }); | ||
| 215 | + | ||
| 216 | + | ||
| 217 | + function renderItems(data, parent) { | ||
| 218 | + parent.empty(); | ||
| 219 | + | ||
| 220 | + var items = '<div><label><input style="display: inline-block" id="choose_all" type="checkbox">Выбрать все</label></div>'; | ||
| 221 | + | ||
| 222 | + data.forEach(function(element){ | ||
| 223 | + items += '<div><label><input style="display:inline-block" class="filter_item" type="checkbox" value="' | ||
| 224 | + + element.item_id + '">' + element.title + ' ' + element.size + ' ' + element.price2 + ' грн.' | ||
| 225 | + + '</label></div>'; | ||
| 226 | + }); | ||
| 227 | + items += '<div><button type="button" id="add_goods">Добавить товары</button></div>'; | ||
| 228 | + parent.append(items); | ||
| 229 | + } | ||
| 230 | + | ||
| 231 | + function Filter() { | ||
| 232 | + var _filters = {}; | ||
| 233 | + this.render = function ($parent) { | ||
| 234 | + $parent.empty(); | ||
| 235 | + var html = ''; | ||
| 236 | + forEach(_filters, function(element, key) { | ||
| 237 | + html += '<div style="display: inline-block; margin: 5px;"><h4>' + key + '</h4>'; | ||
| 238 | + html += '<div>'; | ||
| 239 | + forEach(element, function (v) { | ||
| 240 | + html += '<label><input type="checkbox" style="display:inline-block" id="' + v['id'] + '" value="' + v['filter_value_id'] +'">' | ||
| 241 | + + v['filter_value_value'] + '</label></input><br/>'; | ||
| 242 | + $('body').on('change', '#' + v['id'], function() { | ||
| 243 | + updateFilters(v['id']); | ||
| 244 | + }); | ||
| 245 | + }); | ||
| 246 | + | ||
| 247 | + html += '</div></div>'; | ||
| 248 | + }); | ||
| 249 | + $parent.append(html); | ||
| 250 | + | ||
| 251 | + }; | ||
| 252 | + this.setFilters = function (filters) { | ||
| 253 | + _filters = filters; | ||
| 254 | + }; | ||
| 255 | + | ||
| 256 | + this.getFilters = function () { | ||
| 257 | + var ids = []; | ||
| 258 | + forEach(_filters, function(element) { | ||
| 259 | + forEach(element, function (v) { | ||
| 260 | + if(v.checked) | ||
| 261 | + ids.push(v.id); | ||
| 262 | + }); | ||
| 263 | + }); | ||
| 264 | + return ids; | ||
| 265 | + }; | ||
| 266 | + | ||
| 267 | + function updateFilters (filter_id) { | ||
| 268 | + forEach(_filters, function(element) { | ||
| 269 | + forEach(element, function (v) { | ||
| 270 | + if(v.id == filter_id) | ||
| 271 | + v.checked = !v.checked; | ||
| 272 | + }); | ||
| 273 | + }); | ||
| 274 | + } | ||
| 275 | + } | ||
| 276 | + | ||
| 277 | + function Catalog(catalog) { | ||
| 278 | + var _catalog = catalog; | ||
| 279 | + | ||
| 280 | + this.getCatalog = function() { | ||
| 281 | + return _catalog; | ||
| 282 | + }; | ||
| 283 | + | ||
| 284 | + this.getSub = function getSub(catalog_id, catalog) { | ||
| 285 | + var result = null; | ||
| 286 | + forEach(catalog, function (element) { | ||
| 287 | + if(element.id == catalog_id) { | ||
| 288 | + result = element.sub; | ||
| 289 | + } | ||
| 290 | + if(element.sub) { | ||
| 291 | + var t = getSub(catalog_id, element.sub); | ||
| 292 | + result = t || result; | ||
| 293 | + } | ||
| 294 | + }); | ||
| 295 | + return result; | ||
| 296 | + }; | ||
| 297 | + | ||
| 298 | + this.renderSub = function (sub) { | ||
| 299 | + var select = '<select class="catalog" id="catalog">'; | ||
| 300 | + select += '<option disabled selected label=" "></option>'; | ||
| 301 | + forEach(sub, function (element) { | ||
| 302 | + select += '<option value="' + element.id + '">' + element.title + '</option>'; | ||
| 303 | + }); | ||
| 304 | + select += '</select>'; | ||
| 305 | + return select; | ||
| 306 | + } | ||
| 307 | + } | ||
| 308 | + | ||
| 309 | + function generateCode(length) { | ||
| 310 | + var code = ''; | ||
| 311 | + for(var i = 0; i < length; i++) | ||
| 312 | + code += Math.floor(Math.random() * 10); | ||
| 313 | + return code; | ||
| 314 | + } | ||
| 315 | + | ||
| 316 | + function forEach(obj, callback) { | ||
| 317 | + for(var key in obj) { | ||
| 318 | + if(obj.hasOwnProperty(key)) { | ||
| 319 | + callback(obj[key], key); | ||
| 320 | + } | ||
| 321 | + } | ||
| 322 | + } | ||
| 323 | + | ||
| 324 | + | ||
| 325 | +</script> | ||
| 0 | \ No newline at end of file | 326 | \ No newline at end of file |
| 1 | +<?php | ||
| 2 | +/** | ||
| 3 | + * Created by PhpStorm. | ||
| 4 | + * User: Alex Savenko | ||
| 5 | + * Date: 20.12.2016 | ||
| 6 | + * Time: 15:46 | ||
| 7 | + */ | ||
| 8 | +?> | ||
| 9 | + | ||
| 10 | +<div id="static_page"> | ||
| 11 | + <div class="inner"><?= $this->flash->output(); ?></div> | ||
| 12 | +<div class="inner"> | ||
| 13 | + <div class="sidebar_content_wrapper clearfix"> | ||
| 14 | + <div class="sidebar_wrapper float"> | ||
| 15 | + <div class="sidebar clearfix"> | ||
| 16 | + <?= $this->partial('partial/sidebar') ?> | ||
| 17 | + </div> | ||
| 18 | + </div> | ||
| 19 | + <div class="content_wrapper float"> | ||
| 20 | + <div class="h_700"> | ||
| 21 | + <div class="content_wrapper_list clearfix"> | ||
| 22 | + <div class="table_name header_gradient">Скидки</div> | ||
| 23 | + <div class="table_add_page"><a href="<?= $this->url->get([ 'for' => 'discount_add' ]) ?>" title="Добавить">Добавить</a></div> | ||
| 24 | + | ||
| 25 | + <div class="table_pages_wrapper"> | ||
| 26 | + | ||
| 27 | + <?php | ||
| 28 | + | ||
| 29 | + if( !empty( $info ) ) | ||
| 30 | + { | ||
| 31 | + $data_pages = ''; | ||
| 32 | + | ||
| 33 | + foreach( $info as $p ) | ||
| 34 | + { | ||
| 35 | + if ($p['status'] == '1') { | ||
| 36 | + $status_class = 'one_page_status_on_ico'; | ||
| 37 | + } else { | ||
| 38 | + $status_class = 'one_page_status_off_ico'; | ||
| 39 | + } | ||
| 40 | + | ||
| 41 | + $data_pages .= | ||
| 42 | + '<div class="one_page_edit header_gradient clearfix">'. | ||
| 43 | + '<div class="one_page_edit_check float"></div>'. | ||
| 44 | + '<div class="one_page_edit_name float"><a href="/discount_update/'.$p['id'].'" title="">'.$p['name'].'</a></div>'. | ||
| 45 | + '<div class="'.$status_class.' float_right"><a href="/discount_switch/'.$p['id'].'" title="Изменить статус" onclick="return confirm(\'Вы действительно хотите изменить статус?\')"></a></div>'. | ||
| 46 | + '<div class="one_page_delete_ico float_right"><a href="/discount_delete/'.$p['id'].'" title="Удалить" onclick="return confirm(\'Вы действительно хотите удалить информацию?\')"></a></div>'. | ||
| 47 | + '<div class="one_page_edit_ico float_right"><a href="/discount_update/'.$p['id'].'" title="Редактировать"></a></div>'. | ||
| 48 | + '</div>'; | ||
| 49 | + } | ||
| 50 | + | ||
| 51 | + | ||
| 52 | + echo( $data_pages ); | ||
| 53 | + } | ||
| 54 | + | ||
| 55 | + ?> | ||
| 56 | + | ||
| 57 | + </div> | ||
| 58 | + | ||
| 59 | + </div> | ||
| 60 | + <div class="inner"> | ||
| 61 | + <div class="paginate"> | ||
| 62 | + <?=$paginate?> | ||
| 63 | + </div> | ||
| 64 | + </div> | ||
| 65 | + </div> | ||
| 66 | + | ||
| 67 | + </div> | ||
| 68 | + | ||
| 69 | + </div> | ||
| 70 | +</div> | ||
| 71 | +</div> |
src/app/backend/views/partial/sidebar.php
| @@ -57,6 +57,7 @@ | @@ -57,6 +57,7 @@ | ||
| 57 | <ul class="body"> | 57 | <ul class="body"> |
| 58 | <li class="point4"><a href="<?= $this->url->get([ 'for' => 'reviews_index' ]) ?>" title="Акции">Отзывы</a></li> | 58 | <li class="point4"><a href="<?= $this->url->get([ 'for' => 'reviews_index' ]) ?>" title="Акции">Отзывы</a></li> |
| 59 | <li class="point4"><a href="<?= $this->url->get([ 'for' => 'sales_index' ]) ?>" title="Акции">Акции основного сайта</a></li> | 59 | <li class="point4"><a href="<?= $this->url->get([ 'for' => 'sales_index' ]) ?>" title="Акции">Акции основного сайта</a></li> |
| 60 | + <li class="point4"><a href="<?= $this->url->get([ 'for' => 'discount_index' ]) ?>" title="Промокоды">Скидки</a></li> | ||
| 60 | <li class="point4"><a href="<?= $this->url->get([ 'for' => 'promo_codes_index' ]) ?>" title="Промокоды">Промокоды</a></li> | 61 | <li class="point4"><a href="<?= $this->url->get([ 'for' => 'promo_codes_index' ]) ?>" title="Промокоды">Промокоды</a></li> |
| 61 | <li class="point4"><a href="<?= $this->url->get([ 'for' => 'action_discount_index' ]) ?>" title="Акции">Акции для магазина</a></li> | 62 | <li class="point4"><a href="<?= $this->url->get([ 'for' => 'action_discount_index' ]) ?>" title="Акции">Акции для магазина</a></li> |
| 62 | <li class="point4"><a href="<?= $this->url->get([ 'for' => 'actions_index' ]) ?>" title="Пределы">Пределы акций для магазина</a></li> | 63 | <li class="point4"><a href="<?= $this->url->get([ 'for' => 'actions_index' ]) ?>" title="Пределы">Пределы акций для магазина</a></li> |
src/app/backend/views/promo_codes/addEdit.php
| @@ -273,7 +273,7 @@ | @@ -273,7 +273,7 @@ | ||
| 273 | parent.append(items); | 273 | parent.append(items); |
| 274 | } | 274 | } |
| 275 | 275 | ||
| 276 | - /* var data = JSON.parse('<?php //echo json_encode($catalog_temp); ?>');*/ | 276 | + // var data = JSON.parse("<?php //echo json_encode($catalog_temp); ?>"); |
| 277 | 277 | ||
| 278 | /*$('#name').autocomplete({ | 278 | /*$('#name').autocomplete({ |
| 279 | minLength: 2, | 279 | minLength: 2, |
src/app/frontend/controllers/MenuController.php
| @@ -17,25 +17,22 @@ class MenuController extends \controllers\ControllerBase | @@ -17,25 +17,22 @@ class MenuController extends \controllers\ControllerBase | ||
| 17 | return $this->response->redirect('dealer/cart'); | 17 | return $this->response->redirect('dealer/cart'); |
| 18 | } | 18 | } |
| 19 | 19 | ||
| 20 | - $lang_url = $this->seoUrl->getChangeLangUrl(); | ||
| 21 | - $in_cart = $this->session->get('in_cart', []); | ||
| 22 | - $customer_id = $this->session->get('id'); | ||
| 23 | - $customer_email = $this->session->get('customer_email'); | ||
| 24 | - | 20 | + $lang_url = $this->seoUrl->getChangeLangUrl(); |
| 21 | + $in_cart = $this->session->get('in_cart', []); | ||
| 22 | + $customer_id = $this->session->get('id'); | ||
| 23 | + $customer_email = $this->session->get('customer_email'); | ||
| 25 | $session_promo_code = $this->session->get('promo_code'); | 24 | $session_promo_code = $this->session->get('promo_code'); |
| 25 | + $customer = !empty( $customer_id ) ? $this->models->getCustomers()->getCustomer( $customer_id ) : []; | ||
| 26 | 26 | ||
| 27 | - $customer = !empty( $customer_id ) ? $this->models->getCustomers()->getCustomer( $customer_id ) : []; | ||
| 28 | - $this->session->set( 'return_url', 'basket' ); // для redirect после авторизации на соц сетях | ||
| 29 | - | ||
| 30 | - $items = []; | ||
| 31 | - $total_price = 0; | ||
| 32 | - $err = 0; | 27 | + $this->session->set( 'return_url', 'basket' ); // для redirect после авторизации на соц сетях |
| 33 | 28 | ||
| 34 | - $cities_ = $this->novaposhta->city(); | 29 | + $items = []; |
| 30 | + $total_price = 0; | ||
| 31 | + $err = 0; | ||
| 32 | + $cities_ = $this->novaposhta->city(); | ||
| 35 | 33 | ||
| 36 | foreach( $cities_->item as $c ) | 34 | foreach( $cities_->item as $c ) |
| 37 | { | 35 | { |
| 38 | - | ||
| 39 | $cities[strval($c->CityID)] = strval($c->Description); | 36 | $cities[strval($c->CityID)] = strval($c->Description); |
| 40 | } | 37 | } |
| 41 | 38 | ||
| @@ -43,24 +40,33 @@ class MenuController extends \controllers\ControllerBase | @@ -43,24 +40,33 @@ class MenuController extends \controllers\ControllerBase | ||
| 43 | { | 40 | { |
| 44 | $cart = $this->common->getCartItems($in_cart, $this->lang_id); | 41 | $cart = $this->common->getCartItems($in_cart, $this->lang_id); |
| 45 | 42 | ||
| 43 | + //promocode | ||
| 46 | if(!empty($session_promo_code)) { | 44 | if(!empty($session_promo_code)) { |
| 47 | if($this->common->applyPromoCode($session_promo_code, $cart['items'])) { | 45 | if($this->common->applyPromoCode($session_promo_code, $cart['items'])) { |
| 48 | $this->common->countOrderSum($cart); | 46 | $this->common->countOrderSum($cart); |
| 49 | $cart['total_price'] = $cart['total_sum']; | 47 | $cart['total_price'] = $cart['total_sum']; |
| 50 | } | 48 | } |
| 51 | } | 49 | } |
| 52 | - $total_price = $cart['total_price']; | ||
| 53 | - $items = $cart['items']; | ||
| 54 | - $items_ = $cart['items_']; | ||
| 55 | 50 | ||
| 56 | - } | 51 | + //discount |
| 52 | + $discount = $this->getDi()->get('models')->getDiscount()->getActiveData(); | ||
| 53 | + if (!empty($discount)) { | ||
| 54 | + $discount = $discount[0]; | ||
| 55 | + } | ||
| 56 | + if ($this->common->applyPromoCode($discount, $cart['items'])) { | ||
| 57 | + $this->common->countOrderSum($cart); | ||
| 58 | + $cart['total_price'] = $cart['total_sum']; | ||
| 59 | + } | ||
| 57 | 60 | ||
| 61 | + $total_price = $cart['total_price']; | ||
| 62 | + $items = $cart['items']; | ||
| 63 | + $items_ = $cart['items_']; | ||
| 64 | + } | ||
| 58 | 65 | ||
| 59 | if ( $this->request->isPost() ) | 66 | if ( $this->request->isPost() ) |
| 60 | { | 67 | { |
| 61 | $order['email'] = $this->request->getPost('login_email', 'string', NULL ); | 68 | $order['email'] = $this->request->getPost('login_email', 'string', NULL ); |
| 62 | $order['passwd'] = $this->request->getPost('login_passwd', 'string', NULL ); | 69 | $order['passwd'] = $this->request->getPost('login_passwd', 'string', NULL ); |
| 63 | - | ||
| 64 | $promo_code = $this->request->getPost('promo_code', 'string', NULL ); | 70 | $promo_code = $this->request->getPost('promo_code', 'string', NULL ); |
| 65 | 71 | ||
| 66 | if(empty($session_promo_code)) { | 72 | if(empty($session_promo_code)) { |
| @@ -73,8 +79,8 @@ class MenuController extends \controllers\ControllerBase | @@ -73,8 +79,8 @@ class MenuController extends \controllers\ControllerBase | ||
| 73 | 79 | ||
| 74 | $order_items = $this->request->getPost('count_items', NULL, [] ); | 80 | $order_items = $this->request->getPost('count_items', NULL, [] ); |
| 75 | $order_color = $this->request->getPost('color', NULL, [] ); | 81 | $order_color = $this->request->getPost('color', NULL, [] ); |
| 76 | - $order_size = $this->request->getPost('size', NULL, [] ); | ||
| 77 | - $order_is = $this->request->getPost('is', NULL, [] ); | 82 | + $order_size = $this->request->getPost('size', NULL, [] ); |
| 83 | + $order_is = $this->request->getPost('is', NULL, [] ); | ||
| 78 | $order['total_sum'] = 0; | 84 | $order['total_sum'] = 0; |
| 79 | 85 | ||
| 80 | foreach( $order_items as $key => $val ) | 86 | foreach( $order_items as $key => $val ) |
| @@ -83,15 +89,12 @@ class MenuController extends \controllers\ControllerBase | @@ -83,15 +89,12 @@ class MenuController extends \controllers\ControllerBase | ||
| 83 | $items_[$key]['total_price'] = round($val*$items_[$key]['price2'], 1); | 89 | $items_[$key]['total_price'] = round($val*$items_[$key]['price2'], 1); |
| 84 | 90 | ||
| 85 | if(isset($order_color[$key])) | 91 | if(isset($order_color[$key])) |
| 86 | - $items_[$key]['color'] = $order_color[$key]; | 92 | + $items_[$key]['color'] = $order_color[$key]; |
| 87 | 93 | ||
| 88 | - $items_[$key]['size'] = $order_size[$key]; | ||
| 89 | - $items_[$key]['is'] = $order_is[$key]; | ||
| 90 | - | 94 | + $items_[$key]['size'] = $order_size[$key]; |
| 95 | + $items_[$key]['is'] = $order_is[$key]; | ||
| 91 | $order['items'][] = $items_[$key]; | 96 | $order['items'][] = $items_[$key]; |
| 92 | $order['total_sum'] += $items_[$key]['total_price']; | 97 | $order['total_sum'] += $items_[$key]['total_price']; |
| 93 | - | ||
| 94 | - | ||
| 95 | $item_id_in_cart = $this->common->array_column( $in_cart, 'item_id' ); | 98 | $item_id_in_cart = $this->common->array_column( $in_cart, 'item_id' ); |
| 96 | 99 | ||
| 97 | if( in_array( $key, $item_id_in_cart ) ) | 100 | if( in_array( $key, $item_id_in_cart ) ) |
| @@ -106,9 +109,10 @@ class MenuController extends \controllers\ControllerBase | @@ -106,9 +109,10 @@ class MenuController extends \controllers\ControllerBase | ||
| 106 | } | 109 | } |
| 107 | } | 110 | } |
| 108 | 111 | ||
| 109 | - $order['total_sum'] = round( $order['total_sum'], 1 ); | 112 | + $order['total_sum'] = round( $order['total_sum'], 1 ); |
| 110 | 113 | ||
| 111 | $this->session->set( 'in_cart', $in_cart ); | 114 | $this->session->set( 'in_cart', $in_cart ); |
| 115 | + | ||
| 112 | if ( !empty( $order['email'] ) && !empty( $order['passwd'] ) ) | 116 | if ( !empty( $order['email'] ) && !empty( $order['passwd'] ) ) |
| 113 | { | 117 | { |
| 114 | 118 | ||
| @@ -130,8 +134,6 @@ class MenuController extends \controllers\ControllerBase | @@ -130,8 +134,6 @@ class MenuController extends \controllers\ControllerBase | ||
| 130 | $this->flash->success($this->languages->getTranslation()->_("please_change_the_password")); | 134 | $this->flash->success($this->languages->getTranslation()->_("please_change_the_password")); |
| 131 | $this->session->set( 'customer_email', $order['email'] ); | 135 | $this->session->set( 'customer_email', $order['email'] ); |
| 132 | return $this->response->redirect([ 'for' => 'finish_registration', 'language' => $this->lang_name ]); | 136 | return $this->response->redirect([ 'for' => 'finish_registration', 'language' => $this->lang_name ]); |
| 133 | - | ||
| 134 | - | ||
| 135 | } | 137 | } |
| 136 | } | 138 | } |
| 137 | 139 | ||
| @@ -178,7 +180,22 @@ class MenuController extends \controllers\ControllerBase | @@ -178,7 +180,22 @@ class MenuController extends \controllers\ControllerBase | ||
| 178 | $order['passwd_'] = $passwd_; | 180 | $order['passwd_'] = $passwd_; |
| 179 | $order['passwd'] = $this->common->hashPasswd( $passwd_ ); | 181 | $order['passwd'] = $this->common->hashPasswd( $passwd_ ); |
| 180 | 182 | ||
| 181 | - // save order | 183 | + //promocode |
| 184 | + if(!empty($promo_code)) { | ||
| 185 | + if($this->common->applyPromoCode($promo_code[0], $order['items'])) | ||
| 186 | + $this->common->countOrderSum($order); | ||
| 187 | + } | ||
| 188 | + | ||
| 189 | + //discount | ||
| 190 | + $discount = $this->getDi()->get('models')->getDiscount()->getActiveData(); | ||
| 191 | + if (!empty($discount)) { | ||
| 192 | + $discount = $discount[0]; | ||
| 193 | + } | ||
| 194 | + if ($this->common->applyPromoCode($discount, $order['items'])) { | ||
| 195 | + $this->common->countOrderSum($order); | ||
| 196 | + } | ||
| 197 | + | ||
| 198 | + // save order | ||
| 182 | $proposal_number = $this->models->getOrders()->addOrder($order); | 199 | $proposal_number = $this->models->getOrders()->addOrder($order); |
| 183 | $order['proposal_number'] = $proposal_number['proposal_number']; | 200 | $order['proposal_number'] = $proposal_number['proposal_number']; |
| 184 | $order['confirmed'] = $proposal_number['confirmed']; | 201 | $order['confirmed'] = $proposal_number['confirmed']; |
| @@ -187,11 +204,6 @@ class MenuController extends \controllers\ControllerBase | @@ -187,11 +204,6 @@ class MenuController extends \controllers\ControllerBase | ||
| 187 | $sms_text = "Vash zakaz prinyat. #:".$proposal_number['proposal_number']." V blijayshee vremya menedjer svyajetsya s Vami (044) 581-67-15"; | 204 | $sms_text = "Vash zakaz prinyat. #:".$proposal_number['proposal_number']." V blijayshee vremya menedjer svyajetsya s Vami (044) 581-67-15"; |
| 188 | $this->sms->sendSMS($order['phone'], $sms_text); | 205 | $this->sms->sendSMS($order['phone'], $sms_text); |
| 189 | 206 | ||
| 190 | - if(!empty($promo_code)) { | ||
| 191 | - if($this->common->applyPromoCode($promo_code[0], $order['items'])) | ||
| 192 | - $this->common->countOrderSum($order); | ||
| 193 | - } | ||
| 194 | - | ||
| 195 | // novaposhta | 207 | // novaposhta |
| 196 | if (!empty($proposal_number['novaposhta_tnn'])) | 208 | if (!empty($proposal_number['novaposhta_tnn'])) |
| 197 | { | 209 | { |
| @@ -251,7 +263,6 @@ class MenuController extends \controllers\ControllerBase | @@ -251,7 +263,6 @@ class MenuController extends \controllers\ControllerBase | ||
| 251 | return $this->response->redirect([ 'for' => 'basket', 'language' => $this->lang_name ]); | 263 | return $this->response->redirect([ 'for' => 'basket', 'language' => $this->lang_name ]); |
| 252 | } | 264 | } |
| 253 | } | 265 | } |
| 254 | - | ||
| 255 | } | 266 | } |
| 256 | 267 | ||
| 257 | $static_page_alias = '/basket'. $this->lang_name; | 268 | $static_page_alias = '/basket'. $this->lang_name; |
| @@ -271,7 +282,6 @@ class MenuController extends \controllers\ControllerBase | @@ -271,7 +282,6 @@ class MenuController extends \controllers\ControllerBase | ||
| 271 | ]); | 282 | ]); |
| 272 | } | 283 | } |
| 273 | 284 | ||
| 274 | - | ||
| 275 | public function orderCompletedAction() { | 285 | public function orderCompletedAction() { |
| 276 | $completed = $this->languages->getTranslation()->_("successfully_realized_order"); | 286 | $completed = $this->languages->getTranslation()->_("successfully_realized_order"); |
| 277 | 287 | ||
| @@ -329,7 +339,6 @@ class MenuController extends \controllers\ControllerBase | @@ -329,7 +339,6 @@ class MenuController extends \controllers\ControllerBase | ||
| 329 | ]); | 339 | ]); |
| 330 | } | 340 | } |
| 331 | 341 | ||
| 332 | - | ||
| 333 | public function getCitiesAction( ) | 342 | public function getCitiesAction( ) |
| 334 | { | 343 | { |
| 335 | header('Content-Type: application/json; charset=utf8'); | 344 | header('Content-Type: application/json; charset=utf8'); |
| @@ -357,7 +366,6 @@ class MenuController extends \controllers\ControllerBase | @@ -357,7 +366,6 @@ class MenuController extends \controllers\ControllerBase | ||
| 357 | die( json_encode( $selected_cities ) ); | 366 | die( json_encode( $selected_cities ) ); |
| 358 | } | 367 | } |
| 359 | 368 | ||
| 360 | - | ||
| 361 | public function getOfficesAction( ) | 369 | public function getOfficesAction( ) |
| 362 | { | 370 | { |
| 363 | header('Content-Type: application/json; charset=utf8'); | 371 | header('Content-Type: application/json; charset=utf8'); |
| @@ -378,7 +386,6 @@ class MenuController extends \controllers\ControllerBase | @@ -378,7 +386,6 @@ class MenuController extends \controllers\ControllerBase | ||
| 378 | die( json_encode( $offices ) ); | 386 | die( json_encode( $offices ) ); |
| 379 | } | 387 | } |
| 380 | 388 | ||
| 381 | - | ||
| 382 | public function addProductBasketAction(){ | 389 | public function addProductBasketAction(){ |
| 383 | $item_id = $_GET['productID']; | 390 | $item_id = $_GET['productID']; |
| 384 | $count_items = $_GET['productCount']; | 391 | $count_items = $_GET['productCount']; |
| @@ -392,21 +399,31 @@ class MenuController extends \controllers\ControllerBase | @@ -392,21 +399,31 @@ class MenuController extends \controllers\ControllerBase | ||
| 392 | } | 399 | } |
| 393 | 400 | ||
| 394 | public function getCartItemsAction() { | 401 | public function getCartItemsAction() { |
| 402 | + | ||
| 395 | $this->view->disable(); | 403 | $this->view->disable(); |
| 396 | 404 | ||
| 397 | $in_cart = $this->session->get('in_cart', []); | 405 | $in_cart = $this->session->get('in_cart', []); |
| 398 | 406 | ||
| 399 | - | ||
| 400 | - | ||
| 401 | $cart_items = $this->common->getCartItems($in_cart, $this->lang_id); | 407 | $cart_items = $this->common->getCartItems($in_cart, $this->lang_id); |
| 402 | 408 | ||
| 403 | - | ||
| 404 | - | ||
| 405 | if($this->session->get('special_users_id') != null) { | 409 | if($this->session->get('special_users_id') != null) { |
| 406 | $special_users_id = $this->session->get('special_users_id'); | 410 | $special_users_id = $this->session->get('special_users_id'); |
| 407 | $special_user = $this->models->getSpecialUsers()->getOneData($special_users_id)[0]; | 411 | $special_user = $this->models->getSpecialUsers()->getOneData($special_users_id)[0]; |
| 408 | } | 412 | } |
| 409 | 413 | ||
| 414 | + //discount | ||
| 415 | + | ||
| 416 | + $discount = $this->models->getDiscount()->getActiveData(); | ||
| 417 | + if (!empty($discount)) { | ||
| 418 | + $discount = $discount[0]; | ||
| 419 | + } | ||
| 420 | + if ($this->common->applyPromoCode($discount, $cart_items['items'])) { | ||
| 421 | + $this->common->countOrderSum($cart_items); | ||
| 422 | + $cart_items['total_price'] = $cart_items['total_sum']; | ||
| 423 | + } | ||
| 424 | + | ||
| 425 | + /************************/ | ||
| 426 | + | ||
| 410 | foreach($cart_items['items'] as $k => $item) { | 427 | foreach($cart_items['items'] as $k => $item) { |
| 411 | 428 | ||
| 412 | $cart_items['items'][$k]['group_sizes'] = $this->models->getItems()->getSizesByGroupId( $this->lang_id, $item['group_id'] ); | 429 | $cart_items['items'][$k]['group_sizes'] = $this->models->getItems()->getSizesByGroupId( $this->lang_id, $item['group_id'] ); |
| @@ -420,7 +437,6 @@ class MenuController extends \controllers\ControllerBase | @@ -420,7 +437,6 @@ class MenuController extends \controllers\ControllerBase | ||
| 420 | ? $cart_items['items'][$k]['prices'][$special_user['status']] | 437 | ? $cart_items['items'][$k]['prices'][$special_user['status']] |
| 421 | : $item['price2'], 2, '.', '' | 438 | : $item['price2'], 2, '.', '' |
| 422 | ); | 439 | ); |
| 423 | - | ||
| 424 | $cart_items['items'][$k]['total_price'] = $cart_items['items'][$k]['price'] * $item['count']; | 440 | $cart_items['items'][$k]['total_price'] = $cart_items['items'][$k]['price'] * $item['count']; |
| 425 | 441 | ||
| 426 | $cart_items['new_total_price'] += $cart_items['items'][$k]['total_price']; | 442 | $cart_items['new_total_price'] += $cart_items['items'][$k]['total_price']; |
| @@ -429,13 +445,13 @@ class MenuController extends \controllers\ControllerBase | @@ -429,13 +445,13 @@ class MenuController extends \controllers\ControllerBase | ||
| 429 | 445 | ||
| 430 | } else { | 446 | } else { |
| 431 | $cart_items['items'][$k]['price'] = $item['price2']; | 447 | $cart_items['items'][$k]['price'] = $item['price2']; |
| 432 | - } | 448 | + } |
| 449 | + | ||
| 433 | } | 450 | } |
| 434 | 451 | ||
| 435 | echo json_encode($cart_items); | 452 | echo json_encode($cart_items); |
| 436 | } | 453 | } |
| 437 | 454 | ||
| 438 | - | ||
| 439 | public function addToBasketAction() | 455 | public function addToBasketAction() |
| 440 | { | 456 | { |
| 441 | $count = 0; | 457 | $count = 0; |
src/app/frontend/controllers/PageController.php
| @@ -135,7 +135,16 @@ | @@ -135,7 +135,16 @@ | ||
| 135 | $timestamp_left = $left_date->getTimestamp(); | 135 | $timestamp_left = $left_date->getTimestamp(); |
| 136 | $active_sales[$k]['seconds_left'] = $timestamp_left - $now; | 136 | $active_sales[$k]['seconds_left'] = $timestamp_left - $now; |
| 137 | } | 137 | } |
| 138 | - /* | 138 | + |
| 139 | + $discount = $this->models->getDiscount()->getActiveData(); | ||
| 140 | + if (!empty($discount)) { | ||
| 141 | + $discount = $discount[0]; | ||
| 142 | + $discount['group_ids'] = str_replace('{', '', $discount['group_ids']); | ||
| 143 | + $discount['group_ids'] = str_replace('}', '', $discount['group_ids']); | ||
| 144 | + $discount['group_ids'] = explode(',', $discount['group_ids']); | ||
| 145 | + | ||
| 146 | + } | ||
| 147 | + | ||
| 139 | $css = [ | 148 | $css = [ |
| 140 | '/landing_sales/style.css', | 149 | '/landing_sales/style.css', |
| 141 | 150 | ||
| @@ -146,7 +155,7 @@ | @@ -146,7 +155,7 @@ | ||
| 146 | $js = [ | 155 | $js = [ |
| 147 | '/landing_sales/flipclock.min.js' | 156 | '/landing_sales/flipclock.min.js' |
| 148 | ]; | 157 | ]; |
| 149 | - */ | 158 | + |
| 150 | $css = null; | 159 | $css = null; |
| 151 | $js = null; | 160 | $js = null; |
| 152 | 161 | ||
| @@ -171,7 +180,8 @@ | @@ -171,7 +180,8 @@ | ||
| 171 | 'meta_title' => $meta_title[$this->lang_id], | 180 | 'meta_title' => $meta_title[$this->lang_id], |
| 172 | 'meta_description' => $meta_description[$this->lang_id], | 181 | 'meta_description' => $meta_description[$this->lang_id], |
| 173 | 'slider' => $slider, | 182 | 'slider' => $slider, |
| 174 | - 'active_sales' => $active_sales | 183 | + 'active_sales' => $active_sales, |
| 184 | + 'discount' => $discount | ||
| 175 | ]); | 185 | ]); |
| 176 | } | 186 | } |
| 177 | 187 | ||
| @@ -424,7 +434,15 @@ | @@ -424,7 +434,15 @@ | ||
| 424 | '1' => (isset( $seo['description'] ) && !empty( $seo['description'] ) ? $seo['description'] : 'Замовити '.$catalog['catalog']['title'].' у Києві за найкращою ціною. Якість товара підтверджена професіоналами.').(isset( $page ) && !empty( $page ) && $page != '1' ? ' страница '.$page : ''), | 434 | '1' => (isset( $seo['description'] ) && !empty( $seo['description'] ) ? $seo['description'] : 'Замовити '.$catalog['catalog']['title'].' у Києві за найкращою ціною. Якість товара підтверджена професіоналами.').(isset( $page ) && !empty( $page ) && $page != '1' ? ' страница '.$page : ''), |
| 425 | '2' => (isset( $seo['description'] ) && !empty( $seo['description'] ) ? $seo['description'] : 'Заказать '.$catalog['catalog']['title'].' в Киеве по лучшей цене. Качество товара подтверждена профессионалами.').(isset( $page ) && !empty( $page ) && $page != '1' ? ' страница '.$page : '') | 435 | '2' => (isset( $seo['description'] ) && !empty( $seo['description'] ) ? $seo['description'] : 'Заказать '.$catalog['catalog']['title'].' в Киеве по лучшей цене. Качество товара подтверждена профессионалами.').(isset( $page ) && !empty( $page ) && $page != '1' ? ' страница '.$page : '') |
| 426 | ]; | 436 | ]; |
| 427 | - | 437 | + |
| 438 | + $discount = $this->models->getDiscount()->getActiveData(); | ||
| 439 | + if (!empty($discount)) { | ||
| 440 | + $discount = $discount[0]; | ||
| 441 | + $discount['group_ids'] = str_replace('{', '', $discount['group_ids']); | ||
| 442 | + $discount['group_ids'] = str_replace('}', '', $discount['group_ids']); | ||
| 443 | + $discount['group_ids'] = explode(',', $discount['group_ids']); | ||
| 444 | + } | ||
| 445 | + | ||
| 428 | if($subtype==='semena_gazonnykh_trav_1c_21') | 446 | if($subtype==='semena_gazonnykh_trav_1c_21') |
| 429 | $this->view->setMainView('landing'); | 447 | $this->view->setMainView('landing'); |
| 430 | elseif($subtype==='nasinnja_gazonnikh_trav_1c1') | 448 | elseif($subtype==='nasinnja_gazonnikh_trav_1c1') |
| @@ -457,7 +475,8 @@ | @@ -457,7 +475,8 @@ | ||
| 457 | 'subtype_alias' => $subtype_alias, | 475 | 'subtype_alias' => $subtype_alias, |
| 458 | 'catalog_sales' => $catalog_sales, | 476 | 'catalog_sales' => $catalog_sales, |
| 459 | 'css' => $cssSale, | 477 | 'css' => $cssSale, |
| 460 | - 'js' => $jsSale | 478 | + 'js' => $jsSale, |
| 479 | + 'discount' => $discount | ||
| 461 | ]); | 480 | ]); |
| 462 | } | 481 | } |
| 463 | else | 482 | else |
| @@ -685,6 +704,14 @@ | @@ -685,6 +704,14 @@ | ||
| 685 | $catalog_sales[] = $active_sales[$k]; | 704 | $catalog_sales[] = $active_sales[$k]; |
| 686 | } | 705 | } |
| 687 | } | 706 | } |
| 707 | + | ||
| 708 | + $discount = $this->models->getDiscount()->getActiveData(); | ||
| 709 | + if (!empty($discount)) { | ||
| 710 | + $discount = $discount[0]; | ||
| 711 | + $discount['group_ids'] = str_replace('{', '', $discount['group_ids']); | ||
| 712 | + $discount['group_ids'] = str_replace('}', '', $discount['group_ids']); | ||
| 713 | + $discount['group_ids'] = explode(',', $discount['group_ids']); | ||
| 714 | + } | ||
| 688 | 715 | ||
| 689 | $cssSale = [ | 716 | $cssSale = [ |
| 690 | 'https://fonts.googleapis.com/css?family=Ubuntu:400,700,400italic', | 717 | 'https://fonts.googleapis.com/css?family=Ubuntu:400,700,400italic', |
| @@ -726,8 +753,9 @@ | @@ -726,8 +753,9 @@ | ||
| 726 | 'meta_link_next' => $meta_link_next[1], | 753 | 'meta_link_next' => $meta_link_next[1], |
| 727 | 'meta_link_prev' => $meta_link_prev[1], | 754 | 'meta_link_prev' => $meta_link_prev[1], |
| 728 | 'catalog_sales' => $catalog_sales, | 755 | 'catalog_sales' => $catalog_sales, |
| 729 | - 'css' => $cssSale, | ||
| 730 | - 'js' => $jsSale | 756 | + 'css' => $cssSale, |
| 757 | + 'js' => $jsSale, | ||
| 758 | + 'discount' => $discount | ||
| 731 | ]); | 759 | ]); |
| 732 | } | 760 | } |
| 733 | 761 | ||
| @@ -771,7 +799,6 @@ | @@ -771,7 +799,6 @@ | ||
| 771 | if( !empty( $type_child ) ) | 799 | if( !empty( $type_child ) ) |
| 772 | { | 800 | { |
| 773 | $type_alias = $type.'--'.$type_child; | 801 | $type_alias = $type.'--'.$type_child; |
| 774 | - | ||
| 775 | } | 802 | } |
| 776 | else | 803 | else |
| 777 | { | 804 | { |
| @@ -855,7 +882,7 @@ | @@ -855,7 +882,7 @@ | ||
| 855 | $news[$k]['link'] = $this->url->get(['for' => 'one_tips', 'tips_id' => $n['id'], 'tips_alias' => $n['alias']]); | 882 | $news[$k]['link'] = $this->url->get(['for' => 'one_tips', 'tips_id' => $n['id'], 'tips_alias' => $n['alias']]); |
| 856 | } | 883 | } |
| 857 | 884 | ||
| 858 | - // get popular items_groups | 885 | + // get popular items_groups |
| 859 | // | 886 | // |
| 860 | // $popular_groups = $this->models->getItems()->getPopularItems($this->lang_id); | 887 | // $popular_groups = $this->models->getItems()->getPopularItems($this->lang_id); |
| 861 | // $popular_groups = $this->common->explodeAlias($popular_groups); | 888 | // $popular_groups = $this->common->explodeAlias($popular_groups); |
| @@ -893,7 +920,14 @@ | @@ -893,7 +920,14 @@ | ||
| 893 | '1' => isset($seo['description']) && !empty($seo['description']) ? $seo['description'] : 'Професіонали рекомендують ' . $catalog_name . ' ' . $item['0']['title'] . ' в інтернет магазині насіння Semena.in.ua.', | 920 | '1' => isset($seo['description']) && !empty($seo['description']) ? $seo['description'] : 'Професіонали рекомендують ' . $catalog_name . ' ' . $item['0']['title'] . ' в інтернет магазині насіння Semena.in.ua.', |
| 894 | '2' => isset($seo['description']) && !empty($seo['description']) ? $seo['description'] : 'Профессионалы рекомендуют ' . $catalog_name . ' ' . $item['0']['title'] . ' в интернет магазине семян Semena.in.ua.' | 921 | '2' => isset($seo['description']) && !empty($seo['description']) ? $seo['description'] : 'Профессионалы рекомендуют ' . $catalog_name . ' ' . $item['0']['title'] . ' в интернет магазине семян Semena.in.ua.' |
| 895 | ]; | 922 | ]; |
| 896 | - | 923 | + |
| 924 | + $discount = $this->models->getDiscount()->getActiveData(); | ||
| 925 | + if (!empty($discount)) { | ||
| 926 | + $discount = $discount[0]; | ||
| 927 | + $discount['group_ids'] = str_replace('{', '', $discount['group_ids']); | ||
| 928 | + $discount['group_ids'] = str_replace('}', '', $discount['group_ids']); | ||
| 929 | + $discount['group_ids'] = explode(',', $discount['group_ids']); | ||
| 930 | + } | ||
| 897 | 931 | ||
| 898 | $this->view->setVars([ | 932 | $this->view->setVars([ |
| 899 | 'change_lang_url' => $lang_url, | 933 | 'change_lang_url' => $lang_url, |
| @@ -914,8 +948,9 @@ | @@ -914,8 +948,9 @@ | ||
| 914 | 'meta_description' => $meta_description[$this->lang_id], | 948 | 'meta_description' => $meta_description[$this->lang_id], |
| 915 | 'breadcrumbs' => $breadcrumbs, | 949 | 'breadcrumbs' => $breadcrumbs, |
| 916 | 'catalog_id' => $catalog_id, | 950 | 'catalog_id' => $catalog_id, |
| 917 | - 'type_alias' => $type_alias, | ||
| 918 | - 'subtype_alias' => $subtype_alias | 951 | + 'type_alias' => $type_alias, |
| 952 | + 'subtype_alias' => $subtype_alias, | ||
| 953 | + 'discount' => $discount | ||
| 919 | ]); | 954 | ]); |
| 920 | } | 955 | } |
| 921 | else | 956 | else |
| @@ -996,10 +1031,8 @@ | @@ -996,10 +1031,8 @@ | ||
| 996 | { | 1031 | { |
| 997 | $item_id = $this->request->getPost( 'item_id', 'int', '' ); | 1032 | $item_id = $this->request->getPost( 'item_id', 'int', '' ); |
| 998 | $group_alias = $this->request->getPost( 'group_alias', 'string', '' ); | 1033 | $group_alias = $this->request->getPost( 'group_alias', 'string', '' ); |
| 999 | - | ||
| 1000 | $item = $this->models->getItems()->getOneItem( $this->lang_id, $item_id ); | 1034 | $item = $this->models->getItems()->getOneItem( $this->lang_id, $item_id ); |
| 1001 | $filters = $this->models->getFilters()->getFiltersByItemId( $this->lang_id, $item_id ); | 1035 | $filters = $this->models->getFilters()->getFiltersByItemId( $this->lang_id, $item_id ); |
| 1002 | - | ||
| 1003 | $colors_info = $this->models->getItems()->getColorsInfoByColorId( $this->lang_id, $item['0']['color_id'] ); | 1036 | $colors_info = $this->models->getItems()->getColorsInfoByColorId( $this->lang_id, $item['0']['color_id'] ); |
| 1004 | 1037 | ||
| 1005 | $item['0']['color_title'] = NULL; | 1038 | $item['0']['color_title'] = NULL; |
| @@ -1017,11 +1050,10 @@ | @@ -1017,11 +1050,10 @@ | ||
| 1017 | '<div class="float properties" style="color:'.$colors_info['0']['absolute_color'].'">'.$colors_info['0']['color_title'].'</div>'; | 1050 | '<div class="float properties" style="color:'.$colors_info['0']['absolute_color'].'">'.$colors_info['0']['color_title'].'</div>'; |
| 1018 | } | 1051 | } |
| 1019 | 1052 | ||
| 1020 | - $item['0']['explode'] = explode( '/', $item['0']['full_alias'] ); | ||
| 1021 | - $item['0']['type_alias'] = $item['0']['explode']['1']; | ||
| 1022 | - $item['0']['subtype_alias'] = $item['0']['explode']['2']; | ||
| 1023 | - unset( $item['0']['explode'] ); | ||
| 1024 | - | 1053 | + $item['0']['explode'] = explode( '/', $item['0']['full_alias'] ); |
| 1054 | + $item['0']['type_alias'] = $item['0']['explode']['1']; | ||
| 1055 | + $item['0']['subtype_alias'] = $item['0']['explode']['2']; | ||
| 1056 | + unset( $item['0']['explode'] ); | ||
| 1025 | $item['0']['alias'] = $this->url->get([ 'for' => 'item', 'type' => $item['0']['type_alias'], 'subtype' => $item['0']['subtype_alias'], 'group_alias' => $group_alias, 'item_id' => $item_id ]); | 1057 | $item['0']['alias'] = $this->url->get([ 'for' => 'item', 'type' => $item['0']['type_alias'], 'subtype' => $item['0']['subtype_alias'], 'group_alias' => $group_alias, 'item_id' => $item_id ]); |
| 1026 | $item['0']['filters'] = $filters; | 1058 | $item['0']['filters'] = $filters; |
| 1027 | $item['0']['images'] = $this->etc->int2arr( $item['0']['photogallery'] ); | 1059 | $item['0']['images'] = $this->etc->int2arr( $item['0']['photogallery'] ); |
| @@ -1074,10 +1106,25 @@ | @@ -1074,10 +1106,25 @@ | ||
| 1074 | 'special_user' => $special_user | 1106 | 'special_user' => $special_user |
| 1075 | ]); | 1107 | ]); |
| 1076 | } | 1108 | } |
| 1109 | + | ||
| 1110 | + $discount = $this->models->getDiscount()->getActiveData(); | ||
| 1111 | + if (!empty($discount)) { | ||
| 1112 | + $discount = $discount[0]; | ||
| 1113 | + $discount['group_ids'] = str_replace('{', '', $discount['group_ids']); | ||
| 1114 | + $discount['group_ids'] = str_replace('}', '', $discount['group_ids']); | ||
| 1115 | + $discount['group_ids'] = explode(',', $discount['group_ids']); | ||
| 1116 | + if ($discount['discount'] > 0 && $discount['discount'] <= 100 && in_array($item_id, $discount['group_ids'])) { | ||
| 1117 | + $discount = $discount['discount']; | ||
| 1118 | + } | ||
| 1119 | + else { | ||
| 1120 | + $discount = 0; | ||
| 1121 | + } | ||
| 1122 | + } | ||
| 1077 | 1123 | ||
| 1078 | $this->view->pick('page/changeWithSize'); | 1124 | $this->view->pick('page/changeWithSize'); |
| 1079 | $this->view->setVars([ | 1125 | $this->view->setVars([ |
| 1080 | - 'item' => $item['0'] | 1126 | + 'item' => $item['0'], |
| 1127 | + 'discount' => $discount | ||
| 1081 | ]); | 1128 | ]); |
| 1082 | $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); | 1129 | $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); |
| 1083 | } | 1130 | } |
| @@ -1419,15 +1466,19 @@ | @@ -1419,15 +1466,19 @@ | ||
| 1419 | public function aboutuaAction(){ | 1466 | public function aboutuaAction(){ |
| 1420 | $this->view->setMainView('about_ukr'); | 1467 | $this->view->setMainView('about_ukr'); |
| 1421 | } | 1468 | } |
| 1469 | + | ||
| 1422 | public function aboutengAction(){ | 1470 | public function aboutengAction(){ |
| 1423 | $this->view->setMainView('about_eng'); | 1471 | $this->view->setMainView('about_eng'); |
| 1424 | } | 1472 | } |
| 1473 | + | ||
| 1425 | public function please_returnAction(){ | 1474 | public function please_returnAction(){ |
| 1426 | $this->view->setMainView('please_return'); | 1475 | $this->view->setMainView('please_return'); |
| 1427 | } | 1476 | } |
| 1428 | - public function basket_uaAction(){ | 1477 | + |
| 1478 | + public function basket_uaAction(){ | ||
| 1429 | $this->view->setMainView('basket_ua'); | 1479 | $this->view->setMainView('basket_ua'); |
| 1430 | } | 1480 | } |
| 1481 | + | ||
| 1431 | public function basket_ruAction(){ | 1482 | public function basket_ruAction(){ |
| 1432 | $this->view->setMainView('basket_ru'); | 1483 | $this->view->setMainView('basket_ru'); |
| 1433 | } | 1484 | } |
| @@ -1544,4 +1595,4 @@ | @@ -1544,4 +1595,4 @@ | ||
| 1544 | header(!empty($language) ? "Location:".$language : 'Location:/'); | 1595 | header(!empty($language) ? "Location:".$language : 'Location:/'); |
| 1545 | } | 1596 | } |
| 1546 | 1597 | ||
| 1547 | - } | ||
| 1548 | \ No newline at end of file | 1598 | \ No newline at end of file |
| 1599 | + } |
src/app/frontend/views/index.php
| @@ -93,7 +93,6 @@ $page_title = isset( $page_title ) && !empty( $page_title ) ? $page_title : ''; | @@ -93,7 +93,6 @@ $page_title = isset( $page_title ) && !empty( $page_title ) ? $page_title : ''; | ||
| 93 | </div> | 93 | </div> |
| 94 | <div class="contact_mob_phones"> | 94 | <div class="contact_mob_phones"> |
| 95 | <span class="small_digits">(093)</span><span> 026-86-64</span> | 95 | <span class="small_digits">(093)</span><span> 026-86-64</span> |
| 96 | - | ||
| 97 | <div style="float:right;font-size:12px;margin-right:65px;" class="contact_callback_phones"> | 96 | <div style="float:right;font-size:12px;margin-right:65px;" class="contact_callback_phones"> |
| 98 | <a href="<?= $this->seoUrl->setUrl('/callback') ?>" class="callback" title="<?= $t->_("Feedback")?>" id="ajax_simple" data-options="width: 940, height: 400" target="<?= $this->seoUrl->setUrl( $this->url->get([ 'for' => 'callback' ])) ?>" data-type="ajax"><?= $t->_("Feedback")?></a> | 97 | <a href="<?= $this->seoUrl->setUrl('/callback') ?>" class="callback" title="<?= $t->_("Feedback")?>" id="ajax_simple" data-options="width: 940, height: 400" target="<?= $this->seoUrl->setUrl( $this->url->get([ 'for' => 'callback' ])) ?>" data-type="ajax"><?= $t->_("Feedback")?></a> |
| 99 | </div> | 98 | </div> |
| @@ -245,8 +244,8 @@ $page_title = isset( $page_title ) && !empty( $page_title ) ? $page_title : ''; | @@ -245,8 +244,8 @@ $page_title = isset( $page_title ) && !empty( $page_title ) ? $page_title : ''; | ||
| 245 | </div> | 244 | </div> |
| 246 | </div> | 245 | </div> |
| 247 | 246 | ||
| 248 | -<div class="open-delivery-modal"> | ||
| 249 | - <div></div> | 247 | +<div class="open-delivery-modal hidden_modal"> |
| 248 | + <div><img src="/images/popup_full.png" class="popup_full"><img src="/images/popup_open.png" class="popup_mobile"><span class="modal_close"></span></div> | ||
| 250 | </div> | 249 | </div> |
| 251 | <link rel="stylesheet" type="text/css" href="css/fontlato.css"> | 250 | <link rel="stylesheet" type="text/css" href="css/fontlato.css"> |
| 252 | <div class="delivery-form-par"> | 251 | <div class="delivery-form-par"> |
| @@ -268,7 +267,10 @@ $page_title = isset( $page_title ) && !empty( $page_title ) ? $page_title : ''; | @@ -268,7 +267,10 @@ $page_title = isset( $page_title ) && !empty( $page_title ) ? $page_title : ''; | ||
| 268 | </div> | 267 | </div> |
| 269 | 268 | ||
| 270 | <script> | 269 | <script> |
| 271 | - $(".open-delivery-modal").click(function(){ | 270 | + $(document).ready(function(){ |
| 271 | + setTimeout(function(){$(".open-delivery-modal").show();},1000); | ||
| 272 | + }); | ||
| 273 | + $(".open-delivery-modal div img").click(function(){ | ||
| 272 | $(".delivery-form-par").show(); | 274 | $(".delivery-form-par").show(); |
| 273 | $(".delivery-form-par").animate({opacity: "1"}, 500, function() {}); | 275 | $(".delivery-form-par").animate({opacity: "1"}, 500, function() {}); |
| 274 | $(".delivery-form-par .popup-main-delivery").animate({opacity: "1",top: "15%"}, 300, function() {}); | 276 | $(".delivery-form-par .popup-main-delivery").animate({opacity: "1",top: "15%"}, 300, function() {}); |
| @@ -278,6 +280,9 @@ $page_title = isset( $page_title ) && !empty( $page_title ) ? $page_title : ''; | @@ -278,6 +280,9 @@ $page_title = isset( $page_title ) && !empty( $page_title ) ? $page_title : ''; | ||
| 278 | $(".delivery-form-par").animate({opacity: "0"}, 500, function() {}); | 280 | $(".delivery-form-par").animate({opacity: "0"}, 500, function() {}); |
| 279 | setTimeout(function(){$(".delivery-form-par").hide();}, 600); | 281 | setTimeout(function(){$(".delivery-form-par").hide();}, 600); |
| 280 | }); | 282 | }); |
| 283 | + $(".modal_close").click(function(){ | ||
| 284 | + $(".open-delivery-modal").hide(); | ||
| 285 | + }); | ||
| 281 | </script> | 286 | </script> |
| 282 | <?php | 287 | <?php |
| 283 | if( !IS_PRODUCTION ) | 288 | if( !IS_PRODUCTION ) |
src/app/frontend/views/page/changeWithSize.php
| @@ -6,9 +6,25 @@ if(isset($special_user)) { | @@ -6,9 +6,25 @@ if(isset($special_user)) { | ||
| 6 | } else { | 6 | } else { |
| 7 | $data['price'] = $item['price2']; | 7 | $data['price'] = $item['price2']; |
| 8 | } | 8 | } |
| 9 | -$data['html'] = '<div class="clearfix buy_compare"> | ||
| 10 | - <div class="one_item_price float">'. $t->_("price") . | ||
| 11 | - ' <span>' . $data['price'] . '</span> грн'; | 9 | +$old_price = $data['price']; |
| 10 | +$data['price'] = $data['price']*(1-$discount/100); | ||
| 11 | +$data['price'] = number_format($data['price'], 2, '.', ' '); | ||
| 12 | +if ($discount == 0) { | ||
| 13 | + $data['html'] = | ||
| 14 | + '<div class="clearfix buy_compare"> | ||
| 15 | + <div class="one_item_price float">'. $t->_("price") . | ||
| 16 | + ' <span>' . $data['price'] . '</span> грн | ||
| 17 | + '; | ||
| 18 | +} | ||
| 19 | +else { | ||
| 20 | + $data['html'] = ' | ||
| 21 | + <div class="clearfix buy_compare"> | ||
| 22 | + <div class="one_item_price float">'. $t->_("price") . | ||
| 23 | + ' <span style="text-decoration: line-through;"><span>' . $old_price . '</span> грн</span> | ||
| 24 | + <br/> | ||
| 25 | + <span>' . $data['price'] . '</span> грн | ||
| 26 | + '; | ||
| 27 | +} | ||
| 12 | 28 | ||
| 13 | $data['html'] .= '</ul></div><div data-group_id="' . $item['group_id'] .'" class="one_item_buttons float">'; | 29 | $data['html'] .= '</ul></div><div data-group_id="' . $item['group_id'] .'" class="one_item_buttons float">'; |
| 14 | 30 | ||
| @@ -52,5 +68,4 @@ if(!empty($item['prices'][0])) { | @@ -52,5 +68,4 @@ if(!empty($item['prices'][0])) { | ||
| 52 | } | 68 | } |
| 53 | } | 69 | } |
| 54 | 70 | ||
| 55 | - | ||
| 56 | echo json_encode($data); | 71 | echo json_encode($data); |
| 57 | \ No newline at end of file | 72 | \ No newline at end of file |
src/app/frontend/views/page/item.php
| 1 | <div id="content" class="clearfix"> | 1 | <div id="content" class="clearfix"> |
| 2 | -<div class="item"> | ||
| 3 | -<div class="breadcrumbs"> | ||
| 4 | - <div class="inner"> | ||
| 5 | - <div class="item_menu_shadow"></div> | ||
| 6 | - <?= $breadcrumbs ?> | ||
| 7 | - </div> | ||
| 8 | -</div> | ||
| 9 | - <?php $url = $this->router->getRewriteUri(); ?> | 2 | + <div class="item"> |
| 3 | + <div class="breadcrumbs"> | ||
| 4 | + <div class="inner"> | ||
| 5 | + <div class="item_menu_shadow"></div> | ||
| 6 | + <?= $breadcrumbs ?> | ||
| 7 | + </div> | ||
| 8 | + </div> | ||
| 9 | + <?php $url = $this->router->getRewriteUri(); ?> | ||
| 10 | 10 | ||
| 11 | - <div class="<?= strstr($url, '/dobriva_ta_zasobi_zakhistu_1c0/zasobi_zakhistu_1c1') || strstr($url, '/udobrenija_i_sredstva_zashchity_1c_20/sredstva_zashchity_1c_21') ? 'zasobi_zakhistu_logo' : null ?> item_wrapper" itemscope itemtype="http://schema.org/Product"> | ||
| 12 | - <div class="inner clearfix"> | ||
| 13 | - <div class="float item_images"> | ||
| 14 | - <ul class="thumbnails"> | ||
| 15 | - <?php | 11 | + <div class="<?= strstr($url, '/dobriva_ta_zasobi_zakhistu_1c0/zasobi_zakhistu_1c1') || strstr($url, '/udobrenija_i_sredstva_zashchity_1c_20/sredstva_zashchity_1c_21') ? 'zasobi_zakhistu_logo' : null ?> item_wrapper" itemscope itemtype="http://schema.org/Product"> |
| 12 | + <div class="inner clearfix"> | ||
| 13 | + <div class="float item_images"> | ||
| 14 | + <ul class="thumbnails"> | ||
| 15 | + <?php | ||
| 16 | 16 | ||
| 17 | - $data_images = ''; | 17 | + $data_images = ''; |
| 18 | 18 | ||
| 19 | - if( !empty( $item['images'] ) ) | ||
| 20 | - { | ||
| 21 | - $data_images .= | ||
| 22 | - '<li class="float width_400 '.(count($item['images'])%3==0 ? 'last' : '').'">'. | ||
| 23 | - '<a href="'.$this->storage->getPhotoUrl( $item['images'][0], 'group', '800x' ).'" title="'.$item['title'].'" data-options="thumbnail: \''.$this->storage->getPhotoUrl( $item['cover'], 'avatar', '128x' ).'\'" class="thumbnail">'. | ||
| 24 | - '<img src="'.$this->storage->getPhotoUrl( $item['images'][0], 'group', '400x400' ).'" alt="'.$item['title'].'" class="image_400">'. | ||
| 25 | - '</a>'. | ||
| 26 | - '</li>'; | ||
| 27 | - | ||
| 28 | - foreach( $item['images'] as $k => $i ) | 19 | + if( !empty( $item['images'] ) ) |
| 29 | { | 20 | { |
| 30 | $data_images .= | 21 | $data_images .= |
| 31 | - '<li class="float width_128 '.(($k+1)%3==0 ? 'last' : '').'">'. | ||
| 32 | - '<a href="'.$this->storage->getPhotoUrl( $i, 'group', '800x' ).'" title="'.$item['title'].'" data-options="thumbnail: \''.$this->storage->getPhotoUrl( $i, 'group', '128x128' ).'\'" class="thumbnail">'. | ||
| 33 | - '<img itemprop="image" title="'.$item['title'].'" src="'.$this->storage->getPhotoUrl( $i, 'group', '128x128' ).'" alt="Купити '.$item['title'].' в Києві та Львові" class="image_128">'. | 22 | + '<li class="float width_400 '.(count($item['images'])%3==0 ? 'last' : '').'">'. |
| 23 | + '<a href="'.$this->storage->getPhotoUrl( $item['images'][0], 'group', '800x' ).'" title="'.$item['title'].'" data-options="thumbnail: \''.$this->storage->getPhotoUrl( $item['cover'], 'avatar', '128x' ).'\'" class="thumbnail">'. | ||
| 24 | + '<img src="'.$this->storage->getPhotoUrl( $item['images'][0], 'group', '400x400' ).'" alt="'.$item['title'].'" class="image_400">'. | ||
| 34 | '</a>'. | 25 | '</a>'. |
| 35 | '</li>'; | 26 | '</li>'; |
| 36 | - } | ||
| 37 | 27 | ||
| 28 | + foreach( $item['images'] as $k => $i ) | ||
| 29 | + { | ||
| 30 | + $data_images .= | ||
| 31 | + '<li class="float width_128 '.(($k+1)%3==0 ? 'last' : '').'">'. | ||
| 32 | + '<a href="'.$this->storage->getPhotoUrl( $i, 'group', '800x' ).'" title="'.$item['title'].'" data-options="thumbnail: \''.$this->storage->getPhotoUrl( $i, 'group', '128x128' ).'\'" class="thumbnail">'. | ||
| 33 | + '<img itemprop="image" title="'.$item['title'].'" src="'.$this->storage->getPhotoUrl( $i, 'group', '128x128' ).'" alt="Купити '.$item['title'].' в Києві та Львові" class="image_128">'. | ||
| 34 | + '</a>'. | ||
| 35 | + '</li>'; | ||
| 36 | + } | ||
| 38 | 37 | ||
| 39 | - } | ||
| 40 | - elseif( !empty( $item['cover'] ) && empty( $item['images'] ) ) | ||
| 41 | - { | ||
| 42 | - $data_images .= | ||
| 43 | - '<li class="float width_400">'. | ||
| 44 | - '<a href="'.$this->storage->getPhotoUrl( $item['cover'], 'avatar', '800x' ).'" title="'.$item['title'].'" data-options="thumbnail: \''.$this->storage->getPhotoUrl( $item['cover'], 'avatar', '128x' ).'\'" class="thumbnail">'. | ||
| 45 | - '<img src="'.$this->storage->getPhotoUrl( $item['cover'], 'avatar', '400x' ).'" alt="'.$item['title'].'" class="image_400">'. | ||
| 46 | - '</a>'. | ||
| 47 | - '</li>'; | ||
| 48 | - } | ||
| 49 | - else | ||
| 50 | - { | ||
| 51 | - $data_images .= | ||
| 52 | - '<li class="float width_400"> | ||
| 53 | - <img src="/images/item_main_photo.jpg" alt="" width="400" height="400"> | ||
| 54 | - </li> | ||
| 55 | - | ||
| 56 | - <li class="float width_128"><img src="/images/item_photo.jpg" alt="" width="128" height="128"></li> | ||
| 57 | - <li class="float width_128 last"><img src="/images/item_photo.jpg" alt="" width="128" height="128"></li>'; | ||
| 58 | - } | ||
| 59 | - echo( $data_images ); | ||
| 60 | 38 | ||
| 61 | - ?> | 39 | + } |
| 40 | + elseif( !empty( $item['cover'] ) && empty( $item['images'] ) ) | ||
| 41 | + { | ||
| 42 | + $data_images .= | ||
| 43 | + '<li class="float width_400">'. | ||
| 44 | + '<a href="'.$this->storage->getPhotoUrl( $item['cover'], 'avatar', '800x' ).'" title="'.$item['title'].'" data-options="thumbnail: \''.$this->storage->getPhotoUrl( $item['cover'], 'avatar', '128x' ).'\'" class="thumbnail">'. | ||
| 45 | + '<img src="'.$this->storage->getPhotoUrl( $item['cover'], 'avatar', '400x' ).'" alt="'.$item['title'].'" class="image_400">'. | ||
| 46 | + '</a>'. | ||
| 47 | + '</li>'; | ||
| 48 | + } | ||
| 49 | + else | ||
| 50 | + { | ||
| 51 | + $data_images .= | ||
| 52 | + '<li class="float width_400"> | ||
| 53 | + <img src="/images/item_main_photo.jpg" alt="" width="400" height="400"> | ||
| 54 | + </li> | ||
| 55 | + | ||
| 56 | + <li class="float width_128"><img src="/images/item_photo.jpg" alt="" width="128" height="128"></li> | ||
| 57 | + <li class="float width_128 last"><img src="/images/item_photo.jpg" alt="" width="128" height="128"></li>'; | ||
| 58 | + } | ||
| 59 | + echo( $data_images ); | ||
| 62 | 60 | ||
| 63 | - </ul> | ||
| 64 | - <?php if(!empty($item['front_video'])):?> | ||
| 65 | - <br> | ||
| 66 | - <div class="front_video_block"> | ||
| 67 | - <?php if(!empty($item['front_video'])){ | ||
| 68 | - $video = explode(',',$item['front_video']); | ||
| 69 | - foreach($video as $v): ?> | ||
| 70 | - <iframe class="video_iframe" width="400" height="220" src="<?= $v ?>" frameborder="0" allowfullscreen></iframe> | ||
| 71 | - <?php endforeach; | ||
| 72 | - }?> | ||
| 73 | - </div> | ||
| 74 | - <?php endif;?> | ||
| 75 | - </div> | 61 | + ?> |
| 76 | 62 | ||
| 77 | - <div class="float item_content"> | ||
| 78 | - <div class="item_title"><h1 class="item_name_h1" itemprop="name"><?= $item['title'] ?></h1></div> | ||
| 79 | - <div class="item_decription"><?= $item['description'] ?></div> | ||
| 80 | - <div style="float:right;width:270px;font-weight:bold;line-height:20px;"> | ||
| 81 | - <img src="/images/truck.jpg" width="64" height="64" border="0" align="left" style="margin-right:10px;" /> | ||
| 82 | - <?= $t->_("truck")?> | ||
| 83 | - </div> | ||
| 84 | - <div style="float:left"> | ||
| 85 | - <div class="clearfix"> | ||
| 86 | - <div class="float properties">Код:</div> | ||
| 87 | - <div class="float properties properties_article"><?= $item['product_id'] ?></div> | ||
| 88 | - </div> | ||
| 89 | - <div class="clearfix"> | ||
| 90 | - <div class="float properties"><?= $t->_("availability")?>:</div> | ||
| 91 | - <div class="float presence_status"> | ||
| 92 | - <?= $item['status'] == 1 ? '<div data-stock="1" id="stock" class="properties properties_presence ">'.$t->_("in_stock").'</div>' : ($item['status'] == 2 ? '<div data-stock="0" id="stock" class="properties properties_absent">'.$t->_("znyt").'</div>' : '<div data-stock="0" id="stock" class="properties properties_absent">'.$t->_("missing").'</div>'); ?> | ||
| 93 | - </div> | 63 | + </ul> |
| 64 | + <?php if(!empty($item['front_video'])):?> | ||
| 65 | + <br> | ||
| 66 | + <div class="front_video_block"> | ||
| 67 | + <?php if(!empty($item['front_video'])){ | ||
| 68 | + $video = explode(',',$item['front_video']); | ||
| 69 | + foreach($video as $v): ?> | ||
| 70 | + <iframe class="video_iframe" width="400" height="220" src="<?= $v ?>" frameborder="0" allowfullscreen></iframe> | ||
| 71 | + <?php endforeach; | ||
| 72 | + }?> | ||
| 73 | + </div> | ||
| 74 | + <?php endif;?> | ||
| 94 | </div> | 75 | </div> |
| 95 | 76 | ||
| 96 | - <div class="clearfix"> | ||
| 97 | - <div class="float properties"><?= $t->_("number_of") ?>:</div> | ||
| 98 | - <div class="float count minus"> | 77 | + <div class="float item_content"> |
| 78 | + <div class="item_title"><h1 class="item_name_h1" itemprop="name"><?= $item['title'] ?></h1></div> | ||
| 79 | + <div class="item_decription"><?= $item['description'] ?></div> | ||
| 80 | + <div style="float:right;width:270px;font-weight:bold;line-height:20px;"> | ||
| 81 | + <img src="/images/truck.jpg" width="64" height="64" border="0" align="left" style="margin-right:10px;" /> | ||
| 82 | + <?= $t->_("truck")?> | ||
| 99 | </div> | 83 | </div> |
| 100 | - <div class="float count count_input"> | ||
| 101 | - <input name="count_items" class="count_items" type="text" value="1" /> | 84 | + <div style="float:left"> |
| 85 | + <div class="clearfix"> | ||
| 86 | + <div class="float properties">Код:</div> | ||
| 87 | + <div class="float properties properties_article"><?= $item['product_id'] ?></div> | ||
| 102 | </div> | 88 | </div> |
| 103 | - <div class="float count plus"> | 89 | + <div class="clearfix"> |
| 90 | + <div class="float properties"><?= $t->_("availability")?>:</div> | ||
| 91 | + <div class="float presence_status"> | ||
| 92 | + <?= $item['status'] == 1 ? '<div data-stock="1" id="stock" class="properties properties_presence ">'.$t->_("in_stock").'</div>' : ($item['status'] == 2 ? '<div data-stock="0" id="stock" class="properties properties_absent">'.$t->_("znyt").'</div>' : '<div data-stock="0" id="stock" class="properties properties_absent">'.$t->_("missing").'</div>'); ?> | ||
| 93 | + </div> | ||
| 104 | </div> | 94 | </div> |
| 105 | - </div> | ||
| 106 | - </div><div style="clear:both;"></div> | ||
| 107 | - <div class="clearfix packing"> | ||
| 108 | - <div class="float properties"><?= $t->_("packing")?>:</div> | ||
| 109 | - <div class="float packing_images clearfix"> | ||
| 110 | - <?php | ||
| 111 | 95 | ||
| 112 | - $data_sizes = ''; | 96 | + <div class="clearfix"> |
| 97 | + <div class="float properties"><?= $t->_("number_of") ?>:</div> | ||
| 98 | + <div class="float count minus"> | ||
| 99 | + </div> | ||
| 100 | + <div class="float count count_input"> | ||
| 101 | + <input name="count_items" class="count_items" type="text" value="1" /> | ||
| 102 | + </div> | ||
| 103 | + <div class="float count plus"> | ||
| 104 | + </div> | ||
| 105 | + </div> | ||
| 106 | + </div><div style="clear:both;"></div> | ||
| 107 | + <div class="clearfix packing"> | ||
| 108 | + <div class="float properties"><?= $t->_("packing")?>:</div> | ||
| 109 | + <div class="float packing_images clearfix"> | ||
| 110 | + <?php | ||
| 111 | + | ||
| 112 | + $data_sizes = ''; | ||
| 113 | 113 | ||
| 114 | - if( !empty( $sizes_colors__ ) ) | ||
| 115 | - { | ||
| 116 | - $i = 0; | ||
| 117 | - foreach( $sizes_colors['sizes'] as $k => $s ) | 114 | + if( !empty( $sizes_colors__ ) ) |
| 118 | { | 115 | { |
| 119 | - if( isset( $sizes_colors__[$item['color_id']][$s] ) ) | 116 | + $i = 0; |
| 117 | + foreach( $sizes_colors['sizes'] as $k => $s ) | ||
| 120 | { | 118 | { |
| 121 | - $data_sizes .= | ||
| 122 | - '<a href="'.$sizes_colors__[$item['color_id']][$s]['link'].'" class="group_sizes'.($s == $item['size'] ? ' active' : '').' exist" style="padding-top:'.($i*3).'px; width:'.(31+($i*3)).'px" data-item_id="'.$sizes_colors__[$item['color_id']][$s]['id'].'" data-catalog_id="'.$catalog_id.'" data-group_alias="'.$group_alias.'">'. | ||
| 123 | - '<span class="group_sizes_header"></span>'. | ||
| 124 | - '<span class="group_sizes_content">'.$s.'</span>'. | ||
| 125 | - '</a>'; | 119 | + if( isset( $sizes_colors__[$item['color_id']][$s] ) ) |
| 120 | + { | ||
| 121 | + $data_sizes .= | ||
| 122 | + '<a href="'.$sizes_colors__[$item['color_id']][$s]['link'].'" class="group_sizes'.($s == $item['size'] ? ' active' : '').' exist" style="padding-top:'.($i*3).'px; width:'.(31+($i*3)).'px" data-item_id="'.$sizes_colors__[$item['color_id']][$s]['id'].'" data-catalog_id="'.$catalog_id.'" data-group_alias="'.$group_alias.'">'. | ||
| 123 | + '<span class="group_sizes_header"></span>'. | ||
| 124 | + '<span class="group_sizes_content">'.$s.'</span>'. | ||
| 125 | + '</a>'; | ||
| 126 | + } | ||
| 127 | + else | ||
| 128 | + { | ||
| 129 | + $data_sizes .= | ||
| 130 | + '<a href="#" onClick="return false;" class="group_sizes'.($s == $item['size'] ? ' active' : '').' not_exist" style="padding-top:'.($i*3).'px; width:'.(31+($i*3)).'px" data-item_id="" data-catalog_id="'.$catalog_id.'" data-group_alias="'.$group_alias.'">'. | ||
| 131 | + '<span class="group_sizes_header"></span>'. | ||
| 132 | + '<span class="group_sizes_content">'.$s.'</span>'. | ||
| 133 | + '</a>'; | ||
| 134 | + } | ||
| 135 | + | ||
| 136 | + $i++; | ||
| 126 | } | 137 | } |
| 127 | - else | 138 | + } |
| 139 | + else | ||
| 140 | + { | ||
| 141 | + foreach( $sizes as $k => $s ) | ||
| 128 | { | 142 | { |
| 129 | $data_sizes .= | 143 | $data_sizes .= |
| 130 | - '<a href="#" onClick="return false;" class="group_sizes'.($s == $item['size'] ? ' active' : '').' not_exist" style="padding-top:'.($i*3).'px; width:'.(31+($i*3)).'px" data-item_id="" data-catalog_id="'.$catalog_id.'" data-group_alias="'.$group_alias.'">'. | 144 | + '<a href="'.$this->seoUrl->setUrl($s['link']).'" class="group_sizes'.($k == $active_size ? ' active' : '').'" style="padding-top:'.($k*3).'px; width:'.(31+($k*3)).'px" data-item_id="'.$s['id'].'" data-catalog_id="'.$catalog_id.'" data-group_alias="'.$group_alias.'">'. |
| 131 | '<span class="group_sizes_header"></span>'. | 145 | '<span class="group_sizes_header"></span>'. |
| 132 | - '<span class="group_sizes_content">'.$s.'</span>'. | 146 | + '<span class="group_sizes_content">'.$s['size'].'</span>'. |
| 133 | '</a>'; | 147 | '</a>'; |
| 134 | } | 148 | } |
| 135 | - | ||
| 136 | - $i++; | ||
| 137 | - } | ||
| 138 | - } | ||
| 139 | - else | ||
| 140 | - { | ||
| 141 | - foreach( $sizes as $k => $s ) | ||
| 142 | - { | ||
| 143 | - $data_sizes .= | ||
| 144 | - '<a href="'.$this->seoUrl->setUrl($s['link']).'" class="group_sizes'.($k == $active_size ? ' active' : '').'" style="padding-top:'.($k*3).'px; width:'.(31+($k*3)).'px" data-item_id="'.$s['id'].'" data-catalog_id="'.$catalog_id.'" data-group_alias="'.$group_alias.'">'. | ||
| 145 | - '<span class="group_sizes_header"></span>'. | ||
| 146 | - '<span class="group_sizes_content">'.$s['size'].'</span>'. | ||
| 147 | - '</a>'; | ||
| 148 | } | 149 | } |
| 149 | - } | ||
| 150 | 150 | ||
| 151 | - echo( $data_sizes ); | 151 | + echo( $data_sizes ); |
| 152 | 152 | ||
| 153 | - ?> | 153 | + ?> |
| 154 | 154 | ||
| 155 | + </div> | ||
| 155 | </div> | 156 | </div> |
| 156 | - </div> | ||
| 157 | 157 | ||
| 158 | - <?php | 158 | + <?php |
| 159 | 159 | ||
| 160 | - if( !empty( $sizes_colors__ ) ) | ||
| 161 | - { | ||
| 162 | - $data_colors = | ||
| 163 | - '<div class="clearfix colors">'. | ||
| 164 | - '<div class="float properties">'.$t->_("choose_color").': </div>'. | ||
| 165 | - '<div class="float properties" style="color:'.$item['absolute_color'].'">'.$item['color_title'].'</div>'. | ||
| 166 | - '</div>'. | 160 | + if( !empty( $sizes_colors__ ) ) |
| 161 | + { | ||
| 162 | + $data_colors = | ||
| 163 | + '<div class="clearfix colors">'. | ||
| 164 | + '<div class="float properties">'.$t->_("choose_color").': </div>'. | ||
| 165 | + '<div class="float properties" style="color:'.$item['absolute_color'].'">'.$item['color_title'].'</div>'. | ||
| 166 | + '</div>'. | ||
| 167 | 167 | ||
| 168 | - '<div class="sliderkit carousel-demo1 colors_images clearfix">'. | ||
| 169 | - '<div class="sliderkit-nav">'; | 168 | + '<div class="sliderkit carousel-demo1 colors_images clearfix">'. |
| 169 | + '<div class="sliderkit-nav">'; | ||
| 170 | 170 | ||
| 171 | - $data_colors .= '<div class="sliderkit-nav-clip" '.( count( $sizes_colors__ ) > 6 ? 'style="margin: 0 30px"' : '' ).'><ul>'; | 171 | + $data_colors .= '<div class="sliderkit-nav-clip" '.( count( $sizes_colors__ ) > 6 ? 'style="margin: 0 30px"' : '' ).'><ul>'; |
| 172 | 172 | ||
| 173 | - foreach( $sizes_colors__ as $k => $s ) | ||
| 174 | - { | ||
| 175 | - sort($s); | ||
| 176 | - $data_colors .= | ||
| 177 | - '<li class="change_with_color" data-item_id="'.$s['0']['id'].'" data-catalog_id="'.$catalog_id.'" data-group_id="'.$item['group_id'].'" data-group_alias="'.$group_alias.'" data-color_id="'.$s['0']['color_id'].'">'. | ||
| 178 | - '<a href="'.$this->seoUrl->setUrl($s['0']['link']).'" title="'.$s['0']['color_title'].'" '.( $s['0']['color_id'] == $item['color_id'] ? 'class="active" style="border-color:'.$item['absolute_color'].'"' : '' ).' ><img src="'.$s['0']['image'].'" alt="'.$s['0']['color_title'].'" width="60" height="60" /></a>'. | ||
| 179 | - '</li>'; | ||
| 180 | - } | 173 | + foreach( $sizes_colors__ as $k => $s ) |
| 174 | + { | ||
| 175 | + sort($s); | ||
| 176 | + $data_colors .= | ||
| 177 | + '<li class="change_with_color" data-item_id="'.$s['0']['id'].'" data-catalog_id="'.$catalog_id.'" data-group_id="'.$item['group_id'].'" data-group_alias="'.$group_alias.'" data-color_id="'.$s['0']['color_id'].'">'. | ||
| 178 | + '<a href="'.$this->seoUrl->setUrl($s['0']['link']).'" title="'.$s['0']['color_title'].'" '.( $s['0']['color_id'] == $item['color_id'] ? 'class="active" style="border-color:'.$item['absolute_color'].'"' : '' ).' ><img src="'.$s['0']['image'].'" alt="'.$s['0']['color_title'].'" width="60" height="60" /></a>'. | ||
| 179 | + '</li>'; | ||
| 180 | + } | ||
| 181 | 181 | ||
| 182 | - $data_colors .= '</ul></div>'; | 182 | + $data_colors .= '</ul></div>'; |
| 183 | 183 | ||
| 184 | - if( count( $sizes_colors__ ) > 6 ) | ||
| 185 | - { | ||
| 186 | - $data_colors .= | ||
| 187 | - '<div class="sliderkit-btn sliderkit-nav-btn sliderkit-nav-prev"><a href="#" title="Previous line"><span>Previous</span></a></div>'. | ||
| 188 | - '<div class="sliderkit-btn sliderkit-nav-btn sliderkit-nav-next"><a href="#" title="Next line"><span>Next</span></a></div>'; | ||
| 189 | - } | 184 | + if( count( $sizes_colors__ ) > 6 ) |
| 185 | + { | ||
| 186 | + $data_colors .= | ||
| 187 | + '<div class="sliderkit-btn sliderkit-nav-btn sliderkit-nav-prev"><a href="#" title="Previous line"><span>Previous</span></a></div>'. | ||
| 188 | + '<div class="sliderkit-btn sliderkit-nav-btn sliderkit-nav-next"><a href="#" title="Next line"><span>Next</span></a></div>'; | ||
| 189 | + } | ||
| 190 | 190 | ||
| 191 | - $data_colors .= | ||
| 192 | - '</div>'. | ||
| 193 | - '</div>'; | 191 | + $data_colors .= |
| 192 | + '</div>'. | ||
| 193 | + '</div>'; | ||
| 194 | 194 | ||
| 195 | - echo $data_colors; | ||
| 196 | - } | 195 | + echo $data_colors; |
| 196 | + } | ||
| 197 | 197 | ||
| 198 | - ?> | 198 | + ?> |
| 199 | 199 | ||
| 200 | - <div class="change_with_size"> | ||
| 201 | - <div class="clearfix buy_compare"> | ||
| 202 | - <div class="one_item_price float" itemprop="offers" itemscope itemtype="http://schema.org/Offer" ><?= $t->_("price")?> | ||
| 203 | - <ul> | ||
| 204 | - <li> | ||
| 205 | - <span itemprop="price"><?= number_format($item['price2'],2,'.',' ') ?></span> грн<span style="display:none;" itemprop="priceCurrency">UAH</span> | ||
| 206 | - <div style="display: none" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating"> | ||
| 207 | - <span itemprop="ratingValue">5</span> | ||
| 208 | - <span itemprop="reviewCount">31</span> | ||
| 209 | - </div> | ||
| 210 | - </li> | ||
| 211 | - </ul> | 200 | + <div class="change_with_size"> |
| 201 | + <div class="clearfix buy_compare"> | ||
| 202 | + <div class="one_item_price float" itemprop="offers" itemscope itemtype="http://schema.org/Offer" ><?= $t->_("price")?> | ||
| 203 | + <ul> | ||
| 204 | + <li> | ||
| 205 | + <?php | ||
| 206 | + // скидка | ||
| 207 | + if (!empty($discount)) { | ||
| 208 | + if (isset($discount) && $discount['discount'] > 0 && $discount['discount'] <= 100 && in_array($item['id'], $discount['group_ids'])) { | ||
| 209 | + echo '<span itemprop="price">'.number_format($item['price2']*(1-$discount['discount']/100), 2, '.', ' ').'</span> грн<span style="display:none;" itemprop="priceCurrency">UAH</span>'; | ||
| 210 | + } | ||
| 211 | + else { | ||
| 212 | + //echo '<span itemprop="price">'.number_format($item['price2'], 2, '.', ' ').'</span> грн<span style="display:none;" itemprop="priceCurrency">UAH</span>'; | ||
| 213 | + } | ||
| 214 | + } | ||
| 215 | + else { | ||
| 216 | + //echo '<span itemprop="price">'.number_format($item['price2'], 2, '.', ' ').'</span> грн<span style="display:none;" itemprop="priceCurrency">UAH</span>'; | ||
| 217 | + } | ||
| 218 | + ?> | ||
| 219 | + <!--<span itemprop="price"><?//= number_format($item['price2'], 2, '.', ' '); ?></span> грн<span style="display:none;" itemprop="priceCurrency">UAH</span>--> | ||
| 220 | + <div style="display: none" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating"> | ||
| 221 | + <span itemprop="ratingValue">5</span> | ||
| 222 | + <span itemprop="reviewCount">31</span> | ||
| 223 | + </div> | ||
| 224 | + </li> | ||
| 225 | + </ul> | ||
| 226 | + </div> | ||
| 227 | + <div class="one_item_buttons float"> | ||
| 228 | + <a href="<?= $this->seoUrl->setUrl($this->url->get([ 'for' => 'item', 'type' => $type_alias, 'subtype' => $subtype_alias, 'group_alias' => $group_alias, 'item_id' => $item_id ])); ?>" title="Додати <?= $item['title'] ?> у корзину" class="<?= $item['status'] == 1 ? 'btn green buy' : 'not_available grey'?>"><?= $t->_("buy")?></a> | ||
| 229 | + </div> | ||
| 230 | + <div class="one_item_compare float"> | ||
| 231 | + <?= '<input type="checkbox" id="compare_item_'.$item['id'].'" class="compare_item" value="'.$item['type'].'-'.$catalog_id.'-'.$item['id'].'" '.(!empty($item['checked']) ? 'checked="checked"' : '').' />' ?> | ||
| 232 | + <label for="compare_item_<?= $item['id'] ?>"><span></span><?= $t->_("compared_to")?></label> | ||
| 233 | + <input type="hidden" class="item_id_for_basket" value="<?= $item['id'] ?>"> | ||
| 234 | + <input type="hidden" class="current_item_size" value="<?= $item['size'] ?>"> | ||
| 235 | + </div> | ||
| 212 | </div> | 236 | </div> |
| 213 | - <div class="one_item_buttons float"> | ||
| 214 | - <a href="<?= $this->seoUrl->setUrl($this->url->get([ 'for' => 'item', 'type' => $type_alias, 'subtype' => $subtype_alias, 'group_alias' => $group_alias, 'item_id' => $item_id ])); ?>" title="Додати <?= $item['title'] ?> у корзину" class="<?= $item['status'] == 1 ? 'btn green buy' : 'not_available grey'?>"><?= $t->_("buy")?></a> | ||
| 215 | - </div> | ||
| 216 | - <div class="one_item_compare float"> | ||
| 217 | - <?= '<input type="checkbox" id="compare_item_'.$item['id'].'" class="compare_item" value="'.$item['type'].'-'.$catalog_id.'-'.$item['id'].'" '.(!empty($item['checked']) ? 'checked="checked"' : '').' />' ?> | ||
| 218 | - <label for="compare_item_<?= $item['id'] ?>"><span></span><?= $t->_("compared_to")?></label> | ||
| 219 | - <input type="hidden" class="item_id_for_basket" value="<?= $item['id'] ?>"> | ||
| 220 | - <input type="hidden" class="current_item_size" value="<?= $item['size'] ?>"> | ||
| 221 | - </div> | ||
| 222 | - </div> | ||
| 223 | - <div class="clearfix features"> | ||
| 224 | - <?php | 237 | + <div class="clearfix features"> |
| 238 | + <?php | ||
| 225 | 239 | ||
| 226 | - $data_features = ''; | 240 | + $data_features = ''; |
| 227 | 241 | ||
| 228 | - foreach( $filters as $f ) | ||
| 229 | - { | ||
| 230 | - $data_features .= '<a href="#" class="float">'.$f['value_value'].'</a>'; | ||
| 231 | - } | 242 | + foreach( $filters as $f ) |
| 243 | + { | ||
| 244 | + $data_features .= '<a href="#" class="float">'.$f['value_value'].'</a>'; | ||
| 245 | + } | ||
| 232 | 246 | ||
| 233 | - echo( $data_features ); | 247 | + echo( $data_features ); |
| 234 | 248 | ||
| 235 | - ?> | ||
| 236 | - </div> | ||
| 237 | - </div> | ||
| 238 | - <div class="clearfix item_menu"> | ||
| 239 | - <div class="item_menu_header_menu clearfix"> | ||
| 240 | - <div class="tabs clearfix"> | ||
| 241 | - <ul class="change_item_description"> | ||
| 242 | - <li class="float active_tab first_tab" data-change_item_description="tabs_description"><a href="#" title=""><?= $t->_("description")?></a></li> | ||
| 243 | - <li class="float not_active" data-change_item_description="tabs_properties"><a href="#" title=""><?= $t->_("features")?></a></li> | ||
| 244 | - <?php if(!empty($item['content_video'])):?><li class="float not_active" data-change_item_description="tabs_video"><a href="#" title=""><?= $t->_("video")?></a></li><?php endif;?> | ||
| 245 | - <li class="float last_tab not_active" data-change_item_description="tabs_comments"><a href="#" title=""><?= $t->_("reviews")?></a></li> | ||
| 246 | - </ul> | 249 | + ?> |
| 247 | </div> | 250 | </div> |
| 248 | </div> | 251 | </div> |
| 249 | - <div class="item_menu_content"> | ||
| 250 | - <div class="tabs_description item_menu_content_wrapper" itemprop="description"><?= $item['content_description'] ?></div> | ||
| 251 | - <div class="display_none tabs_properties item_menu_content_wrapper"> | ||
| 252 | - <?php | ||
| 253 | - | ||
| 254 | - $data_properties = ''; | ||
| 255 | - | ||
| 256 | - if( isset( $item['brand'] ) && !empty( $item['brand'] ) ) | ||
| 257 | - { | ||
| 258 | - $data_properties .= | ||
| 259 | - '<div class="clearfix properties_producer">'. | ||
| 260 | - '<p class="float key_value">'.$t->_("producer").':</p>'. | ||
| 261 | - '<a class="float" href="#" title="'.$item['brand'].'">'.$item['brand'].'</a>'. | ||
| 262 | - '</div>'; | ||
| 263 | - } | 252 | + <div class="clearfix item_menu"> |
| 253 | + <div class="item_menu_header_menu clearfix"> | ||
| 254 | + <div class="tabs clearfix"> | ||
| 255 | + <ul class="change_item_description"> | ||
| 256 | + <li class="float active_tab first_tab" data-change_item_description="tabs_description"><a href="#" title=""><?= $t->_("description")?></a></li> | ||
| 257 | + <li class="float not_active" data-change_item_description="tabs_properties"><a href="#" title=""><?= $t->_("features")?></a></li> | ||
| 258 | + <?php if(!empty($item['content_video'])):?><li class="float not_active" data-change_item_description="tabs_video"><a href="#" title=""><?= $t->_("video")?></a></li><?php endif;?> | ||
| 259 | + <li class="float last_tab not_active" data-change_item_description="tabs_comments"><a href="#" title=""><?= $t->_("reviews")?></a></li> | ||
| 260 | + </ul> | ||
| 261 | + </div> | ||
| 262 | + </div> | ||
| 263 | + <div class="item_menu_content"> | ||
| 264 | + <div class="tabs_description item_menu_content_wrapper" itemprop="description"><?= $item['content_description'] ?></div> | ||
| 265 | + <div class="display_none tabs_properties item_menu_content_wrapper"> | ||
| 266 | + <?php | ||
| 264 | 267 | ||
| 265 | - if( isset( $properties ) && !empty( $properties ) ) | ||
| 266 | - { | ||
| 267 | - $data_properties .= '<div class="item_properties">'; | 268 | + $data_properties = ''; |
| 268 | 269 | ||
| 269 | - foreach( $properties as $p ) | 270 | + if( isset( $item['brand'] ) && !empty( $item['brand'] ) ) |
| 270 | { | 271 | { |
| 271 | $data_properties .= | 272 | $data_properties .= |
| 272 | - '<div class="clearfix">'. | ||
| 273 | - '<p class="float key_value">'.$p['key_value'].':</p>'. | ||
| 274 | - '<a class="float" href="#">'.$p['value_value'].'</a>'. | 273 | + '<div class="clearfix properties_producer">'. |
| 274 | + '<p class="float key_value">'.$t->_("producer").':</p>'. | ||
| 275 | + '<a class="float" href="#" title="'.$item['brand'].'">'.$item['brand'].'</a>'. | ||
| 275 | '</div>'; | 276 | '</div>'; |
| 276 | } | 277 | } |
| 277 | 278 | ||
| 278 | - $data_properties .= '</div>'; | ||
| 279 | - } | ||
| 280 | - | ||
| 281 | - echo( $data_properties ); | 279 | + if( isset( $properties ) && !empty( $properties ) ) |
| 280 | + { | ||
| 281 | + $data_properties .= '<div class="item_properties">'; | ||
| 282 | + | ||
| 283 | + foreach( $properties as $p ) | ||
| 284 | + { | ||
| 285 | + $data_properties .= | ||
| 286 | + '<div class="clearfix">'. | ||
| 287 | + '<p class="float key_value">'.$p['key_value'].':</p>'. | ||
| 288 | + '<a class="float" href="#">'.$p['value_value'].'</a>'. | ||
| 289 | + '</div>'; | ||
| 290 | + } | ||
| 291 | + | ||
| 292 | + $data_properties .= '</div>'; | ||
| 293 | + } | ||
| 282 | 294 | ||
| 283 | - ?> | 295 | + echo( $data_properties ); |
| 296 | + | ||
| 297 | + ?> | ||
| 298 | + </div> | ||
| 299 | + <div class="display_none tabs_video item_menu_content_wrapper"> | ||
| 300 | + <?php if(!empty($item['content_video'])){ | ||
| 301 | + $video = explode(',',$item['content_video']); | ||
| 302 | + foreach($video as $v): ?> | ||
| 303 | + <iframe class="video_iframe" width="520" height="340" src="<?= $v ?>" frameborder="0" allowfullscreen></iframe> | ||
| 304 | + <?php endforeach; | ||
| 305 | + }?> | ||
| 306 | + </div> | ||
| 307 | + <div class="display_none tabs_comments item_menu_content_wrapper"> | ||
| 308 | + <div id="mc-review"></div> | ||
| 309 | + <script type="text/javascript"> | ||
| 310 | + cackle_widget = window.cackle_widget || []; | ||
| 311 | + cackle_widget.push({widget: 'Review', id: 38277}); | ||
| 312 | + (function() { | ||
| 313 | + var mc = document.createElement('script'); | ||
| 314 | + mc.type = 'text/javascript'; | ||
| 315 | + mc.async = true; | ||
| 316 | + mc.src = ('https:' == document.location.protocol ? 'https' : 'http') + '://cackle.me/widget.js'; | ||
| 317 | + var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(mc, s.nextSibling); | ||
| 318 | + })(); | ||
| 319 | + </script> | ||
| 320 | + <a id="mc-link" href="http://cackle.ru">Социальные отзывы <b style="color:#4FA3DA">Cackl</b><b style="color:#F65077">e</b></a> | ||
| 321 | + </div> | ||
| 284 | </div> | 322 | </div> |
| 285 | - <div class="display_none tabs_video item_menu_content_wrapper"> | ||
| 286 | - <?php if(!empty($item['content_video'])){ | ||
| 287 | - $video = explode(',',$item['content_video']); | ||
| 288 | - foreach($video as $v): ?> | ||
| 289 | - <iframe class="video_iframe" width="520" height="340" src="<?= $v ?>" frameborder="0" allowfullscreen></iframe> | ||
| 290 | - <?php endforeach; | ||
| 291 | - }?> | 323 | + </div> |
| 324 | + </div> | ||
| 325 | + </div> | ||
| 326 | + </div> | ||
| 327 | + | ||
| 328 | + <div class="other_items"> | ||
| 329 | + <div class="item_menu_header_menu clearfix"> | ||
| 330 | + <div class="inner"> | ||
| 331 | + <div class="tabs clearfix"> | ||
| 332 | + <ul class="change_similar_items"> | ||
| 333 | + <li class="float active_tab first_tab"> | ||
| 334 | + <?= '<a href="#" title="'.$t->_("related_items").'" data-change_similar_items="buy_with" data-catalog_id="'.$catalog_id.'" data-group_id="'.$item['group_id'].'">'.$t->_("related_items").'</a>' ?> | ||
| 335 | + </li> | ||
| 336 | + <li class="float not_active"> | ||
| 337 | + <?= '<a href="#" title="'.$t->_("similar_items").'" data-change_similar_items="same" data-catalog_id="'.$catalog_id.'" data-group_id="'.$item['group_id'].'">'.$t->_("similar_items").'</a>' ?> | ||
| 338 | + </li> | ||
| 339 | + <li class="float not_active"> | ||
| 340 | + <?= '<a href="#" title="'.$t->_("popular_items").'" data-change_similar_items="popular" data-catalog_id="'.$catalog_id.'" data-group_id="'.$item['group_id'].'">'.$t->_("popular_items").'</a>' ?> | ||
| 341 | + </li> | ||
| 342 | + <li class="float last_tab not_active"> | ||
| 343 | + <?= '<a href="#" title="'.$t->_("watched").'" data-change_similar_items="viewed" data-catalog_id="'.$catalog_id.'" data-group_id="'.$item['group_id'].'">'.$t->_("watched").'</a>' ?> | ||
| 344 | + </li> | ||
| 345 | + </ul> | ||
| 292 | </div> | 346 | </div> |
| 293 | - <div class="display_none tabs_comments item_menu_content_wrapper"> | ||
| 294 | - <div id="mc-review"></div> | ||
| 295 | - <script type="text/javascript"> | ||
| 296 | - cackle_widget = window.cackle_widget || []; | ||
| 297 | - cackle_widget.push({widget: 'Review', id: 38277}); | ||
| 298 | - (function() { | ||
| 299 | - var mc = document.createElement('script'); | ||
| 300 | - mc.type = 'text/javascript'; | ||
| 301 | - mc.async = true; | ||
| 302 | - mc.src = ('https:' == document.location.protocol ? 'https' : 'http') + '://cackle.me/widget.js'; | ||
| 303 | - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(mc, s.nextSibling); | ||
| 304 | - })(); | ||
| 305 | - </script> | ||
| 306 | - <a id="mc-link" href="http://cackle.ru">Социальные отзывы <b style="color:#4FA3DA">Cackl</b><b style="color:#F65077">e</b></a> | ||
| 307 | - </div> | ||
| 308 | </div> | 347 | </div> |
| 309 | </div> | 348 | </div> |
| 349 | + <div class="items inner clearfix"> | ||
| 350 | + <?php if( !empty( $popular_groups ) ): | ||
| 351 | + foreach( $popular_groups as $k => $p ): | ||
| 352 | + $this->partial('partial/item_group', ['k' => $k, 'i' => $p, 'limit' => 5]); | ||
| 353 | + endforeach; | ||
| 354 | + endif; ?> | ||
| 355 | + </div> | ||
| 310 | </div> | 356 | </div> |
| 311 | - </div> | ||
| 312 | -</div> | ||
| 313 | 357 | ||
| 358 | + <?php | ||
| 359 | + if( !empty( $news ) ) | ||
| 360 | + { | ||
| 361 | + $data_news = | ||
| 362 | + '<div class="news_wrapper">'. | ||
| 363 | + '<div class="inner clearfix">'; | ||
| 314 | 364 | ||
| 365 | + foreach( $news as $k => $n ) | ||
| 366 | + { | ||
| 367 | + $data_news .= | ||
| 368 | + '<div class="one_news float'.( ($k+1)%2==0 ? ' last' : '' ).'">'. | ||
| 369 | + '<div class="one_news_img float">'. | ||
| 370 | + ( !empty( $n['cover'] ) | ||
| 371 | + ? | ||
| 372 | + '<a href="'.$this->seoUrl->setUrl($n['link']).'" title="'.$n['title'].'">'. | ||
| 373 | + '<img src="'.$n['image'].'" alt="" width="180" height="120" />'. | ||
| 374 | + '</a>' | ||
| 375 | + : | ||
| 376 | + ''). | ||
| 377 | + '</div>'. | ||
| 378 | + '<div class="one_news_content float'.( empty( $n['cover'] ) ? ' full_width' : '').'">'. | ||
| 379 | + '<a href="'.$this->seoUrl->setUrl($n['link']).'" title="'.$n['title'].'">'. | ||
| 380 | + '<h2>'.$n['title'].'</h2>'. | ||
| 381 | + '</a>'. | ||
| 382 | + '<p>'.$this->common->shortenString( $n['abstract_info'], 230 ).'</p>'. | ||
| 383 | + '<a href="'.$this->seoUrl->setUrl($n['link']).'" title="'.$n['title'].'" class="news_more">Докладніше</a>'. | ||
| 384 | + '</div>'. | ||
| 385 | + '</div>'; | ||
| 386 | + } | ||
| 315 | 387 | ||
| 316 | -<div class="other_items"> | ||
| 317 | - <div class="item_menu_header_menu clearfix"> | ||
| 318 | - <div class="inner"> | ||
| 319 | - <div class="tabs clearfix"> | ||
| 320 | - <ul class="change_similar_items"> | ||
| 321 | - <li class="float active_tab first_tab"> | ||
| 322 | - <?= '<a href="#" title="'.$t->_("related_items").'" data-change_similar_items="buy_with" data-catalog_id="'.$catalog_id.'" data-group_id="'.$item['group_id'].'">'.$t->_("related_items").'</a>' ?> | ||
| 323 | - </li> | ||
| 324 | - <li class="float not_active"> | ||
| 325 | - <?= '<a href="#" title="'.$t->_("similar_items").'" data-change_similar_items="same" data-catalog_id="'.$catalog_id.'" data-group_id="'.$item['group_id'].'">'.$t->_("similar_items").'</a>' ?> | ||
| 326 | - </li> | ||
| 327 | - <li class="float not_active"> | ||
| 328 | - <?= '<a href="#" title="'.$t->_("popular_items").'" data-change_similar_items="popular" data-catalog_id="'.$catalog_id.'" data-group_id="'.$item['group_id'].'">'.$t->_("popular_items").'</a>' ?> | ||
| 329 | - </li> | ||
| 330 | - <li class="float last_tab not_active"> | ||
| 331 | - <?= '<a href="#" title="'.$t->_("watched").'" data-change_similar_items="viewed" data-catalog_id="'.$catalog_id.'" data-group_id="'.$item['group_id'].'">'.$t->_("watched").'</a>' ?> | ||
| 332 | - </li> | ||
| 333 | - </ul> | ||
| 334 | - </div> | ||
| 335 | - </div> | ||
| 336 | - </div> | ||
| 337 | - <div class="items inner clearfix"> | ||
| 338 | - <?php if( !empty( $popular_groups ) ): | ||
| 339 | - foreach( $popular_groups as $k => $p ): | ||
| 340 | - $this->partial('partial/item_group', ['k' => $k, 'i' => $p, 'limit' => 5]); | ||
| 341 | - endforeach; | ||
| 342 | - endif; ?> | ||
| 343 | - </div> | ||
| 344 | -</div> | 388 | + $data_news .= '</div></div>'; |
| 345 | 389 | ||
| 346 | -<?php | ||
| 347 | - | ||
| 348 | -if( !empty( $news ) ) | ||
| 349 | -{ | ||
| 350 | - $data_news = | ||
| 351 | - '<div class="news_wrapper">'. | ||
| 352 | - '<div class="inner clearfix">'; | ||
| 353 | - | ||
| 354 | - foreach( $news as $k => $n ) | ||
| 355 | - { | ||
| 356 | - $data_news .= | ||
| 357 | - '<div class="one_news float'.( ($k+1)%2==0 ? ' last' : '' ).'">'. | ||
| 358 | - '<div class="one_news_img float">'. | ||
| 359 | - ( !empty( $n['cover'] ) | ||
| 360 | - ? | ||
| 361 | - '<a href="'.$this->seoUrl->setUrl($n['link']).'" title="'.$n['title'].'">'. | ||
| 362 | - '<img src="'.$n['image'].'" alt="" width="180" height="120" />'. | ||
| 363 | - '</a>' | ||
| 364 | - : | ||
| 365 | - ''). | ||
| 366 | - '</div>'. | ||
| 367 | - '<div class="one_news_content float'.( empty( $n['cover'] ) ? ' full_width' : '').'">'. | ||
| 368 | - '<a href="'.$this->seoUrl->setUrl($n['link']).'" title="'.$n['title'].'">'. | ||
| 369 | - '<h2>'.$n['title'].'</h2>'. | ||
| 370 | - '</a>'. | ||
| 371 | - '<p>'.$this->common->shortenString( $n['abstract_info'], 230 ).'</p>'. | ||
| 372 | - '<a href="'.$this->seoUrl->setUrl($n['link']).'" title="'.$n['title'].'" class="news_more">Докладніше</a>'. | ||
| 373 | - '</div>'. | ||
| 374 | - '</div>'; | ||
| 375 | - } | ||
| 376 | - | ||
| 377 | - $data_news .= '</div></div>'; | ||
| 378 | - | ||
| 379 | - echo( $data_news ); | ||
| 380 | -} | ||
| 381 | - | ||
| 382 | -?> | ||
| 383 | - | ||
| 384 | -<!--<div class="content_accost"> | 390 | + echo( $data_news ); |
| 391 | + } | ||
| 392 | + ?> | ||
| 393 | + | ||
| 394 | + <!-- | ||
| 395 | + <div class="content_accost"> | ||
| 396 | + <div class="shadow_to_down"></div> | ||
| 397 | + <div class="inner"> | ||
| 398 | + <div class="content_accost_title"></div> | ||
| 399 | + <div class="content_accost_content"> | ||
| 400 | + <p> | ||
| 401 | + Інтернет - магазин ТМ "Професійне насіння" | ||
| 402 | + </p> | ||
| 403 | + </div> | ||
| 404 | + </div> | ||
| 405 | + </div> content_accost | ||
| 406 | + --> | ||
| 407 | + <div class="content_accost"> | ||
| 385 | <div class="shadow_to_down"></div> | 408 | <div class="shadow_to_down"></div> |
| 386 | <div class="inner"> | 409 | <div class="inner"> |
| 387 | <div class="content_accost_title"></div> | 410 | <div class="content_accost_title"></div> |
| 388 | <div class="content_accost_content"> | 411 | <div class="content_accost_content"> |
| 389 | <p> | 412 | <p> |
| 390 | - Інтернет - магазин ТМ "Професійне насіння" | 413 | + <?= isset( $seo['seo_text'] ) && !empty( $seo['seo_text'] ) ? $seo['seo_text'] : ''?> |
| 391 | </p> | 414 | </p> |
| 392 | </div> | 415 | </div> |
| 393 | </div> | 416 | </div> |
| 394 | - </div> content_accost --> | ||
| 395 | - <div class="content_accost"> | ||
| 396 | - <div class="shadow_to_down"></div> | ||
| 397 | - <div class="inner"> | ||
| 398 | - <div class="content_accost_title"></div> | ||
| 399 | - <div class="content_accost_content"> | ||
| 400 | - <p> | ||
| 401 | - <?= isset( $seo['seo_text'] ) && !empty( $seo['seo_text'] ) ? $seo['seo_text'] : ''?> | ||
| 402 | - </p> | ||
| 403 | - </div> | ||
| 404 | </div> | 417 | </div> |
| 405 | - </div> | ||
| 406 | -<div class="content_blog"> | ||
| 407 | - <div class="inner"> | ||
| 408 | 418 | ||
| 409 | - <div class="links clearfix"> | 419 | + <div class="content_blog"> |
| 420 | + <div class="inner"> | ||
| 410 | 421 | ||
| 411 | - <div class="float fb"> | ||
| 412 | - <div id="fb-root"></div> | 422 | + <div class="links clearfix"> |
| 413 | 423 | ||
| 414 | - <div class="fb-like" data-href="#" data-layout="button_count" data-action="like" data-show-faces="false" data-share="false"></div> | ||
| 415 | - </div> | ||
| 416 | - <div class="float ok"> | ||
| 417 | - <div id="ok_shareWidget"></div> | ||
| 418 | - </div> | ||
| 419 | - <div class="float vk"> | ||
| 420 | - <script type="text/javascript"><!-- | ||
| 421 | - document.write(VK.Share.button(false,{type: "round", text: "Нравится"})); | ||
| 422 | - --> | ||
| 423 | - </script> | ||
| 424 | - </div> | 424 | + <div class="float fb"> |
| 425 | + <div id="fb-root"></div> | ||
| 426 | + | ||
| 427 | + <div class="fb-like" data-href="#" data-layout="button_count" data-action="like" data-show-faces="false" data-share="false"></div> | ||
| 428 | + </div> | ||
| 429 | + <div class="float ok"> | ||
| 430 | + <div id="ok_shareWidget"></div> | ||
| 431 | + </div> | ||
| 432 | + <div class="float vk"> | ||
| 433 | + <script type="text/javascript"><!-- | ||
| 434 | + document.write(VK.Share.button(false,{type: "round", text: "Нравится"})); | ||
| 435 | + --> | ||
| 436 | + </script> | ||
| 437 | + </div> | ||
| 425 | 438 | ||
| 426 | - <div class="float share"> | ||
| 427 | - <p class="share_title float"><?= $t->_("share")?>:</p> | 439 | + <div class="float share"> |
| 440 | + <p class="share_title float"><?= $t->_("share")?>:</p> | ||
| 428 | 441 | ||
| 429 | - <div class="pluso float" data-background="#ebebeb" data-options="small,square,line,horizontal,nocounter,theme=04" data-services="facebook,google,livejournal,moimir,odnoklassniki,vkontakte,twitter"></div> | 442 | + <div class="pluso float" data-background="#ebebeb" data-options="small,square,line,horizontal,nocounter,theme=04" data-services="facebook,google,livejournal,moimir,odnoklassniki,vkontakte,twitter"></div> |
| 443 | + </div> | ||
| 430 | </div> | 444 | </div> |
| 431 | </div> | 445 | </div> |
| 432 | - </div> | ||
| 433 | 446 | ||
| 434 | -</div><!-- content_blog --> | ||
| 435 | -</div><!-- catalog --> | 447 | + </div><!-- content_blog --> |
| 448 | + | ||
| 449 | + </div><!-- catalog --> | ||
| 436 | </div> | 450 | </div> |
| 451 | + | ||
| 437 | </div> | 452 | </div> |
| 453 | + | ||
| 438 | <script> | 454 | <script> |
| 439 | 455 | ||
| 440 | <?php | 456 | <?php |
| 441 | - | ||
| 442 | $customer_id = $this->session->get('id'); | 457 | $customer_id = $this->session->get('id'); |
| 443 | - | ||
| 444 | - | ||
| 445 | ?> | 458 | ?> |
| 446 | $( document ).ready(function() { | 459 | $( document ).ready(function() { |
| 460 | + | ||
| 447 | $('body').on('click','.one_item_buttons a', function(){ | 461 | $('body').on('click','.one_item_buttons a', function(){ |
| 448 | 462 | ||
| 449 | <?php if( !empty( $customer_id ) ) : ?> | 463 | <?php if( !empty( $customer_id ) ) : ?> |
| @@ -481,7 +495,6 @@ if( !empty( $news ) ) | @@ -481,7 +495,6 @@ if( !empty( $news ) ) | ||
| 481 | 495 | ||
| 482 | }); | 496 | }); |
| 483 | 497 | ||
| 484 | - | ||
| 485 | }); | 498 | }); |
| 486 | 499 | ||
| 487 | 500 |
src/app/frontend/views/page/subtype.php
| @@ -197,7 +197,10 @@ | @@ -197,7 +197,10 @@ | ||
| 197 | $minPrice = 0; | 197 | $minPrice = 0; |
| 198 | ?> | 198 | ?> |
| 199 | <?php foreach ($groups as $k => $i): ?> | 199 | <?php foreach ($groups as $k => $i): ?> |
| 200 | - <?php $this->partial('partial/item_group', ['k' => $k, 'i' => $i, 'limit' => 3]) ?> | 200 | + <?php |
| 201 | + if (empty($discount)) $discount = 0; | ||
| 202 | + $this->partial('partial/item_group', ['k' => $k, 'i' => $i, 'limit' => 3, 'discount' => $discount]) | ||
| 203 | + ?> | ||
| 201 | <?php | 204 | <?php |
| 202 | if ($i['price'] > $maxPrice) { | 205 | if ($i['price'] > $maxPrice) { |
| 203 | $maxPrice = $i['price']; | 206 | $maxPrice = $i['price']; |
src/app/frontend/views/partial/item_group.php
| @@ -31,7 +31,24 @@ | @@ -31,7 +31,24 @@ | ||
| 31 | </a> | 31 | </a> |
| 32 | </div> | 32 | </div> |
| 33 | <div class="align_bottom"> | 33 | <div class="align_bottom"> |
| 34 | - <div class="one_item_price"><?= $t->_("price_from") ?> <span><?= $i['price'] ?></span> грн</div> | 34 | + <div class="one_item_price"> |
| 35 | + <?= $t->_("price_from") ?> | ||
| 36 | + <?php | ||
| 37 | + // скидка | ||
| 38 | + if (!empty($discount)) { | ||
| 39 | + if ($discount['discount'] > 0 && $discount['discount'] <= 100 && in_array($i['id'], $discount['group_ids'])) { | ||
| 40 | + echo '<span style="text-decoration: line-through;"><span>'.$i['price'].'</span></span> грн<br/>'; | ||
| 41 | + echo '<span>'.round($i['price']*(1-$discount['discount']/100), 1).'</span> грн'; | ||
| 42 | + } | ||
| 43 | + else { | ||
| 44 | + echo '<span>'.$i['price'].'</span> грн'; | ||
| 45 | + } | ||
| 46 | + } | ||
| 47 | + else { | ||
| 48 | + echo '<span>'.$i['price'].'</span> грн'; | ||
| 49 | + } | ||
| 50 | + ?> | ||
| 51 | + </div> | ||
| 35 | <div class="one_item_buttons"> | 52 | <div class="one_item_buttons"> |
| 36 | <a href="<?= $this->seoUrl->setUrl($i['alias']) ?>" title="" class="btn grey"><?= $t->_("details") ?></a> | 53 | <a href="<?= $this->seoUrl->setUrl($i['alias']) ?>" title="" class="btn grey"><?= $t->_("details") ?></a> |
| 37 | <a data-group_id="<?= $i['group_id'] ?>" href="javascript:;" title="" class="<?= $i['count_available'] != 0 ? 'btn green buy' : 'not_available grey'?>"><?= $t->_("buy") ?></a> | 54 | <a data-group_id="<?= $i['group_id'] ?>" href="javascript:;" title="" class="<?= $i['count_available'] != 0 ? 'btn green buy' : 'not_available grey'?>"><?= $t->_("buy") ?></a> |
src/config/global.php
| @@ -32,6 +32,7 @@ return | @@ -32,6 +32,7 @@ return | ||
| 32 | 32 | ||
| 33 | 33 | ||
| 34 | 'phones' => '(044)-581-67-15, (044)-451-48-59 <br /> (050)-464-48-59, (067)-464-48-59', | 34 | 'phones' => '(044)-581-67-15, (044)-451-48-59 <br /> (050)-464-48-59, (067)-464-48-59', |
| 35 | + | ||
| 35 | 'email' => 'ludmila.v@hs.kiev.ua, alla@hs.kiev.ua, lesya@hs.kiev.ua, olga@hs.kiev.ua,kristina@hs.kiev.ua, test@hs.kiev.ua, olya.o.chyzh@gmail.com', | 36 | 'email' => 'ludmila.v@hs.kiev.ua, alla@hs.kiev.ua, lesya@hs.kiev.ua, olga@hs.kiev.ua,kristina@hs.kiev.ua, test@hs.kiev.ua, olya.o.chyzh@gmail.com', |
| 36 | 'name' => 'Semena', | 37 | 'name' => 'Semena', |
| 37 | 38 |
src/lib/common.php
| @@ -1229,24 +1229,23 @@ namespace | @@ -1229,24 +1229,23 @@ namespace | ||
| 1229 | } | 1229 | } |
| 1230 | 1230 | ||
| 1231 | public function getCartItems($in_cart, $lang_id, $special_user = null) { | 1231 | public function getCartItems($in_cart, $lang_id, $special_user = null) { |
| 1232 | - $result = []; | ||
| 1233 | - $total_price = 0; | ||
| 1234 | - $item_ids = $this->array_column( $in_cart, 'item_id' ); | ||
| 1235 | - $items = $this->getDi()->get('models')->getItems()->getItemsByIds( $lang_id, $item_ids ); | ||
| 1236 | - $groups_ids = $this->array_column( $items, 'group_id' ); | ||
| 1237 | - $groups_data = $this->getDi()->get('models')->getItems()->getItemsByColorAndGroupsId(join(',',$groups_ids)); | ||
| 1238 | - $colors = array_unique($this->array_column( $groups_data, 'color_id' )); | ||
| 1239 | - $color_info = $this->getDi()->get('models')->getItems()->getColorsInfoByColorsId( $lang_id, join(',',$colors) ); | 1232 | + $result = []; |
| 1233 | + $total_price = 0; | ||
| 1234 | + $item_ids = $this->array_column( $in_cart, 'item_id' ); | ||
| 1235 | + $items = $this->getDi()->get('models')->getItems()->getItemsByIds( $lang_id, $item_ids ); | ||
| 1236 | + $groups_ids = $this->array_column( $items, 'group_id' ); | ||
| 1237 | + $groups_data = $this->getDi()->get('models')->getItems()->getItemsByColorAndGroupsId(join(',',$groups_ids)); | ||
| 1238 | + $colors = array_unique($this->array_column( $groups_data, 'color_id' )); | ||
| 1239 | + $color_info = $this->getDi()->get('models')->getItems()->getColorsInfoByColorsId( $lang_id, join(',',$colors) ); | ||
| 1240 | + | ||
| 1240 | foreach($color_info as $k =>$v){ | 1241 | foreach($color_info as $k =>$v){ |
| 1241 | $colors_info[$v['id']] = $v; | 1242 | $colors_info[$v['id']] = $v; |
| 1242 | } | 1243 | } |
| 1243 | 1244 | ||
| 1244 | - | ||
| 1245 | foreach($groups_data as $k =>$v){ | 1245 | foreach($groups_data as $k =>$v){ |
| 1246 | if($groups_data[$k]['color_id'] != 0){ | 1246 | if($groups_data[$k]['color_id'] != 0){ |
| 1247 | $groups_data[$k]['color'] = $colors_info[$groups_data[$k]['color_id']]['color_title']; | 1247 | $groups_data[$k]['color'] = $colors_info[$groups_data[$k]['color_id']]['color_title']; |
| 1248 | $groups_data[$k]['absolute_color'] = $colors_info[$groups_data[$k]['color_id']]['absolute_color']; | 1248 | $groups_data[$k]['absolute_color'] = $colors_info[$groups_data[$k]['color_id']]['absolute_color']; |
| 1249 | - | ||
| 1250 | } else { | 1249 | } else { |
| 1251 | $groups_data[$k]['color'] = 0; | 1250 | $groups_data[$k]['color'] = 0; |
| 1252 | $groups_data[$k]['absolute_color'] = 0; | 1251 | $groups_data[$k]['absolute_color'] = 0; |
| @@ -1257,9 +1256,7 @@ namespace | @@ -1257,9 +1256,7 @@ namespace | ||
| 1257 | $groups_data[$v['id']] = $v; | 1256 | $groups_data[$v['id']] = $v; |
| 1258 | } | 1257 | } |
| 1259 | 1258 | ||
| 1260 | - foreach ( $in_cart as $c ) | ||
| 1261 | - { | ||
| 1262 | - | 1259 | + foreach ( $in_cart as $c ) { |
| 1263 | $count_item[$c['item_id']] = $c['count_items']; | 1260 | $count_item[$c['item_id']] = $c['count_items']; |
| 1264 | } | 1261 | } |
| 1265 | 1262 | ||
| @@ -1269,14 +1266,9 @@ namespace | @@ -1269,14 +1266,9 @@ namespace | ||
| 1269 | } | 1266 | } |
| 1270 | } | 1267 | } |
| 1271 | 1268 | ||
| 1272 | - | ||
| 1273 | - | ||
| 1274 | - foreach ( $items as $k => $i ) | ||
| 1275 | - { | ||
| 1276 | - $items[$k]['cover'] = !empty( $i['group_cover'] ) ? $this->getDi()->get('storage')->getPhotoUrl( $i['item_cover'], 'avatar', '128x' ) : '/images/packet.jpg'; | ||
| 1277 | - $items[$k]['alias'] = $this->getDi()->get('url')->get([ 'for' => 'item', 'subtype' => $i['catalog_alias'], 'group_alias' => $i['group_alias'], 'item_id' => $i['id'] ]); | ||
| 1278 | - | ||
| 1279 | - | 1269 | + foreach ( $items as $k => $i ) { |
| 1270 | + $items[$k]['cover'] = !empty( $i['group_cover'] ) ? $this->getDi()->get('storage')->getPhotoUrl( $i['item_cover'], 'avatar', '128x' ) : '/images/packet.jpg'; | ||
| 1271 | + $items[$k]['alias'] = $this->getDi()->get('url')->get([ 'for' => 'item', 'subtype' => $i['catalog_alias'], 'group_alias' => $i['group_alias'], 'item_id' => $i['id'] ]); | ||
| 1280 | 1272 | ||
| 1281 | if(isset($i['prices'][0])) { | 1273 | if(isset($i['prices'][0])) { |
| 1282 | $items[$k]['total_price'] = round($count_item[$i['id']] * $i['prices'][$special_user['status']], 2); | 1274 | $items[$k]['total_price'] = round($count_item[$i['id']] * $i['prices'][$special_user['status']], 2); |
| @@ -1285,24 +1277,25 @@ namespace | @@ -1285,24 +1277,25 @@ namespace | ||
| 1285 | $items[$k]['total_price'] = round($count_item[$i['id']] * $i['price2'], 2); | 1277 | $items[$k]['total_price'] = round($count_item[$i['id']] * $i['price2'], 2); |
| 1286 | } | 1278 | } |
| 1287 | 1279 | ||
| 1288 | - $items[$k]['count'] = $count_item[$i['id']]; | ||
| 1289 | - $total_price += $items[$k]['total_price']; | ||
| 1290 | - $items[$k]['color'] = $groups_data[$i['id']]['color']; | ||
| 1291 | - $items[$k]['absolute_color'] = $groups_data[$i['id']]['absolute_color']; | ||
| 1292 | - $items_[$i['id']] = $items[$k]; | 1280 | + $items[$k]['count'] = $count_item[$i['id']]; |
| 1281 | + $total_price += $items[$k]['total_price']; | ||
| 1282 | + $items[$k]['color'] = $groups_data[$i['id']]['color']; | ||
| 1283 | + $items[$k]['absolute_color'] = $groups_data[$i['id']]['absolute_color']; | ||
| 1284 | + $items_[$i['id']] = $items[$k]; | ||
| 1293 | } | 1285 | } |
| 1294 | 1286 | ||
| 1295 | - $total_price = round( $total_price, 2 ); | 1287 | + $total_price = round( $total_price, 2 ); |
| 1288 | + $result['total_price'] = $total_price; | ||
| 1289 | + $result['items'] = $items; | ||
| 1290 | + $result['items_'] = $items_; | ||
| 1296 | 1291 | ||
| 1297 | - $result['total_price'] = $total_price; | ||
| 1298 | - $result['items'] = $items; | ||
| 1299 | - $result['items_'] = $items_; | ||
| 1300 | return $result; | 1292 | return $result; |
| 1301 | } | 1293 | } |
| 1302 | 1294 | ||
| 1303 | - public function countOrderSum(&$order) { | 1295 | + public function countOrderSum(&$order) |
| 1296 | + { | ||
| 1304 | $sum = 0; | 1297 | $sum = 0; |
| 1305 | - foreach($order['items'] as $k => $item) { | 1298 | + foreach ($order['items'] as $k => $item) { |
| 1306 | $sum += $item['total_price']; | 1299 | $sum += $item['total_price']; |
| 1307 | } | 1300 | } |
| 1308 | $order['total_sum'] = $sum; | 1301 | $order['total_sum'] = $sum; |
src/lib/models.php
| @@ -51,7 +51,8 @@ namespace | @@ -51,7 +51,8 @@ namespace | ||
| 51 | protected $_reviews = false; | 51 | protected $_reviews = false; |
| 52 | protected $_modal = false; | 52 | protected $_modal = false; |
| 53 | protected $_manager_mail = false; | 53 | protected $_manager_mail = false; |
| 54 | - protected $_promo_to_user = false; | 54 | + protected $_promo_to_user = false; |
| 55 | + protected $_discount = false; | ||
| 55 | 56 | ||
| 56 | 57 | ||
| 57 | 58 | ||
| @@ -84,7 +85,7 @@ namespace | @@ -84,7 +85,7 @@ namespace | ||
| 84 | * @author Jane Bezmaternykh | 85 | * @author Jane Bezmaternykh |
| 85 | * @version 0.1.20140327 | 86 | * @version 0.1.20140327 |
| 86 | * | 87 | * |
| 87 | - * @return obj | 88 | + * @return \models\items |
| 88 | */ | 89 | */ |
| 89 | public function getItems() | 90 | public function getItems() |
| 90 | { | 91 | { |
| @@ -553,6 +554,17 @@ namespace | @@ -553,6 +554,17 @@ namespace | ||
| 553 | return $this->_promo_codes; | 554 | return $this->_promo_codes; |
| 554 | } | 555 | } |
| 555 | 556 | ||
| 557 | + public function getDiscount() | ||
| 558 | + { | ||
| 559 | + if( empty($this->_discount) ) | ||
| 560 | + { | ||
| 561 | + $this->_discount = new \models\discount(); | ||
| 562 | + $this->_discount->setDi( $this->getDi() ); | ||
| 563 | + } | ||
| 564 | + | ||
| 565 | + return $this->_discount; | ||
| 566 | + } | ||
| 567 | + | ||
| 556 | public function getPayment() | 568 | public function getPayment() |
| 557 | { | 569 | { |
| 558 | if( empty($this->_payment) ) | 570 | if( empty($this->_payment) ) |
| 1 | +<?php | ||
| 2 | +/** | ||
| 3 | + * Created by PhpStorm. | ||
| 4 | + * User: Alex Savenko | ||
| 5 | + * Date: 20.12.2016 | ||
| 6 | + * Time: 13:39 | ||
| 7 | + */ | ||
| 8 | + | ||
| 9 | +namespace models; | ||
| 10 | + | ||
| 11 | + | ||
| 12 | +class discount extends \db | ||
| 13 | +{ | ||
| 14 | + | ||
| 15 | + /** | ||
| 16 | + * Get all discounts | ||
| 17 | + * @return array | ||
| 18 | + */ | ||
| 19 | + public function getAllData() | ||
| 20 | + { | ||
| 21 | + | ||
| 22 | + return $this->get( | ||
| 23 | + ' | ||
| 24 | + SELECT * FROM | ||
| 25 | + public.discount | ||
| 26 | + ' | ||
| 27 | + , | ||
| 28 | + [ | ||
| 29 | + ], | ||
| 30 | + -1 | ||
| 31 | + ); | ||
| 32 | + } | ||
| 33 | + | ||
| 34 | + | ||
| 35 | + /** | ||
| 36 | + * Get discount | ||
| 37 | + * @param $id | ||
| 38 | + * @return array | ||
| 39 | + */ | ||
| 40 | + public function getOneData($id) | ||
| 41 | + { | ||
| 42 | + return $this->get( | ||
| 43 | + ' | ||
| 44 | + SELECT * | ||
| 45 | + FROM public.discount | ||
| 46 | + WHERE | ||
| 47 | + id = :id | ||
| 48 | + ', | ||
| 49 | + [ | ||
| 50 | + 'id' => $id | ||
| 51 | + ], | ||
| 52 | + -1 | ||
| 53 | + ); | ||
| 54 | + } | ||
| 55 | + | ||
| 56 | + /** | ||
| 57 | + * Get discount indication status | ||
| 58 | + * @param $id | ||
| 59 | + * @return array | ||
| 60 | + */ | ||
| 61 | + public function getStatus($id) { | ||
| 62 | + | ||
| 63 | + $status = $this->get( | ||
| 64 | + ' | ||
| 65 | + SELECT status | ||
| 66 | + FROM public.discount | ||
| 67 | + WHERE | ||
| 68 | + id = :id | ||
| 69 | + ', | ||
| 70 | + [ | ||
| 71 | + 'id' => $id | ||
| 72 | + ], | ||
| 73 | + -1 | ||
| 74 | + ); | ||
| 75 | + | ||
| 76 | + return $status[0]['status']; | ||
| 77 | + | ||
| 78 | + } | ||
| 79 | + | ||
| 80 | + | ||
| 81 | + /** | ||
| 82 | + * Get actual discount | ||
| 83 | + * @return array | ||
| 84 | + */ | ||
| 85 | + public function getActiveData() | ||
| 86 | + { | ||
| 87 | + return $this->get( | ||
| 88 | + ' | ||
| 89 | + SELECT * | ||
| 90 | + FROM public.discount | ||
| 91 | + WHERE | ||
| 92 | + status = 1 | ||
| 93 | + AND | ||
| 94 | + current_timestamp > start_date | ||
| 95 | + AND | ||
| 96 | + current_timestamp < end_date | ||
| 97 | + LIMIT 1 | ||
| 98 | + | ||
| 99 | + ', | ||
| 100 | + [ | ||
| 101 | + ], | ||
| 102 | + -1 | ||
| 103 | + ); | ||
| 104 | + } | ||
| 105 | + | ||
| 106 | + | ||
| 107 | + /** | ||
| 108 | + * Delete discount | ||
| 109 | + * @param $id | ||
| 110 | + * @return bool | ||
| 111 | + */ | ||
| 112 | + public function deleteData($id) | ||
| 113 | + { | ||
| 114 | + return $this->exec( | ||
| 115 | + ' DELETE | ||
| 116 | + FROM | ||
| 117 | + public.discount | ||
| 118 | + WHERE | ||
| 119 | + id = :id | ||
| 120 | + ', | ||
| 121 | + [ | ||
| 122 | + 'id' => $id | ||
| 123 | + ] | ||
| 124 | + ); | ||
| 125 | + } | ||
| 126 | + | ||
| 127 | + /** | ||
| 128 | + * Add new discount | ||
| 129 | + * @param $data | ||
| 130 | + * @return array | ||
| 131 | + */ | ||
| 132 | + public function addData($data) | ||
| 133 | + { | ||
| 134 | + | ||
| 135 | + return $this->get( | ||
| 136 | + ' | ||
| 137 | + INSERT INTO | ||
| 138 | + public.discount | ||
| 139 | + ( | ||
| 140 | + name, | ||
| 141 | + discount, | ||
| 142 | + description, | ||
| 143 | + start_date, | ||
| 144 | + end_date, | ||
| 145 | + status, | ||
| 146 | + group_ids | ||
| 147 | + ) | ||
| 148 | + VALUES | ||
| 149 | + ( | ||
| 150 | + :name, | ||
| 151 | + :discount, | ||
| 152 | + :description, | ||
| 153 | + :start_date, | ||
| 154 | + :end_date, | ||
| 155 | + :status, | ||
| 156 | + :group_ids | ||
| 157 | + ) | ||
| 158 | + RETURNING id | ||
| 159 | + ', | ||
| 160 | + [ | ||
| 161 | + 'name' => $data['name'], | ||
| 162 | + 'discount' => $data['discount'], | ||
| 163 | + 'description' => $data['description'], | ||
| 164 | + 'start_date' => $data['start_date'], | ||
| 165 | + 'end_date' => $data['end_date'], | ||
| 166 | + 'group_ids' => !empty($data['group_ids']) ? '{'. implode(', ', $data['group_ids']) . '}' : null, | ||
| 167 | + 'status' => $data['status'] | ||
| 168 | + ], | ||
| 169 | + -1 | ||
| 170 | + ); | ||
| 171 | + | ||
| 172 | + | ||
| 173 | + } | ||
| 174 | + | ||
| 175 | + /** | ||
| 176 | + * Update discount | ||
| 177 | + * @param $data | ||
| 178 | + * @param $id | ||
| 179 | + * @return bool | ||
| 180 | + */ | ||
| 181 | + public function updateData($data, $id) | ||
| 182 | + { | ||
| 183 | + | ||
| 184 | + return $this->exec( | ||
| 185 | + ' | ||
| 186 | + UPDATE | ||
| 187 | + public.discount | ||
| 188 | + SET | ||
| 189 | + name = :name, | ||
| 190 | + discount = :discount, | ||
| 191 | + description = :description, | ||
| 192 | + start_date = :start_date, | ||
| 193 | + end_date = :end_date, | ||
| 194 | + status = :status, | ||
| 195 | + group_ids = :group_ids | ||
| 196 | + WHERE | ||
| 197 | + id = :id | ||
| 198 | + ', | ||
| 199 | + [ | ||
| 200 | + 'name' => $data['name'], | ||
| 201 | + 'discount' => $data['discount'], | ||
| 202 | + 'description' => $data['description'], | ||
| 203 | + 'start_date' => $data['start_date'], | ||
| 204 | + 'end_date' => $data['end_date'], | ||
| 205 | + 'status' => $data['status'], | ||
| 206 | + 'group_ids' => !empty($data['group_ids']) ? '{'. implode(', ', $data['group_ids']) . '}' : null, | ||
| 207 | + 'id' => $id | ||
| 208 | + ] | ||
| 209 | + ); | ||
| 210 | + | ||
| 211 | + } | ||
| 212 | + | ||
| 213 | + /** | ||
| 214 | + * Switch status indicator | ||
| 215 | + * @param bool $status | ||
| 216 | + * @param $id | ||
| 217 | + * @return bool | ||
| 218 | + */ | ||
| 219 | + public function updateStatus($status, $id) { | ||
| 220 | + | ||
| 221 | + return $this->exec( | ||
| 222 | + ' | ||
| 223 | + UPDATE | ||
| 224 | + public.discount | ||
| 225 | + SET | ||
| 226 | + status = :status | ||
| 227 | + WHERE | ||
| 228 | + id = :id | ||
| 229 | + ', | ||
| 230 | + [ | ||
| 231 | + 'status' => $status, | ||
| 232 | + 'id' => $id | ||
| 233 | + ] | ||
| 234 | + ); | ||
| 235 | + | ||
| 236 | + } | ||
| 237 | + | ||
| 238 | + /** | ||
| 239 | + * Count all discounts | ||
| 240 | + * @return array | ||
| 241 | + */ | ||
| 242 | + public function countData() | ||
| 243 | + { | ||
| 244 | + return $this->get( | ||
| 245 | + ' | ||
| 246 | + SELECT | ||
| 247 | + COUNT(id) AS total | ||
| 248 | + FROM | ||
| 249 | + public.discount | ||
| 250 | + ', | ||
| 251 | + [ | ||
| 252 | + | ||
| 253 | + ], | ||
| 254 | + -1 | ||
| 255 | + ); | ||
| 256 | + } | ||
| 257 | + | ||
| 258 | +} | ||
| 0 | \ No newline at end of file | 259 | \ No newline at end of file |
www-backend/css/main.css
| @@ -917,6 +917,9 @@ label.error { | @@ -917,6 +917,9 @@ label.error { | ||
| 917 | .one_page_edit:hover .one_page_delete_ico a{background: url(../images/del_hover.png) 0% 0% no-repeat; width: 16px; height: 16px} | 917 | .one_page_edit:hover .one_page_delete_ico a{background: url(../images/del_hover.png) 0% 0% no-repeat; width: 16px; height: 16px} |
| 918 | .one_page_edit .one_page_edit_ico a{background: url(../images/pencil.png) 0% 0% no-repeat; width: 16px; height: 16px} | 918 | .one_page_edit .one_page_edit_ico a{background: url(../images/pencil.png) 0% 0% no-repeat; width: 16px; height: 16px} |
| 919 | .one_page_edit:hover .one_page_edit_ico a{background: url(../images/pencil_hover.png) 0% 0% no-repeat; width: 16px; height: 16px} | 919 | .one_page_edit:hover .one_page_edit_ico a{background: url(../images/pencil_hover.png) 0% 0% no-repeat; width: 16px; height: 16px} |
| 920 | +.one_page_edit .one_page_status_on_ico a{background: url(../images/green_16.jpg) 0% 0% no-repeat; width: 16px; height: 16px} | ||
| 921 | +.one_page_edit .one_page_status_off_ico a{background: url(../images/red_16.png) 0% 0% no-repeat; width: 16px; height: 16px} | ||
| 922 | + | ||
| 920 | 923 | ||
| 921 | 924 | ||
| 922 | 925 |
www-backend/index.php
| @@ -1067,6 +1067,70 @@ try | @@ -1067,6 +1067,70 @@ try | ||
| 1067 | ) | 1067 | ) |
| 1068 | ->setName('get_items_by_filter'); | 1068 | ->setName('get_items_by_filter'); |
| 1069 | 1069 | ||
| 1070 | + /* *************** discounts ************** */ | ||
| 1071 | + | ||
| 1072 | + $router->add | ||
| 1073 | + ( | ||
| 1074 | + '/discount_index', | ||
| 1075 | + [ | ||
| 1076 | + 'controller' => 'discount', | ||
| 1077 | + 'action' => 'index' | ||
| 1078 | + ] | ||
| 1079 | + ) | ||
| 1080 | + ->setName('discount_index'); | ||
| 1081 | + | ||
| 1082 | + $router->add | ||
| 1083 | + ( | ||
| 1084 | + '/discount_index/page/{page:[0-9]+}', | ||
| 1085 | + [ | ||
| 1086 | + 'controller' => 'promo_codes', | ||
| 1087 | + 'action' => 'index' | ||
| 1088 | + ] | ||
| 1089 | + ) | ||
| 1090 | + ->setName('discount_index_paged'); | ||
| 1091 | + | ||
| 1092 | + $router->add | ||
| 1093 | + ( | ||
| 1094 | + '/discount_add', | ||
| 1095 | + [ | ||
| 1096 | + 'controller' => 'discount', | ||
| 1097 | + 'action' => 'add' | ||
| 1098 | + ] | ||
| 1099 | + ) | ||
| 1100 | + ->setName('discount_add'); | ||
| 1101 | + | ||
| 1102 | + $router->add | ||
| 1103 | + ( | ||
| 1104 | + '/discount_update/{id:[0-9]+}', | ||
| 1105 | + [ | ||
| 1106 | + 'controller' => 'discount', | ||
| 1107 | + 'action' => 'update' | ||
| 1108 | + ] | ||
| 1109 | + ) | ||
| 1110 | + ->setName('discount_update'); | ||
| 1111 | + | ||
| 1112 | + $router->add | ||
| 1113 | + ( | ||
| 1114 | + '/discount_delete/{id:[0-9]+}', | ||
| 1115 | + [ | ||
| 1116 | + 'controller' => 'discount', | ||
| 1117 | + 'action' => 'delete' | ||
| 1118 | + ] | ||
| 1119 | + ) | ||
| 1120 | + ->setName('discount_delete'); | ||
| 1121 | + | ||
| 1122 | + $router->add | ||
| 1123 | + ( | ||
| 1124 | + '/discount_switch/{id:[0-9]+}', | ||
| 1125 | + [ | ||
| 1126 | + 'controller' => 'discount', | ||
| 1127 | + 'action' => 'switch' | ||
| 1128 | + ] | ||
| 1129 | + ) | ||
| 1130 | + ->setName('discount_switch'); | ||
| 1131 | + | ||
| 1132 | + /* *************************************** */ | ||
| 1133 | + | ||
| 1070 | $router->add | 1134 | $router->add |
| 1071 | ( | 1135 | ( |
| 1072 | '/sales_index', | 1136 | '/sales_index', |
www/css/main.min.css
| @@ -926,15 +926,36 @@ input[type=number]{-moz-appearance:textfield;} | @@ -926,15 +926,36 @@ input[type=number]{-moz-appearance:textfield;} | ||
| 926 | .catalog_description.logo320{background-color:#00a3de;} | 926 | .catalog_description.logo320{background-color:#00a3de;} |
| 927 | h2.types_logo_320{color:#00a3de;} | 927 | h2.types_logo_320{color:#00a3de;} |
| 928 | h2.types_logo_543{color:#5b4a42;} | 928 | h2.types_logo_543{color:#5b4a42;} |
| 929 | -.delivery-form-par{position:fixed;z-index:99991;top:0;background-color:rgba(255, 255, 255, 0.75);width:100%;height:100%;display:none;} | 929 | +.delivery-form-par{position:fixed;z-index:99991;top:0;background-color:rgba(255, 255, 255, 0.75);width:100%;height:100%;display:none;transition:0.3s;} |
| 930 | .delivery-form-par .close-white{content:'';position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer;} | 930 | .delivery-form-par .close-white{content:'';position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer;} |
| 931 | -.delivery-form-par .popup-main-delivery{width:843px;height:400px;background-image:url("../images/right_deliver.png");background-position:right center;background-repeat:no-repeat;background-color:#fdfaf1;position:absolute;font-family:'Lato-Medium';left:calc(50% - 421.5px);top:15%;} | ||
| 932 | -.delivery-form-par .content-popup .text-up{width:320px;border-bottom:1px solid #6cb33f;color:#42210b;text-align:center;font-size:18px;padding-top:19px;line-height:22px;padding-bottom:4px;} | ||
| 933 | -.delivery-form-par .text-down .up-text{color:#42210b;font-size:13.5px;text-align:center;width:323px;padding-top:23px;padding-bottom:8px;} | ||
| 934 | -.delivery-form-par .text-down .footer-text{color:#333333;font-style:italic;text-align:center;font-family:'Lato-Italic';padding-top:8px;padding-top:24px;width:319px;font-size:10.8px;} | 931 | +.delivery-form-par .popup-main-delivery{width:843px;height:400px;background-image:url("../images/right_deliver.png");background-size: contain;background-position:right center;background-repeat:no-repeat;background-color:#fdfaf1;position:absolute;font-family:'Lato-Medium';left:calc(50% - 421.5px);top:15%;} |
| 932 | +.delivery-form-par .content-popup .text-up{width:100%;max-width:332px;border-bottom:1px solid #6cb33f;color:#42210b;text-align:center;font-size:18px;padding-top:19px;line-height:22px;padding-bottom:4px;} | ||
| 933 | +.delivery-form-par .content-popup .text-down{width:100%;max-width:332px;} | ||
| 934 | +.delivery-form-par .text-down .up-text{color:#42210b;font-size:13.5px;text-align:center;width:100%;padding-top:23px;padding-bottom:8px;} | ||
| 935 | +.delivery-form-par .text-down .footer-text{color:#333333;font-style:italic;text-align:center;font-family:'Lato-Italic';padding-top:8px;padding-top:24px;width:100%;font-size:10.8px;} | ||
| 935 | .delivery-form-par .submit-delivery-but{font-size:15px;color:#fff;border:none;background-color:#6cb33f;text-transform:lowercase;width:80px;height:25px;outline:none;cursor:pointer;} | 936 | .delivery-form-par .submit-delivery-but{font-size:15px;color:#fff;border:none;background-color:#6cb33f;text-transform:lowercase;width:80px;height:25px;outline:none;cursor:pointer;} |
| 936 | .delivery-form-par .text-up p span{color:#f15a24;font-size:28.58px;} | 937 | .delivery-form-par .text-up p span{color:#f15a24;font-size:28.58px;} |
| 937 | -.delivery-form-par .content-popup{padding:38px;width:40%;} | 938 | +.delivery-form-par .content-popup{transition:0.3s;padding:38px;width:100%;height:100%;min-height: 400px;max-width:480px;box-sizing:border-box;background-image:url('../images/grad_popup.png');background-position: left center;background-repeat-x: no-repeat;} |
| 938 | .delivery-form-par .text-down input{height:23px;width:104px;border:1px solid #6cb33f;font-size:9px;padding-left:12px;outline:none;} | 939 | .delivery-form-par .text-down input{height:23px;width:104px;border:1px solid #6cb33f;font-size:9px;padding-left:12px;outline:none;} |
| 939 | -.delivery-form-par .deliver-form{display:flex;justify-content:space-between;width:327px;} | ||
| 940 | -body{font-family:Calibri, Candara, Segoe, 'Segoe UI', Optima, Arial, sans-serif;} | ||
| 941 | \ No newline at end of file | 940 | \ No newline at end of file |
| 941 | +.delivery-form-par .deliver-form{display:flex;justify-content:space-between;width:100%px;} | ||
| 942 | +body{font-family:Calibri, Candara, Segoe, 'Segoe UI', Optima, Arial, sans-serif;} | ||
| 943 | +.open-delivery-modal{opacity: 1;cursor: pointer;position: fixed;top: calc(50% - 80px);left: 0%;font-size: 24px;z-index: 10000;} | ||
| 944 | +.open-delivery-modal div{width: 100%;max-width: 360px;text-align: center;margin: 0 auto;position:relative;} | ||
| 945 | +.open-delivery-modal div img{width:100%;max-width:360px;} | ||
| 946 | +.modal_close{position: absolute;top: 23px;right: 10px;width: 15px;height: 15px;background-image:url('../images/close_popup.png');background-position:center center; background-repeat:no-repeat;border-radius: 50%;box-shadow: 0px 1px 3px -1px rgba(0, 0, 0, 0.40);cursor: default;} | ||
| 947 | +.popup_full{display:block;} | ||
| 948 | +.popup_mobile{display:none;} | ||
| 949 | +@media( max-width: 880px ){ | ||
| 950 | + .delivery-form-par .popup-main-delivery{width:96%;left:2%;} | ||
| 951 | + .open-delivery-modal{top: initial;bottom:0;width:100%;box-shadow: inset 0px -250px 125px -250px black;} | ||
| 952 | + .popup_full{display:none;} | ||
| 953 | + .popup_mobile{display:block;} | ||
| 954 | +} | ||
| 955 | +@media ( max-width: 480px ){ | ||
| 956 | + .delivery-form-par .content-popup{padding:25px;} | ||
| 957 | + .delivery-form-par .popup-main-delivery{background-image:none;height:initial;top:10%;} | ||
| 958 | + .delivery-form-par .deliver-form{justify-content: center;align-items: center;flex-direction: column;} | ||
| 959 | + .delivery-form-par .text-down input {margin-bottom:5px;} | ||
| 960 | + .delivery-form-par .submit-delivery-but{margin-top:5px;} | ||
| 961 | + .delivery-form-par .content-popup .text-up, .delivery-form-par .content-popup .text-down{max-width:100%;} | ||
| 962 | +} | ||
| 942 | \ No newline at end of file | 963 | \ No newline at end of file |
15.2 KB
32.3 KB
103 KB
41.8 KB
www/images/right_deliver.png
www/php.php