HEX
Server: LiteSpeed
System: Linux php-prod-3.spaceapp.ru 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC 2025 x86_64
User: sarli3128 (1010)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /home/retile.ru/public_html/admin/model/extension/dashboard/d_seo_module_target_keyword.php
<?php
class ModelExtensionDashboardDSEOModuleTargetKeyword extends Model {
	private $codename = 'd_seo_module_target_keyword';
		
	/*
	*	Return Store Duplicate Target Elements.
	*/
	public function getStoreDuplicateTargetElements($target_elements) {
		$routes = array();
		
		foreach ($target_elements as $target_element) {
			foreach($target_element['target_keyword'] as $store_id => $language_target_keyword) {
				foreach($language_target_keyword as $target_keyword) {
					foreach($target_keyword as $keyword) {
						if ($keyword) {
							$routes[$store_id][$keyword][] = $target_element['route'];
						}
					}
				}
			}
		}
		
		$store_duplicate_target_elements = array();
		
		foreach ($target_elements as $target_element) {
			foreach($target_element['target_keyword'] as $store_id => $language_target_keyword) {
				foreach($language_target_keyword as $language_id => $target_keyword) {
					foreach($target_keyword as $sort_order => $keyword) {
						if (isset($routes[$store_id][$keyword]) && (count($routes[$store_id][$keyword]) > 1) && (reset($routes[$store_id][$keyword]) != end($routes[$store_id][$keyword]))) {
							if (!isset($store_duplicate_target_elements[$store_id][$target_element['route']])) {
								$store_duplicate_target_elements[$store_id][$target_element['route']] = $target_element;						
							}
						
							$store_duplicate_target_elements[$store_id][$target_element['route']]['target_keyword_duplicate'][$store_id][$language_id][$sort_order] = 1;
						}
					}
				}
			}
		}
		
		foreach ($target_elements as $target_element) {
			foreach($target_element['target_keyword'] as $store_id => $language_target_keyword) {
				foreach($language_target_keyword as $language_id => $target_keyword) {
					foreach($target_keyword as $sort_order => $keyword) {
						if (isset($routes[$store_id][$keyword]) && (count($routes[$store_id][$keyword]) > 1) && (reset($routes[$store_id][$keyword]) == end($routes[$store_id][$keyword]))) {
							if (!isset($store_duplicate_target_elements[$store_id][$target_element['route']])) {
								$store_duplicate_target_elements[$store_id][$target_element['route']] = $target_element;						
							}
						
							$store_duplicate_target_elements[$store_id][$target_element['route']]['target_keyword_duplicate'][$store_id][$language_id][$sort_order] = 1;
						}
					}
				}
			}
		}
			
		return $store_duplicate_target_elements;
	}
	
	/*
	*	Return Store Empty Target Elements.
	*/
	public function getStoreEmptyTargetElements($target_elements) {
		$stores = $this->getStores();
		$languages = $this->getLanguages();
		
		$store_empty_target_elements = array();
		
		foreach ($target_elements as $target_element) {
			foreach ($stores as $store) {
				foreach ($languages as $language) {
					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']])) {
						if (!isset($store_empty_target_elements[$store['store_id']][$target_element['route']])) {
							$store_empty_target_elements[$store['store_id']][$target_element['route']] = $target_element;
						}
					}
				}
			}
		}
			
		return $store_empty_target_elements;
	}
	
	/*
	*	Return list of installed SEO Target Keyword extensions.
	*/
	public function getInstalledSEOTargetKeywordExtensions() {
		$this->load->model('setting/setting');
				
		$installed_extensions = array();
		
		$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "extension ORDER BY code");
		
		foreach ($query->rows as $result) {
			$installed_extensions[] = $result['code'];
		}
		
		$installed_seo_target_keyword_extensions = array();
		
		$files = glob(DIR_APPLICATION . 'controller/extension/' . $this->codename . '/*.php');
		
		if ($files) {
			foreach ($files as $file) {
				$installed_seo_target_keyword_extension = basename($file, '.php');
				
				if (in_array($installed_seo_target_keyword_extension, $installed_extensions)) {
					$installed_seo_target_keyword_extensions[] = $installed_seo_target_keyword_extension;
				}
			}
		}
		
		return $installed_seo_target_keyword_extensions;
	}
	
	/*
	*	Return list of languages.
	*/
	public function getLanguages() {
		$this->load->model('localisation/language');
		
		$languages = $this->model_localisation_language->getLanguages();
		
		foreach ($languages as $key => $language) {
            if (VERSION >= '2.2.0.0') {
                $languages[$key]['flag'] = 'language/' . $language['code'] . '/' . $language['code'] . '.png';
            } else {
                $languages[$key]['flag'] = 'view/image/flags/' . $language['image'];
            }
        }
				
		return $languages;
	}
	
	/*
	*	Return list of stores.
	*/
	public function getStores() {
		$this->load->model('setting/store');
		
		$result = array();
		
		$result[] = array(
			'store_id' => 0, 
			'name' => $this->config->get('config_name')
		);
		
		$stores = $this->model_setting_store->getStores();
		
		if ($stores) {
			foreach ($stores as $store) {
				$result[] = array(
					'store_id' => $store['store_id'],
					'name' => $store['name']	
				);
			}	
		}
		
		return $result;
	}
}
?>