shop.balmet.com

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

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 ?>