403Webshell
Server IP : 85.158.181.41  /  Your IP : 216.73.217.12
Web Server : Apache
System : Linux cloud9-vm129 6.1.178+1-ph #ph SMP PREEMPT_DYNAMIC Wed Jul 29 09:00:54 UTC 2026 x86_64
User : moncbefd ( 1024)
PHP Version : 7.3.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/moncbefd/www.moneta.at/gm/classes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/moncbefd/www.moneta.at/gm/classes/GMMeta.php
<?php
/* --------------------------------------------------------------
  GMMeta.php 2019-01-09
  Gambio GmbH
  http://www.gambio.de
  Copyright (c) 2018 Gambio GmbH
  Released under the GNU General Public License (Version 2)
  [http://www.gnu.org/licenses/gpl-2.0.html]
  --------------------------------------------------------------
 */

require_once DIR_FS_CATALOG . 'gm/inc/gm_get_content_by_group_id.inc.php';

/*
 * 	class GMMeta 	
 */

class GMMeta_ORIGIN
{
	public    $gm_lang_id;
	public    $gm_lang_code;
	public    $gm_language_charset;
	public    $use_title;
	public    $show_title;
	public    $separator;
	public    $title;
	public    $output;
	protected $use_standard_title;
	protected $show_standard_title;
	protected $standard_title_separator;
	protected $standard_title;
	
	
	/*
	 * 	class GMMeta 	
	 */
	public function __construct($p_output = true)
	{
		$this->output = $p_output;
		
		// get language
		if(!class_exists('language'))
		{
			require_once DIR_WS_CLASSES . 'language.php';
		}

		$lng = new language(xtc_input_validation($_SESSION['language_code'], 'char', ''));

		if(!empty($_SESSION['languages_id']))
		{
			$this->gm_lang_id = $_SESSION['languages_id'];
		}
		else
		{
			$this->gm_lang_id = $lng->language['id'];
		}

		$this->gm_lang_code = $lng->language['code'];
		$this->gm_language_charset = $lng->language['language_charset'];

		$this->use_standard_title = gm_get_conf('GM_TITLE_USE_STANDARD_META_TITLE');
		$this->show_standard_title = gm_get_conf('GM_TITLE_SHOW_STANDARD_META_TITLE');
		$this->standard_title_separator = gm_get_content('GM_TITLE_STANDARD_META_TITLE_SEPARATOR', $this->gm_lang_id);

		$t_standard_title = gm_get_content('GM_TITLE_STANDARD_META_TITLE', $this->gm_lang_id);
		
		if(empty($t_standard_title))
		{
			$t_standard_title = htmlspecialchars_wrapper(STORE_NAME);
		}
		else
		{
			$t_standard_title = htmlspecialchars_wrapper($t_standard_title);
		}
		
		$this->standard_title = $t_standard_title;

		return;
	}

	/*
	 * 	get metatags 	
	 */
	function get($cPath, $product)
	{
		$t_html = '';
		
		// get essential meta
		$t_html .= $this->get_base_meta($p_output);

		// get optional metatags
		$t_html .= $this->get_optional_meta($cPath, $product);

		// get content metatags
		$t_html .= $this->get_content_meta($cPath, $product);

		return $t_html;
	}

	/*
	 * 	get essential metatags
	 */
	public function get_base_meta()
	{
		$t_html = '<meta http-equiv="Content-Type" content="text/html; charset=' . $this->gm_language_charset . '" />' . "\n";
		
		if(gm_get_env_info('TEMPLATE_VERSION') < 3)
		{
			$t_html .= "\t\t" . '<meta name="robots" content="' . gm_get_content('robots', $this->gm_lang_id) . '" />' . "\n";
		}
		
		$t_html .= "\t\t" . '<meta name="language" content="' . $this->gm_lang_code . '" />' . "\n";
		
		if($this->output)
		{
			echo $t_html;
		}

		return $t_html;
	}

	/*
	 * 	get metatags generated by content	
	 */
	public function draw_page_title($p_content, $p_optional = '')
	{
		$t_page = '';
		$t_title = '';

		if(isset($_GET['page']) && empty($_GET['page']) === false)
		{
			$t_page = ' ' . GM_PAGE . ' ' . $_GET['page'];
		}

		if(empty($p_content) === false)
		{
			$t_title .= htmlspecialchars_wrapper($p_content) . $t_page;
		}
		else if(empty($p_optional) === false)
		{
			$t_title .= htmlspecialchars_wrapper($p_optional) . $t_page;
		}
		else
		{
			$t_title = htmlspecialchars_wrapper(STORE_NAME);
		}

		if((int)$this->use_standard_title === 1 && empty($this->standard_title) === false)
		{
			if($this->show_standard_title === 'before' || empty($this->show_standard_title))
			{
				$t_title = $this->standard_title . $this->standard_title_separator . $t_title;
			}
			else if($this->show_standard_title === 'after')
			{
				$t_title = $t_title . $this->standard_title_separator . $this->standard_title;
			}
		}

		$t_html = "\t\t" . '<title>' . trim($t_title) . '</title>' . "\n";

		if($this->output)
		{
			echo $t_html;
		}

		return $t_html;
	}

