shop.balmet.com

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

d_seo_module.php (5629B)


      1 <?php
      2 class ModelExtensionDSEOModuleAdviserDSEOModule extends Model {
      3 	private $codename = 'd_seo_module';
      4 	private $route = 'extension/d_seo_module_adviser/d_seo_module';		
      5 	
      6 	/*
      7 	*	Return Elements for Adviser.
      8 	*/
      9 	public function getAdviserElements($route) {
     10 		$_language = new Language();
     11 		$_language->load($this->route);
     12 		
     13 		$this->load->model('extension/module/' . $this->codename);
     14 		
     15 		$stores = $this->{'model_extension_module_' . $this->codename}->getStores();
     16 		$languages = $this->{'model_extension_module_' . $this->codename}->getLanguages();
     17 		
     18 		$field_info = $this->load->controller('extension/module/d_seo_module/getFieldInfo');
     19 		$custom_page_exception_routes = $this->load->controller('extension/module/d_seo_module/getCustomPageExceptionRoutes');
     20 						
     21 		$adviser_elements = array();
     22 				
     23 		if ((strpos($route, 'category_id') === 0) || (strpos($route, 'product_id') === 0) || (strpos($route, 'manufacturer_id') === 0) || (strpos($route, 'information_id') === 0) || (preg_match('/[A-Za-z0-9]+\/[A-Za-z0-9]+/i', $route) && !($custom_page_exception_routes && in_array($route, $custom_page_exception_routes)))) {						
     24 			$file_robots = str_replace('system/', '', DIR_SYSTEM) . 'robots.txt';
     25 		
     26 			if (file_exists($file_robots) && file_exists(DIR_SYSTEM . 'library/d_robots_txt_parser.php')) { 
     27 				$robots_txt_parser = new d_robots_txt_parser(file_get_contents($file_robots));
     28 			}
     29 				
     30 			$field_data = array(
     31 				'field_code' => 'target_keyword',
     32 				'filter' => array('route' => $route)
     33 			);
     34 			
     35 			$target_keywords = $this->load->controller('extension/module/d_seo_module/getFieldElements', $field_data);
     36 			if ($target_keywords) $target_keyword = reset($target_keywords);
     37 			
     38 			$field_data = array(
     39 				'field_code' => 'url_keyword',
     40 				'filter' => array('route' => $route)
     41 			);
     42 			
     43 			$url_keywords = $this->load->controller('extension/module/d_seo_module/getFieldElements', $field_data);			
     44 			if ($url_keywords) $url_keyword = reset($url_keywords);
     45 																		
     46 			foreach ($stores as $store) {							
     47 				foreach ($languages as $language) {
     48 					$target_keyword_duplicate = 0;
     49 			
     50 					if (isset($target_keyword[$store['store_id']][$language['language_id']])) {
     51 						foreach ($target_keyword[$store['store_id']][$language['language_id']] as $keyword) {						
     52 							$field_data = array(
     53 								'field_code' => 'target_keyword',
     54 								'filter' => array(
     55 									'store_id' => $store['store_id'],
     56 									'keyword' => $keyword
     57 								)
     58 							);
     59 			
     60 							$target_keywords = $this->load->controller('extension/module/d_seo_module/getFieldElements', $field_data);
     61 							
     62 							if ($target_keywords) {
     63 								foreach ($target_keywords as $target_route => $store_target_keywords) {
     64 									foreach ($store_target_keywords[$store['store_id']] as $target_language_id => $keywords) {
     65 										if (($target_route != $route) || ($target_language_id != $language['language_id'])) {
     66 											$target_keyword_duplicate++;
     67 										}
     68 									}
     69 								}
     70 							}
     71 						}
     72 					}
     73 							
     74 					$robots_empty_rating = 0;
     75 			
     76 					if (isset($robots_txt_parser) && $robots_txt_parser->getRules()) {
     77 						$robots_empty_rating = 1;
     78 					}
     79 			
     80 					$robots_no_index_rating = 1;
     81 			
     82 					if (isset($url_keyword[$store['store_id']][$language['language_id']]) && $url_keyword[$store['store_id']][$language['language_id']]) {
     83 						if (isset($robots_txt_parser) && $robots_txt_parser->isUrlDisallow('/' . $url_keyword[$store['store_id']][$language['language_id']])) {
     84 							$robots_no_index_rating = 0;
     85 						}
     86 					}
     87 														
     88 					$adviser_elements[$store['store_id']][$language['language_id']][] = array(
     89 						'extension_code'	=> $this->codename,
     90 						'element_code'		=> 'target_keyword_empty',
     91 						'name'				=> $_language->get('text_target_keyword_empty'),
     92 						'description'		=> $_language->get('help_target_keyword_empty'),
     93 						'rating'			=> isset($target_keyword[$store['store_id']][$language['language_id']]) ? 1 : 0,
     94 						'weight'			=> 1
     95 					);
     96 			
     97 					$adviser_elements[$store['store_id']][$language['language_id']][] = array(
     98 						'extension_code'	=> $this->codename,
     99 						'element_code'		=> 'target_keyword_duplicate',
    100 						'name'				=> $_language->get('text_target_keyword_duplicate'),
    101 						'description'		=> $_language->get('help_target_keyword_duplicate'),
    102 						'rating'			=> $target_keyword_duplicate ? (1 / ($target_keyword_duplicate + 1)) : 1,
    103 						'weight'			=> 0.8
    104 					);
    105 			
    106 					$adviser_elements[$store['store_id']][$language['language_id']][] = array(
    107 						'extension_code'	=> $this->codename,
    108 						'element_code'		=> 'robots_empty',
    109 						'name'				=> $_language->get('text_robots_empty'),
    110 						'description'		=> $_language->get('help_robots_empty'),
    111 						'rating'			=> $robots_empty_rating,
    112 						'weight'			=> 1
    113 					);
    114 			
    115 					$adviser_elements[$store['store_id']][$language['language_id']][] = array(
    116 						'extension_code'	=> $this->codename,
    117 						'element_code'		=> 'robots_no_index',
    118 						'name'				=> $_language->get('text_robots_no_index'),
    119 						'description'		=> $_language->get('help_robots_no_index'),
    120 						'rating'			=> $robots_no_index_rating,
    121 						'weight'			=> 1
    122 					);
    123 					
    124 					$adviser_elements[$store['store_id']][$language['language_id']][] = array(
    125 						'extension_code'	=> $this->codename,
    126 						'element_code'		=> 'seo_url_disabled',
    127 						'name'				=> $_language->get('text_seo_url_disabled'),
    128 						'description'		=> $_language->get('help_seo_url_disabled'),
    129 						'rating'			=> ($this->config->get('config_seo_url')) ? 1 : 0,
    130 						'weight'			=> 1
    131 					);	
    132 				}
    133 			}
    134 		}
    135 			
    136 		return $adviser_elements;
    137 	}
    138 }
    139 ?>