d_seo_module_target_keyword.php (5247B)
1 <?php 2 class ModelExtensionDashboardDSEOModuleTargetKeyword extends Model { 3 private $codename = 'd_seo_module_target_keyword'; 4 5 /* 6 * Return Store Duplicate Target Elements. 7 */ 8 public function getStoreDuplicateTargetElements($target_elements) { 9 $routes = array(); 10 11 foreach ($target_elements as $target_element) { 12 foreach($target_element['target_keyword'] as $store_id => $language_target_keyword) { 13 foreach($language_target_keyword as $target_keyword) { 14 foreach($target_keyword as $keyword) { 15 if ($keyword) { 16 $routes[$store_id][$keyword][] = $target_element['route']; 17 } 18 } 19 } 20 } 21 } 22 23 $store_duplicate_target_elements = array(); 24 25 foreach ($target_elements as $target_element) { 26 foreach($target_element['target_keyword'] as $store_id => $language_target_keyword) { 27 foreach($language_target_keyword as $language_id => $target_keyword) { 28 foreach($target_keyword as $sort_order => $keyword) { 29 if (isset($routes[$store_id][$keyword]) && (count($routes[$store_id][$keyword]) > 1) && (reset($routes[$store_id][$keyword]) != end($routes[$store_id][$keyword]))) { 30 if (!isset($store_duplicate_target_elements[$store_id][$target_element['route']])) { 31 $store_duplicate_target_elements[$store_id][$target_element['route']] = $target_element; 32 } 33 34 $store_duplicate_target_elements[$store_id][$target_element['route']]['target_keyword_duplicate'][$store_id][$language_id][$sort_order] = 1; 35 } 36 } 37 } 38 } 39 } 40 41 foreach ($target_elements as $target_element) { 42 foreach($target_element['target_keyword'] as $store_id => $language_target_keyword) { 43 foreach($language_target_keyword as $language_id => $target_keyword) { 44 foreach($target_keyword as $sort_order => $keyword) { 45 if (isset($routes[$store_id][$keyword]) && (count($routes[$store_id][$keyword]) > 1) && (reset($routes[$store_id][$keyword]) == end($routes[$store_id][$keyword]))) { 46 if (!isset($store_duplicate_target_elements[$store_id][$target_element['route']])) { 47 $store_duplicate_target_elements[$store_id][$target_element['route']] = $target_element; 48 } 49 50 $store_duplicate_target_elements[$store_id][$target_element['route']]['target_keyword_duplicate'][$store_id][$language_id][$sort_order] = 1; 51 } 52 } 53 } 54 } 55 } 56 57 return $store_duplicate_target_elements; 58 } 59 60 /* 61 * Return Store Empty Target Elements. 62 */ 63 public function getStoreEmptyTargetElements($target_elements) { 64 $stores = $this->getStores(); 65 $languages = $this->getLanguages(); 66 67 $store_empty_target_elements = array(); 68 69 foreach ($target_elements as $target_element) { 70 foreach ($stores as $store) { 71 foreach ($languages as $language) { 72 if (!isset($target_element['target_keyword'][$store['store_id']][$language['language_id']]) || (isset($target_element['target_keyword'][$store['store_id']][$language['language_id']]) && !$target_element['target_keyword'][$store['store_id']][$language['language_id']])) { 73 if (!isset($store_empty_target_elements[$store['store_id']][$target_element['route']])) { 74 $store_empty_target_elements[$store['store_id']][$target_element['route']] = $target_element; 75 } 76 } 77 } 78 } 79 } 80 81 return $store_empty_target_elements; 82 } 83 84 /* 85 * Return list of installed SEO Target Keyword extensions. 86 */ 87 public function getInstalledSEOTargetKeywordExtensions() { 88 $this->load->model('setting/setting'); 89 90 $installed_extensions = array(); 91 92 $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "extension ORDER BY code"); 93 94 foreach ($query->rows as $result) { 95 $installed_extensions[] = $result['code']; 96 } 97 98 $installed_seo_target_keyword_extensions = array(); 99 100 $files = glob(DIR_APPLICATION . 'controller/extension/' . $this->codename . '/*.php'); 101 102 if ($files) { 103 foreach ($files as $file) { 104 $installed_seo_target_keyword_extension = basename($file, '.php'); 105 106 if (in_array($installed_seo_target_keyword_extension, $installed_extensions)) { 107 $installed_seo_target_keyword_extensions[] = $installed_seo_target_keyword_extension; 108 } 109 } 110 } 111 112 return $installed_seo_target_keyword_extensions; 113 } 114 115 /* 116 * Return list of languages. 117 */ 118 public function getLanguages() { 119 $this->load->model('localisation/language'); 120 121 $languages = $this->model_localisation_language->getLanguages(); 122 123 foreach ($languages as $key => $language) { 124 if (VERSION >= '2.2.0.0') { 125 $languages[$key]['flag'] = 'language/' . $language['code'] . '/' . $language['code'] . '.png'; 126 } else { 127 $languages[$key]['flag'] = 'view/image/flags/' . $language['image']; 128 } 129 } 130 131 return $languages; 132 } 133 134 /* 135 * Return list of stores. 136 */ 137 public function getStores() { 138 $this->load->model('setting/store'); 139 140 $result = array(); 141 142 $result[] = array( 143 'store_id' => 0, 144 'name' => $this->config->get('config_name') 145 ); 146 147 $stores = $this->model_setting_store->getStores(); 148 149 if ($stores) { 150 foreach ($stores as $store) { 151 $result[] = array( 152 'store_id' => $store['store_id'], 153 'name' => $store['name'] 154 ); 155 } 156 } 157 158 return $result; 159 } 160 } 161 ?>