Перейти к содержанию
tumtu

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

Рекомендуемые сообщения

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

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

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

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Согласен на все 100%

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо большое за ответы! Буду пробовать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

Пример:

Интернет магазин постельного белья - основной сайт. Язык по-умолчанию 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 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.