<?php
//die('xxxxx');
/**
 * meta_tags module
 *
 * @package modules
 * @copyright Copyright 2003-2008 Zen Cart Development Team
 * @copyright Portions Copyright 2003 osCommerce
 * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
 * @version $Id: meta_tags.php 11202 2008-11-23 09:18:34Z drbyte $
 */
if (!defined('IS_ADMIN_FLAG')) {
	die('Illegal Access');
}
// This should be first line of the script:
$zco_notifier->notify('NOTIFY_MODULE_START_META_TAGS');
// Add tertiary section to site tagline
if (strlen(SITE_TAGLINE) > 1) {
	define('TAGLINE', TERTIARY_SECTION . SITE_TAGLINE);
} else {
	define('TAGLINE', '');
}
$review_on = "";
$keywords_string_metatags = "";
$meta_tags_over_ride = false;
if (!defined('METATAGS_DIVIDER')) define('METATAGS_DIVIDER', ', ');
// Get all top category names for use with web site keywords
$sql = "select cd.categories_name from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = 0 and c.categories_id = cd.categories_id and cd.language_id='" . (int)$_SESSION['languages_id'] . "' and c.categories_status=1";
$keywords_metatags = $db->Execute($sql);
while (!$keywords_metatags->EOF) {
	$keywords_string_metatags .= zen_clean_html($keywords_metatags->fields['']) . METATAGS_DIVIDER;
	$keywords_metatags->MoveNext();
}
define('KEYWORDS', str_replace('"','',zen_clean_html($keywords_string_metatags) . CUSTOM_KEYWORDS));
// if per-page metatags overrides have been defined, use those, otherwise use usual defaults:
if ($current_page_base != 'index') {
	if (defined('META_TAG_TITLE_' . strtoupper($current_page_base))) define('META_TAG_TITLE', constant('META_TAG_TITLE_' . strtoupper($current_page_base)));
	if (defined('META_TAG_DESCRIPTION_' . strtoupper($current_page_base))) define('META_TAG_DESCRIPTION', constant('META_TAG_DESCRIPTION_' . strtoupper($current_page_base)));
	if (defined('META_TAG_KEYWORDS_' . strtoupper($current_page_base))) define('META_TAG_KEYWORDS', constant('META_TAG_KEYWORDS_' . strtoupper($current_page_base)));
}
// Get different meta tag values depending on main_page values
switch ($_GET['main_page']) {
	case 'advanced_search':
	case 'account_edit':
	case 'account_history':
	case 'account_history_info':
	case 'account_newsletters':
	case 'account_notifications':
	case 'account_password':
	case 'address_book':
		define('META_TAG_TITLE', HEADING_TITLE . PRIMARY_SECTION . TITLE . TAGLINE);
		define('META_TAG_DESCRIPTION', TITLE . PRIMARY_SECTION . NAVBAR_TITLE_1 . SECONDARY_SECTION . KEYWORDS);
		define('META_TAG_KEYWORDS', KEYWORDS . METATAGS_DIVIDER . NAVBAR_TITLE_1);
		break;
	case 'address_book_process':
		define('META_TAG_TITLE', NAVBAR_TITLE_ADD_ENTRY . PRIMARY_SECTION . TITLE . TAGLINE);
		define('META_TAG_DESCRIPTION', TITLE . PRIMARY_SECTION . NAVBAR_TITLE_ADD_ENTRY . SECONDARY_SECTION . KEYWORDS);
		define('META_TAG_KEYWORDS', KEYWORDS . METATAGS_DIVIDER . NAVBAR_TITLE_ADD_ENTRY);
		break;
	case 'advanced_search_result':
	case 'password_forgotten':
		define('META_TAG_TITLE', NAVBAR_TITLE_2 . PRIMARY_SECTION . TITLE . TAGLINE);
		define('META_TAG_DESCRIPTION', TITLE . PRIMARY_SECTION . NAVBAR_TITLE_2 . SECONDARY_SECTION . KEYWORDS);
		define('META_TAG_KEYWORDS', KEYWORDS . METATAGS_DIVIDER . NAVBAR_TITLE_2);
		break;
	case 'checkout_confirmation':
	case 'checkout_payment':
	case 'checkout_payment_address':
	case 'checkout_shipping':
	case 'checkout_success':
	case 'create_account_success':
		define('META_TAG_TITLE', HEADING_TITLE . PRIMARY_SECTION . TITLE . TAGLINE);
		define('META_TAG_DESCRIPTION', TITLE . PRIMARY_SECTION . HEADING_TITLE . SECONDARY_SECTION . KEYWORDS);
		define('META_TAG_KEYWORDS', KEYWORDS . METATAGS_DIVIDER . HEADING_TITLE);
		break;
	case ($this_is_home_page):
		define('META_TAG_TITLE', (defined('HOME_PAGE_TITLE') && HOME_PAGE_TITLE != '' ? HOME_PAGE_TITLE : (defined('NAVBAR_TITLE') ? NAVBAR_TITLE . PRIMARY_SECTION : '') . TITLE . TAGLINE));
		define('META_TAG_DESCRIPTION', (defined('HOME_PAGE_META_DESCRIPTION') && HOME_PAGE_META_DESCRIPTION != '') ? HOME_PAGE_META_DESCRIPTION : TITLE . PRIMARY_SECTION . (defined('NAVBAR_TITLE') ? NAVBAR_TITLE : '' ) . SECONDARY_SECTION . KEYWORDS);
		define('META_TAG_KEYWORDS', (defined('HOME_PAGE_META_KEYWORDS') && HOME_PAGE_META_KEYWORDS != '') ? HOME_PAGE_META_KEYWORDS : KEYWORDS . METATAGS_DIVIDER . (defined('NAVBAR_TITLE') ? NAVBAR_TITLE : '' ) );
		break;
	case 'index':
// bof: categories meta tags
// run custom categories meta tags
		$sql = "select * from " . TABLE_METATAGS_CATEGORIES_DESCRIPTION . " mcd where mcd.categories_id = '" . (int)$current_category_id . "' and mcd.language_id = '" . (int)$_SESSION['languages_id'] . "'";
		$category_metatags = $db->Execute($sql);
		if (!$category_metatags->EOF) {
			define('META_TAG_TITLE', str_replace('"','',$category_metatags->fields['metatags_title']));
			define('META_TAG_DESCRIPTION', str_replace('"','',$category_metatags->fields['metatags_description']));
			define('META_TAG_KEYWORDS', str_replace('"','',$category_metatags->fields['metatags_keywords']));
		} else {
// build categories meta tags
// eof: categories meta tags
			if ($category_depth == 'nested') {
				$sql = "select cd.categories_name from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = cd.categories_id and cd.categories_id = '" . (int)$current_category_id . "' and cd.language_id = '" . (int)$_SESSION['languages_id'] . "' and c.categories_status=1";
				$category_metatags = $db->Execute($sql);
				if ($category_metatags->EOF) {
					$meta_tags_over_ride = true;
				} else {
					define('META_TAG_TITLE', str_replace('"','', zen_clean_html($category_metatags->fields['categories_name']) . PRIMARY_SECTION . TITLE ));
					define('META_TAG_DESCRIPTION', str_replace('"','',TITLE . PRIMARY_SECTION . zen_clean_html($category_metatags->fields['categories_name']) . SECONDARY_SECTION . KEYWORDS));
					define('META_TAG_KEYWORDS', str_replace('"','',KEYWORDS . METATAGS_DIVIDER . zen_clean_html($category_metatags->fields['categories_name'])));
				} // EOF
			} elseif ($category_depth == 'products') {
				if (isset($_GET['manufacturers_id']) || ((isset($_GET['filter_id']) && $_GET['filter_id'] > 0) && isset($_GET['cPath'])) ) {
					if ((isset($_GET['filter_id']) && isset($_GET['cPath'])) ) {
						$include_manufacturers_id = $_GET['filter_id'];
					} else {
						$include_manufacturers_id = $_GET['manufacturers_id'];
					}
					$sql = "select manufacturers_name from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . (int)$include_manufacturers_id . "'";
					$manufacturer_metatags = $db->Execute($sql);
					if ($manufacturer_metatags->EOF) {
						$meta_tags_over_ride = true;
					} else {
						define('META_TAG_TITLE', str_replace('"','',$manufacturer_metatags->fields['manufacturers_name'] . PRIMARY_SECTION . TITLE . TAGLINE));
						define('META_TAG_DESCRIPTION', str_replace('"','',TITLE . PRIMARY_SECTION . $manufacturer_metatags->fields['manufacturers_name'] . SECONDARY_SECTION . KEYWORDS));
						define('META_TAG_KEYWORDS', str_replace('"','', $manufacturer_metatags->fields['manufacturers_name'] . METATAGS_DIVIDER . KEYWORDS));
					} // EOF
				} else {
					$sql = "select cd.categories_name from " . TABLE_CATEGORIES . ' c, ' . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = cd.categories_id and cd.categories_id = '" . (int)$current_category_id . "' and cd.language_id = '" . (int)$_SESSION['languages_id'] . "' and c.categories_status=1";
					$category_metatags = $db->Execute($sql);
					if ($category_metatags->EOF) {
						$meta_tags_over_ride = true;
					} else {
						define('META_TAG_TITLE', str_replace('"','', zen_clean_html($category_metatags->fields['categories_name']) . PRIMARY_SECTION . TITLE . TAGLINE));
						define('META_TAG_DESCRIPTION', str_replace('"','',TITLE . PRIMARY_SECTION . zen_clean_html($category_metatags->fields['categories_name']) . SECONDARY_SECTION . KEYWORDS));
						define('META_TAG_KEYWORDS', str_replace('"','',KEYWORDS . METATAGS_DIVIDER . zen_clean_html($category_metatags->fields['categories_name'])));
					} // EOF
				}
			} else {
				if (isset($_GET['manufacturers_id'])) {
					$sql = "select manufacturers_name from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . (int)$_GET['manufacturers_id'] . "'";
					$manufacturer_metatags = $db->Execute($sql);
					if ($manufacturer_metatags->EOF) {
						define('META_TAG_TITLE', TITLE . TAGLINE);
						define('META_TAG_DESCRIPTION', TITLE . PRIMARY_SECTION . str_replace(array("'",'"'),'',strip_tags(HEADING_TITLE)) . SECONDARY_SECTION . KEYWORDS);
						define('META_TAG_KEYWORDS', KEYWORDS . METATAGS_DIVIDER . str_replace(array("'",'"'),'',strip_tags(HEADING_TITLE)));
					} else {
						define('META_TAG_TITLE', str_replace('"','', $manufacturer_metatags->fields['manufacturers_name'] . PRIMARY_SECTION . TITLE . TAGLINE));
						define('META_TAG_DESCRIPTION', str_replace('"','',TITLE . PRIMARY_SECTION . $manufacturer_metatags->fields['manufacturers_name'] . SECONDARY_SECTION . KEYWORDS));
						define('META_TAG_KEYWORDS', str_replace('"','', $manufacturer_metatags->fields['manufacturers_name'] . METATAGS_DIVIDER . KEYWORDS));
					}
				} else {
// nothing custom main page
					$meta_tags_over_ride = true;
				}
			}
		} // custom meta tags
		break;
// eof: categories meta tags
	case 'popup_image':
		$meta_products_name = str_replace('"','',zen_clean_html($products_values->fields['products_name']));
		define('META_TAG_TITLE', $meta_products_name . PRIMARY_SECTION . TITLE . TAGLINE);
		define('META_TAG_DESCRIPTION', TITLE . PRIMARY_SECTION . $meta_products_name . SECONDARY_SECTION . KEYWORDS);
		define('META_TAG_KEYWORDS', KEYWORDS . METATAGS_DIVIDER . $meta_products_name);
		break;
	case 'popup_image_additional':
		$meta_products_name = str_replace('"','',zen_clean_html($products_values->fields['products_name']));
		define('META_TAG_TITLE', $meta_products_name . PRIMARY_SECTION . TITLE . TAGLINE);
		define('META_TAG_DESCRIPTION', TITLE . PRIMARY_SECTION . $meta_products_name . SECONDARY_SECTION . KEYWORDS);
		define('META_TAG_KEYWORDS', KEYWORDS . METATAGS_DIVIDER . $meta_products_name);
		break;
	case 'popup_search_help':
		define('META_TAG_TITLE', HEADING_SEARCH_HELP . PRIMARY_SECTION . TITLE . TAGLINE);
		define('META_TAG_DESCRIPTION', TITLE . PRIMARY_SECTION . HEADING_SEARCH_HELP . SECONDARY_SECTION . KEYWORDS);
		define('META_TAG_KEYWORDS', KEYWORDS . METATAGS_DIVIDER . HEADING_SEARCH_HELP);
		break;
// unless otherwise required product_reviews uses the same settings as product_reviews_info and other _info pages
	case 'product_reviews':
		$sql= "select pd.products_name, p.products_model, p.products_price_sorter, p.products_tax_class_id,
p.metatags_title_status, p.metatags_products_name_status, p.metatags_model_status,
p.products_id, p.metatags_price_status, p.metatags_title_tagline_status,
pd.products_description, p.product_is_free, p.product_is_call,
mtpd.metatags_title, mtpd.metatags_keywords, mtpd.metatags_description
from (" . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd) left join " . TABLE_META_TAGS_PRODUCTS_DESCRIPTION . " mtpd on mtpd.products_id = p.products_id and mtpd.language_id = '" . (int)$_SESSION['languages_id'] . "'
where p.products_id = '" . (int)$_GET['products_id'] . "'
and p.products_id = pd.products_id
and pd.language_id = '" . (int)$_SESSION['languages_id'] . "'";
		$product_info_metatags = $db->Execute($sql);
		if ($product_info_metatags->EOF) {
			$meta_tags_over_ride = true;
		} else {
// custom meta tags per product
			if (!empty($product_info_metatags->fields['metatags_keywords']) or !empty($product_info_metatags->fields['metatags_description'])) {
				$meta_products_name = '';
				$meta_products_price = '';
				$metatags_keywords = '';
				$meta_products_price = ($product_info_metatags->fields['metatags_price_status'] == '1' ? SECONDARY_SECTION . ($product_info_metatags->fields['products_price_sorter'] > 0 ? $currencies->display_price($product_info_metatags->fields['products_price_sorter'], zen_get_tax_rate($product_info_metatags->fields['products_tax_class_id'])) : SECONDARY_SECTION . META_TAG_PRODUCTS_PRICE_IS_FREE_TEXT) : '');
				$meta_products_name = $product_info_metatags->fields['products_name'];
				if (zen_check_show_prices() == true) {
					$meta_products_name .= $meta_products_price;
				}
				if (!empty($product_info_metatags->fields['metatags_description'])) {
// use custom description
					$metatags_description = $product_info_metatags->fields['metatags_description'];
				} else {
// no custom description defined use product_description
					$metatags_description = zen_truncate_paragraph(strip_tags(stripslashes($product_info_metatags->fields['products_description'])), MAX_META_TAG_DESCRIPTION_LENGTH);
				}
				$metatags_description = zen_clean_html($metatags_description);
				if (!empty($product_info_metatags->fields['metatags_keywords'])) {
// use custom keywords
					$metatags_keywords = $product_info_metatags->fields['metatags_keywords'] . METATAGS_DIVIDER . CUSTOM_KEYWORDS;  // CUSTOM skips categories
				} else {
// no custom keywords defined use product_description
					$metatags_keywords = KEYWORDS . METATAGS_DIVIDER . $meta_products_name . METATAGS_DIVIDER;
				}
				define('META_TAG_TITLE', str_replace('"','',$review_on . META_TAG_TITLE_REVIEW.','.$meta_products_name ));
				define('META_TAG_DESCRIPTION', str_replace('"','',META_TAG_DESCRIPTION_REVIEW . ',' . $meta_products_name . SECONDARY_SECTION . $meta_products_description . ' '));
				define('META_TAG_KEYWORDS', str_replace('"','',$meta_products_name . METATAGS_DIVIDER . KEYWORDS));
			} else {
// build un-customized meta tag
				if (META_TAG_INCLUDE_PRICE == '1' and !strstr($_GET['main_page'], 'document_general')) {
					if ($product_info_metatags->fields['product_is_free'] != '1') {
						if (zen_check_show_prices() == true) {
							$meta_products_price = zen_get_products_actual_price($product_info_metatags->fields['products_id']);
							$prod_is_call_and_no_price = ($product_info_metatags->fields['product_is_call'] == '1' && $meta_products_price == 0);
							$meta_products_price = (!$prod_is_call_and_no_price ? SECONDARY_SECTION . $currencies->display_price($meta_products_price, zen_get_tax_rate($product_info_metatags->fields['products_tax_class_id'])) : '');
						}
					} else {
						$meta_products_price = SECONDARY_SECTION . META_TAG_PRODUCTS_PRICE_IS_FREE_TEXT;
					}
				} else {
					$meta_products_price = '';
				}
				if (META_TAG_INCLUDE_MODEL == '1' && zen_not_null($product_info_metatags->fields['products_model'])) {
					$meta_products_name = $product_info_metatags->fields['products_name'] . ','. $product_info_metatags->fields['products_model'] ;
				} else {
					$meta_products_name = $product_info_metatags->fields['products_name'];
				}
				$meta_products_name = zen_clean_html($meta_products_name);
				$meta_products_description = zen_truncate_paragraph(strip_tags(stripslashes($product_info_metatags->fields['products_description'])), MAX_META_TAG_DESCRIPTION_LENGTH);
				$meta_products_description = zen_clean_html($meta_products_description);
				define('META_TAG_TITLE', str_replace('"','',$review_on . META_TAG_TITLE_REVIEW.','.$meta_products_name ));
				define('META_TAG_DESCRIPTION', str_replace('"','',META_TAG_DESCRIPTION_REVIEW . ',' . $meta_products_name . SECONDARY_SECTION . $meta_products_description . ' '));
				define('META_TAG_KEYWORDS', str_replace('"','',$meta_products_name . METATAGS_DIVIDER . KEYWORDS));
			} // CUSTOM META TAGS
		} // EOF
		break;
// unless otherwise required product_reviews_info uses the same settings as reviews and other _info pages
	case 'product_reviews_info':
		if(empty($review_info->fields['reviews_title'])||empty($review_info->fields['reviews_tag'])){
			$sql= "select pd.products_name, p.products_model, p.products_price_sorter, p.products_tax_class_id,
p.metatags_title_status, p.metatags_products_name_status, p.metatags_model_status,
p.products_id, p.metatags_price_status, p.metatags_title_tagline_status,
pd.products_description, p.product_is_free, p.product_is_call,
mtpd.metatags_title, mtpd.metatags_keywords, mtpd.metatags_description
from (" . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd) left join " . TABLE_META_TAGS_PRODUCTS_DESCRIPTION . " mtpd on mtpd.products_id = p.products_id and mtpd.language_id = '" . (int)$_SESSION['languages_id'] . "'
where p.products_id = '" . (int)$_GET['products_id'] . "'
and p.products_id = pd.products_id
and pd.language_id = '" . (int)$_SESSION['languages_id'] . "'";
			$product_info_metatags = $db->Execute($sql);
			if ($product_info_metatags->EOF) {
				$meta_tags_over_ride = true;
			} else {
// custom meta tags per product
				if (!empty($product_info_metatags->fields['metatags_keywords']) or !empty($product_info_metatags->fields['metatags_description'])) {
					$meta_products_name = '';
					$meta_products_price = '';
					$metatags_keywords = '';
					$meta_products_price = ($product_info_metatags->fields['metatags_price_status'] == '1' ? SECONDARY_SECTION . ($product_info_metatags->fields['products_price_sorter'] > 0 ? $currencies->display_price($product_info_metatags->fields['products_price_sorter'], zen_get_tax_rate($product_info_metatags->fields['products_tax_class_id'])) : SECONDARY_SECTION . META_TAG_PRODUCTS_PRICE_IS_FREE_TEXT) : '');
					$meta_products_name = $product_info_metatags->fields['products_name'];
					if (!empty($product_info_metatags->fields['metatags_description'])) {
// use custom description
						$metatags_description = $product_info_metatags->fields['metatags_description'];
					} else {
// no custom description defined use product_description
						$metatags_description = zen_truncate_paragraph(strip_tags(stripslashes($product_info_metatags->fields['products_description'])), MAX_META_TAG_DESCRIPTION_LENGTH);
					}
					$metatags_description = zen_clean_html($metatags_description);
					if (!empty($product_info_metatags->fields['metatags_keywords'])) {
// use custom keywords
						$metatags_keywords = $product_info_metatags->fields['metatags_keywords'] . METATAGS_DIVIDER ;  // CUSTOM skips categories
					} else {
// no custom keywords defined use product_description
						$metatags_keywords = KEYWORDS . METATAGS_DIVIDER . $meta_products_name . METATAGS_DIVIDER;
					}
					define('META_TAG_TITLE', str_replace('"','',zen_get_categories_name_from_product((int)$_GET['products_id']).','.zen_clean_html($review_on . $meta_products_name)).','. META_TAG_TITLE_REVIEW);
					define('META_TAG_DESCRIPTION', zen_trunc_string(zen_clean_html(stripslashes($review_info->fields['reviews_text'])),'180'));
					define('META_TAG_KEYWORDS', str_replace('"','',zen_clean_html($metatags_keywords)));  // KEYWORDS and CUSTOM_KEYWORDS are added above
				} else {
// build un-customized meta tag
					if (META_TAG_INCLUDE_PRICE == '1' and !strstr($_GET['main_page'], 'document_general')) {
						if ($product_info_metatags->fields['product_is_free'] != '1') {
							if (zen_check_show_prices() == true) {
								$meta_products_price = zen_get_products_actual_price($product_info_metatags->fields['products_id']);
								$prod_is_call_and_no_price = ($product_info_metatags->fields['product_is_call'] == '1' && $meta_products_price == 0);
								$meta_products_price = (!$prod_is_call_and_no_price ? SECONDARY_SECTION . $currencies->display_price($meta_products_price, zen_get_tax_rate($product_info_metatags->fields['products_tax_class_id'])) : '');
							}
						} else {
							$meta_products_price = SECONDARY_SECTION . META_TAG_PRODUCTS_PRICE_IS_FREE_TEXT;
						}
					} else {
						$meta_products_price = '';
					}
					if (META_TAG_INCLUDE_MODEL == '1' && zen_not_null($product_info_metatags->fields['products_model'])) {
						$meta_products_name = $product_info_metatags->fields['products_name'] . ' |' . $product_info_metatags->fields['products_model'] . '|';
					} else {
						$meta_products_name = $product_info_metatags->fields['products_name'];
					}
					$meta_products_name = zen_clean_html($meta_products_name);
					$meta_products_description = zen_truncate_paragraph(strip_tags(stripslashes($product_info_metatags->fields['products_description'])), MAX_META_TAG_DESCRIPTION_LENGTH);
					$meta_products_description = zen_clean_html($meta_products_description);
					define('META_TAG_TITLE', str_replace('"','',$review_on . $meta_products_name .  META_TAG_TITLE_REVIEW ));
					define('META_TAG_DESCRIPTION', zen_trunc_string(zen_clean_html(stripslashes($review_info->fields['reviews_text'])),'180'));
					define('META_TAG_KEYWORDS', str_replace('"','',$meta_products_name .META_TAG_KEYWORDS_REVIEW));
				} // CUSTOM META TAGS
			} // EOF
		}
		else{
			define('META_TAG_TITLE', $review_info->fields['reviews_title']);
			define('META_TAG_DESCRIPTION', zen_trunc_string(zen_clean_html(stripslashes($review_info->fields['reviews_text'])),'180'));
			define('META_TAG_KEYWORDS',$review_info->fields['reviews_tag']);
		}
		break;
	case (strstr($_GET['main_page'], 'product_') or strstr($_GET['main_page'], 'document_')):
		/*
		$sql = "select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_price, p.products_tax_class_id, p.product_is_free, p.products_price_sorter,
		p.metatags_title_status, p.metatags_products_name_status, p.metatags_model_status, p.metatags_price_status, p.metatags_title_tagline_status,
		mtpd.metatags_title, mtpd.metatags_keywords, mtpd.metatags_description from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_META_TAGS_PRODUCTS_DESCRIPTION . " mtpd where p.products_status = 1 and p.products_id = '" . (int)$_GET['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$_SESSION['languages_id'] . "' and mtpd.products_id = p.products_id and mtpd.language_id = '" . (int)$_SESSION['languages_id'] . "'";
		*/
		$sql= "select pd.products_name, p.products_model, p.products_price_sorter, p.products_tax_class_id,
p.metatags_title_status, p.metatags_products_name_status, p.metatags_model_status,
p.products_id, p.metatags_price_status, p.metatags_title_tagline_status,
pd.products_description, p.product_is_free, p.product_is_call,
mtpd.metatags_title, mtpd.metatags_keywords, mtpd.metatags_description
from (" . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd) left join " . TABLE_META_TAGS_PRODUCTS_DESCRIPTION . " mtpd on mtpd.products_id = p.products_id and mtpd.language_id = '" . (int)$_SESSION['languages_id'] . "'
where p.products_id = '" . (int)$_GET['products_id'] . "'
and p.products_id = pd.products_id
and pd.language_id = '" . (int)$_SESSION['languages_id'] . "'";
		$product_info_metatags = $db->Execute($sql);
		if ($product_info_metatags->EOF) {
			$meta_tags_over_ride = true;
		} else {
// custom meta tags per product
			if (!empty($product_info_metatags->fields['metatags_keywords']) or !empty($product_info_metatags->fields['metatags_description'])) {
				$meta_products_name = '';
				$meta_products_price = '';
				$metatags_keywords = '';
				$meta_products_price = ($product_info_metatags->fields['metatags_price_status'] == '1' ? SECONDARY_SECTION . ($product_info_metatags->fields['products_price_sorter'] > 0 ? $currencies->display_price($product_info_metatags->fields['products_price_sorter'], zen_get_tax_rate($product_info_metatags->fields['products_tax_class_id'])) : SECONDARY_SECTION . META_TAG_PRODUCTS_PRICE_IS_FREE_TEXT) : '');
				$meta_products_name .= ($product_info_metatags->fields['metatags_products_name_status'] == '1' ? $product_info_metatags->fields['products_name'] : '');
				$meta_products_name .= ($product_info_metatags->fields['metatags_title_status'] == '1' ? ' ' . $product_info_metatags->fields['metatags_title'] : '');
				$meta_products_name .= ($product_info_metatags->fields['metatags_model_status'] == '1' ? ' [' . $product_info_metatags->fields['products_model'] . ']' : '');
				if (zen_check_show_prices() == true) {
					$meta_products_name .= $meta_products_price;
				}
				$meta_products_name .= ($product_info_metatags->fields['metatags_title_tagline_status'] == '1' ? PRIMARY_SECTION : '');
				if (!empty($product_info_metatags->fields['metatags_description'])) {
// use custom description
					$metatags_description = $product_info_metatags->fields['metatags_description'];
				} else {
// no custom description defined use product_description
					$metatags_description = zen_truncate_paragraph(strip_tags(stripslashes($product_info_metatags->fields['products_description'])), MAX_META_TAG_DESCRIPTION_LENGTH);
				}
				$metatags_description = zen_clean_html($metatags_description);
				if (!empty($product_info_metatags->fields['metatags_keywords'])) {
// use custom keywords
					$metatags_keywords = $product_info_metatags->fields['metatags_keywords'] . METATAGS_DIVIDER ;  // CUSTOM skips categories
				} else {
// no custom keywords defined use product_description
					$metatags_keywords = KEYWORDS . METATAGS_DIVIDER . $meta_products_name . METATAGS_DIVIDER;
				}
				define('META_TAG_TITLE', str_replace('"','',zen_clean_html($review_on . $meta_products_name)));
				define('META_TAG_DESCRIPTION', str_replace('"','',zen_clean_html($metatags_description . ' ')));
				define('META_TAG_KEYWORDS', str_replace('"','',zen_clean_html($metatags_keywords)));  // KEYWORDS and CUSTOM_KEYWORDS are added above
			} else {
// build un-customized meta tag
				if (META_TAG_INCLUDE_PRICE == '1' and !strstr($_GET['main_page'], 'document_general')) {
					if ($product_info_metatags->fields['product_is_free'] != '1') {
						if (zen_check_show_prices() == true) {
							$meta_products_price = zen_get_products_actual_price($product_info_metatags->fields['products_id']);
							$prod_is_call_and_no_price = ($product_info_metatags->fields['product_is_call'] == '1' && $meta_products_price == 0);
							$meta_products_price = (!$prod_is_call_and_no_price ? SECONDARY_SECTION . $currencies->display_price($meta_products_price, zen_get_tax_rate($product_info_metatags->fields['products_tax_class_id'])) : '');
						}
					} else {
						$meta_products_price = SECONDARY_SECTION . META_TAG_PRODUCTS_PRICE_IS_FREE_TEXT;
					}
				} else {
					$meta_products_price = '';
				}
				if (META_TAG_INCLUDE_MODEL == '1' && zen_not_null($product_info_metatags->fields['products_model'])) {
					$meta_products_name = $product_info_metatags->fields['products_name'] . '|' . $product_info_metatags->fields['products_model'] . '';
				} else {
					$meta_products_name = $product_info_metatags->fields['products_name'];
				}
				$meta_products_name = zen_clean_html($meta_products_name);
				$meta_products_description = zen_truncate_paragraph(strip_tags(stripslashes($product_info_metatags->fields['products_description'])), MAX_META_TAG_DESCRIPTION_LENGTH);
				$meta_products_description = zen_clean_html($meta_products_description);
				define('META_TAG_TITLE', str_replace('"','', $review_on . $meta_products_name .'|'. zen_get_categories_name_from_product((int)$_GET['products_id']) ));
				define('META_TAG_DESCRIPTION', str_replace('"','',$meta_products_description . ' ' .TITLE  . SECONDARY_SECTION  . ' '));
				define('META_TAG_KEYWORDS', str_replace('"','',$meta_products_name . METATAGS_DIVIDER . KEYWORDS));
			} // CUSTOM META TAGS
		} // EOF
		break;
	case 'product_reviews_info_OFF':
		$sql = "select rd.reviews_text, r.reviews_rating, r.reviews_id, r.customers_name, p.products_id, p.products_price, p.products_tax_class_id, p.products_model, pd.products_name, p.product_is_free from " . TABLE_REVIEWS . " r, " . TABLE_REVIEWS_DESCRIPTION . " rd, " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where r.reviews_id = '" . (int)$_GET['reviews_id'] . "' and r.reviews_id = rd.reviews_id and rd.languages_id = '" . (int)$_SESSION['languages_id'] . "' and r.products_id = p.products_id and p.products_status = 1 and p.products_id = pd.products_id and pd.language_id = '". (int)$_SESSION['languages_id'] . "'";
		$review_metatags = $db->Execute($sql);
		if ($review_metatags->EOF) {
			$meta_tags_over_ride = true;
		} else {
			if (META_TAG_INCLUDE_PRICE == '1') {
				if ($review_metatags->fields['product_is_free'] != '1') {
					$meta_products_price = zen_get_products_actual_price($review_metatags->fields['products_id']);
					$meta_products_price = SECONDARY_SECTION . $currencies->display_price($meta_products_price, zen_get_tax_rate($review_metatags->fields['products_tax_class_id']));
				} else {
					$meta_products_price = SECONDARY_SECTION . META_TAG_PRODUCTS_PRICE_IS_FREE_TEXT;
				}
			} else {
				$meta_products_price = '';
			}
			if (zen_not_null($review_metatags->fields['products_model'])) {
				$meta_products_name = $review_metatags->fields['products_name'] . ' [' . $review_metatags->fields['products_model'] . ']';
			} else {
				$meta_products_name = $review_metatags->fields['products_name'];
			}
			$meta_products_name = zen_clean_html($meta_products_name);
			$review_text_metatags = substr(strip_tags(stripslashes($review_metatags->fields['reviews_text'])), 0, 180);
			$reviews_rating_metatags = SUB_TITLE_RATING . ' ' . sprintf(TEXT_OF_5_STARS, $review_metatags->fields['reviews_rating']);
			define('META_TAG_TITLE', str_replace('"','',$meta_products_name .  PRIMARY_SECTION . TITLE . TERTIARY_SECTION . NAVBAR_TITLE));
			define('META_TAG_DESCRIPTION', str_replace('"','',TITLE . PRIMARY_SECTION . NAVBAR_TITLE . SECONDARY_SECTION . $meta_products_name . SECONDARY_SECTION . $review_metatags->fields['customers_name'] . SECONDARY_SECTION . $review_text_metatags . ' ' . SECONDARY_SECTION . $reviews_rating_metatags));
			define('META_TAG_KEYWORDS', str_replace('"','',KEYWORDS . METATAGS_DIVIDER .  METATAGS_DIVIDER . $review_metatags->fields['customers_name'] . METATAGS_DIVIDER . $reviews_rating_metatags));
		} // EOF
		break;
// EZ-Pages:
	case 'page':
		$ezpage_id = (int)$_GET['id'];
		$chapter_id = (int)$_GET['chapter'];
		if (defined('META_TAG_TITLE_EZPAGE_'.$ezpage_id)) define('META_TAG_TITLE', constant('META_TAG_TITLE_EZPAGE_'.$ezpage_id));
		if (defined('META_TAG_DESCRIPTION_EZPAGE_'.$ezpage_id)) define('META_TAG_DESCRIPTION', constant('META_TAG_DESCRIPTION_EZPAGE_'.$ezpage_id));
		if (defined('META_TAG_KEYWORDS_EZPAGE_'.$ezpage_id)) define('META_TAG_KEYWORDS', constant('META_TAG_KEYWORDS_EZPAGE_'.$ezpage_id));
		/***** BEGIN EZPAGES SEO MOD *****/
		$sql = "select pages_meta_title, pages_meta_keywords, pages_meta_description FROM " . TABLE_EZPAGES . " WHERE pages_id = " . $ezpage_id;
		$ezpage_metatags = $db->Execute($sql);
		if ($ezpage_metatags->EOF) {
			$meta_tags_over_ride = true;
		} else {
			if (!empty($ezpage_metatags->fields['pages_meta_title'])) {
				define('META_TAG_TITLE', zen_clean_html($ezpage_metatags->fields['pages_meta_title']));
			}
			if (!empty($ezpage_metatags->fields['pages_meta_keywords'])) {
				define('META_TAG_KEYWORDS', zen_clean_html($ezpage_metatags->fields['pages_meta_keywords']));
			}
			if (!empty($ezpage_metatags->fields['pages_meta_description'])) {
				define('META_TAG_DESCRIPTION', zen_clean_html($ezpage_metatags->fields['pages_meta_description']));
			}
		}
	/**** END EZPAGES SEO MOD *****/
// NO "break" here. Allow defaults if not overridden at the per-page level
	default:
		define('META_TAG_TITLE', (defined('NAVBAR_TITLE') ? NAVBAR_TITLE . PRIMARY_SECTION : '') .META_TAG_TITLE_EZPAGE);
		define('META_TAG_DESCRIPTION', (defined('NAVBAR_TITLE') ? NAVBAR_TITLE : '' ) .META_TAG_DESCRIPTION_EZPAGE);
		define('META_TAG_KEYWORDS', (defined('NAVBAR_TITLE') ? NAVBAR_TITLE : '' ).META_TAG_KEYWORDS_EZPAGE );
//// Dynamic titles for news pages
// BOF
	case 'news':
		if (isset($_GET['date']) && zen_not_null($_GET['date'])) {
			define('META_TAG_TITLE', (defined('NAVBAR_TITLE') ? NAVBAR_TITLE . SECONDARY_SECTION : '') . zen_date_long($date) .META_TAG_DESCRIPTION_NEWS_ARC . PRIMARY_SECTION );
		} else {
			define('META_TAG_TITLE', (defined('NAVBAR_TITLE') ? NAVBAR_TITLE . META_TAG_TITLE_NEWS . PRIMARY_SECTION : '') );
		}
		define('META_TAG_DESCRIPTION', TITLE . PRIMARY_SECTION . NAVBAR_TITLE . SECONDARY_SECTION . KEYWORDS);
		define('META_TAG_KEYWORDS', KEYWORDS . ' ' . META_TAG_KEYWORDS_NEWS);
		break;
	case 'news_article':
		$news = $db->Execute("select n.article_id, nt.news_article_name, nt.news_article_text from " . TABLE_NEWS_ARTICLES . " n ," . TABLE_NEWS_ARTICLES_TEXT . " nt where n.article_id=nt.article_id and n.news_status = '1' and n.article_id = '" . (int)$_GET['article_id'] . "' and nt.language_id='". (int)$_SESSION['languages_id'] . "'");
		define('META_TAG_TITLE',  $article->fields['news_article_name'] . PRIMARY_SECTION );
		define('META_TAG_DESCRIPTION', zen_trunc_string(zen_clean_html(stripslashes($news->fields['news_article_text'])),'200'));
		define('META_TAG_KEYWORDS', ' ' . META_TAG_KEYWORDS_NEWS_ART);
		break;
	case 'news_comments':
		define('META_TAG_TITLE', (defined('NAVBAR_TITLE') ? NAVBAR_TITLE . SECONDARY_SECTION : '') . $article->fields['news_article_name'] . SECONDARY_SECTION . NAVBAR_TITLE_COMMENTS . PRIMARY_SECTION . TITLE . TAGLINE);
		define('META_TAG_DESCRIPTION', TITLE . PRIMARY_SECTION . NAVBAR_TITLE . SECONDARY_SECTION . KEYWORDS);
		define('META_TAG_KEYWORDS', ' ' . META_TAG_KEYWORDS_NEWS_COM);
		break;
	case 'news_archive':
		define('META_TAG_TITLE', (defined('NAVBAR_TITLE') ? NAVBAR_TITLE . SECONDARY_SECTION : '') . news_date_archive($archive_date) . PRIMARY_SECTION .META_TAG_DESCRIPTION_NEWS_ARC);
		define('META_TAG_DESCRIPTION', TITLE . PRIMARY_SECTION . NAVBAR_TITLE . SECONDARY_SECTION . KEYWORDS);
		define('META_TAG_KEYWORDS', ' ' .META_TAG_KEYWORDS_NEWS_AR);
		break;
// EOF
	case 'tags':
		define('META_TAG_TITLE', TAGS_TITLE);
		define('META_TAG_DESCRIPTION', TAGS_DESCRIPTION);
		define('META_TAG_KEYWORDS', TAGS_KEYWORDS);
		break;
	case 'tags_item':
		define('META_TAG_TITLE', str_replace('-',' ',$_GET['tag_name']).'|'. TAGSA_TITLE );
		define('META_TAG_DESCRIPTION', str_replace('-',' ',$_GET['tag_name']).TAGSA_DESCRIPTION);
		define('META_TAG_KEYWORDS',str_replace('-',' ',$_GET['tag_name']). TAGSA_KEYWORDS);
		break;
//// Dynamic titles for news pages
//	default:
//		break;
//		define('META_TAG_TITLE', (defined('NAVBAR_TITLE') ? NAVBAR_TITLE . PRIMARY_SECTION : '') . TITLE . TAGLINE);
//		define('META_TAG_DESCRIPTION', TITLE . PRIMARY_SECTION . NAVBAR_TITLE . SECONDARY_SECTION . KEYWORDS);
//		define('META_TAG_KEYWORDS', KEYWORDS . ' ' . NAVBAR_TITLE);
}
// meta tags override due to 404, missing products_id, cPath or other EOF issues
if ($meta_tags_over_ride == true) {
	define('META_TAG_TITLE', (defined('NAVBAR_TITLE') ? NAVBAR_TITLE . PRIMARY_SECTION : '') . TITLE . TAGLINE);
	define('META_TAG_DESCRIPTION', TITLE . (defined('NAVBAR_TITLE') ? PRIMARY_SECTION . NAVBAR_TITLE : '') . SECONDARY_SECTION . KEYWORDS);
	define('META_TAG_KEYWORDS', KEYWORDS . METATAGS_DIVIDER . (defined('NAVBAR_TITLE') ? NAVBAR_TITLE : ''));
}
// This should be last line of the script:
$zco_notifier->notify('NOTIFY_MODULE_END_META_TAGS');
?>