shop.balmet.com

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

d_seo_module.php (46525B)


      1 <?php
      2 class ControllerExtensionDSEOModuleDSEOModule extends Controller {
      3 	private $codename = 'd_seo_module';
      4 	private $route = 'extension/d_seo_module/d_seo_module';
      5 	private $config_file = 'd_seo_module';
      6 	private $error = array();
      7 			
      8 	/*
      9 	*	Functions for SEO Module.
     10 	*/	
     11 	public function menu() {
     12 		$_language = new Language();
     13 		$_language->load($this->route);
     14 		
     15 		$url_token = '';
     16 		
     17 		if (isset($this->session->data['token'])) {
     18 			$url_token .= 'token=' . $this->session->data['token'];
     19 		}
     20 		
     21 		if (isset($this->session->data['user_token'])) {
     22 			$url_token .= 'user_token=' . $this->session->data['user_token'];
     23 		}
     24 		
     25 		$menu = array();
     26 
     27 		if ($this->user->hasPermission('access', 'extension/module/' . $this->codename)) {
     28 			$menu[] = array(
     29 				'name'	   		=> $_language->get('heading_title_main'),
     30 				'href'     		=> $this->url->link('extension/module/' . $this->codename, $url_token, true),
     31 				'sort_order' 	=> 1,
     32 				'children' 		=> array()
     33 			);
     34 		}
     35 
     36 		return $menu;
     37 	}
     38 	
     39 	public function dashboard() {
     40 		$dashboards = array();
     41 		
     42 		if ($this->user->hasPermission('access', 'extension/dashboard/d_seo_module_target_keyword')) {
     43 			$dashboards[] = array(
     44 				'html' 			=> $this->load->controller('extension/dashboard/d_seo_module_target_keyword/dashboard'),
     45 				'width' 		=> 12,
     46 				'sort_order' 	=> 20
     47 			);
     48 		}
     49 
     50 		return $dashboards;
     51 	}
     52 	
     53 	public function language_add_language($data) {
     54 		$this->load->model($this->route);
     55 		
     56 		$this->load->controller('extension/module/d_seo_module/update');
     57 		
     58 		$this->{'model_extension_d_seo_module_' . $this->codename}->addLanguage($data);
     59 	}
     60 		
     61 	public function language_delete_language($data) {
     62 		$this->load->model($this->route);
     63 		
     64 		$this->load->controller('extension/module/d_seo_module/update');
     65 
     66 		$this->{'model_extension_d_seo_module_' . $this->codename}->deleteLanguage($data);
     67 	}
     68 	
     69 	public function setting_tab_general_language() {
     70 		$this->load->model($this->route);
     71 		$this->load->model('extension/module/' . $this->codename);
     72 		
     73 		if (file_exists(DIR_APPLICATION . 'model/extension/module/d_twig_manager.php')) {
     74 			$this->load->model('extension/module/d_twig_manager');
     75 			
     76 			$this->model_extension_module_d_twig_manager->installCompatibility();
     77 		}
     78 						
     79 		$languages = $this->{'model_extension_module_' . $this->codename}->getLanguages();
     80 		
     81 		$this->load->controller('extension/module/d_seo_module/update');
     82 		
     83 		$field_info = $this->load->controller('extension/module/d_seo_module/getFieldInfo');
     84 				
     85 		if (isset($field_info['sheet']['custom_page']['field'])) {
     86 			$data['fields'] = $field_info['sheet']['custom_page']['field'];
     87 		} else {
     88 			$data['fields'] = array();
     89 		}
     90 						
     91 		if (isset($this->request->post['target_keyword'])) {
     92 			$data['target_keyword'] = $this->request->post['target_keyword'];
     93 		} else {
     94 			$data['target_keyword'] = $this->{'model_extension_d_seo_module_' . $this->codename}->getHomeTargetKeyword();
     95 		}
     96 			
     97 		$html_tab_general_language = array();
     98 						
     99 		foreach ($languages as $language) {
    100 			$data['language_id'] = $language['language_id'];
    101 			
    102 			if (isset($data['target_keyword'][$data['language_id']])) {
    103 				foreach ($data['target_keyword'][$data['language_id']] as $sort_order => $keyword) {
    104 					$field_data = array(
    105 						'field_code' => 'target_keyword',
    106 						'filter' => array(
    107 							'store_id' => 0,
    108 							'keyword' => $keyword
    109 						)
    110 					);
    111 			
    112 					$target_keywords = $this->load->controller('extension/module/d_seo_module/getFieldElements', $field_data);
    113 					
    114 					if ($target_keywords) {
    115 						$store_target_keywords = reset($target_keywords);
    116 							
    117 						if ((count($target_keywords) > 1) || (count(reset($store_target_keywords)) > 1)) {
    118 							$data['target_keyword_duplicate'][$data['language_id']][$sort_order] = 1;
    119 						}
    120 					}
    121 				}				
    122 			}
    123 		
    124 			$html_tab_general_language[$data['language_id']] = $this->load->view($this->route . '/setting_tab_general_language', $data);
    125 		}
    126 		
    127 		return $html_tab_general_language;
    128 	}
    129 	
    130 	public function setting_style() {		
    131 		if (file_exists(DIR_APPLICATION . 'model/extension/module/d_twig_manager.php')) {
    132 			$this->load->model('extension/module/d_twig_manager');
    133 			
    134 			$this->model_extension_module_d_twig_manager->installCompatibility();
    135 		}
    136 		
    137 		return $this->load->view($this->route . '/setting_style');
    138 	}
    139 	
    140 	public function setting_script() {			
    141 		if (file_exists(DIR_APPLICATION . 'model/extension/module/d_twig_manager.php')) {
    142 			$this->load->model('extension/module/d_twig_manager');
    143 			
    144 			$this->model_extension_module_d_twig_manager->installCompatibility();
    145 		}
    146 		
    147 		$url_token = '';
    148 		
    149 		if (isset($this->session->data['token'])) {
    150 			$url_token .= 'token=' . $this->session->data['token'];
    151 		}
    152 		
    153 		if (isset($this->session->data['user_token'])) {
    154 			$url_token .= 'user_token=' . $this->session->data['user_token'];
    155 		}
    156 		
    157 		$data['route'] = $this->route;
    158 		$data['url_token'] = $url_token;
    159 		$data['store_id'] = 0;
    160 				
    161 		return $this->load->view($this->route . '/setting_script', $data);
    162 	}
    163 	
    164 	public function setting_edit_setting($data) {
    165 		$this->load->model($this->route);
    166 		$this->load->model('setting/setting');
    167 		
    168 		$this->{'model_extension_d_seo_module_' . $this->codename}->saveHomeTargetKeyword($data);
    169 		
    170 		if ($data['config_seo_url']) {
    171 			$setting = $this->model_setting_setting->getSetting('module_' . $this->codename);
    172 			$setting['module_' . $this->codename . '_setting']['control_element']['enable_seo_url']['implemented'] = 1;
    173 			
    174 			$this->model_setting_setting->editSetting('module_' . $this->codename, $setting);
    175 		}
    176 	}
    177 	
    178 	public function store_form_tab_general_language() {		
    179 		$this->load->model($this->route);
    180 		$this->load->model('extension/module/' . $this->codename);
    181 		
    182 		if (file_exists(DIR_APPLICATION . 'model/extension/module/d_twig_manager.php')) {
    183 			$this->load->model('extension/module/d_twig_manager');
    184 			
    185 			$this->model_extension_module_d_twig_manager->installCompatibility();
    186 		}
    187 		
    188 		$languages = $this->{'model_extension_module_' . $this->codename}->getLanguages();
    189 		
    190 		$this->load->controller('extension/module/d_seo_module/update');
    191 		
    192 		$field_info = $this->load->controller('extension/module/d_seo_module/getFieldInfo');
    193 				
    194 		if (isset($field_info['sheet']['custom_page']['field'])) {
    195 			$data['fields'] = $field_info['sheet']['custom_page']['field'];
    196 		} else {
    197 			$data['fields'] = array();
    198 		}
    199 									
    200 		if (isset($this->request->post['target_keyword'])) {
    201 			$data['target_keyword'] = $this->request->post['target_keyword'];
    202 		} elseif (isset($this->request->get['store_id'])) {
    203 			$data['target_keyword'] = $this->{'model_extension_d_seo_module_' . $this->codename}->getHomeTargetKeyword($this->request->get['store_id']);
    204 		} else {
    205 			$data['target_keyword'] = array();
    206 		}
    207 							
    208 		$html_tab_general_language = array();
    209 								
    210 		foreach ($languages as $language) {
    211 			$data['language_id'] = $language['language_id'];
    212 			
    213 			if (isset($data['target_keyword'][$data['language_id']]) && isset($this->request->get['store_id'])) {
    214 				foreach ($data['target_keyword'][$data['language_id']] as $sort_order => $keyword) {
    215 					$field_data = array(
    216 						'field_code' => 'target_keyword',
    217 						'filter' => array(
    218 							'store_id' => $this->request->get['store_id'],
    219 							'keyword' => $keyword
    220 						)
    221 					);
    222 			
    223 					$target_keywords = $this->load->controller('extension/module/d_seo_module/getFieldElements', $field_data);
    224 					
    225 					if ($target_keywords) {
    226 						$store_target_keywords = reset($target_keywords);
    227 							
    228 						if ((count($target_keywords) > 1) || (count(reset($store_target_keywords)) > 1)) {
    229 							$data['target_keyword_duplicate'][$data['language_id']][$sort_order] = 1;
    230 						}
    231 					}
    232 				}				
    233 			}
    234 		
    235 			$html_tab_general_language[$data['language_id']] = $this->load->view($this->route . '/store_form_tab_general_language', $data);
    236 		}
    237 		
    238 		return $html_tab_general_language;
    239 	}
    240 	
    241 	public function store_form_style() {		
    242 		if (file_exists(DIR_APPLICATION . 'model/extension/module/d_twig_manager.php')) {
    243 			$this->load->model('extension/module/d_twig_manager');
    244 			
    245 			$this->model_extension_module_d_twig_manager->installCompatibility();
    246 		}
    247 		
    248 		return $this->load->view($this->route . '/store_form_style');
    249 	}
    250 	
    251 	public function store_form_script() {	
    252 		if (file_exists(DIR_APPLICATION . 'model/extension/module/d_twig_manager.php')) {
    253 			$this->load->model('extension/module/d_twig_manager');
    254 			
    255 			$this->model_extension_module_d_twig_manager->installCompatibility();
    256 		}
    257 		
    258 		$url_token = '';
    259 		
    260 		if (isset($this->session->data['token'])) {
    261 			$url_token .= 'token=' . $this->session->data['token'];
    262 		}
    263 		
    264 		if (isset($this->session->data['user_token'])) {
    265 			$url_token .= 'user_token=' . $this->session->data['user_token'];
    266 		}
    267 		
    268 		$data['route'] = $this->route;
    269 		$data['url_token'] = $url_token;
    270 		
    271 		if (isset($this->request->get['store_id'])) {
    272 			$data['store_id'] = $this->request->get['store_id'];
    273 		} else {
    274 			$data['store_id'] = -1;
    275 		}
    276 				
    277 		return $this->load->view($this->route . '/store_form_script', $data);
    278 	}
    279 	
    280 	public function store_add_store($data) {
    281 		$this->load->model($this->route);
    282 		
    283 		$this->load->controller('extension/module/d_seo_module/update');
    284 		
    285 		$this->{'model_extension_d_seo_module_' . $this->codename}->saveHomeTargetKeyword($data);
    286 	}
    287 	
    288 	public function store_edit_store($data) {
    289 		$this->load->model($this->route);
    290 		
    291 		$this->load->controller('extension/module/d_seo_module/update');
    292 		
    293 		$this->{'model_extension_d_seo_module_' . $this->codename}->saveHomeTargetKeyword($data);
    294 	}
    295 	
    296 	public function store_delete_store($data) {
    297 		$this->load->model($this->route);
    298 		
    299 		$this->load->controller('extension/module/d_seo_module/update');
    300 		
    301 		$this->{'model_extension_d_seo_module_' . $this->codename}->deleteStore($data);
    302 	}
    303 	
    304 	public function category_form_tab_general_language() {		
    305 		$this->load->model($this->route);
    306 		$this->load->model('extension/module/' . $this->codename);
    307 		
    308 		if (file_exists(DIR_APPLICATION . 'model/extension/module/d_twig_manager.php')) {
    309 			$this->load->model('extension/module/d_twig_manager');
    310 			
    311 			$this->model_extension_module_d_twig_manager->installCompatibility();
    312 		}
    313 		
    314 		$languages = $this->{'model_extension_module_' . $this->codename}->getLanguages();
    315 		
    316 		$this->load->controller('extension/module/d_seo_module/update');
    317 		
    318 		$field_info = $this->load->controller('extension/module/d_seo_module/getFieldInfo');
    319 								
    320 		if (isset($field_info['sheet']['category']['field'])) {
    321 			$data['fields'] = $field_info['sheet']['category']['field'];
    322 		} else {
    323 			$data['fields'] = array();
    324 		}
    325 						
    326 		if (isset($this->request->post['target_keyword'])) {
    327 			$data['target_keyword'] = $this->request->post['target_keyword'];
    328 		} elseif (isset($this->request->get['category_id'])) {	
    329 			$data['target_keyword'] = $this->{'model_extension_d_seo_module_' . $this->codename}->getCategoryTargetKeyword($this->request->get['category_id']);
    330 		} else {
    331 			$data['target_keyword'] = array();
    332 		}
    333 		
    334 		$data['store_id'] = 0;
    335 				
    336 		$html_tab_general_language = array();
    337 				
    338 		foreach ($languages as $language) {
    339 			$data['language_id'] = $language['language_id'];
    340 			
    341 			if (isset($data['target_keyword'][$data['store_id']][$data['language_id']])) {
    342 				foreach ($data['target_keyword'][$data['store_id']][$data['language_id']] as $sort_order => $keyword) {
    343 					$field_data = array(
    344 						'field_code' => 'target_keyword',
    345 						'filter' => array(
    346 							'store_id' => $data['store_id'],
    347 							'keyword' => $keyword
    348 						)
    349 					);
    350 			
    351 					$target_keywords = $this->load->controller('extension/module/d_seo_module/getFieldElements', $field_data);
    352 					
    353 					if ($target_keywords) {
    354 						$store_target_keywords = reset($target_keywords);
    355 							
    356 						if ((count($target_keywords) > 1) || (count(reset($store_target_keywords)) > 1)) {
    357 							$data['target_keyword_duplicate'][$data['store_id']][$data['language_id']][$sort_order] = 1;
    358 						}
    359 					}
    360 				}				
    361 			}
    362 			
    363 			$html_tab_general_language[$data['language_id']] = $this->load->view($this->route . '/category_form_tab_general_language', $data);
    364 		}
    365 				
    366 		return $html_tab_general_language;
    367 	}
    368 	
    369 	public function category_form_tab_general_store_language() {
    370 		$this->load->model($this->route);
    371 		$this->load->model('extension/module/' . $this->codename);
    372 		
    373 		if (file_exists(DIR_APPLICATION . 'model/extension/module/d_twig_manager.php')) {
    374 			$this->load->model('extension/module/d_twig_manager');
    375 			
    376 			$this->model_extension_module_d_twig_manager->installCompatibility();
    377 		}
    378 		
    379 		$stores = $this->{'model_extension_module_' . $this->codename}->getStores();
    380 		$languages = $this->{'model_extension_module_' . $this->codename}->getLanguages();
    381 		
    382 		$this->load->controller('extension/module/d_seo_module/update');
    383 				
    384 		$field_info = $this->load->controller('extension/module/' . $this->codename . '/getFieldInfo');
    385 				
    386 		if (isset($field_info['sheet']['category']['field'])) {
    387 			$data['fields'] = $field_info['sheet']['category']['field'];
    388 		} else {
    389 			$data['fields'] = array();
    390 		}
    391 		
    392 		if (isset($this->request->post['target_keyword'])) {
    393 			$data['target_keyword'] = $this->request->post['target_keyword'];
    394 		} elseif (isset($this->request->get['category_id'])) {	
    395 			$data['target_keyword'] = $this->{'model_extension_d_seo_module_' . $this->codename}->getCategoryTargetKeyword($this->request->get['category_id']);
    396 		} else {
    397 			$data['target_keyword'] = array();
    398 		}
    399 		
    400 		$html_tab_general_store_language = array();
    401 		
    402 		foreach ($stores as $store) {
    403 			$data['store_id'] = $store['store_id'];
    404 			
    405 			foreach ($languages as $language) {
    406 				$data['language_id'] = $language['language_id'];
    407 			
    408 				if (isset($data['target_keyword'][$data['store_id']][$data['language_id']])) {
    409 					foreach ($data['target_keyword'][$data['store_id']][$data['language_id']] as $sort_order => $keyword) {
    410 						$field_data = array(
    411 							'field_code' => 'target_keyword',
    412 							'filter' => array(
    413 								'store_id' => $data['store_id'],
    414 								'keyword' => $keyword
    415 							)
    416 						);
    417 			
    418 						$target_keywords = $this->load->controller('extension/module/d_seo_module/getFieldElements', $field_data);
    419 						
    420 						if ($target_keywords) {
    421 							$store_target_keywords = reset($target_keywords);
    422 							
    423 							if ((count($target_keywords) > 1) || (count(reset($store_target_keywords)) > 1)) {
    424 								$data['target_keyword_duplicate'][$data['store_id']][$data['language_id']][$sort_order] = 1;
    425 							}
    426 						}
    427 					}				
    428 				}
    429 				
    430 				$html_tab_general_store_language[$data['store_id']][$data['language_id']] = $this->load->view($this->route . '/category_form_tab_general_store_language', $data);
    431 			}
    432 		}
    433 				
    434 		return $html_tab_general_store_language;
    435 	}
    436 	
    437 	public function category_form_style() {		
    438 		if (file_exists(DIR_APPLICATION . 'model/extension/module/d_twig_manager.php')) {
    439 			$this->load->model('extension/module/d_twig_manager');
    440 			
    441 			$this->model_extension_module_d_twig_manager->installCompatibility();
    442 		}
    443 		
    444 		return $this->load->view($this->route . '/category_form_style');
    445 	}
    446 	
    447 	public function category_form_script() {			
    448 		if (file_exists(DIR_APPLICATION . 'model/extension/module/d_twig_manager.php')) {
    449 			$this->load->model('extension/module/d_twig_manager');
    450 			
    451 			$this->model_extension_module_d_twig_manager->installCompatibility();
    452 		}
    453 		
    454 		$url_token = '';
    455 		
    456 		if (isset($this->session->data['token'])) {
    457 			$url_token .= 'token=' . $this->session->data['token'];
    458 		}
    459 		
    460 		if (isset($this->session->data['user_token'])) {
    461 			$url_token .= 'user_token=' . $this->session->data['user_token'];
    462 		}
    463 		
    464 		$data['route'] = $this->route;
    465 		$data['url_token'] = $url_token;
    466 				
    467 		return $this->load->view($this->route . '/category_form_script', $data);
    468 	}
    469 	
    470 	public function category_add_category($data) {
    471 		$this->load->model($this->route);
    472 		
    473 		$this->{'model_extension_d_seo_module_' . $this->codename}->saveCategoryTargetKeyword($data);
    474 	}
    475 	
    476 	public function category_edit_category($data) {
    477 		$this->load->model($this->route);
    478 		
    479 		$this->{'model_extension_d_seo_module_' . $this->codename}->saveCategoryTargetKeyword($data);
    480 	}
    481 	
    482 	public function category_delete_category($data) {
    483 		$this->load->model($this->route);
    484 		
    485 		$this->{'model_extension_d_seo_module_' . $this->codename}->deleteCategoryTargetKeyword($data);
    486 	}
    487 	
    488 	public function product_form_tab_general_language() {		
    489 		$this->load->model($this->route);
    490 		$this->load->model('extension/module/' . $this->codename);
    491 		
    492 		if (file_exists(DIR_APPLICATION . 'model/extension/module/d_twig_manager.php')) {
    493 			$this->load->model('extension/module/d_twig_manager');
    494 			
    495 			$this->model_extension_module_d_twig_manager->installCompatibility();
    496 		}
    497 		
    498 		$languages = $this->{'model_extension_module_' . $this->codename}->getLanguages();
    499 		
    500 		$this->load->controller('extension/module/d_seo_module/update');
    501 		
    502 		$field_info = $this->load->controller('extension/module/' . $this->codename . '/getFieldInfo');
    503 				
    504 		if (isset($field_info['sheet']['product']['field'])) {
    505 			$data['fields'] = $field_info['sheet']['product']['field'];
    506 		} else {
    507 			$data['fields'] = array();
    508 		}
    509 		
    510 		if (isset($this->request->post['target_keyword'])) {
    511 			$data['target_keyword'] = $this->request->post['target_keyword'];
    512 		} elseif (isset($this->request->get['product_id'])) {	
    513 			$data['target_keyword'] = $this->{'model_extension_d_seo_module_' . $this->codename}->getProductTargetKeyword($this->request->get['product_id']);
    514 		} else {
    515 			$data['target_keyword'] = array();
    516 		}
    517 		
    518 		$data['store_id'] = 0;
    519 		
    520 		$html_tab_general_language = array();
    521 				
    522 		foreach ($languages as $language) {
    523 			$data['language_id'] = $language['language_id'];
    524 			
    525 			if (isset($data['target_keyword'][$data['store_id']][$data['language_id']])) {
    526 				foreach ($data['target_keyword'][$data['store_id']][$data['language_id']] as $sort_order => $keyword) {
    527 					$field_data = array(
    528 						'field_code' => 'target_keyword',
    529 						'filter' => array(
    530 							'store_id' => $data['store_id'],
    531 							'keyword' => $keyword
    532 						)
    533 					);
    534 			
    535 					$target_keywords = $this->load->controller('extension/module/d_seo_module/getFieldElements', $field_data);
    536 					
    537 					if ($target_keywords) {
    538 						$store_target_keywords = reset($target_keywords);
    539 							
    540 						if ((count($target_keywords) > 1) || (count(reset($store_target_keywords)) > 1)) {
    541 							$data['target_keyword_duplicate'][$data['store_id']][$data['language_id']][$sort_order] = 1;
    542 						}
    543 					}
    544 				}				
    545 			}
    546 					
    547 			$html_tab_general_language[$data['language_id']] = $this->load->view($this->route . '/product_form_tab_general_language', $data);
    548 		}
    549 				
    550 		return $html_tab_general_language;
    551 	}
    552 	
    553 	public function product_form_tab_general_store_language() {		
    554 		$this->load->model($this->route);
    555 		$this->load->model('extension/module/' . $this->codename);
    556 		
    557 		if (file_exists(DIR_APPLICATION . 'model/extension/module/d_twig_manager.php')) {
    558 			$this->load->model('extension/module/d_twig_manager');
    559 			
    560 			$this->model_extension_module_d_twig_manager->installCompatibility();
    561 		}
    562 		
    563 		$stores = $this->{'model_extension_module_' . $this->codename}->getStores();
    564 		$languages = $this->{'model_extension_module_' . $this->codename}->getLanguages();
    565 		
    566 		$this->load->controller('extension/module/d_seo_module/update');
    567 				
    568 		$field_info = $this->load->controller('extension/module/' . $this->codename . '/getFieldInfo');
    569 				
    570 		if (isset($field_info['sheet']['product']['field'])) {
    571 			$data['fields'] = $field_info['sheet']['product']['field'];
    572 		} else {
    573 			$data['fields'] = array();
    574 		}
    575 		
    576 		if (isset($this->request->post['target_keyword'])) {
    577 			$data['target_keyword'] = $this->request->post['target_keyword'];
    578 		} elseif (isset($this->request->get['product_id'])) {	
    579 			$data['target_keyword'] = $this->{'model_extension_d_seo_module_' . $this->codename}->getProductTargetKeyword($this->request->get['product_id']);
    580 		} else {
    581 			$data['target_keyword'] = array();
    582 		}
    583 		
    584 		$html_tab_general_store_language = array();
    585 		
    586 		foreach ($stores as $store) {
    587 			$data['store_id'] = $store['store_id'];
    588 			
    589 			foreach ($languages as $language) {
    590 				$data['language_id'] = $language['language_id'];
    591 			
    592 				if (isset($data['target_keyword'][$data['store_id']][$data['language_id']])) {
    593 					foreach ($data['target_keyword'][$data['store_id']][$data['language_id']] as $sort_order => $keyword) {
    594 						$field_data = array(
    595 							'field_code' => 'target_keyword',
    596 							'filter' => array(
    597 								'store_id' => $data['store_id'],
    598 								'keyword' => $keyword
    599 							)
    600 						);
    601 			
    602 						$target_keywords = $this->load->controller('extension/module/d_seo_module/getFieldElements', $field_data);
    603 						
    604 						if ($target_keywords) {
    605 							$store_target_keywords = reset($target_keywords);
    606 							
    607 							if ((count($target_keywords) > 1) || (count(reset($store_target_keywords)) > 1)) {
    608 								$data['target_keyword_duplicate'][$data['store_id']][$data['language_id']][$sort_order] = 1;
    609 							}
    610 						}
    611 					}				
    612 				}
    613 				
    614 				$html_tab_general_store_language[$data['store_id']][$data['language_id']] = $this->load->view($this->route . '/product_form_tab_general_store_language', $data);
    615 			}
    616 		}
    617 				
    618 		return $html_tab_general_store_language;
    619 	}
    620 	
    621 	public function product_form_style() {		
    622 		if (file_exists(DIR_APPLICATION . 'model/extension/module/d_twig_manager.php')) {
    623 			$this->load->model('extension/module/d_twig_manager');
    624 			
    625 			$this->model_extension_module_d_twig_manager->installCompatibility();
    626 		}
    627 		
    628 		return $this->load->view($this->route . '/product_form_style');
    629 	}
    630 	
    631 	public function product_form_script() {	
    632 		$_language = new Language();
    633 		$_language->load($this->route);
    634 		
    635 		if (file_exists(DIR_APPLICATION . 'model/extension/module/d_twig_manager.php')) {
    636 			$this->load->model('extension/module/d_twig_manager');
    637 			
    638 			$this->model_extension_module_d_twig_manager->installCompatibility();
    639 		}
    640 		
    641 		$url_token = '';
    642 		
    643 		if (isset($this->session->data['token'])) {
    644 			$url_token .= 'token=' . $this->session->data['token'];
    645 		}
    646 		
    647 		if (isset($this->session->data['user_token'])) {
    648 			$url_token .= 'user_token=' . $this->session->data['user_token'];
    649 		}
    650 		
    651 		$data['route'] = $this->route;
    652 		$data['url_token'] = $url_token;
    653 		$data['text_none'] = $_language->get('text_none');
    654 				
    655 		return $this->load->view($this->route . '/product_form_script', $data);
    656 	}
    657 	
    658 	public function product_add_product($data) {
    659 		$this->load->model($this->route);
    660 		
    661 		$this->{'model_extension_d_seo_module_' . $this->codename}->saveProductTargetKeyword($data);
    662 	}
    663 	
    664 	public function product_edit_product($data) {
    665 		$this->load->model($this->route);
    666 		
    667 		$this->{'model_extension_d_seo_module_' . $this->codename}->saveProductTargetKeyword($data);
    668 	}
    669 	
    670 	public function product_delete_product($data) {
    671 		$this->load->model($this->route);
    672 		
    673 		$this->{'model_extension_d_seo_module_' . $this->codename}->deleteProductTargetKeyword($data);
    674 	}
    675 	
    676 	public function manufacturer_form_tab_general_language() {		
    677 		$this->load->model($this->route);
    678 		$this->load->model('extension/module/' . $this->codename);
    679 		
    680 		if (file_exists(DIR_APPLICATION . 'model/extension/module/d_twig_manager.php')) {
    681 			$this->load->model('extension/module/d_twig_manager');
    682 			
    683 			$this->model_extension_module_d_twig_manager->installCompatibility();
    684 		}
    685 		
    686 		$languages = $this->{'model_extension_module_' . $this->codename}->getLanguages();
    687 		
    688 		$this->load->controller('extension/module/d_seo_module/update');
    689 		
    690 		$field_info = $this->load->controller('extension/module/' . $this->codename . '/getFieldInfo');
    691 				
    692 		if (isset($field_info['sheet']['manufacturer']['field'])) {
    693 			$data['fields'] = $field_info['sheet']['manufacturer']['field'];
    694 		} else {
    695 			$data['fields'] = array();
    696 		}
    697 		
    698 		if (isset($this->request->post['target_keyword'])) {
    699 			$data['target_keyword'] = $this->request->post['target_keyword'];
    700 		} elseif (isset($this->request->get['manufacturer_id'])) {
    701 			$data['target_keyword'] = $this->{'model_extension_d_seo_module_' . $this->codename}->getManufacturerTargetKeyword($this->request->get['manufacturer_id']);
    702 		} else {
    703 			$data['target_keyword'] = array();
    704 		}
    705 		
    706 		$data['store_id'] = 0;
    707 				
    708 		$html_tab_general_language = array();
    709 				
    710 		foreach ($languages as $language) {
    711 			$data['language_id'] = $language['language_id'];
    712 			
    713 			if (isset($data['target_keyword'][$data['store_id']][$data['language_id']])) {
    714 				foreach ($data['target_keyword'][$data['store_id']][$data['language_id']] as $sort_order => $keyword) {
    715 					$field_data = array(
    716 						'field_code' => 'target_keyword',
    717 						'filter' => array(
    718 							'store_id' => $data['store_id'],
    719 							'keyword' => $keyword
    720 						)
    721 					);
    722 			
    723 					$target_keywords = $this->load->controller('extension/module/d_seo_module/getFieldElements', $field_data);
    724 					
    725 					if ($target_keywords) {
    726 						$store_target_keywords = reset($target_keywords);
    727 							
    728 						if ((count($target_keywords) > 1) || (count(reset($store_target_keywords)) > 1)) {
    729 							$data['target_keyword_duplicate'][$data['store_id']][$data['language_id']][$sort_order] = 1;
    730 						}
    731 					}
    732 				}				
    733 			}
    734 			
    735 			$html_tab_general_language[$data['language_id']] = $this->load->view($this->route . '/manufacturer_form_tab_general_language', $data);
    736 		}
    737 				
    738 		return $html_tab_general_language;
    739 	}
    740 	
    741 	public function manufacturer_form_tab_general_store_language() {		
    742 		$this->load->model($this->route);
    743 		$this->load->model('extension/module/' . $this->codename);
    744 		
    745 		if (file_exists(DIR_APPLICATION . 'model/extension/module/d_twig_manager.php')) {
    746 			$this->load->model('extension/module/d_twig_manager');
    747 			
    748 			$this->model_extension_module_d_twig_manager->installCompatibility();
    749 		}
    750 		
    751 		$stores = $this->{'model_extension_module_' . $this->codename}->getStores();
    752 		$languages = $this->{'model_extension_module_' . $this->codename}->getLanguages();
    753 		
    754 		$this->load->controller('extension/module/d_seo_module/update');
    755 				
    756 		$field_info = $this->load->controller('extension/module/' . $this->codename . '/getFieldInfo');
    757 				
    758 		if (isset($field_info['sheet']['manufacturer']['field'])) {
    759 			$data['fields'] = $field_info['sheet']['manufacturer']['field'];
    760 		} else {
    761 			$data['fields'] = array();
    762 		}
    763 		
    764 		if (isset($this->request->post['target_keyword'])) {
    765 			$data['target_keyword'] = $this->request->post['target_keyword'];
    766 		} elseif (isset($this->request->get['manufacturer_id'])) {	
    767 			$data['target_keyword'] = $this->{'model_extension_d_seo_module_' . $this->codename}->getManufacturerTargetKeyword($this->request->get['manufacturer_id']);
    768 		} else {
    769 			$data['target_keyword'] = array();
    770 		}
    771 		
    772 		$html_tab_general_store_language = array();
    773 		
    774 		foreach ($stores as $store) {
    775 			$data['store_id'] = $store['store_id'];
    776 			
    777 			foreach ($languages as $language) {
    778 				$data['language_id'] = $language['language_id'];
    779 			
    780 				if (isset($data['target_keyword'][$data['store_id']][$data['language_id']])) {
    781 					foreach ($data['target_keyword'][$data['store_id']][$data['language_id']] as $sort_order => $keyword) {
    782 						$field_data = array(
    783 							'field_code' => 'target_keyword',
    784 							'filter' => array(
    785 								'store_id' => $data['store_id'],
    786 								'keyword' => $keyword
    787 							)
    788 						);
    789 			
    790 						$target_keywords = $this->load->controller('extension/module/d_seo_module/getFieldElements', $field_data);
    791 						
    792 						if ($target_keywords) {
    793 							$store_target_keywords = reset($target_keywords);
    794 							
    795 							if ((count($target_keywords) > 1) || (count(reset($store_target_keywords)) > 1)) {
    796 								$data['target_keyword_duplicate'][$data['store_id']][$data['language_id']][$sort_order] = 1;
    797 							}
    798 						}
    799 					}				
    800 				}
    801 				
    802 				$html_tab_general_store_language[$data['store_id']][$data['language_id']] = $this->load->view($this->route . '/manufacturer_form_tab_general_store_language', $data);
    803 			}
    804 		}
    805 				
    806 		return $html_tab_general_store_language;
    807 	}
    808 	
    809 	public function manufacturer_form_style() {		
    810 		if (file_exists(DIR_APPLICATION . 'model/extension/module/d_twig_manager.php')) {
    811 			$this->load->model('extension/module/d_twig_manager');
    812 			
    813 			$this->model_extension_module_d_twig_manager->installCompatibility();
    814 		}
    815 		
    816 		return $this->load->view($this->route . '/manufacturer_form_style');
    817 	}
    818 	
    819 	public function manufacturer_form_script() {	
    820 		if (file_exists(DIR_APPLICATION . 'model/extension/module/d_twig_manager.php')) {
    821 			$this->load->model('extension/module/d_twig_manager');
    822 			
    823 			$this->model_extension_module_d_twig_manager->installCompatibility();
    824 		}
    825 		
    826 		$url_token = '';
    827 		
    828 		if (isset($this->session->data['token'])) {
    829 			$url_token .= 'token=' . $this->session->data['token'];
    830 		}
    831 		
    832 		if (isset($this->session->data['user_token'])) {
    833 			$url_token .= 'user_token=' . $this->session->data['user_token'];
    834 		}
    835 		
    836 		$data['route'] = $this->route;
    837 		$data['url_token'] = $url_token;
    838 		
    839 		return $this->load->view($this->route . '/manufacturer_form_script', $data);
    840 	}
    841 	
    842 	public function manufacturer_add_manufacturer($data) {
    843 		$this->load->model($this->route);
    844 
    845 		$this->{'model_extension_d_seo_module_' . $this->codename}->saveManufacturerTargetKeyword($data);
    846 	}
    847 	
    848 	public function manufacturer_edit_manufacturer($data) {
    849 		$this->load->model($this->route);
    850 		
    851 		$this->{'model_extension_d_seo_module_' . $this->codename}->saveManufacturerTargetKeyword($data);
    852 	}
    853 	
    854 	public function manufacturer_delete_manufacturer($data) {
    855 		$this->load->model($this->route);
    856 		
    857 		$this->{'model_extension_d_seo_module_' . $this->codename}->deleteManufacturerTargetKeyword($data);
    858 	}
    859 	
    860 	public function information_form_tab_general_language() {		
    861 		$this->load->model($this->route);
    862 		$this->load->model('extension/module/' . $this->codename);
    863 		
    864 		if (file_exists(DIR_APPLICATION . 'model/extension/module/d_twig_manager.php')) {
    865 			$this->load->model('extension/module/d_twig_manager');
    866 			
    867 			$this->model_extension_module_d_twig_manager->installCompatibility();
    868 		}
    869 		
    870 		$languages = $this->{'model_extension_module_' . $this->codename}->getLanguages();
    871 		
    872 		$this->load->controller('extension/module/d_seo_module/update');
    873 		
    874 		$field_info = $this->load->controller('extension/module/' . $this->codename . '/getFieldInfo');
    875 				
    876 		if (isset($field_info['sheet']['information']['field'])) {
    877 			$data['fields'] = $field_info['sheet']['information']['field'];
    878 		} else {
    879 			$data['fields'] = array();
    880 		}
    881 		
    882 		if (isset($this->request->post['target_keyword'])) {
    883 			$data['target_keyword'] = $this->request->post['target_keyword'];
    884 		} elseif (isset($this->request->get['information_id'])) {
    885 			$data['target_keyword'] = $this->{'model_extension_d_seo_module_' . $this->codename}->getInformationTargetKeyword($this->request->get['information_id']);
    886 		} else {
    887 			$data['target_keyword'] = array();
    888 		}
    889 		
    890 		$data['store_id'] = 0;
    891 			
    892 		$html_tab_general_language = array();
    893 				
    894 		foreach ($languages as $language) {
    895 			$data['language_id'] = $language['language_id'];
    896 			
    897 			if (isset($data['target_keyword'][$data['store_id']][$data['language_id']])) {
    898 				foreach ($data['target_keyword'][$data['store_id']][$data['language_id']] as $sort_order => $keyword) {
    899 					$field_data = array(
    900 						'field_code' => 'target_keyword',
    901 						'filter' => array(
    902 							'store_id' => $data['store_id'],
    903 							'keyword' => $keyword
    904 						)
    905 					);
    906 			
    907 					$target_keywords = $this->load->controller('extension/module/d_seo_module/getFieldElements', $field_data);
    908 					
    909 					if ($target_keywords) {
    910 						$store_target_keywords = reset($target_keywords);
    911 							
    912 						if ((count($target_keywords) > 1) || (count(reset($store_target_keywords)) > 1)) {
    913 							$data['target_keyword_duplicate'][$data['store_id']][$data['language_id']][$sort_order] = 1;
    914 						}
    915 					}
    916 				}				
    917 			}
    918 			
    919 			$html_tab_general_language[$data['language_id']] = $this->load->view($this->route . '/information_form_tab_general_language', $data);
    920 		}
    921 				
    922 		return $html_tab_general_language;
    923 	}
    924 	
    925 	public function information_form_tab_general_store_language() {		
    926 		$this->load->model($this->route);
    927 		$this->load->model('extension/module/' . $this->codename);
    928 		
    929 		if (file_exists(DIR_APPLICATION . 'model/extension/module/d_twig_manager.php')) {
    930 			$this->load->model('extension/module/d_twig_manager');
    931 			
    932 			$this->model_extension_module_d_twig_manager->installCompatibility();
    933 		}
    934 		
    935 		$stores = $this->{'model_extension_module_' . $this->codename}->getStores();
    936 		$languages = $this->{'model_extension_module_' . $this->codename}->getLanguages();
    937 		
    938 		$this->load->controller('extension/module/d_seo_module/update');
    939 				
    940 		$field_info = $this->load->controller('extension/module/' . $this->codename . '/getFieldInfo');
    941 		
    942 		if (isset($field_info['sheet']['information']['field'])) {
    943 			$data['fields'] = $field_info['sheet']['information']['field'];
    944 		} else {
    945 			$data['fields'] = array();
    946 		}
    947 		
    948 		if (isset($this->request->post['target_keyword'])) {
    949 			$data['target_keyword'] = $this->request->post['target_keyword'];
    950 		} elseif (isset($this->request->get['information_id'])) {	
    951 			$data['target_keyword'] = $this->{'model_extension_d_seo_module_' . $this->codename}->getInformationTargetKeyword($this->request->get['information_id']);
    952 		} else {
    953 			$data['target_keyword'] = array();
    954 		}
    955 		
    956 		$html_tab_general_store_language = array();
    957 		
    958 		foreach ($stores as $store) {
    959 			$data['store_id'] = $store['store_id'];
    960 			
    961 			foreach ($languages as $language) {
    962 				$data['language_id'] = $language['language_id'];
    963 			
    964 				if (isset($data['target_keyword'][$data['store_id']][$data['language_id']])) {
    965 					foreach ($data['target_keyword'][$data['store_id']][$data['language_id']] as $sort_order => $keyword) {
    966 						$field_data = array(
    967 							'field_code' => 'target_keyword',
    968 							'filter' => array(
    969 								'store_id' => $data['store_id'],
    970 								'keyword' => $keyword
    971 							)
    972 						);
    973 			
    974 						$target_keywords = $this->load->controller('extension/module/d_seo_module/getFieldElements', $field_data);
    975 						
    976 						if ($target_keywords) {
    977 							$store_target_keywords = reset($target_keywords);
    978 							
    979 							if ((count($target_keywords) > 1) || (count(reset($store_target_keywords)) > 1)) {
    980 								$data['target_keyword_duplicate'][$data['store_id']][$data['language_id']][$sort_order] = 1;
    981 							}
    982 						}
    983 					}				
    984 				}
    985 				
    986 				$html_tab_general_store_language[$data['store_id']][$data['language_id']] = $this->load->view($this->route . '/information_form_tab_general_store_language', $data);
    987 			}
    988 		}
    989 				
    990 		return $html_tab_general_store_language;
    991 	}
    992 	
    993 	public function information_form_style() {		
    994 		if (file_exists(DIR_APPLICATION . 'model/extension/module/d_twig_manager.php')) {
    995 			$this->load->model('extension/module/d_twig_manager');
    996 			
    997 			$this->model_extension_module_d_twig_manager->installCompatibility();
    998 		}
    999 		
   1000 		return $this->load->view($this->route . '/information_form_style');
   1001 	}
   1002 	
   1003 	public function information_form_script() {	
   1004 		if (file_exists(DIR_APPLICATION . 'model/extension/module/d_twig_manager.php')) {
   1005 			$this->load->model('extension/module/d_twig_manager');
   1006 			
   1007 			$this->model_extension_module_d_twig_manager->installCompatibility();
   1008 		}
   1009 		
   1010 		$url_token = '';
   1011 		
   1012 		if (isset($this->session->data['token'])) {
   1013 			$url_token .= 'token=' . $this->session->data['token'];
   1014 		}
   1015 		
   1016 		if (isset($this->session->data['user_token'])) {
   1017 			$url_token .= 'user_token=' . $this->session->data['user_token'];
   1018 		}
   1019 		
   1020 		$data['route'] = $this->route;
   1021 		$data['url_token'] = $url_token;
   1022 				
   1023 		return $this->load->view($this->route . '/information_form_script', $data);
   1024 	}
   1025 	
   1026 	public function information_add_information($data) {
   1027 		$this->load->model($this->route);
   1028 		
   1029 		$this->{'model_extension_d_seo_module_' . $this->codename}->saveInformationTargetKeyword($data);
   1030 	}
   1031 	
   1032 	public function information_edit_information($data) {
   1033 		$this->load->model($this->route);
   1034 		
   1035 		$this->{'model_extension_d_seo_module_' . $this->codename}->saveInformationTargetKeyword($data);
   1036 	}
   1037 	
   1038 	public function information_delete_information($data) {
   1039 		$this->load->model($this->route);
   1040 		
   1041 		$this->{'model_extension_d_seo_module_' . $this->codename}->deleteInformationTargetKeyword($data);
   1042 	}
   1043 	
   1044 	public function control_setup_extension() {
   1045 		$this->load->controller('extension/module/' . $this->codename . '/setupExtension');
   1046 			
   1047 		$json = $this->response->getOutput();
   1048 			
   1049 		if ($json) {
   1050 			$data = json_decode($json, true);
   1051 			
   1052 			return $data;
   1053 		}
   1054 		
   1055 		return false;
   1056 	}
   1057 	
   1058 	public function control_install_extension() {
   1059 		$this->load->controller('extension/module/' . $this->codename . '/installExtension');
   1060 			
   1061 		$json = $this->response->getOutput();
   1062 			
   1063 		if ($json) {
   1064 			$data = json_decode($json, true);
   1065 			
   1066 			return $data;
   1067 		}
   1068 		
   1069 		return false;
   1070 	}
   1071 	
   1072 	public function control_elements($data) {
   1073 		$_language = new Language();
   1074 		$_language->load($this->route);
   1075 		
   1076 		$this->load->model('extension/module/' . $this->codename);
   1077 		$this->load->model('setting/setting');
   1078 		
   1079 		$url_token = '';
   1080 		
   1081 		if (isset($this->session->data['token'])) {
   1082 			$url_token .= 'token=' . $this->session->data['token'];
   1083 		}
   1084 		
   1085 		if (isset($this->session->data['user_token'])) {
   1086 			$url_token .= 'user_token=' . $this->session->data['user_token'];
   1087 		}
   1088 		
   1089 		// Setting 						
   1090 		$setting = $this->model_setting_setting->getSetting('module_' . $this->codename, $data['store_id']);
   1091 		$status = isset($setting['module_' . $this->codename . '_status']) ? $setting['module_' . $this->codename . '_status'] : false;
   1092 		$setting = isset($setting['module_' . $this->codename . '_setting']) ? $setting['module_' . $this->codename . '_setting'] : array();
   1093 				
   1094 		$htaccess = $this->{'model_extension_module_' . $this->codename}->getFileData('htaccess');		
   1095 		$robots = $this->{'model_extension_module_' . $this->codename}->getFileData('robots');
   1096 						
   1097 		$control_elements = array();
   1098 		
   1099 		if (!$status) {
   1100 			$control_elements[] = array(
   1101 				'extension_code' 		=> $this->codename,
   1102 				'extension_name' 		=> $_language->get('heading_title_main'),
   1103 				'element_code'			=> 'enable_status',
   1104 				'name'					=> $_language->get('text_enable_status'),
   1105 				'description'			=> $_language->get('help_enable_status'),
   1106 				'confirm'				=> false,
   1107 				'href'					=> $this->url->link('extension/module/' . $this->codename . '/setting', $url_token, true),
   1108 				'implemented'			=> isset($setting['control_element']['enable_status']['implemented']) ? 1 : 0,
   1109 				'weight'				=> 1
   1110 			);
   1111 		}
   1112 		
   1113 		if (!$this->config->get('config_seo_url')) {
   1114 			$control_elements[] = array(
   1115 				'extension_code' 		=> $this->codename,
   1116 				'extension_name' 		=> $_language->get('heading_title_main'),
   1117 				'element_code'			=> 'enable_seo_url',
   1118 				'name'					=> $_language->get('text_enable_seo_url'),
   1119 				'description'			=> $_language->get('help_enable_seo_url'),
   1120 				'confirm'				=> false,
   1121 				'href'					=> $this->url->link('setting/setting', $url_token, true),
   1122 				'implemented'			=> isset($setting['control_element']['enable_seo_url']['implemented']) ? 1 : 0,
   1123 				'weight'				=> 0.95
   1124 			);
   1125 		}
   1126 		
   1127 		if (!$htaccess['status']) {
   1128 			$control_elements[] = array(
   1129 				'extension_code' 		=> $this->codename,
   1130 				'extension_name' 		=> $_language->get('heading_title_main'),
   1131 				'element_code'			=> 'enable_htaccess',
   1132 				'name'					=> $_language->get('text_enable_htaccess'),
   1133 				'description'			=> $_language->get('help_enable_htaccess'),
   1134 				'confirm'				=> false,
   1135 				'href'					=> $this->url->link('extension/module/' . $this->codename . '/setting', $url_token, true),
   1136 				'implemented'			=> isset($setting['control_element']['enable_htaccess']['implemented']) ? 1 : 0,
   1137 				'weight'				=> 0.95
   1138 			);
   1139 		}
   1140 		
   1141 		if (!$robots['status']) {
   1142 			$control_elements[] = array(
   1143 				'extension_code' 		=> $this->codename,
   1144 				'extension_name' 		=> $_language->get('heading_title_main'),
   1145 				'element_code'			=> 'enable_robots',
   1146 				'name'					=> $_language->get('text_enable_robots'),
   1147 				'description'			=> $_language->get('help_enable_robots'),
   1148 				'confirm'				=> false,
   1149 				'href'					=> $this->url->link('extension/module/' . $this->codename . '/setting', $url_token, true),
   1150 				'implemented'			=> isset($setting['control_element']['enable_robots']['implemented']) ? 1 : 0,
   1151 				'weight'				=> 0.6
   1152 			);
   1153 		}
   1154 						
   1155 		return $control_elements;
   1156 	}
   1157 	
   1158 	public function control_execute_element($data) {
   1159 		$this->load->model('extension/module/' . $this->codename);
   1160 		$this->load->model('setting/setting');
   1161 		
   1162 		if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) {
   1163 			$server = HTTPS_SERVER;
   1164 			$catalog = HTTPS_CATALOG;
   1165 		} else {
   1166 			$server = HTTP_SERVER;
   1167 			$catalog = HTTP_CATALOG;
   1168 		}
   1169 		
   1170 		$catalog_url_info = $this->{'model_extension_module_' . $this->codename}->getURLInfo($catalog);
   1171 		
   1172 		// Setting
   1173 		$setting = $this->model_setting_setting->getSetting('module_' . $this->codename, $data['store_id']);
   1174 										
   1175 		if ($data['element_code'] == 'enable_status') {
   1176 			$setting['module_' . $this->codename . '_status'] = 1;
   1177 			$setting['module_' . $this->codename . '_setting']['control_element']['enable_status']['implemented'] = 1;
   1178 			
   1179 			$this->model_setting_setting->editSetting('module_' . $this->codename, $setting, $data['store_id']);
   1180 		}
   1181 		
   1182 		if ($data['element_code'] == 'enable_seo_url') {
   1183 			$store_setting = $this->model_setting_setting->getSetting('config');
   1184 			$store_setting['config_seo_url'] = 1;
   1185 			
   1186 			$this->model_setting_setting->editSetting('config', $store_setting);
   1187 			
   1188 			$setting['module_' . $this->codename . '_setting']['control_element']['enable_seo_url']['implemented'] = 1;
   1189 			
   1190 			$this->model_setting_setting->editSetting('module_' . $this->codename, $setting);
   1191 		}
   1192 		
   1193 		if ($data['element_code'] == 'enable_htaccess') {
   1194 			$this->config->load($this->config_file);
   1195 			$config_setting = ($this->config->get($this->codename . '_setting')) ? $this->config->get($this->codename . '_setting') : array();
   1196 				
   1197 			$htaccess = $this->{'model_extension_module_' . $this->codename}->getFileData('htaccess');		
   1198 			
   1199 			if (!$htaccess['status'] && !trim($htaccess['text'])) {
   1200 				$htaccess['text'] = str_replace('[catalog_url_path]', $catalog_url_info['path'], $config_setting['default_htaccess']);
   1201 			}
   1202 			
   1203 			$htaccess['status'] = 1;
   1204 			
   1205 			$this->{'model_extension_module_' . $this->codename}->saveFileData('htaccess', $htaccess);
   1206 			
   1207 			$setting['module_' . $this->codename . '_setting']['control_element']['enable_htaccess']['implemented'] = 1;
   1208 			
   1209 			$this->model_setting_setting->editSetting('module_' . $this->codename, $setting, $data['store_id']);
   1210 		}
   1211 		
   1212 		if ($data['element_code'] == 'enable_robots') {
   1213 			$this->config->load($this->config_file);
   1214 			$config_setting = ($this->config->get($this->codename . '_setting')) ? $this->config->get($this->codename . '_setting') : array();
   1215 				
   1216 			$robots = $this->{'model_extension_module_' . $this->codename}->getFileData('robots');		
   1217 			
   1218 			if (!$robots['status'] && !trim($robots['text'])) {
   1219 				$robots['text'] = str_replace('[catalog_url]', $catalog, $config_setting['default_robots']);
   1220 				$robots['text'] = str_replace('[catalog_url_host]', $catalog_url_info['host'], $robots['text']);
   1221 			}
   1222 			
   1223 			$robots['status'] = 1;
   1224 			
   1225 			$this->{'model_extension_module_' . $this->codename}->saveFileData('robots', $robots);
   1226 			
   1227 			$setting['module_' . $this->codename . '_setting']['control_element']['enable_robots']['implemented'] = 1;
   1228 			
   1229 			$this->model_setting_setting->editSetting('module_' . $this->codename, $setting, $data['store_id']);
   1230 		}
   1231 				
   1232 		$result['error'] = $this->error;
   1233 		
   1234 		return $result;
   1235 	}
   1236 	
   1237 	public function target_config() {
   1238 		$_language = new Language();
   1239 		$_language->load($this->route);
   1240 		
   1241 		$_config = new Config();
   1242 		$_config->load($this->config_file);
   1243 		$target_setting = ($_config->get($this->codename . '_target_setting')) ? $_config->get($this->codename . '_target_setting') : array();
   1244 		
   1245 		foreach ($target_setting['sheet'] as $sheet) {
   1246 			if (substr($sheet['name'], 0, strlen('text_')) == 'text_') {
   1247 				$target_setting['sheet'][$sheet['code']]['name'] = $_language->get($sheet['name']);
   1248 			}
   1249 		}
   1250 					
   1251 		return $target_setting;
   1252 	}
   1253 		
   1254 	public function target_elements($filter_data) {	
   1255 		$this->load->model($this->route);
   1256 		
   1257 		return $this->{'model_extension_d_seo_module_' . $this->codename}->getTargetElements($filter_data);
   1258 	}
   1259 		
   1260 	public function add_target_element($target_element_data) {
   1261 		$this->load->model($this->route);
   1262 		
   1263 		return $this->{'model_extension_d_seo_module_' . $this->codename}->addTargetElement($target_element_data);
   1264 	}
   1265 	
   1266 	public function edit_target_element($target_element_data) {
   1267 		$this->load->model($this->route);
   1268 		
   1269 		return $this->{'model_extension_d_seo_module_' . $this->codename}->editTargetElement($target_element_data);
   1270 	}
   1271 	
   1272 	public function delete_target_element($target_element_data) {
   1273 		$this->load->model($this->route);
   1274 		
   1275 		return $this->{'model_extension_d_seo_module_' . $this->codename}->deleteTargetElement($target_element_data);
   1276 	}
   1277 		
   1278 	public function export_target_elements($export_data) {	
   1279 		$this->load->model($this->route);
   1280 		
   1281 		return $this->{'model_extension_d_seo_module_' . $this->codename}->getExportTargetElements($export_data);
   1282 	}
   1283 	
   1284 	public function import_target_elements($import_data) {	
   1285 		$this->load->model($this->route);
   1286 		
   1287 		return $this->{'model_extension_d_seo_module_' . $this->codename}->saveImportTargetElements($import_data);
   1288 	}
   1289 	
   1290 	public function field_config() {
   1291 		$_language = new Language();
   1292 		$_language->load($this->route);
   1293 		
   1294 		$_config = new Config();
   1295 		$_config->load($this->config_file);
   1296 		$field_setting = ($_config->get($this->codename . '_field_setting')) ? $_config->get($this->codename . '_field_setting') : array();
   1297 
   1298 		foreach ($field_setting['sheet'] as $sheet) {				
   1299 			if (substr($sheet['name'], 0, strlen('text_')) == 'text_') {
   1300 				$field_setting['sheet'][$sheet['code']]['name'] = $_language->get($sheet['name']);
   1301 			}
   1302 			
   1303 			foreach ($sheet['field'] as $field) {
   1304 				if (substr($field['name'], 0, strlen('text_')) == 'text_') {
   1305 					$field_setting['sheet'][$sheet['code']]['field'][$field['code']]['name'] = $_language->get($field['name']);
   1306 				}
   1307 				
   1308 				if (substr($field['description'], 0, strlen('help_')) == 'help_') {
   1309 					$field_setting['sheet'][$sheet['code']]['field'][$field['code']]['description'] = $_language->get($field['description']);
   1310 				}
   1311 			}
   1312 		}
   1313 					
   1314 		return $field_setting;
   1315 	}
   1316 	
   1317 	public function field_elements($filter_data) {
   1318 		$this->load->model($this->route);
   1319 		
   1320 		return $this->{'model_extension_d_seo_module_' . $this->codename}->getFieldElements($filter_data);
   1321 	}
   1322 }