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 }