Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено?..] Мультисайт - разные метатеги


Recommended Posts

Есть 5 сайтов, которые объединяет одна БД. Один из сайтов - главный, если на него залить товар, то он отобразится во всех остальных сайтах.

Проблема состоит в том, что метатеги во всех сайтах получаются одинаковые. 

Можно как-то сделать их разными?

Спасибо.

Надіслати
Поділитися на інших сайтах


Сделайте под каждый сайт свой язык и пишите сколько вам нужно

Фиг! Тоже так думал и даже сделал. Указал языки по умолчанию на каждый магазин. И в итоге получается - как повезет!

 

Пример:

Интернет магазин постельного белья - основной сайт. Язык по-умолчанию russian.

Постельное белье оптом - мультимагазин. Язык по-умолчанию оптом.

 

Телефоны были разные. И я удивлялся почему часто звонят на оптовый телефон по вопросам розничных цен и только сегодня сам заметил. Зашел на основной сайт, а язык там оптовый. Зашел с другого браузера, язык russian. Вот так незадача! Теперь думаю как исправить.

Надіслати
Поділитися на інших сайтах


Исправить очень легко.

 

Открываете index.php - там есть детектор языковой локали. Сносите его и пишите свой детектор, который будет жестко привязывать дефолтную локаль согласно вашего субдомена.

Код - элементарный.

Змінено користувачем snastik
Надіслати
Поділитися на інших сайтах

Также не забываем, что многие системные дополнения требуют отдавать код языка - поэтому для того же яндекс-маркет фида, нужно позаботиться о том чтобы он выдавал код не opt, а ru.

 

И поверьте. проще варианта для реализации просто не существует. Марк не даст соврать.

Надіслати
Поділитися на інших сайтах

Исправить очень легко.

 

Открываете index.php - там есть детектор языковой локали. Сносите его и пишите свой детектор, который будет жестко привязывать дефолтную локаль согласно вашего субдомена.

Код - элементарный.

Если это просто, то напишите тут. Если не очень, то отпишите, пожалуйста, в личку по-стоимости.

Надіслати
Поділитися на інших сайтах



// Language Detection

$languages = array();

$query = $db->query("SELECT * FROM " . DB_PREFIX . "language WHERE status = '1'"); 

foreach ($query->rows as $result) {
	$languages[$result['code']] = $result;
}
$code ='ru';


/*
$detect = '';

if (isset($request->server['HTTP_ACCEPT_LANGUAGE']) && ($request->server['HTTP_ACCEPT_LANGUAGE'])) { 
	$browser_languages = explode(',', $request->server['HTTP_ACCEPT_LANGUAGE']);
	
	foreach ($browser_languages as $browser_language) {
		foreach ($languages as $key => $value) {
			if ($value['status']) {
				$locale = explode(',', $value['locale']);

				if (in_array($browser_language, $locale)) {
					$detect = $key;
				}
			}
		}
	}
}

if (isset($session->data['language']) && array_key_exists($session->data['language'], $languages) && $languages[$session->data['language']]['status']) {
	$code = $session->data['language'];
} elseif (isset($request->cookie['language']) && array_key_exists($request->cookie['language'], $languages) && $languages[$request->cookie['language']]['status']) {
	$code = $request->cookie['language'];
} elseif ($detect) {
	$code = $detect;
} else {
	$code = $config->get('config_language');
}

if (!isset($session->data['language']) || $session->data['language'] != $code) {
	$session->data['language'] = $code;
}

if (!isset($request->cookie['language']) || $request->cookie['language'] != $code) {	  
	setcookie('language', $code, time() + 60 * 60 * 24 * 30, '/', $request->server['HTTP_HOST']);
}			
*/

//$code = $config->get('config_language');
//print_r($code);



 

 
$language_id = 2;

if ($config->get('config_store_id') == 1) {
	$language_id = 4;
} 

if ($config->get('config_store_id') == 2) {
	$language_id = 5;
} 



//print_r($languages);


//$config->set('config_language_id', $languages[$code]['language_id']);
$config->set('config_language_id', $language_id);
$config->set('config_language', $languages[$code]['code']);

// Language	
$language = new Language($languages[$code]['directory']);
$language->load($languages[$code]['filename']);	
$registry->set('language', $language); 
	
// Document

Дальше сами. В личку никакой стоимости. Нет никакой возможности за вас это сделать.

Змінено користувачем snastik
Надіслати
Поділитися на інших сайтах


// Language Detection

$languages = array();

$query = $db->query("SELECT * FROM " . DB_PREFIX . "language WHERE status = '1'"); 

foreach ($query->rows as $result) {
	$languages[$result['code']] = $result;
}
$code ='ru';


/*
$detect = '';

if (isset($request->server['HTTP_ACCEPT_LANGUAGE']) && ($request->server['HTTP_ACCEPT_LANGUAGE'])) { 
	$browser_languages = explode(',', $request->server['HTTP_ACCEPT_LANGUAGE']);
	
	foreach ($browser_languages as $browser_language) {
		foreach ($languages as $key => $value) {
			if ($value['status']) {
				$locale = explode(',', $value['locale']);

				if (in_array($browser_language, $locale)) {
					$detect = $key;
				}
			}
		}
	}
}

if (isset($session->data['language']) && array_key_exists($session->data['language'], $languages) && $languages[$session->data['language']]['status']) {
	$code = $session->data['language'];
} elseif (isset($request->cookie['language']) && array_key_exists($request->cookie['language'], $languages) && $languages[$request->cookie['language']]['status']) {
	$code = $request->cookie['language'];
} elseif ($detect) {
	$code = $detect;
} else {
	$code = $config->get('config_language');
}

if (!isset($session->data['language']) || $session->data['language'] != $code) {
	$session->data['language'] = $code;
}

if (!isset($request->cookie['language']) || $request->cookie['language'] != $code) {	  
	setcookie('language', $code, time() + 60 * 60 * 24 * 30, '/', $request->server['HTTP_HOST']);
}			
*/

//$code = $config->get('config_language');
//print_r($code);



 

 
$language_id = 2;

if ($config->get('config_store_id') == 1) {
	$language_id = 4;
} 

if ($config->get('config_store_id') == 2) {
	$language_id = 5;
} 



//print_r($languages);


//$config->set('config_language_id', $languages[$code]['language_id']);
$config->set('config_language_id', $language_id);
$config->set('config_language', $languages[$code]['code']);

// Language	
$language = new Language($languages[$code]['directory']);
$language->load($languages[$code]['filename']);	
$registry->set('language', $language); 
	
// Document

Дальше сами. В личку никакой стоимости. Нет никакой возможности за вас это сделать.

 

Спасибо! Буду изучать.

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.