marketing.php (16845B)
1 <?php 2 class ControllerMarketingMarketing extends Controller { 3 private $error = array(); 4 5 public function index() { 6 $this->load->language('marketing/marketing'); 7 8 $this->document->setTitle($this->language->get('heading_title')); 9 10 $this->load->model('marketing/marketing'); 11 12 $this->getList(); 13 } 14 15 public function add() { 16 $this->load->language('marketing/marketing'); 17 18 $this->document->setTitle($this->language->get('heading_title')); 19 20 $this->load->model('marketing/marketing'); 21 22 if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) { 23 $this->model_marketing_marketing->addMarketing($this->request->post); 24 25 $this->session->data['success'] = $this->language->get('text_success'); 26 27 $url = ''; 28 29 if (isset($this->request->get['filter_name'])) { 30 $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); 31 } 32 33 if (isset($this->request->get['filter_code'])) { 34 $url .= '&filter_code=' . $this->request->get['filter_code']; 35 } 36 37 if (isset($this->request->get['filter_date_added'])) { 38 $url .= '&filter_date_added=' . $this->request->get['filter_date_added']; 39 } 40 41 if (isset($this->request->get['sort'])) { 42 $url .= '&sort=' . $this->request->get['sort']; 43 } 44 45 if (isset($this->request->get['order'])) { 46 $url .= '&order=' . $this->request->get['order']; 47 } 48 49 if (isset($this->request->get['page'])) { 50 $url .= '&page=' . $this->request->get['page']; 51 } 52 53 $this->response->redirect($this->url->link('marketing/marketing', 'user_token=' . $this->session->data['user_token'] . $url, true)); 54 } 55 56 $this->getForm(); 57 } 58 59 public function edit() { 60 $this->load->language('marketing/marketing'); 61 62 $this->document->setTitle($this->language->get('heading_title')); 63 64 $this->load->model('marketing/marketing'); 65 66 if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) { 67 $this->model_marketing_marketing->editMarketing($this->request->get['marketing_id'], $this->request->post); 68 69 $this->session->data['success'] = $this->language->get('text_success'); 70 71 $url = ''; 72 73 if (isset($this->request->get['filter_name'])) { 74 $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); 75 } 76 77 if (isset($this->request->get['filter_code'])) { 78 $url .= '&filter_code=' . $this->request->get['filter_code']; 79 } 80 81 if (isset($this->request->get['filter_date_added'])) { 82 $url .= '&filter_date_added=' . $this->request->get['filter_date_added']; 83 } 84 85 if (isset($this->request->get['sort'])) { 86 $url .= '&sort=' . $this->request->get['sort']; 87 } 88 89 if (isset($this->request->get['order'])) { 90 $url .= '&order=' . $this->request->get['order']; 91 } 92 93 if (isset($this->request->get['page'])) { 94 $url .= '&page=' . $this->request->get['page']; 95 } 96 97 $this->response->redirect($this->url->link('marketing/marketing', 'user_token=' . $this->session->data['user_token'] . $url, true)); 98 } 99 100 $this->getForm(); 101 } 102 103 public function delete() { 104 $this->load->language('marketing/marketing'); 105 106 $this->document->setTitle($this->language->get('heading_title')); 107 108 $this->load->model('marketing/marketing'); 109 110 if (isset($this->request->post['selected']) && $this->validateDelete()) { 111 foreach ($this->request->post['selected'] as $marketing_id) { 112 $this->model_marketing_marketing->deleteMarketing($marketing_id); 113 } 114 115 $this->session->data['success'] = $this->language->get('text_success'); 116 117 $url = ''; 118 119 if (isset($this->request->get['filter_name'])) { 120 $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); 121 } 122 123 if (isset($this->request->get['filter_code'])) { 124 $url .= '&filter_code=' . $this->request->get['filter_code']; 125 } 126 127 if (isset($this->request->get['filter_date_added'])) { 128 $url .= '&filter_date_added=' . $this->request->get['filter_date_added']; 129 } 130 131 if (isset($this->request->get['sort'])) { 132 $url .= '&sort=' . $this->request->get['sort']; 133 } 134 135 if (isset($this->request->get['order'])) { 136 $url .= '&order=' . $this->request->get['order']; 137 } 138 139 if (isset($this->request->get['page'])) { 140 $url .= '&page=' . $this->request->get['page']; 141 } 142 143 $this->response->redirect($this->url->link('marketing/marketing', 'user_token=' . $this->session->data['user_token'] . $url, true)); 144 } 145 146 $this->getList(); 147 } 148 149 protected function getList() { 150 if (isset($this->request->get['filter_name'])) { 151 $filter_name = $this->request->get['filter_name']; 152 } else { 153 $filter_name = ''; 154 } 155 156 if (isset($this->request->get['filter_code'])) { 157 $filter_code = $this->request->get['filter_code']; 158 } else { 159 $filter_code = ''; 160 } 161 162 if (isset($this->request->get['filter_date_added'])) { 163 $filter_date_added = $this->request->get['filter_date_added']; 164 } else { 165 $filter_date_added = ''; 166 } 167 168 if (isset($this->request->get['sort'])) { 169 $sort = $this->request->get['sort']; 170 } else { 171 $sort = 'name'; 172 } 173 174 if (isset($this->request->get['order'])) { 175 $order = $this->request->get['order']; 176 } else { 177 $order = 'ASC'; 178 } 179 180 if (isset($this->request->get['page'])) { 181 $page = $this->request->get['page']; 182 } else { 183 $page = 1; 184 } 185 186 $url = ''; 187 188 if (isset($this->request->get['filter_name'])) { 189 $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); 190 } 191 192 if (isset($this->request->get['filter_code'])) { 193 $url .= '&filter_code=' . $this->request->get['filter_code']; 194 } 195 196 if (isset($this->request->get['filter_date_added'])) { 197 $url .= '&filter_date_added=' . $this->request->get['filter_date_added']; 198 } 199 200 if (isset($this->request->get['sort'])) { 201 $url .= '&sort=' . $this->request->get['sort']; 202 } 203 204 if (isset($this->request->get['sort'])) { 205 $url .= '&sort=' . $this->request->get['sort']; 206 } 207 208 if (isset($this->request->get['order'])) { 209 $url .= '&order=' . $this->request->get['order']; 210 } 211 212 if (isset($this->request->get['page'])) { 213 $url .= '&page=' . $this->request->get['page']; 214 } 215 216 $data['breadcrumbs'] = array(); 217 218 $data['breadcrumbs'][] = array( 219 'text' => $this->language->get('text_home'), 220 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true) 221 ); 222 223 $data['breadcrumbs'][] = array( 224 'text' => $this->language->get('heading_title'), 225 'href' => $this->url->link('marketing/marketing', 'user_token=' . $this->session->data['user_token'] . $url, true) 226 ); 227 228 $data['add'] = $this->url->link('marketing/marketing/add', 'user_token=' . $this->session->data['user_token'] . $url, true); 229 $data['delete'] = $this->url->link('marketing/marketing/delete', 'user_token=' . $this->session->data['user_token'] . $url, true); 230 231 $data['marketings'] = array(); 232 233 $filter_data = array( 234 'filter_name' => $filter_name, 235 'filter_code' => $filter_code, 236 'filter_date_added' => $filter_date_added, 237 'sort' => $sort, 238 'order' => $order, 239 'start' => ($page - 1) * $this->config->get('config_limit_admin'), 240 'limit' => $this->config->get('config_limit_admin') 241 ); 242 243 $marketing_total = $this->model_marketing_marketing->getTotalMarketings($filter_data); 244 245 $results = $this->model_marketing_marketing->getMarketings($filter_data); 246 247 foreach ($results as $result) { 248 $data['marketings'][] = array( 249 'marketing_id' => $result['marketing_id'], 250 'name' => $result['name'], 251 'code' => $result['code'], 252 'clicks' => $result['clicks'], 253 'orders' => $result['orders'], 254 'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])), 255 'edit' => $this->url->link('marketing/marketing/edit', 'user_token=' . $this->session->data['user_token'] . '&marketing_id=' . $result['marketing_id'] . $url, true) 256 ); 257 } 258 259 $data['user_token'] = $this->session->data['user_token']; 260 261 if (isset($this->error['warning'])) { 262 $data['error_warning'] = $this->error['warning']; 263 } else { 264 $data['error_warning'] = ''; 265 } 266 267 if (isset($this->session->data['success'])) { 268 $data['success'] = $this->session->data['success']; 269 270 unset($this->session->data['success']); 271 } else { 272 $data['success'] = ''; 273 } 274 275 if (isset($this->request->post['selected'])) { 276 $data['selected'] = (array)$this->request->post['selected']; 277 } else { 278 $data['selected'] = array(); 279 } 280 281 $url = ''; 282 283 if (isset($this->request->get['filter_name'])) { 284 $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); 285 } 286 287 if (isset($this->request->get['filter_code'])) { 288 $url .= '&filter_code=' . $this->request->get['filter_code']; 289 } 290 291 if (isset($this->request->get['filter_date_added'])) { 292 $url .= '&filter_date_added=' . $this->request->get['filter_date_added']; 293 } 294 295 if ($order == 'ASC') { 296 $url .= '&order=DESC'; 297 } else { 298 $url .= '&order=ASC'; 299 } 300 301 if (isset($this->request->get['page'])) { 302 $url .= '&page=' . $this->request->get['page']; 303 } 304 305 $data['sort_name'] = $this->url->link('marketing/marketing', 'user_token=' . $this->session->data['user_token'] . '&sort=m.name' . $url, true); 306 $data['sort_code'] = $this->url->link('marketing/marketing', 'user_token=' . $this->session->data['user_token'] . '&sort=m.code' . $url, true); 307 $data['sort_date_added'] = $this->url->link('marketing/marketing', 'user_token=' . $this->session->data['user_token'] . '&sort=m.date_added' . $url, true); 308 309 $url = ''; 310 311 if (isset($this->request->get['filter_name'])) { 312 $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); 313 } 314 315 if (isset($this->request->get['filter_code'])) { 316 $url .= '&filter_code=' . $this->request->get['filter_code']; 317 } 318 319 if (isset($this->request->get['filter_date_added'])) { 320 $url .= '&filter_date_added=' . $this->request->get['filter_date_added']; 321 } 322 323 if (isset($this->request->get['sort'])) { 324 $url .= '&sort=' . $this->request->get['sort']; 325 } 326 327 if (isset($this->request->get['order'])) { 328 $url .= '&order=' . $this->request->get['order']; 329 } 330 331 $pagination = new Pagination(); 332 $pagination->total = $marketing_total; 333 $pagination->page = $page; 334 $pagination->limit = $this->config->get('config_limit_admin'); 335 $pagination->url = $this->url->link('marketing/marketing', 'user_token=' . $this->session->data['user_token'] . $url . '&page={page}', true); 336 337 $data['pagination'] = $pagination->render(); 338 339 $data['results'] = sprintf($this->language->get('text_pagination'), ($marketing_total) ? (($page - 1) * $this->config->get('config_limit_admin')) + 1 : 0, ((($page - 1) * $this->config->get('config_limit_admin')) > ($marketing_total - $this->config->get('config_limit_admin'))) ? $marketing_total : ((($page - 1) * $this->config->get('config_limit_admin')) + $this->config->get('config_limit_admin')), $marketing_total, ceil($marketing_total / $this->config->get('config_limit_admin'))); 340 341 $data['filter_name'] = $filter_name; 342 $data['filter_code'] = $filter_code; 343 $data['filter_date_added'] = $filter_date_added; 344 345 $data['sort'] = $sort; 346 $data['order'] = $order; 347 348 $data['header'] = $this->load->controller('common/header'); 349 $data['column_left'] = $this->load->controller('common/column_left'); 350 $data['footer'] = $this->load->controller('common/footer'); 351 352 $this->response->setOutput($this->load->view('marketing/marketing_list', $data)); 353 } 354 355 protected function getForm() { 356 $data['text_form'] = !isset($this->request->get['marketing_id']) ? $this->language->get('text_add') : $this->language->get('text_edit'); 357 358 if (isset($this->error['warning'])) { 359 $data['error_warning'] = $this->error['warning']; 360 } else { 361 $data['error_warning'] = ''; 362 } 363 364 if (isset($this->error['name'])) { 365 $data['error_name'] = $this->error['name']; 366 } else { 367 $data['error_name'] = ''; 368 } 369 370 if (isset($this->error['code'])) { 371 $data['error_code'] = $this->error['code']; 372 } else { 373 $data['error_code'] = ''; 374 } 375 376 $url = ''; 377 378 if (isset($this->request->get['filter_name'])) { 379 $url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8')); 380 } 381 382 if (isset($this->request->get['filter_code'])) { 383 $url .= '&filter_code=' . $this->request->get['filter_code']; 384 } 385 386 if (isset($this->request->get['filter_date_added'])) { 387 $url .= '&filter_date_added=' . $this->request->get['filter_date_added']; 388 } 389 390 if (isset($this->request->get['sort'])) { 391 $url .= '&sort=' . $this->request->get['sort']; 392 } 393 394 if (isset($this->request->get['order'])) { 395 $url .= '&order=' . $this->request->get['order']; 396 } 397 398 if (isset($this->request->get['page'])) { 399 $url .= '&page=' . $this->request->get['page']; 400 } 401 402 $data['breadcrumbs'] = array(); 403 404 $data['breadcrumbs'][] = array( 405 'text' => $this->language->get('text_home'), 406 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true) 407 ); 408 409 $data['breadcrumbs'][] = array( 410 'text' => $this->language->get('heading_title'), 411 'href' => $this->url->link('marketing/marketing', 'user_token=' . $this->session->data['user_token'] . $url, true) 412 ); 413 414 if (!isset($this->request->get['marketing_id'])) { 415 $data['action'] = $this->url->link('marketing/marketing/add', 'user_token=' . $this->session->data['user_token'] . $url, true); 416 } else { 417 $data['action'] = $this->url->link('marketing/marketing/edit', 'user_token=' . $this->session->data['user_token'] . '&marketing_id=' . $this->request->get['marketing_id'] . $url, true); 418 } 419 420 $data['cancel'] = $this->url->link('marketing/marketing', 'user_token=' . $this->session->data['user_token'] . $url, true); 421 422 if (isset($this->request->get['marketing_id']) && ($this->request->server['REQUEST_METHOD'] != 'POST')) { 423 $marketing_info = $this->model_marketing_marketing->getMarketing($this->request->get['marketing_id']); 424 } 425 426 $data['user_token'] = $this->session->data['user_token']; 427 428 $data['store'] = HTTP_CATALOG; 429 430 if (isset($this->request->post['name'])) { 431 $data['name'] = $this->request->post['name']; 432 } elseif (!empty($marketing_info)) { 433 $data['name'] = $marketing_info['name']; 434 } else { 435 $data['name'] = ''; 436 } 437 438 if (isset($this->request->post['description'])) { 439 $data['description'] = $this->request->post['description']; 440 } elseif (!empty($marketing_info)) { 441 $data['description'] = $marketing_info['description']; 442 } else { 443 $data['description'] = ''; 444 } 445 446 if (isset($this->request->post['code'])) { 447 $data['code'] = $this->request->post['code']; 448 } elseif (!empty($marketing_info)) { 449 $data['code'] = $marketing_info['code']; 450 } else { 451 $data['code'] = uniqid(); 452 } 453 454 $data['header'] = $this->load->controller('common/header'); 455 $data['column_left'] = $this->load->controller('common/column_left'); 456 $data['footer'] = $this->load->controller('common/footer'); 457 458 $this->response->setOutput($this->load->view('marketing/marketing_form', $data)); 459 } 460 461 protected function validateForm() { 462 if (!$this->user->hasPermission('modify', 'marketing/marketing')) { 463 $this->error['warning'] = $this->language->get('error_permission'); 464 } 465 466 if ((utf8_strlen($this->request->post['name']) < 1) || (utf8_strlen($this->request->post['name']) > 32)) { 467 $this->error['name'] = $this->language->get('error_name'); 468 } 469 470 if (!$this->request->post['code']) { 471 $this->error['code'] = $this->language->get('error_code'); 472 } 473 474 $marketing_info = $this->model_marketing_marketing->getMarketingByCode($this->request->post['code']); 475 476 if (!isset($this->request->get['marketing_id'])) { 477 if ($marketing_info) { 478 $this->error['code'] = $this->language->get('error_exists'); 479 } 480 } else { 481 if ($marketing_info && ($this->request->get['marketing_id'] != $marketing_info['marketing_id'])) { 482 $this->error['code'] = $this->language->get('error_exists'); 483 } 484 } 485 486 return !$this->error; 487 } 488 489 protected function validateDelete() { 490 if (!$this->user->hasPermission('modify', 'marketing/marketing')) { 491 $this->error['warning'] = $this->language->get('error_permission'); 492 } 493 494 return !$this->error; 495 } 496 }