d_seo_module.php (68422B)
1 <?php 2 class ModelExtensionDSEOModuleDSEOModule extends Model { 3 private $codename = 'd_seo_module'; 4 5 /* 6 * Add Language. 7 */ 8 public function addLanguage($data) { 9 $custom_page_exception_routes = $this->load->controller('extension/module/d_seo_module/getCustomPageExceptionRoutes'); 10 11 $add = ''; 12 13 if ($custom_page_exception_routes) { 14 $add = " AND route NOT IN ('" . implode("', '", $custom_page_exception_routes) . "')"; 15 } 16 17 $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "d_target_keyword WHERE language_id = '" . (int)$this->config->get('config_language_id') . "' AND (route LIKE 'category_id=%' OR route LIKE 'product_id=%' OR route LIKE 'manufacturer_id=%' OR route LIKE 'information_id=%' OR (route LIKE '%/%'" . $add . "))"); 18 19 foreach ($query->rows as $result) { 20 $this->db->query("INSERT INTO " . DB_PREFIX . "d_target_keyword SET route = '" . $this->db->escape($result['route']) . "', store_id = '" . (int)$result['store_id'] . "', language_id = '" . (int)$data['language_id'] . "', sort_order = '" . (int)$result['sort_order'] . "', keyword = '" . $this->db->escape($result['keyword']) . "'"); 21 } 22 } 23 24 /* 25 * Delete Language. 26 */ 27 public function deleteLanguage($data) { 28 $custom_page_exception_routes = $this->load->controller('extension/module/d_seo_module/getCustomPageExceptionRoutes'); 29 30 $add = ''; 31 32 if ($custom_page_exception_routes) { 33 $add = " AND route NOT IN ('" . implode("', '", $custom_page_exception_routes) . "')"; 34 } 35 36 $this->db->query("DELETE FROM " . DB_PREFIX . "d_target_keyword WHERE language_id = '" . (int)$data['language_id'] . "' AND (route LIKE 'category_id=%' OR route LIKE 'product_id=%' OR route LIKE 'manufacturer_id=%' OR route LIKE 'information_id=%' OR (route LIKE '%/%'" . $add . "))"); 37 } 38 39 /* 40 * Delete Store. 41 */ 42 public function deleteStore($data) { 43 $custom_page_exception_routes = $this->load->controller('extension/module/d_seo_module/getCustomPageExceptionRoutes'); 44 45 $add = ''; 46 47 if ($custom_page_exception_routes) { 48 $add = " AND route NOT IN ('" . implode("', '", $custom_page_exception_routes) . "')"; 49 } 50 51 $this->db->query("DELETE FROM " . DB_PREFIX . "d_target_keyword WHERE store_id = '" . (int)$data['store_id'] . "' AND (route LIKE 'category_id=%' OR route LIKE 'product_id=%' OR route LIKE 'manufacturer_id=%' OR route LIKE 'information_id=%' OR (route LIKE '%/%'" . $add . "))"); 52 } 53 54 /* 55 * Save Home Target Keyword. 56 */ 57 public function saveHomeTargetKeyword($data) { 58 $this->db->query("DELETE FROM " . DB_PREFIX . "d_target_keyword WHERE route = 'common/home' AND store_id = '" . (int)$data['store_id'] . "'"); 59 60 if (isset($data['target_keyword'])) { 61 foreach ($data['target_keyword'] as $language_id => $keywords) { 62 $sort_order = 1; 63 64 foreach ($keywords as $keyword) { 65 $this->db->query("INSERT INTO " . DB_PREFIX . "d_target_keyword SET route = 'common/home', store_id = '" . (int)$data['store_id'] . "', language_id = '" . (int)$language_id . "', sort_order = '" . $sort_order . "', keyword = '" . $this->db->escape($keyword) . "'"); 66 67 $sort_order++; 68 } 69 } 70 } 71 } 72 73 /* 74 * Save Category Target Keyword. 75 */ 76 public function saveCategoryTargetKeyword($data) { 77 $this->db->query("DELETE FROM " . DB_PREFIX . "d_target_keyword WHERE route = 'category_id=" . (int)$data['category_id'] . "'"); 78 79 if (isset($data['target_keyword'])) { 80 foreach ($data['target_keyword'] as $store_id => $language_target_keyword) { 81 foreach ($language_target_keyword as $language_id => $keywords) { 82 $sort_order = 1; 83 84 foreach ($keywords as $keyword) { 85 $this->db->query("INSERT INTO " . DB_PREFIX . "d_target_keyword SET route = 'category_id=" . (int)$data['category_id'] . "', store_id = '" . (int)$store_id . "', language_id = '" . (int)$language_id . "', sort_order = '" . $sort_order . "', keyword = '" . $this->db->escape($keyword) . "'"); 86 87 $sort_order++; 88 } 89 } 90 } 91 } 92 } 93 94 /* 95 * Save Product Target Keyword. 96 */ 97 public function saveProductTargetKeyword($data) { 98 $this->db->query("DELETE FROM " . DB_PREFIX . "d_target_keyword WHERE route = 'product_id=" . (int)$data['product_id'] . "'"); 99 100 if (isset($data['target_keyword'])) { 101 foreach ($data['target_keyword'] as $store_id => $language_target_keyword) { 102 foreach ($language_target_keyword as $language_id => $keywords) { 103 $sort_order = 1; 104 105 foreach ($keywords as $keyword) { 106 $this->db->query("INSERT INTO " . DB_PREFIX . "d_target_keyword SET route = 'product_id=" . (int)$data['product_id'] . "', store_id = '" . (int)$store_id . "', language_id = '" . (int)$language_id . "', sort_order = '" . $sort_order . "', keyword = '" . $this->db->escape($keyword) . "'"); 107 108 $sort_order++; 109 } 110 } 111 } 112 } 113 } 114 115 /* 116 * Save Manufacturer Target Keyword. 117 */ 118 public function saveManufacturerTargetKeyword($data) { 119 $this->db->query("DELETE FROM " . DB_PREFIX . "d_target_keyword WHERE route = 'manufacturer_id=" . (int)$data['manufacturer_id'] . "'"); 120 121 if (isset($data['target_keyword'])) { 122 foreach ($data['target_keyword'] as $store_id => $language_target_keyword) { 123 foreach ($language_target_keyword as $language_id => $keywords) { 124 $sort_order = 1; 125 126 foreach ($keywords as $keyword) { 127 $this->db->query("INSERT INTO " . DB_PREFIX . "d_target_keyword SET route = 'manufacturer_id=" . (int)$data['manufacturer_id'] . "', store_id = '" . (int)$store_id . "', language_id = '" . (int)$language_id . "', sort_order = '" . $sort_order . "', keyword = '" . $this->db->escape($keyword) . "'"); 128 129 $sort_order++; 130 } 131 } 132 } 133 } 134 } 135 136 /* 137 * Save Information Target Keyword. 138 */ 139 public function saveInformationTargetKeyword($data) { 140 $this->db->query("DELETE FROM " . DB_PREFIX . "d_target_keyword WHERE route = 'information_id=" . (int)$data['information_id'] . "'"); 141 142 if (isset($data['target_keyword'])) { 143 foreach ($data['target_keyword'] as $store_id => $language_target_keyword) { 144 foreach ($language_target_keyword as $language_id => $keywords) { 145 $sort_order = 1; 146 147 foreach ($keywords as $keyword) { 148 $this->db->query("INSERT INTO " . DB_PREFIX . "d_target_keyword SET route = 'information_id=" . (int)$data['information_id'] . "', store_id = '" . (int)$store_id . "', language_id = '" . (int)$language_id . "', sort_order = '" . $sort_order . "', keyword = '" . $this->db->escape($keyword) . "'"); 149 150 $sort_order++; 151 } 152 } 153 } 154 } 155 } 156 157 /* 158 * Delete Category Target Keyword. 159 */ 160 public function deleteCategoryTargetKeyword($data) { 161 $this->db->query("DELETE FROM " . DB_PREFIX . "d_target_keyword WHERE route = 'category_id=" . (int)$data['category_id'] . "'"); 162 } 163 164 /* 165 * Delete Product Target Keyword. 166 */ 167 public function deleteProductTargetKeyword($data) { 168 $this->db->query("DELETE FROM " . DB_PREFIX . "d_target_keyword WHERE route = 'product_id=" . (int)$data['product_id'] . "'"); 169 } 170 171 /* 172 * Delete Manufacturer Target Keyword. 173 */ 174 public function deleteManufacturerTargetKeyword($data) { 175 $this->db->query("DELETE FROM " . DB_PREFIX . "d_target_keyword WHERE route = 'manufacturer_id=" . (int)$data['manufacturer_id'] . "'"); 176 } 177 178 /* 179 * Delete Information Target Keyword. 180 */ 181 public function deleteInformationTargetKeyword($data) { 182 $this->db->query("DELETE FROM " . DB_PREFIX . "d_target_keyword WHERE route = 'information_id=" . (int)$data['information_id'] . "'"); 183 } 184 185 /* 186 * Return Home Target Keyword. 187 */ 188 public function getHomeTargetKeyword($store_id = 0) { 189 $target_keyword = array(); 190 191 $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "d_target_keyword WHERE route = 'common/home' AND store_id = '" . (int)$store_id . "' ORDER BY sort_order"); 192 193 foreach($query->rows as $result) { 194 $target_keyword[$result['language_id']][$result['sort_order']] = $result['keyword']; 195 } 196 197 return $target_keyword; 198 } 199 200 /* 201 * Return Category Target Keyword. 202 */ 203 public function getCategoryTargetKeyword($category_id) { 204 $target_keyword = array(); 205 206 $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "d_target_keyword WHERE route = 'category_id=" . (int)$category_id . "' ORDER BY sort_order"); 207 208 foreach($query->rows as $result) { 209 $target_keyword[$result['store_id']][$result['language_id']][$result['sort_order']] = $result['keyword']; 210 } 211 212 return $target_keyword; 213 } 214 215 /* 216 * Return Product Target Keyword. 217 */ 218 public function getProductTargetKeyword($product_id) { 219 $target_keyword = array(); 220 221 $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "d_target_keyword WHERE route = 'product_id=" . (int)$product_id . "' ORDER BY sort_order"); 222 223 foreach($query->rows as $result) { 224 $target_keyword[$result['store_id']][$result['language_id']][$result['sort_order']] = $result['keyword']; 225 } 226 227 return $target_keyword; 228 } 229 230 /* 231 * Return Manufacturer Target Keyword. 232 */ 233 public function getManufacturerTargetKeyword($manufacturer_id) { 234 $target_keyword = array(); 235 236 $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "d_target_keyword WHERE route = 'manufacturer_id=" . (int)$manufacturer_id . "' ORDER BY sort_order"); 237 238 foreach($query->rows as $result) { 239 $target_keyword[$result['store_id']][$result['language_id']][$result['sort_order']] = $result['keyword']; 240 } 241 242 return $target_keyword; 243 } 244 245 /* 246 * Return Information Target Keyword. 247 */ 248 public function getInformationTargetKeyword($information_id) { 249 $target_keyword = array(); 250 251 $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "d_target_keyword WHERE route = 'information_id=" . (int)$information_id . "' ORDER BY sort_order"); 252 253 foreach($query->rows as $result) { 254 $target_keyword[$result['store_id']][$result['language_id']][$result['sort_order']] = $result['keyword']; 255 } 256 257 return $target_keyword; 258 } 259 260 /* 261 * Return Target Elements. 262 */ 263 public function getTargetElements($data) { 264 $this->load->model('extension/module/' . $this->codename); 265 266 $url_token = ''; 267 268 if (isset($this->session->data['token'])) { 269 $url_token .= 'token=' . $this->session->data['token']; 270 } 271 272 if (isset($this->session->data['user_token'])) { 273 $url_token .= 'user_token=' . $this->session->data['user_token']; 274 } 275 276 $stores = $this->{'model_extension_module_' . $this->codename}->getStores(); 277 278 $field_info = $this->load->controller('extension/module/d_seo_module/getFieldInfo'); 279 $custom_page_exception_routes = $this->load->controller('extension/module/d_seo_module/getCustomPageExceptionRoutes'); 280 281 $target_elements = array(); 282 283 if ($data['sheet_code'] == 'category') { 284 if ($data['store_id'] && $field_info['sheet'][$data['sheet_code']]['field']['target_keyword']['multi_store'] && $field_info['sheet'][$data['sheet_code']]['field']['target_keyword']['multi_store_status']) { 285 $target_keyword_store_id = $data['store_id']; 286 } else { 287 $target_keyword_store_id = 0; 288 } 289 290 $sql = "SELECT tk.route, tk.language_id, tk.sort_order, tk.keyword, c.category_id FROM " . DB_PREFIX . "d_target_keyword tk LEFT JOIN " . DB_PREFIX . "category c ON (CONCAT('category_id=', c.category_id) = tk.route) LEFT JOIN " . DB_PREFIX . "d_target_keyword tk2 ON (tk2.route = tk.route AND tk2.store_id = '" . (int)$target_keyword_store_id . "') WHERE tk.route LIKE 'category_id=%' AND tk.store_id = '" . (int)$target_keyword_store_id . "'"; 291 292 $implode = array(); 293 $implode_language = array(); 294 295 foreach ($data['filter'] as $field_code => $filter) { 296 if (!empty($filter)) { 297 if ($field_code == 'route') { 298 $implode[] = "tk2.route = '" . $this->db->escape($filter) . "'"; 299 } 300 301 if ($field_code == 'target_keyword') { 302 foreach ($filter as $language_id => $value) { 303 if (!empty($value)) { 304 $implode_language[] = "(tk2.language_id = '" . (int)$language_id . "' AND tk2.keyword LIKE '%" . $this->db->escape($value) . "%')"; 305 } 306 } 307 } 308 } 309 } 310 311 if ($implode_language) { 312 $implode[] = '(' . implode(' OR ', $implode_language) . ')'; 313 } 314 315 if ($implode) { 316 $sql .= " AND " . implode(' AND ', $implode); 317 } 318 319 $sql .= " GROUP BY tk.route, tk.language_id, tk.sort_order"; 320 321 $query = $this->db->query($sql); 322 323 foreach ($query->rows as $result) { 324 $target_elements[$result['route']]['route'] = $result['route']; 325 $target_elements[$result['route']]['target_keyword'][$result['language_id']][$result['sort_order']] = $result['keyword']; 326 327 if ($result['category_id']) { 328 $target_elements[$result['route']]['link'] = $this->url->link('catalog/category/edit', $url_token . '&category_id=' . $result['category_id'], true); 329 } 330 } 331 332 return $target_elements; 333 } 334 335 if ($data['sheet_code'] == 'product') { 336 if ($data['store_id'] && $field_info['sheet'][$data['sheet_code']]['field']['target_keyword']['multi_store'] && $field_info['sheet'][$data['sheet_code']]['field']['target_keyword']['multi_store_status']) { 337 $target_keyword_store_id = $data['store_id']; 338 } else { 339 $target_keyword_store_id = 0; 340 } 341 342 $sql = "SELECT tk.route, tk.language_id, tk.sort_order, tk.keyword, p.product_id FROM " . DB_PREFIX . "d_target_keyword tk LEFT JOIN " . DB_PREFIX . "product p ON (CONCAT('product_id=', p.product_id) = tk.route) LEFT JOIN " . DB_PREFIX . "d_target_keyword tk2 ON (tk2.route = tk.route AND tk2.store_id = '" . (int)$target_keyword_store_id . "') WHERE tk.route LIKE 'product_id=%' AND tk.store_id = '" . (int)$target_keyword_store_id . "'"; 343 344 $implode = array(); 345 $implode_language = array(); 346 347 foreach ($data['filter'] as $field_code => $filter) { 348 if (!empty($filter)) { 349 if ($field_code == 'route') { 350 $implode[] = "tk2.route = '" . $this->db->escape($filter) . "'"; 351 } 352 353 if ($field_code == 'target_keyword') { 354 foreach ($filter as $language_id => $value) { 355 if (!empty($value)) { 356 $implode_language[] = "(tk2.language_id = '" . (int)$language_id . "' AND tk2.keyword LIKE '%" . $this->db->escape($value) . "%')"; 357 } 358 } 359 } 360 } 361 } 362 363 if ($implode_language) { 364 $implode[] = '(' . implode(' OR ', $implode_language) . ')'; 365 } 366 367 if ($implode) { 368 $sql .= " AND " . implode(' AND ', $implode); 369 } 370 371 $sql .= " GROUP BY tk.route, tk.language_id, tk.sort_order"; 372 373 $query = $this->db->query($sql); 374 375 foreach ($query->rows as $result) { 376 $target_elements[$result['route']]['route'] = $result['route']; 377 $target_elements[$result['route']]['target_keyword'][$result['language_id']][$result['sort_order']] = $result['keyword']; 378 379 if ($result['product_id']) { 380 $target_elements[$result['route']]['link'] = $this->url->link('catalog/product/edit', $url_token . '&product_id=' . $result['product_id'], true); 381 } 382 } 383 384 return $target_elements; 385 } 386 387 if ($data['sheet_code'] == 'manufacturer') { 388 if ($data['store_id'] && $field_info['sheet'][$data['sheet_code']]['field']['target_keyword']['multi_store'] && $field_info['sheet'][$data['sheet_code']]['field']['target_keyword']['multi_store_status']) { 389 $target_keyword_store_id = $data['store_id']; 390 } else { 391 $target_keyword_store_id = 0; 392 } 393 394 $sql = "SELECT tk.route, tk.language_id, tk.sort_order, tk.keyword, m.manufacturer_id FROM " . DB_PREFIX . "d_target_keyword tk LEFT JOIN " . DB_PREFIX . "manufacturer m ON (CONCAT('manufacturer_id=', m.manufacturer_id) = tk.route) LEFT JOIN " . DB_PREFIX . "d_target_keyword tk2 ON (tk2.route = tk.route AND tk2.store_id = '" . (int)$target_keyword_store_id . "') WHERE tk.route LIKE 'manufacturer_id=%' AND tk.store_id = '" . (int)$target_keyword_store_id . "'"; 395 396 $implode = array(); 397 $implode_language = array(); 398 399 foreach ($data['filter'] as $field_code => $filter) { 400 if (!empty($filter)) { 401 if ($field_code == 'route') { 402 $implode[] = "tk2.route = '" . $this->db->escape($filter) . "'"; 403 } 404 405 if ($field_code == 'target_keyword') { 406 foreach ($filter as $language_id => $value) { 407 if (!empty($value)) { 408 $implode_language[] = "(tk2.language_id = '" . (int)$language_id . "' AND tk2.keyword LIKE '%" . $this->db->escape($value) . "%')"; 409 } 410 } 411 } 412 } 413 } 414 415 if ($implode_language) { 416 $implode[] = '(' . implode(' OR ', $implode_language) . ')'; 417 } 418 419 if ($implode) { 420 $sql .= " AND " . implode(' AND ', $implode); 421 } 422 423 $sql .= " GROUP BY tk.route, tk.language_id, tk.sort_order"; 424 425 $query = $this->db->query($sql); 426 427 foreach ($query->rows as $result) { 428 $target_elements[$result['route']]['route'] = $result['route']; 429 $target_elements[$result['route']]['target_keyword'][$result['language_id']][$result['sort_order']] = $result['keyword']; 430 431 if ($result['manufacturer_id']) { 432 $target_elements[$result['route']]['link'] = $this->url->link('catalog/manufacturer/edit', $url_token . '&manufacturer_id=' . $result['manufacturer_id'], true); 433 } 434 } 435 436 return $target_elements; 437 } 438 439 if ($data['sheet_code'] == 'information') { 440 if ($data['store_id'] && $field_info['sheet'][$data['sheet_code']]['field']['target_keyword']['multi_store'] && $field_info['sheet'][$data['sheet_code']]['field']['target_keyword']['multi_store_status']) { 441 $target_keyword_store_id = $data['store_id']; 442 } else { 443 $target_keyword_store_id = 0; 444 } 445 446 $sql = "SELECT tk.route, tk.language_id, tk.sort_order, tk.keyword, i.information_id FROM " . DB_PREFIX . "d_target_keyword tk LEFT JOIN " . DB_PREFIX . "information i ON (CONCAT('information_id=', i.information_id) = tk.route) LEFT JOIN " . DB_PREFIX . "d_target_keyword tk2 ON (tk2.route = tk.route AND tk2.store_id = '" . (int)$target_keyword_store_id . "') WHERE tk.route LIKE 'information_id=%' AND tk.store_id = '" . (int)$target_keyword_store_id . "'"; 447 448 $implode = array(); 449 $implode_language = array(); 450 451 foreach ($data['filter'] as $field_code => $filter) { 452 if (!empty($filter)) { 453 if ($field_code == 'route') { 454 $implode[] = "tk2.route = '" . $this->db->escape($filter) . "'"; 455 } 456 457 if ($field_code == 'target_keyword') { 458 foreach ($filter as $language_id => $value) { 459 if (!empty($value)) { 460 $implode_language[] = "(tk2.language_id = '" . (int)$language_id . "' AND tk2.keyword LIKE '%" . $this->db->escape($value) . "%')"; 461 } 462 } 463 } 464 } 465 } 466 467 if ($implode_language) { 468 $implode[] = '(' . implode(' OR ', $implode_language) . ')'; 469 } 470 471 if ($implode) { 472 $sql .= " AND " . implode(' AND ', $implode); 473 } 474 475 $sql .= " GROUP BY tk.route, tk.language_id, tk.sort_order"; 476 477 $query = $this->db->query($sql); 478 479 foreach ($query->rows as $result) { 480 $target_elements[$result['route']]['route'] = $result['route']; 481 $target_elements[$result['route']]['target_keyword'][$result['language_id']][$result['sort_order']] = $result['keyword']; 482 483 if ($result['information_id']) { 484 $target_elements[$result['route']]['link'] = $this->url->link('catalog/information/edit', $url_token . '&information_id=' . $result['information_id'], true); 485 } 486 } 487 488 return $target_elements; 489 } 490 491 if ($data['sheet_code'] == 'custom_page') { 492 if ($data['store_id'] && $field_info['sheet'][$data['sheet_code']]['field']['target_keyword']['multi_store'] && $field_info['sheet'][$data['sheet_code']]['field']['target_keyword']['multi_store_status']) { 493 $target_keyword_store_id = $data['store_id']; 494 } else { 495 $target_keyword_store_id = 0; 496 } 497 498 $sql = "SELECT tk.route, tk.language_id, tk.sort_order, tk.keyword FROM " . DB_PREFIX . "d_target_keyword tk LEFT JOIN " . DB_PREFIX . "d_target_keyword tk2 ON (tk2.route = tk.route AND tk2.store_id = '" . (int)$target_keyword_store_id . "') WHERE tk.route LIKE '%/%' AND tk.store_id = '" . (int)$target_keyword_store_id . "'"; 499 500 $implode = array(); 501 $implode_language = array(); 502 503 foreach ($data['filter'] as $field_code => $filter) { 504 if (!empty($filter)) { 505 if ($field_code == 'route') { 506 $implode[] = "tk2.route = '" . $this->db->escape($filter) . "'"; 507 } 508 509 if ($field_code == 'target_keyword') { 510 foreach ($filter as $language_id => $value) { 511 if (!empty($value)) { 512 $implode_language[] = "(tk2.language_id = '" . (int)$language_id . "' AND tk2.keyword LIKE '%" . $this->db->escape($value) . "%')"; 513 } 514 } 515 } 516 } 517 } 518 519 if ($implode_language) { 520 $implode[] = '(' . implode(' OR ', $implode_language) . ')'; 521 } 522 523 if ($implode) { 524 $sql .= " AND " . implode(' AND ', $implode); 525 } 526 527 $sql .= " GROUP BY tk.route, tk.language_id, tk.sort_order"; 528 529 $query = $this->db->query($sql); 530 531 foreach ($query->rows as $result) { 532 if (!in_array($result['route'], $custom_page_exception_routes)) { 533 $target_elements[$result['route']]['route'] = $result['route']; 534 $target_elements[$result['route']]['target_keyword'][$result['language_id']][$result['sort_order']] = $result['keyword']; 535 } 536 } 537 538 return $target_elements; 539 } 540 } 541 542 /* 543 * Add Target Element. 544 */ 545 public function addTargetElement($data) { 546 $field_info = $this->load->controller('extension/module/d_seo_module/getFieldInfo'); 547 $custom_page_exception_routes = $this->load->controller('extension/module/d_seo_module/getCustomPageExceptionRoutes'); 548 549 if (isset($data['route']) && isset($data['store_id']) && isset($data['target_keyword'])) { 550 if ((strpos($data['route'], 'category_id') === 0) || (strpos($data['route'], 'product_id') === 0) || (strpos($data['route'], 'manufacturer_id') === 0) || (strpos($data['route'], 'information_id') === 0) || (preg_match('/[A-Za-z0-9]+\/[A-Za-z0-9]+/i', $data['route']) && !in_array($data['route'], $custom_page_exception_routes))) { 551 $target_keyword_store_id = 0; 552 553 if (strpos($data['route'], 'category_id') === 0) { 554 if (isset($field_info['sheet']['category']['field']['target_keyword']['multi_store']) && $field_info['sheet']['category']['field']['target_keyword']['multi_store'] && isset($field_info['sheet']['category']['field']['target_keyword']['multi_store_status']) && $field_info['sheet']['category']['field']['target_keyword']['multi_store_status']) { 555 $target_keyword_store_id = $data['store_id']; 556 } else { 557 $target_keyword_store_id = 0; 558 } 559 } 560 561 if (strpos($data['route'], 'product_id') === 0) { 562 if (isset($field_info['sheet']['product']['field']['target_keyword']['multi_store']) && $field_info['sheet']['product']['field']['target_keyword']['multi_store'] && isset($field_info['sheet']['product']['field']['target_keyword']['multi_store_status']) && $field_info['sheet']['product']['field']['target_keyword']['multi_store_status']) { 563 $target_keyword_store_id = $data['store_id']; 564 } else { 565 $target_keyword_store_id = 0; 566 } 567 } 568 569 if (strpos($data['route'], 'manufacturer_id') === 0) { 570 if (isset($field_info['sheet']['manufacturer']['field']['target_keyword']['multi_store']) && $field_info['sheet']['manufacturer']['field']['target_keyword']['multi_store'] && isset($field_info['sheet']['manufacturer']['field']['target_keyword']['multi_store_status']) && $field_info['sheet']['manufacturer']['field']['target_keyword']['multi_store_status']) { 571 $target_keyword_store_id = $data['store_id']; 572 } else { 573 $target_keyword_store_id = 0; 574 } 575 } 576 577 if (strpos($data['route'], 'information_id') === 0) { 578 if (isset($field_info['sheet']['information']['field']['target_keyword']['multi_store']) && $field_info['sheet']['information']['field']['target_keyword']['multi_store'] && isset($field_info['sheet']['information']['field']['target_keyword']['multi_store_status']) && $field_info['sheet']['information']['field']['target_keyword']['multi_store_status']) { 579 $target_keyword_store_id = $data['store_id']; 580 } else { 581 $target_keyword_store_id = 0; 582 } 583 } 584 585 if (preg_match('/[A-Za-z0-9]+\/[A-Za-z0-9]+/i', $data['route'])) { 586 if (isset($field_info['sheet']['custom_page']['field']['target_keyword']['multi_store']) && $field_info['sheet']['custom_page']['field']['target_keyword']['multi_store'] && isset($field_info['sheet']['custom_page']['field']['target_keyword']['multi_store_status']) && $field_info['sheet']['custom_page']['field']['target_keyword']['multi_store_status']) { 587 $target_keyword_store_id = $data['store_id']; 588 } else { 589 $target_keyword_store_id = 0; 590 } 591 } 592 593 foreach ($data['target_keyword'] as $language_id => $target_keyword) { 594 preg_match_all('/\[[^]]+\]/', $target_keyword, $keywords); 595 596 $sort_order = 1; 597 598 foreach ($keywords[0] as $keyword) { 599 $keyword = substr($keyword, 1, strlen($keyword) - 2); 600 $this->db->query("INSERT INTO " . DB_PREFIX . "d_target_keyword SET route = '" . $this->db->escape($data['route']) . "', store_id = '" . (int)$target_keyword_store_id . "', language_id = '" . (int)$language_id . "', sort_order = '" . $sort_order . "', keyword = '" . $this->db->escape($keyword) . "'"); 601 602 $sort_order++; 603 } 604 } 605 } 606 } 607 } 608 609 /* 610 * Edit Target Element. 611 */ 612 public function editTargetElement($data) { 613 $field_info = $this->load->controller('extension/module/d_seo_module/getFieldInfo'); 614 $custom_page_exception_routes = $this->load->controller('extension/module/d_seo_module/getCustomPageExceptionRoutes'); 615 616 if (isset($data['route']) && isset($data['store_id']) && isset($data['language_id']) && isset($data['target_keyword'])) { 617 if ((strpos($data['route'], 'category_id') === 0) || (strpos($data['route'], 'product_id') === 0) || (strpos($data['route'], 'manufacturer_id') === 0) || (strpos($data['route'], 'information_id') === 0) || (preg_match('/[A-Za-z0-9]+\/[A-Za-z0-9]+/i', $data['route']) && !in_array($data['route'], $custom_page_exception_routes))) { 618 $target_keyword_store_id = 0; 619 620 if (strpos($data['route'], 'category_id') === 0) { 621 if (isset($field_info['sheet']['category']['field']['target_keyword']['multi_store']) && $field_info['sheet']['category']['field']['target_keyword']['multi_store'] && isset($field_info['sheet']['category']['field']['target_keyword']['multi_store_status']) && $field_info['sheet']['category']['field']['target_keyword']['multi_store_status']) { 622 $target_keyword_store_id = $data['store_id']; 623 } else { 624 $target_keyword_store_id = 0; 625 } 626 } 627 628 if (strpos($data['route'], 'product_id') === 0) { 629 if (isset($field_info['sheet']['product']['field']['target_keyword']['multi_store']) && $field_info['sheet']['product']['field']['target_keyword']['multi_store'] && isset($field_info['sheet']['product']['field']['target_keyword']['multi_store_status']) && $field_info['sheet']['product']['field']['target_keyword']['multi_store_status']) { 630 $target_keyword_store_id = $data['store_id']; 631 } else { 632 $target_keyword_store_id = 0; 633 } 634 } 635 636 if (strpos($data['route'], 'manufacturer_id') === 0) { 637 if (isset($field_info['sheet']['manufacturer']['field']['target_keyword']['multi_store']) && $field_info['sheet']['manufacturer']['field']['target_keyword']['multi_store'] && isset($field_info['sheet']['manufacturer']['field']['target_keyword']['multi_store_status']) && $field_info['sheet']['manufacturer']['field']['target_keyword']['multi_store_status']) { 638 $target_keyword_store_id = $data['store_id']; 639 } else { 640 $target_keyword_store_id = 0; 641 } 642 } 643 644 if (strpos($data['route'], 'information_id') === 0) { 645 if (isset($field_info['sheet']['information']['field']['target_keyword']['multi_store']) && $field_info['sheet']['information']['field']['target_keyword']['multi_store'] && isset($field_info['sheet']['information']['field']['target_keyword']['multi_store_status']) && $field_info['sheet']['information']['field']['target_keyword']['multi_store_status']) { 646 $target_keyword_store_id = $data['store_id']; 647 } else { 648 $target_keyword_store_id = 0; 649 } 650 } 651 652 if (preg_match('/[A-Za-z0-9]+\/[A-Za-z0-9]+/i', $data['route'])) { 653 if (isset($field_info['sheet']['custom_page']['field']['target_keyword']['multi_store']) && $field_info['sheet']['custom_page']['field']['target_keyword']['multi_store'] && isset($field_info['sheet']['custom_page']['field']['target_keyword']['multi_store_status']) && $field_info['sheet']['custom_page']['field']['target_keyword']['multi_store_status']) { 654 $target_keyword_store_id = $data['store_id']; 655 } else { 656 $target_keyword_store_id = 0; 657 } 658 } 659 660 $this->db->query("DELETE FROM " . DB_PREFIX . "d_target_keyword WHERE route = '" . $this->db->escape($data['route']) . "' AND store_id = '" . (int)$target_keyword_store_id . "' AND language_id = '" . (int)$data['language_id'] . "'"); 661 662 if ($data['target_keyword']) { 663 preg_match_all('/\[[^]]+\]/', $data['target_keyword'], $keywords); 664 665 $sort_order = 1; 666 667 foreach ($keywords[0] as $keyword) { 668 $keyword = substr($keyword, 1, strlen($keyword) - 2); 669 $this->db->query("INSERT INTO " . DB_PREFIX . "d_target_keyword SET route = '" . $this->db->escape($data['route']) . "', store_id = '" . (int)$target_keyword_store_id . "', language_id = '" . (int)$data['language_id'] . "', sort_order = '" . $sort_order . "', keyword = '" . $this->db->escape($keyword) . "'"); 670 671 $sort_order++; 672 } 673 } 674 } 675 } 676 } 677 678 /* 679 * Delete Target Element. 680 */ 681 public function deleteTargetElement($data) { 682 $field_info = $this->load->controller('extension/module/d_seo_module/getFieldInfo'); 683 $custom_page_exception_routes = $this->load->controller('extension/module/d_seo_module/getCustomPageExceptionRoutes'); 684 685 if (isset($data['route']) && isset($data['store_id'])) { 686 if ((strpos($data['route'], 'category_id') === 0) || (strpos($data['route'], 'product_id') === 0) || (strpos($data['route'], 'manufacturer_id') === 0) || (strpos($data['route'], 'information_id') === 0) || (preg_match('/[A-Za-z0-9]+\/[A-Za-z0-9]+/i', $data['route']) && !in_array($data['route'], $custom_page_exception_routes))) { 687 $target_keyword_store_id = 0; 688 689 if (strpos($data['route'], 'category_id') === 0) { 690 if (isset($field_info['sheet']['category']['field']['target_keyword']['multi_store']) && $field_info['sheet']['category']['field']['target_keyword']['multi_store'] && isset($field_info['sheet']['category']['field']['target_keyword']['multi_store_status']) && $field_info['sheet']['category']['field']['target_keyword']['multi_store_status']) { 691 $target_keyword_store_id = $data['store_id']; 692 } else { 693 $target_keyword_store_id = 0; 694 } 695 } 696 697 if (strpos($data['route'], 'product_id') === 0) { 698 if (isset($field_info['sheet']['product']['field']['target_keyword']['multi_store']) && $field_info['sheet']['product']['field']['target_keyword']['multi_store'] && isset($field_info['sheet']['product']['field']['target_keyword']['multi_store_status']) && $field_info['sheet']['product']['field']['target_keyword']['multi_store_status']) { 699 $target_keyword_store_id = $data['store_id']; 700 } else { 701 $target_keyword_store_id = 0; 702 } 703 } 704 705 if (strpos($data['route'], 'manufacturer_id') === 0) { 706 if (isset($field_info['sheet']['manufacturer']['field']['target_keyword']['multi_store']) && $field_info['sheet']['manufacturer']['field']['target_keyword']['multi_store'] && isset($field_info['sheet']['manufacturer']['field']['target_keyword']['multi_store_status']) && $field_info['sheet']['manufacturer']['field']['target_keyword']['multi_store_status']) { 707 $target_keyword_store_id = $data['store_id']; 708 } else { 709 $target_keyword_store_id = 0; 710 } 711 } 712 713 if (strpos($data['route'], 'information_id') === 0) { 714 if (isset($field_info['sheet']['information']['field']['target_keyword']['multi_store']) && $field_info['sheet']['information']['field']['target_keyword']['multi_store'] && isset($field_info['sheet']['information']['field']['target_keyword']['multi_store_status']) && $field_info['sheet']['information']['field']['target_keyword']['multi_store_status']) { 715 $target_keyword_store_id = $data['store_id']; 716 } else { 717 $target_keyword_store_id = 0; 718 } 719 } 720 721 if (preg_match('/[A-Za-z0-9]+\/[A-Za-z0-9]+/i', $data['route'])) { 722 if (isset($field_info['sheet']['custom_page']['field']['target_keyword']['multi_store']) && $field_info['sheet']['custom_page']['field']['target_keyword']['multi_store'] && isset($field_info['sheet']['custom_page']['field']['target_keyword']['multi_store_status']) && $field_info['sheet']['custom_page']['field']['target_keyword']['multi_store_status']) { 723 $target_keyword_store_id = $data['store_id']; 724 } else { 725 $target_keyword_store_id = 0; 726 } 727 } 728 729 $this->db->query("DELETE FROM " . DB_PREFIX . "d_target_keyword WHERE route = '" . $this->db->escape($data['route']) . "' AND store_id = '" . (int)$target_keyword_store_id . "'"); 730 } 731 } 732 } 733 734 /* 735 * Return Export Target Elements. 736 */ 737 public function getExportTargetElements($data) { 738 $field_info = $this->load->controller('extension/module/d_seo_module/getFieldInfo'); 739 $custom_page_exception_routes = $this->load->controller('extension/module/d_seo_module/getCustomPageExceptionRoutes'); 740 741 $target_elements = array(); 742 743 if ($data['sheet_code'] == 'category') { 744 if ($data['store_id'] && $field_info['sheet'][$data['sheet_code']]['field']['target_keyword']['multi_store'] && $field_info['sheet'][$data['sheet_code']]['field']['target_keyword']['multi_store_status']) { 745 $target_keyword_store_id = $data['store_id']; 746 } else { 747 $target_keyword_store_id = 0; 748 } 749 750 $query = $this->db->query("SELECT route, language_id, CONCAT('[', GROUP_CONCAT(DISTINCT keyword ORDER BY sort_order SEPARATOR ']['), ']') as target_keyword FROM " . DB_PREFIX . "d_target_keyword WHERE route LIKE 'category_id=%' AND store_id = '" . (int)$target_keyword_store_id . "' GROUP BY route, language_id"); 751 752 foreach ($query->rows as $result) { 753 $target_elements[$result['route']]['route'] = $result['route']; 754 $target_elements[$result['route']]['target_keyword'][$result['language_id']] = $result['target_keyword']; 755 } 756 757 return $target_elements; 758 } 759 760 if ($data['sheet_code'] == 'product') { 761 if ($data['store_id'] && $field_info['sheet'][$data['sheet_code']]['field']['target_keyword']['multi_store'] && $field_info['sheet'][$data['sheet_code']]['field']['target_keyword']['multi_store_status']) { 762 $target_keyword_store_id = $data['store_id']; 763 } else { 764 $target_keyword_store_id = 0; 765 } 766 767 $query = $this->db->query("SELECT route, language_id, CONCAT('[', GROUP_CONCAT(DISTINCT keyword ORDER BY sort_order SEPARATOR ']['), ']') as target_keyword FROM " . DB_PREFIX . "d_target_keyword WHERE route LIKE 'product_id=%' AND store_id = '" . (int)$target_keyword_store_id . "' GROUP BY route, language_id"); 768 769 foreach ($query->rows as $result) { 770 $target_elements[$result['route']]['route'] = $result['route']; 771 $target_elements[$result['route']]['target_keyword'][$result['language_id']] = $result['target_keyword']; 772 } 773 774 return $target_elements; 775 } 776 777 if ($data['sheet_code'] == 'manufacturer') { 778 if ($data['store_id'] && $field_info['sheet'][$data['sheet_code']]['field']['target_keyword']['multi_store'] && $field_info['sheet'][$data['sheet_code']]['field']['target_keyword']['multi_store_status']) { 779 $target_keyword_store_id = $data['store_id']; 780 } else { 781 $target_keyword_store_id = 0; 782 } 783 784 $query = $this->db->query("SELECT route, language_id, CONCAT('[', GROUP_CONCAT(DISTINCT keyword ORDER BY sort_order SEPARATOR ']['), ']') as target_keyword FROM " . DB_PREFIX . "d_target_keyword WHERE route LIKE 'manufacturer_id=%' AND store_id = '" . (int)$target_keyword_store_id . "' GROUP BY route, language_id"); 785 786 foreach ($query->rows as $result) { 787 $target_elements[$result['route']]['route'] = $result['route']; 788 $target_elements[$result['route']]['target_keyword'][$result['language_id']] = $result['target_keyword']; 789 } 790 791 return $target_elements; 792 } 793 794 if ($data['sheet_code'] == 'information') { 795 if ($data['store_id'] && $field_info['sheet'][$data['sheet_code']]['field']['target_keyword']['multi_store'] && $field_info['sheet'][$data['sheet_code']]['field']['target_keyword']['multi_store_status']) { 796 $target_keyword_store_id = $data['store_id']; 797 } else { 798 $target_keyword_store_id = 0; 799 } 800 801 $query = $this->db->query("SELECT route, language_id, CONCAT('[', GROUP_CONCAT(DISTINCT keyword ORDER BY sort_order SEPARATOR ']['), ']') as target_keyword FROM " . DB_PREFIX . "d_target_keyword WHERE route LIKE 'information_id=%' AND store_id = '" . (int)$target_keyword_store_id . "' GROUP BY route, language_id"); 802 803 foreach ($query->rows as $result) { 804 $target_elements[$result['route']]['route'] = $result['route']; 805 $target_elements[$result['route']]['target_keyword'][$result['language_id']] = $result['target_keyword']; 806 } 807 808 return $target_elements; 809 } 810 811 if ($data['sheet_code'] == 'custom_page') { 812 if ($data['store_id'] && $field_info['sheet'][$data['sheet_code']]['field']['target_keyword']['multi_store'] && $field_info['sheet'][$data['sheet_code']]['field']['target_keyword']['multi_store_status']) { 813 $target_keyword_store_id = $data['store_id']; 814 } else { 815 $target_keyword_store_id = 0; 816 } 817 818 $query = $this->db->query("SELECT route, language_id, CONCAT('[', GROUP_CONCAT(DISTINCT keyword ORDER BY sort_order SEPARATOR ']['), ']') as target_keyword FROM " . DB_PREFIX . "d_target_keyword WHERE route LIKE '%/%' AND store_id = '" . (int)$target_keyword_store_id . "' GROUP BY route, language_id"); 819 820 foreach ($query->rows as $result) { 821 if (!in_array($result['route'], $custom_page_exception_routes)) { 822 $target_elements[$result['route']]['route'] = $result['route']; 823 $target_elements[$result['route']]['target_keyword'][$result['language_id']] = $result['target_keyword']; 824 } 825 } 826 827 return $target_elements; 828 } 829 } 830 831 /* 832 * Save Import Target Elements. 833 */ 834 public function saveImportTargetElements($data) { 835 $this->load->model('extension/module/' . $this->codename); 836 837 $languages = $this->{'model_extension_module_' . $this->codename}->getLanguages(); 838 839 $field_info = $this->load->controller('extension/module/d_seo_module/getFieldInfo'); 840 $custom_page_exception_routes = $this->load->controller('extension/module/d_seo_module/getCustomPageExceptionRoutes'); 841 842 $target_elements = array(); 843 844 if ($data['store_id'] && $field_info['sheet']['category']['field']['target_keyword']['multi_store'] && $field_info['sheet']['category']['field']['target_keyword']['multi_store_status']) { 845 $target_keyword_store_id = $data['store_id']; 846 } else { 847 $target_keyword_store_id = 0; 848 } 849 850 $query = $this->db->query("SELECT route, language_id, CONCAT('[', GROUP_CONCAT(DISTINCT keyword ORDER BY sort_order SEPARATOR ']['), ']') as target_keyword FROM " . DB_PREFIX . "d_target_keyword WHERE route LIKE 'category_id=%' AND store_id = '" . (int)$target_keyword_store_id . "' GROUP BY route, language_id"); 851 852 foreach ($query->rows as $result) { 853 $target_elements[$result['route']]['route'] = $result['route']; 854 $target_elements[$result['route']]['target_keyword'][$result['language_id']] = $result['target_keyword']; 855 } 856 857 if ($data['store_id'] && $field_info['sheet']['product']['field']['target_keyword']['multi_store'] && $field_info['sheet']['product']['field']['target_keyword']['multi_store_status']) { 858 $target_keyword_store_id = $data['store_id']; 859 } else { 860 $target_keyword_store_id = 0; 861 } 862 863 $query = $this->db->query("SELECT route, language_id, CONCAT('[', GROUP_CONCAT(DISTINCT keyword ORDER BY sort_order SEPARATOR ']['), ']') as target_keyword FROM " . DB_PREFIX . "d_target_keyword WHERE route LIKE 'product_id=%' AND store_id = '" . (int)$target_keyword_store_id . "' GROUP BY route, language_id"); 864 865 foreach ($query->rows as $result) { 866 $target_elements[$result['route']]['route'] = $result['route']; 867 $target_elements[$result['route']]['target_keyword'][$result['language_id']] = $result['target_keyword']; 868 } 869 870 if ($data['store_id'] && $field_info['sheet']['manufacturer']['field']['target_keyword']['multi_store'] && $field_info['sheet']['manufacturer']['field']['target_keyword']['multi_store_status']) { 871 $target_keyword_store_id = $data['store_id']; 872 } else { 873 $target_keyword_store_id = 0; 874 } 875 876 $query = $this->db->query("SELECT route, language_id, CONCAT('[', GROUP_CONCAT(DISTINCT keyword ORDER BY sort_order SEPARATOR ']['), ']') as target_keyword FROM " . DB_PREFIX . "d_target_keyword WHERE route LIKE 'manufacturer_id=%' AND store_id = '" . (int)$target_keyword_store_id . "' GROUP BY route, language_id"); 877 878 foreach ($query->rows as $result) { 879 $target_elements[$result['route']]['route'] = $result['route']; 880 $target_elements[$result['route']]['target_keyword'][$result['language_id']] = $result['target_keyword']; 881 } 882 883 if ($data['store_id'] && $field_info['sheet']['information']['field']['target_keyword']['multi_store'] && $field_info['sheet']['information']['field']['target_keyword']['multi_store_status']) { 884 $target_keyword_store_id = $data['store_id']; 885 } else { 886 $target_keyword_store_id = 0; 887 } 888 889 $query = $this->db->query("SELECT route, language_id, CONCAT('[', GROUP_CONCAT(DISTINCT keyword ORDER BY sort_order SEPARATOR ']['), ']') as target_keyword FROM " . DB_PREFIX . "d_target_keyword WHERE route LIKE 'information_id=%' AND store_id = '" . (int)$target_keyword_store_id . "' GROUP BY route, language_id"); 890 891 foreach ($query->rows as $result) { 892 $target_elements[$result['route']]['route'] = $result['route']; 893 $target_elements[$result['route']]['target_keyword'][$result['language_id']] = $result['target_keyword']; 894 } 895 896 if ($data['store_id'] && $field_info['sheet']['custom_page']['field']['target_keyword']['multi_store'] && $field_info['sheet']['custom_page']['field']['target_keyword']['multi_store_status']) { 897 $target_keyword_store_id = $data['store_id']; 898 } else { 899 $target_keyword_store_id = 0; 900 } 901 902 $query = $this->db->query("SELECT route, language_id, CONCAT('[', GROUP_CONCAT(DISTINCT keyword ORDER BY sort_order SEPARATOR ']['), ']') as target_keyword FROM " . DB_PREFIX . "d_target_keyword WHERE route LIKE '%/%' AND store_id = '" . (int)$target_keyword_store_id . "' GROUP BY route, language_id"); 903 904 foreach ($query->rows as $result) { 905 if (!in_array($result['route'], $custom_page_exception_routes)) { 906 $target_elements[$result['route']]['route'] = $result['route']; 907 $target_elements[$result['route']]['target_keyword'][$result['language_id']] = $result['target_keyword']; 908 } 909 } 910 911 foreach ($data['target_elements'] as $target_element) { 912 $sheet_code = ''; 913 914 if (strpos($target_element['route'], 'category_id') === 0) $sheet_code = 'category'; 915 if (strpos($target_element['route'], 'product_id') === 0) $sheet_code = 'product'; 916 if (strpos($target_element['route'], 'manufacturer_id') === 0) $sheet_code = 'manufacturer'; 917 if (strpos($target_element['route'], 'information_id') === 0) $sheet_code = 'information'; 918 if (preg_match('/[A-Za-z0-9]+\/[A-Za-z0-9]+/i', $target_element['route']) && !($custom_page_exception_routes && in_array($target_element['route'], $custom_page_exception_routes))) $sheet_code = 'custom_page'; 919 920 if ($sheet_code) { 921 foreach ($languages as $language) { 922 if (isset($target_element['target_keyword'][$language['language_id']])) { 923 if ((isset($target_elements[$target_element['route']]['target_keyword'][$language['language_id']]) && ($target_element['target_keyword'][$language['language_id']] != $target_elements[$target_element['route']]['target_keyword'][$language['language_id']])) || !isset($target_elements[$target_element['route']]['target_keyword'][$language['language_id']])) { 924 if ($data['store_id'] && $field_info['sheet'][$sheet_code]['field']['target_keyword']['multi_store'] && $field_info['sheet'][$sheet_code]['field']['target_keyword']['multi_store_status']) { 925 $target_keyword_store_id = $data['store_id']; 926 } else { 927 $target_keyword_store_id = 0; 928 } 929 930 $this->db->query("DELETE FROM " . DB_PREFIX . "d_target_keyword WHERE route = '" . $this->db->escape($target_element['route']) . "' AND store_id = '" . (int)$target_keyword_store_id . "' AND language_id = '" . (int)$language['language_id'] . "'"); 931 932 if ($target_element['target_keyword'][$language['language_id']]) { 933 preg_match_all('/\[[^]]+\]/', $target_element['target_keyword'][$language['language_id']], $keywords); 934 935 $sort_order = 1; 936 937 foreach ($keywords[0] as $keyword) { 938 $keyword = substr($keyword, 1, strlen($keyword) - 2); 939 940 $this->db->query("INSERT INTO " . DB_PREFIX . "d_target_keyword SET route = '" . $this->db->escape($target_element['route']) . "', store_id = '" . (int)$target_keyword_store_id . "', language_id = '" . (int)$language['language_id'] . "', sort_order = '" . $sort_order . "', keyword = '" . $this->db->escape($keyword) . "'"); 941 942 $sort_order++; 943 } 944 } 945 } 946 } 947 } 948 } 949 } 950 } 951 952 /* 953 * Return Field Elements. 954 */ 955 public function getFieldElements($data) { 956 if ($data['field_code'] == 'target_keyword') { 957 $this->load->model('extension/module/' . $this->codename); 958 959 $stores = $this->{'model_extension_module_' . $this->codename}->getStores(); 960 961 $field_info = $this->load->controller('extension/module/d_seo_module/getFieldInfo'); 962 $custom_page_exception_routes = $this->load->controller('extension/module/d_seo_module/getCustomPageExceptionRoutes'); 963 964 $field_elements = array(); 965 966 $sql = "SELECT * FROM " . DB_PREFIX . "d_target_keyword"; 967 968 $implode = array(); 969 970 foreach ($data['filter'] as $filter_code => $filter) { 971 if (!empty($filter)) { 972 if ($filter_code == 'route') { 973 if (strpos($filter, '%') !== false) { 974 $implode[] = "route LIKE '" . $this->db->escape($filter) . "'"; 975 } else { 976 $implode[] = "route = '" . $this->db->escape($filter) . "'"; 977 } 978 } 979 980 if ($filter_code == 'language_id' ) { 981 $implode[] = "language_id = '" . (int)$filter . "'"; 982 } 983 984 if ($filter_code == 'sort_order') { 985 $implode[] = "sort_order = '" . (int)$filter . "'"; 986 } 987 988 if ($filter_code == 'keyword') { 989 $implode[] = "keyword = '" . $this->db->escape($filter) . "'"; 990 } 991 } 992 } 993 994 if ($implode) { 995 $sql .= " WHERE " . implode(' AND ', $implode); 996 } 997 998 $sql .= " ORDER BY sort_order"; 999 1000 $query = $this->db->query($sql); 1001 1002 foreach ($query->rows as $result) { 1003 if (strpos($result['route'], 'category_id') === 0) { 1004 if (isset($field_info['sheet']['category']['field']['target_keyword']['multi_store']) && $field_info['sheet']['category']['field']['target_keyword']['multi_store'] && isset($field_info['sheet']['category']['field']['target_keyword']['multi_store_status']) && $field_info['sheet']['category']['field']['target_keyword']['multi_store_status']) { 1005 if ((isset($data['filter']['store_id']) && ($result['store_id'] == $data['filter']['store_id'])) || !isset($data['filter']['store_id'])) { 1006 $field_elements[$result['route']][$result['store_id']][$result['language_id']][$result['sort_order']] = $result['keyword']; 1007 } 1008 } elseif ($result['store_id'] == 0) { 1009 foreach ($stores as $store) { 1010 if ((isset($data['filter']['store_id']) && ($store['store_id'] == $data['filter']['store_id'])) || !isset($data['filter']['store_id'])) { 1011 $field_elements[$result['route']][$store['store_id']][$result['language_id']][$result['sort_order']] = $result['keyword']; 1012 } 1013 } 1014 } 1015 } 1016 1017 if (strpos($result['route'], 'product_id') === 0) { 1018 if (isset($field_info['sheet']['product']['field']['target_keyword']['multi_store']) && $field_info['sheet']['product']['field']['target_keyword']['multi_store'] && isset($field_info['sheet']['product']['field']['target_keyword']['multi_store_status']) && $field_info['sheet']['product']['field']['target_keyword']['multi_store_status']) { 1019 if ((isset($data['filter']['store_id']) && ($result['store_id'] == $data['filter']['store_id'])) || !isset($data['filter']['store_id'])) { 1020 $field_elements[$result['route']][$result['store_id']][$result['language_id']][$result['sort_order']] = $result['keyword']; 1021 } 1022 } elseif ($result['store_id'] == 0) { 1023 foreach ($stores as $store) { 1024 if ((isset($data['filter']['store_id']) && ($store['store_id'] == $data['filter']['store_id'])) || !isset($data['filter']['store_id'])) { 1025 $field_elements[$result['route']][$store['store_id']][$result['language_id']][$result['sort_order']] = $result['keyword']; 1026 } 1027 } 1028 } 1029 } 1030 1031 if (strpos($result['route'], 'manufacturer_id') === 0) { 1032 if (isset($field_info['sheet']['manufacturer']['field']['target_keyword']['multi_store']) && $field_info['sheet']['manufacturer']['field']['target_keyword']['multi_store'] && isset($field_info['sheet']['manufacturer']['field']['target_keyword']['multi_store_status']) && $field_info['sheet']['manufacturer']['field']['target_keyword']['multi_store_status']) { 1033 if ((isset($data['filter']['store_id']) && ($result['store_id'] == $data['filter']['store_id'])) || !isset($data['filter']['store_id'])) { 1034 $field_elements[$result['route']][$result['store_id']][$result['language_id']][$result['sort_order']] = $result['keyword']; 1035 } 1036 } elseif ($result['store_id'] == 0) { 1037 foreach ($stores as $store) { 1038 if ((isset($data['filter']['store_id']) && ($store['store_id'] == $data['filter']['store_id'])) || !isset($data['filter']['store_id'])) { 1039 $field_elements[$result['route']][$store['store_id']][$result['language_id']][$result['sort_order']] = $result['keyword']; 1040 } 1041 } 1042 } 1043 } 1044 1045 if (strpos($result['route'], 'information_id') === 0) { 1046 if (isset($field_info['sheet']['information']['field']['target_keyword']['multi_store']) && $field_info['sheet']['information']['field']['target_keyword']['multi_store'] && isset($field_info['sheet']['information']['field']['target_keyword']['multi_store_status']) && $field_info['sheet']['information']['field']['target_keyword']['multi_store_status']) { 1047 if ((isset($data['filter']['store_id']) && ($result['store_id'] == $data['filter']['store_id'])) || !isset($data['filter']['store_id'])) { 1048 $field_elements[$result['route']][$result['store_id']][$result['language_id']][$result['sort_order']] = $result['keyword']; 1049 } 1050 } elseif ($result['store_id'] == 0) { 1051 foreach ($stores as $store) { 1052 if ((isset($data['filter']['store_id']) && ($store['store_id'] == $data['filter']['store_id'])) || !isset($data['filter']['store_id'])) { 1053 $field_elements[$result['route']][$store['store_id']][$result['language_id']][$result['sort_order']] = $result['keyword']; 1054 } 1055 } 1056 } 1057 } 1058 1059 if (preg_match('/[A-Za-z0-9]+\/[A-Za-z0-9]+/i', $result['route']) && !($custom_page_exception_routes && in_array($result['route'], $custom_page_exception_routes))) { 1060 if (isset($field_info['sheet']['custom_page']['field']['target_keyword']['multi_store']) && $field_info['sheet']['custom_page']['field']['target_keyword']['multi_store'] && isset($field_info['sheet']['custom_page']['field']['target_keyword']['multi_store_status']) && $field_info['sheet']['custom_page']['field']['target_keyword']['multi_store_status']) { 1061 if ((isset($data['filter']['store_id']) && ($result['store_id'] == $data['filter']['store_id'])) || !isset($data['filter']['store_id'])) { 1062 $field_elements[$result['route']][$result['store_id']][$result['language_id']][$result['sort_order']] = $result['keyword']; 1063 } 1064 } elseif ($result['store_id'] == 0) { 1065 foreach ($stores as $store) { 1066 if ((isset($data['filter']['store_id']) && ($store['store_id'] == $data['filter']['store_id'])) || !isset($data['filter']['store_id'])) { 1067 $field_elements[$result['route']][$store['store_id']][$result['language_id']][$result['sort_order']] = $result['keyword']; 1068 } 1069 } 1070 } 1071 } 1072 } 1073 1074 return $field_elements; 1075 } 1076 1077 if ($data['field_code'] == 'url_keyword') { 1078 $this->load->model('extension/module/' . $this->codename); 1079 1080 $stores = $this->{'model_extension_module_' . $this->codename}->getStores(); 1081 $languages = $this->{'model_extension_module_' . $this->codename}->getLanguages(); 1082 1083 $field_info = $this->load->controller('extension/module/d_seo_module/getFieldInfo'); 1084 $custom_page_exception_routes = $this->load->controller('extension/module/d_seo_module/getCustomPageExceptionRoutes'); 1085 1086 if (!(isset($field_info['sheet']['category']['field']['url_keyword']['multi_store']) && $field_info['sheet']['category']['field']['url_keyword']['multi_store'] && isset($field_info['sheet']['product']['field']['url_keyword']['multi_store']) && $field_info['sheet']['product']['field']['url_keyword']['multi_store']) && isset($field_info['sheet']['manufacturer']['field']['url_keyword']['multi_store']) && $field_info['sheet']['manufacturer']['field']['url_keyword']['multi_store'] && isset($field_info['sheet']['information']['field']['url_keyword']['multi_store']) && $field_info['sheet']['information']['field']['url_keyword']['multi_store']) { 1087 if (VERSION >= '3.0.0.0') { 1088 $sql = "SELECT * FROM " . DB_PREFIX . "seo_url"; 1089 } else { 1090 $sql = "SELECT * FROM " . DB_PREFIX . "url_alias"; 1091 } 1092 1093 $implode = array(); 1094 1095 foreach ($data['filter'] as $filter_code => $filter) { 1096 if (!empty($filter)) { 1097 if ($filter_code == 'route') { 1098 if (strpos($filter, '%') !== false) { 1099 $implode[] = "query LIKE '" . $this->db->escape($filter) . "'"; 1100 } else { 1101 $implode[] = "query = '" . $this->db->escape($filter) . "'"; 1102 } 1103 } 1104 1105 if (VERSION >= '3.0.0.0') { 1106 if ($filter_code == 'language_id' ) { 1107 $implode[] = "language_id = '" . (int)$filter . "'"; 1108 } 1109 } 1110 1111 if ($filter_code == 'keyword') { 1112 $implode[] = "keyword = '" . $this->db->escape($filter) . "'"; 1113 } 1114 } 1115 } 1116 1117 if ($implode) { 1118 $sql .= " WHERE " . implode(' AND ', $implode); 1119 } 1120 1121 $query = $this->db->query($sql); 1122 1123 foreach ($query->rows as $result) { 1124 if ((strpos($result['route'], 'category_id') === 0) || (strpos($result['route'], 'product_id') === 0) || (strpos($result['route'], 'manufacturer_id') === 0) || (strpos($result['route'], 'information_id') === 0) || (preg_match('/[A-Za-z0-9]+\/[A-Za-z0-9]+/i', $result['route']) && !($custom_page_exception_routes && in_array($result['route'], $custom_page_exception_routes)))) { 1125 if (VERSION >= '3.0.0.0') { 1126 if ((isset($data['filter']['store_id']) && ($result['store_id'] == $data['filter']['store_id'])) || !isset($data['filter']['store_id'])) { 1127 $field_elements[$result['route']][$result['store_id']][$result['language_id']] = $result['keyword']; 1128 } 1129 } else { 1130 foreach ($stores as $store) { 1131 foreach ($languages as $language) { 1132 if ((isset($data['filter']['store_id']) && ($store['store_id'] == $data['filter']['store_id'])) || !isset($data['filter']['store_id'])) { 1133 $field_elements[$result['route']][$store['store_id']][$language['language_id']] = $result['keyword']; 1134 } 1135 } 1136 } 1137 } 1138 } 1139 } 1140 1141 return $field_elements; 1142 } 1143 } 1144 1145 if ($data['field_code'] == 'meta_data') { 1146 $this->load->model('extension/module/' . $this->codename); 1147 $this->load->model('setting/setting'); 1148 1149 $stores = $this->{'model_extension_module_' . $this->codename}->getStores(); 1150 $languages = $this->{'model_extension_module_' . $this->codename}->getLanguages(); 1151 1152 $field_info = $this->load->controller('extension/module/d_seo_module/getFieldInfo'); 1153 $custom_page_exception_routes = $this->load->controller('extension/module/d_seo_module_meta/getCustomPageExceptionRoutes'); 1154 1155 $field_elements = array(); 1156 1157 if (!(isset($field_info['sheet']['category']['field']['meta_title']['multi_store']) && $field_info['sheet']['category']['field']['meta_title']['multi_store'] && isset($field_info['sheet']['product']['field']['meta_title']['multi_store']) && $field_info['sheet']['product']['field']['meta_title']['multi_store'] && isset($field_info['sheet']['manufacturer']['field']['meta_title']['multi_store']) && $field_info['sheet']['manufacturer']['field']['meta_title']['multi_store'] && isset($field_info['sheet']['information']['field']['meta_title']['multi_store']) && $field_info['sheet']['information']['field']['meta_title']['multi_store'])) { 1158 if ((isset($data['filter']['route']) && (strpos($data['filter']['route'], 'category_id') === 0)) || !isset($data['filter']['route'])) { 1159 $sql = "SELECT * FROM " . DB_PREFIX . "category_description"; 1160 1161 $implode = array(); 1162 1163 foreach ($data['filter'] as $filter_code => $filter) { 1164 if (!empty($filter)) { 1165 if ($filter_code == 'route') { 1166 $route_arr = explode('category_id=', $filter); 1167 1168 if (isset($route_arr[1]) && ($route_arr[1] != '%')) { 1169 $category_id = $route_arr[1]; 1170 $implode[] = "category_id = '" . (int)$category_id . "'"; 1171 } 1172 } 1173 1174 if ($filter_code == 'language_id' ) { 1175 $implode[] = "language_id = '" . (int)$filter . "'"; 1176 } 1177 1178 if ($filter_code == 'name') { 1179 $implode[] = "name = '" . $this->db->escape($filter) . "'"; 1180 } 1181 1182 if ($filter_code == 'description') { 1183 $implode[] = "description = '" . $this->db->escape($filter) . "'"; 1184 } 1185 1186 if ($filter_code == 'meta_title') { 1187 $implode[] = "meta_title = '" . $this->db->escape($filter) . "'"; 1188 } 1189 1190 if ($filter_code == 'meta_description') { 1191 $implode[] = "meta_description = '" . $this->db->escape($filter) . "'"; 1192 } 1193 1194 if ($filter_code == 'meta_keyword') { 1195 $implode[] = "meta_keyword = '" . $this->db->escape($filter) . "'"; 1196 } 1197 } 1198 } 1199 1200 if ($implode) { 1201 $sql .= " WHERE " . implode(' AND ', $implode); 1202 } 1203 1204 $query = $this->db->query($sql); 1205 1206 foreach ($query->rows as $result) { 1207 $route = 'category_id=' . $result['category_id']; 1208 1209 foreach ($stores as $store) { 1210 if ((isset($data['filter']['store_id']) && ($store['store_id'] == $data['filter']['store_id'])) || !isset($data['filter']['store_id'])) { 1211 $field_elements[$route][$store['store_id']][$result['language_id']]['name'] = $result['name']; 1212 $field_elements[$route][$store['store_id']][$result['language_id']]['description'] = $result['description']; 1213 $field_elements[$route][$store['store_id']][$result['language_id']]['meta_title'] = $result['meta_title']; 1214 $field_elements[$route][$store['store_id']][$result['language_id']]['meta_description'] = $result['meta_description']; 1215 $field_elements[$route][$store['store_id']][$result['language_id']]['meta_keyword'] = $result['meta_keyword']; 1216 } 1217 } 1218 } 1219 } 1220 1221 if ((isset($data['filter']['route']) && (strpos($data['filter']['route'], 'product_id') === 0)) || !isset($data['filter']['route'])) { 1222 $sql = "SELECT * FROM " . DB_PREFIX . "product_description"; 1223 1224 $implode = array(); 1225 1226 foreach ($data['filter'] as $filter_code => $filter) { 1227 if (!empty($filter)) { 1228 if ($filter_code == 'route') { 1229 $route_arr = explode('product_id=', $filter); 1230 1231 if (isset($route_arr[1]) && ($route_arr[1] != '%')) { 1232 $product_id = $route_arr[1]; 1233 $implode[] = "product_id = '" . (int)$product_id . "'"; 1234 } 1235 } 1236 1237 if ($filter_code == 'language_id' ) { 1238 $implode[] = "language_id = '" . (int)$filter . "'"; 1239 } 1240 1241 if ($filter_code == 'name') { 1242 $implode[] = "name = '" . $this->db->escape($filter) . "'"; 1243 } 1244 1245 if ($filter_code == 'description') { 1246 $implode[] = "description = '" . $this->db->escape($filter) . "'"; 1247 } 1248 1249 if ($filter_code == 'meta_title') { 1250 $implode[] = "meta_title = '" . $this->db->escape($filter) . "'"; 1251 } 1252 1253 if ($filter_code == 'meta_description') { 1254 $implode[] = "meta_description = '" . $this->db->escape($filter) . "'"; 1255 } 1256 1257 if ($filter_code == 'meta_keyword') { 1258 $implode[] = "meta_keyword = '" . $this->db->escape($filter) . "'"; 1259 } 1260 1261 if ($filter_code == 'tag') { 1262 $implode[] = "tag = '" . $this->db->escape($filter) . "'"; 1263 } 1264 } 1265 } 1266 1267 if ($implode) { 1268 $sql .= " WHERE " . implode(' AND ', $implode); 1269 } 1270 1271 $query = $this->db->query($sql); 1272 1273 foreach ($query->rows as $result) { 1274 $route = 'product_id=' . $result['product_id']; 1275 1276 foreach ($stores as $store) { 1277 if ((isset($data['filter']['store_id']) && ($store['store_id'] == $data['filter']['store_id'])) || !isset($data['filter']['store_id'])) { 1278 $field_elements[$route][$store['store_id']][$result['language_id']]['name'] = $result['name']; 1279 $field_elements[$route][$store['store_id']][$result['language_id']]['description'] = $result['description']; 1280 $field_elements[$route][$store['store_id']][$result['language_id']]['meta_title'] = $result['meta_title']; 1281 $field_elements[$route][$store['store_id']][$result['language_id']]['meta_description'] = $result['meta_description']; 1282 $field_elements[$route][$store['store_id']][$result['language_id']]['meta_keyword'] = $result['meta_keyword']; 1283 $field_elements[$route][$store['store_id']][$result['language_id']]['tag'] = $result['tag']; 1284 } 1285 } 1286 } 1287 } 1288 1289 if ((isset($data['filter']['route']) && (strpos($data['filter']['route'], 'manufacturer_id') === 0)) || !isset($data['filter']['route'])) { 1290 $sql = "SELECT * FROM " . DB_PREFIX . "manufacturer"; 1291 1292 $implode = array(); 1293 1294 foreach ($data['filter'] as $filter_code => $filter) { 1295 if (!empty($filter)) { 1296 if ($filter_code == 'route') { 1297 $route_arr = explode('manufacturer_id=', $filter); 1298 1299 if (isset($route_arr[1]) && ($route_arr[1] != '%')) { 1300 $manufacturer_id = $route_arr[1]; 1301 $implode[] = "manufacturer_id = '" . (int)$manufacturer_id . "'"; 1302 } 1303 } 1304 1305 if ($filter_code == 'name') { 1306 $implode[] = "name = '" . $this->db->escape($filter) . "'"; 1307 } 1308 } 1309 } 1310 1311 if ($implode) { 1312 $sql .= " WHERE " . implode(' AND ', $implode); 1313 } 1314 1315 $query = $this->db->query($sql); 1316 1317 foreach ($query->rows as $result) { 1318 $route = 'manufacturer_id=' . $result['manufacturer_id']; 1319 1320 foreach ($stores as $store) { 1321 foreach ($languages as $language) { 1322 if ((isset($data['filter']['store_id']) && ($store['store_id'] == $data['filter']['store_id'])) || !isset($data['filter']['store_id'])) { 1323 $field_elements[$route][$store['store_id']][$language['language_id']]['name'] = $result['name']; 1324 } 1325 } 1326 } 1327 } 1328 } 1329 1330 if ((isset($data['filter']['route']) && (strpos($data['filter']['route'], 'information_id') === 0)) || !isset($data['filter']['route'])) { 1331 $sql = "SELECT * FROM " . DB_PREFIX . "information_description"; 1332 1333 $implode = array(); 1334 1335 foreach ($data['filter'] as $filter_code => $filter) { 1336 if (!empty($filter)) { 1337 if ($filter_code == 'route') { 1338 $route_arr = explode('information_id=', $filter); 1339 1340 if (isset($route_arr[1]) && ($route_arr[1] != '%')) { 1341 $information_id = $route_arr[1]; 1342 $implode[] = "information_id = '" . (int)$information_id . "'"; 1343 } 1344 } 1345 1346 if ($filter_code == 'language_id' ) { 1347 $implode[] = "language_id = '" . (int)$filter . "'"; 1348 } 1349 1350 if ($filter_code == 'title') { 1351 $implode[] = "title = '" . $this->db->escape($filter) . "'"; 1352 } 1353 1354 if ($filter_code == 'description') { 1355 $implode[] = "description = '" . $this->db->escape($filter) . "'"; 1356 } 1357 1358 if ($filter_code == 'meta_title') { 1359 $implode[] = "meta_title = '" . $this->db->escape($filter) . "'"; 1360 } 1361 1362 if ($filter_code == 'meta_description') { 1363 $implode[] = "meta_description = '" . $this->db->escape($filter) . "'"; 1364 } 1365 1366 if ($filter_code == 'meta_keyword') { 1367 $implode[] = "meta_keyword = '" . $this->db->escape($filter) . "'"; 1368 } 1369 } 1370 } 1371 1372 if ($implode) { 1373 $sql .= " WHERE " . implode(' AND ', $implode); 1374 } 1375 1376 $query = $this->db->query($sql); 1377 1378 foreach ($query->rows as $result) { 1379 $route = 'information_id=' . $result['information_id']; 1380 1381 foreach ($stores as $store) { 1382 if ((isset($data['filter']['store_id']) && ($store['store_id'] == $data['filter']['store_id'])) || !isset($data['filter']['store_id'])) { 1383 $field_elements[$route][$store['store_id']][$result['language_id']]['title'] = $result['title']; 1384 $field_elements[$route][$store['store_id']][$result['language_id']]['description'] = $result['description']; 1385 $field_elements[$route][$store['store_id']][$result['language_id']]['meta_title'] = $result['meta_title']; 1386 $field_elements[$route][$store['store_id']][$result['language_id']]['meta_description'] = $result['meta_description']; 1387 $field_elements[$route][$store['store_id']][$result['language_id']]['meta_keyword'] = $result['meta_keyword']; 1388 } 1389 } 1390 } 1391 } 1392 1393 if ((isset($data['filter']['route']) && ($data['filter']['route'] == 'common/home')) || !isset($data['filter']['route'])) { 1394 $route = 'common/home'; 1395 1396 foreach ($stores as $store) { 1397 if ((isset($data['filter']['store_id']) && ($store['store_id'] == $data['filter']['store_id'])) || !isset($data['filter']['store_id'])) { 1398 if ($store['store_id'] == 0) { 1399 $meta_title = $this->config->get('config_meta_title'); 1400 $meta_description = $this->config->get('config_meta_description'); 1401 $meta_keyword = $this->config->get('config_meta_keyword'); 1402 } else { 1403 $store_info = $this->model_setting_setting->getSetting('config', $store['store_id']); 1404 1405 $meta_title = isset($store_info['meta_title']) ? $store_info['meta_title'] : ''; 1406 $meta_description = isset($store_info['meta_description']) ? $store_info['meta_description'] : ''; 1407 $meta_keyword = isset($store_info['meta_keyword']) ? $store_info['meta_keyword'] : ''; 1408 } 1409 1410 if (((isset($data['filter']['meta_title']) && ($meta_title == $data['filter']['meta_title'])) || !isset($data['filter']['meta_title'])) && ((isset($data['filter']['meta_description']) && ($meta_description == $data['filter']['meta_description'])) || !isset($data['filter']['meta_description'])) && ((isset($data['filter']['meta_keyword']) && ($meta_keyword == $data['filter']['meta_keyword'])) || !isset($data['filter']['meta_keyword']))) { 1411 foreach ($languages as $language) { 1412 $field_elements[$route][$store['store_id']][$language['language_id']]['meta_title'] = $meta_title; 1413 $field_elements[$route][$store['store_id']][$language['language_id']]['meta_description'] = $meta_description; 1414 $field_elements[$route][$store['store_id']][$language['language_id']]['meta_keyword'] = $meta_keyword; 1415 } 1416 } 1417 } 1418 } 1419 } 1420 } 1421 1422 return $field_elements; 1423 } 1424 1425 return false; 1426 } 1427 } 1428 ?>