shop.balmet.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

seo_url.php (18551B)


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