	/*
	 * 	get metatags generated by content	
	 */
	public function draw_meta_tag($name, $content, $optional = '')
	{
		$t_html = '';

		if(empty($content) && !empty($optional))
		{
			$content = $optional;
		}

		if(!empty($content))
		{
			$t_html = "\t\t" . '<meta name="' . $name . '" content="' . htmlspecialchars_wrapper($content) . '" />' . "\n";
		}

		if($this->output)
		{
			echo $t_html;
		}

		return $t_html;
	}
	
	/*
	 * 	get OpenGraph metatags generated by content
	 */
	public function draw_ogmeta_tag($name, $content, $optional = '')
	{
		$t_html = '';
		
		if(empty($content) && !empty($optional))
		{
			$content = $optional;
		}
		
		if(!empty($content))
		{
			$t_html = "\t\t" . '<meta property="' . $name . '" content="' . htmlspecialchars_wrapper($content) . '" />' . "\n";
		}
		
		if($this->output)
		{
			echo $t_html;
		}
		
		return $t_html;
	}
	
	/*
	 * 	get metatags generated by content	
	 */
	public function get_content_meta($cPath, $product)
	{
		$t_html = '';

		// handle products
		if((int)$product->pID !== 0)
		{
			$t_html .= $this->draw_meta_tag('keywords', $product->data['products_meta_keywords'], gm_get_content('keywords', $this->gm_lang_id));
			$t_html .= $this->draw_meta_tag('description', $product->data['products_meta_description'], gm_get_content('description', $this->gm_lang_id));
			$t_html .= $this->draw_page_title($product->data['products_meta_title'], $product->data['products_name']);
			
			/* Facebook Start */
			// set product image
			$t_product_image = '';
			
			if((string)$product->data['products_image'] !== '')
			{
				$t_product_image = GM_HTTP_SERVER . DIR_WS_CATALOG . DIR_WS_INFO_IMAGES . $product->data['products_image'];
			}
			
			// set metatags
			$t_html_properties = "\t\t" . '<meta property="og:title" content="' . htmlentities_wrapper($product->data['products_name']) . '" />' . "\n";
			$t_html_properties .= "\t\t" . '<meta property="og:site_name" content="' . htmlentities_wrapper(STORE_NAME) . '" />' . "\n";
			$t_html_properties .= "\t\t" . '<meta property="og:locale" content="' . $this->gm_lang_code . '_' . strtoupper($this->gm_lang_code) . '" />' . "\n";
			$t_html_properties .= "\t\t" . '<meta property="og:type" content="product" />' . "\n";
			
			$products_description = strip_tags($product->data['products_description']);
			$products_description = htmlspecialchars($products_description);
			
			$products_description = preg_replace("/<p[^>]*>(\\[TAB:(.*?)\\])<\\/p>/", '$1', $products_description);
			$products_description = preg_split("/\\[TAB:(.*?)\\]/", $products_description, null, PREG_SPLIT_DELIM_CAPTURE)[0];
			
			$products_description = strip_tags($products_description);
			
			$products_description = htmlspecialchars_wrapper(html_entity_decode_wrapper(html_entity_decode_wrapper($products_description)));
			
			if(strlen($products_description) > 250)
			{
				preg_match("/(?<product_description>.{0,250}\\b)/s",$products_description,$matches);
				$products_description = $matches['product_description'] . '...';
			}
			
			$t_html_properties .= "\t\t" . '<meta property="og:description" content="' . $products_description . '" />' . "\n";
			$t_html_properties .= "\t\t" . '<meta property="og:image" content="' . htmlentities_wrapper($t_product_image) . '" />' . "\n";
			
			$db     = StaticGXCoreLoader::getDatabaseQueryBuilder();
			$images = $db->select('image_name')
			             ->from('products_images')
			             ->where('products_id', $product->pID)
			             ->get()
			             ->result_array();
			
			foreach($images as $image)
			{
				$t_html_properties .= "\t\t" . '<meta property="og:image" content="' . GM_HTTP_SERVER . DIR_WS_CATALOG . DIR_WS_INFO_IMAGES . htmlentities_wrapper($image['image_name']) . '" />' . "\n";
			}
			
			$t_html .= $t_html_properties;
			
			if($this->output)
			{
				echo $t_html_properties;
			}

			// handle categories
		}
		else if(!empty($cPath))
		{
			$gm_cat_id = explode('_', $cPath);
			
			$db = StaticGXCoreLoader::getDatabaseQueryBuilder();
			$categoriesQuery = $db->select('cd.categories_meta_keywords, cd.categories_meta_description, cd.categories_meta_title, cd.categories_name')
			                      ->select('c.categories_image, c.categories_ogimage')
			                      ->from('categories c')
			                      ->join('categories_description cd',
			                             'cd.categories_id = c.categories_id AND cd.language_id = '
			                             . (int)$this->gm_lang_id)
			                      ->where('c.categories_id', (int)end($gm_cat_id))
			                      ->get();
			$categories_meta = $categoriesQuery->row_array();

			$ogImageUrl = GM_HTTP_SERVER . DIR_WS_CATALOG . DIR_WS_IMAGES . 'categories/og/' . $categories_meta['categories_ogimage'];
			
			$t_html .= $this->draw_meta_tag('keywords', $categories_meta['categories_meta_keywords'], gm_get_content('keywords', $this->gm_lang_id));
			$t_html .= $this->draw_meta_tag('description', $categories_meta['categories_meta_description'], gm_get_content('description', $this->gm_lang_id));
			$t_html .= $this->draw_ogmeta_tag('og:description', $categories_meta['categories_meta_description'], gm_get_content('description', $this->gm_lang_id));
			$t_html .= $this->draw_ogmeta_tag('og:image', $ogImageUrl);
			$t_html .= $this->draw_ogmeta_tag('og:title', $categories_meta['categories_name']);
			$t_html .= $this->draw_ogmeta_tag('og:type', 'product.group');
			$t_html .= $this->draw_page_title($categories_meta['categories_meta_title'], $categories_meta['categories_name']);
			
			// handle contents
		}
		else if(strpos(gm_get_env_info('SCRIPT_NAME'), 'shop_content.php') !== false
		        || (strpos(gm_get_env_info('SCRIPT_NAME'), 'shop_content.php') === false && !is_object($cPath)
		            && empty($product->pID)))
		{
			$filename = basename(gm_get_env_info('SCRIPT_NAME'));
			
			// static php files, except contents
			if(!in_array($filename, ['shop_content.php', 'popup_content.php'], true) && strlen($filename) > 4
			   && substr($filename, -4) === '.php')
			{
				// get static seo url info from static seo urls
				$static_seo_url_content_query = xtc_db_query('
					SELECT * 
					FROM `static_seo_url_contents` s
					INNER JOIN `static_seo_urls` AS u ON (s.`static_seo_url_id` = u.`static_seo_url_id`)
					WHERE 
					 	u.`name` = "' . xtc_db_input($filename) . '" AND
					 	s.`language_id` = ' . (int)$this->gm_lang_id);
				
				$static_seo_url_content = xtc_db_fetch_array($static_seo_url_content_query, true);
				
				$title       = !empty($static_seo_url_content['title']) ? $static_seo_url_content['title'] : null;
				$keywords    = !empty($static_seo_url_content['keywords']) ? $static_seo_url_content['keywords'] : null;
				$description = !empty($static_seo_url_content['description']) ? $static_seo_url_content['description'] : null;
				
				if(!empty($_GET['manufacturers_id']))
				{
					$manu_query = xtc_db_query('SELECT `manufacturers_name` AS `name`
												FROM `manufacturers`
												WHERE `manufacturers_id` = ' . (int)$_GET['manufacturers_id']);
					
					$manu_meta = xtc_db_fetch_array($manu_query, true);
					
					$t_html .= $this->draw_page_title($manu_meta['name']);
					$title = $manu_meta['name'];
				}
				elseif($filename === 'products_new.php' && $title === null)
				{
					$t_html .= $this->draw_page_title(NAVBAR_TITLE_PRODUCTS_NEW);
					$title = NAVBAR_TITLE_PRODUCTS_NEW;
				}
				elseif($filename === 'specials.php' && $title === null)
				{
					$t_html .= $this->draw_page_title(NAVBAR_TITLE_SPECIALS);
					$title = NAVBAR_TITLE_SPECIALS;
				}
				else
				{
					$t_html .= $this->draw_page_title($title);
				}
				
				$t_html .= $this->draw_meta_tag('keywords', $keywords, gm_get_content('keywords', $this->gm_lang_id));
				$t_html .= $this->draw_meta_tag('description', $description,
				                                gm_get_content('description', $this->gm_lang_id));
				$t_html .= $this->draw_ogmeta_tag('og:title', $title);
				if(!empty($static_seo_url_content['opengraph_image']))
				{
					$ogImageUrl = GM_HTTP_SERVER . DIR_WS_CATALOG . DIR_WS_IMAGES . $static_seo_url_content['opengraph_image'];
					$t_html .= $this->draw_ogmeta_tag('og:image', $ogImageUrl);
				}
			}
			else
			{
				$contents_meta_query = xtc_db_query('SELECT 
															`content_title`,
															`content_heading`,
															`contents_meta_title`,
															`contents_meta_keywords`,
															`contents_meta_description`,
															`opengraph_image`
														FROM ' . TABLE_CONTENT_MANAGER . '
														WHERE 
															`content_group` = ' . (int)$_GET['coID'] . ' AND
															`languages_id` = ' . (int)$this->gm_lang_id);
				
				$contents_meta = xtc_db_fetch_array($contents_meta_query, true);
				
				if(empty($contents_meta['content_heading']))
				{
					$contents_meta['content_heading'] = $contents_meta['content_title'];
				}
				
				$t_html .= $this->draw_page_title($contents_meta['contents_meta_title'],
				                                  $contents_meta['content_title']);
				$t_html .= $this->draw_ogmeta_tag('og:title', $contents_meta['contents_meta_title']);
				$t_html .= $this->draw_meta_tag('keywords', $contents_meta['contents_meta_keywords'],
				                                gm_get_content('keywords', $this->gm_lang_id));
				$t_html .= $this->draw_meta_tag('description', $contents_meta['contents_meta_description'],
				                                gm_get_content('description', $this->gm_lang_id));
				$t_html .= $this->draw_ogmeta_tag('og:description', $contents_meta['contents_meta_description']);
				if(!empty($contents_meta['opengraph_image']))
				{
					$ogImageUrl = GM_HTTP_SERVER . DIR_WS_CATALOG . DIR_WS_IMAGES . rawurlencode($contents_meta['opengraph_image']);
					$t_html .= $this->draw_ogmeta_tag('og:image', $ogImageUrl);
				}
			}
		}

		return $t_html;
	}

	/*
	 *  get all optional metatags
	 */
	public function get_optional_meta($cPath, $product)
	{
		$t_html = '';

		$gm_metatags = gm_get_content_by_group_id(1, $this->gm_lang_id);
		foreach($gm_metatags as $gm_key => $gm_value)
		{
			$t_key_facebook = strpos($gm_key, 'facebook_') === 0;
			$t_is_product = (empty($product->pID) ? false : true);
			$t_get_fb_meta = true;
			if($gm_key !== 'keywords' && $gm_key !== 'robots')
			{
				if(($gm_key === 'description' && !empty($cPath)) ||
				   ($gm_key === 'description' && (int)$product->pID !== 0) ||
				   ($gm_key === 'description' && isset($_GET['coID'])) ||
				   (strpos(gm_get_env_info('SCRIPT_NAME'), 'shop_content.php') === false &&
				    !is_object($cPath) &&
				    empty($product->pID) &&
				    $gm_key === 'description'))
				{
					// do nothing
				}
				else if ($t_key_facebook)
				{
					$t_facebook_key = str_replace('facebook_', '', $gm_key);
					$t_content = $gm_value;
					switch($t_facebook_key)
					{
						case 'url' :
						case 'title' :
						case 'description' :
							if($t_is_product)
							{
								$t_get_fb_meta = false;
							}
							break;
					}
					switch($t_facebook_key)
					{
						case 'url' :
							$t_content = GM_HTTP_SERVER . gm_get_env_info('REQUEST_URI');
							break;
						case 'description' :
							$t_content = (trim($t_content) !== '' ? trim($t_content) : trim($gm_metatags['description']));
							break;
					}
					if($t_get_fb_meta === true)
					{
						$t_html .= "\t\t" . '<meta property="' . 'og:' . $t_facebook_key . '" content="' . htmlspecialchars_wrapper($t_content) . '" />' . "\n";
					}
				}
				else
				{
					$t_html .= "\t\t" . '<meta name="' . $gm_key . '" content="' . htmlspecialchars_wrapper($gm_value) . '" />' . "\n";
				}
			}
		}
		
		if($this->output)
		{
			echo $t_html;
		}

		return $t_html;
	}
}
MainFactory::load_origin_class('GMMeta');

Youez - 2016 - github.com/yon3zu
LinuXploit