Здравствуйте! Нужна помощь в таком вопросе: реализован магазин на несколько регионов посредством добавления языков в виде городов. URL карточек товаров для разных регионов имеют вид сайт/товар-в-регионе, с этим все в порядке. но нужно сделать так, чтобы категории были с одним и тем же Url для всех регионов. Если в таблице oc_seo_url прописать одинаковые keyword для одного и того же category_id но разных language_id то при переходе в категорию попадаем на страницу, которая имеет наибольший language_id и соответственно меняется язык. То есть например были в карточке товара города Москвы, и при переходе из этой карточки товара в категорию - происходит переход в категорию региона Ульяновск, так как Ульяновск имеет наибольшее число language_id. То есть какой-то запрос к базе все равно поступает, просто выбирается нужный keyword, но с последним найденным значением language_id. Как это можно исправить? Кстати то же самое происходить со страницами статьей и даже home. Кажется, что нужно добавить к какому то запросу к базе AND language_id = (int)$language_id и тогда будет происходить переход на страницу категории именно этого региона, хоть она и одинаковая для всех регионов. Но к какому и где - не могу понять. Или если это невозможно, то может быть можно сделать так, чтобы происходил переход всегда на страницу одного и того региона (любого), но чтобы язык не менялся, а оставался таким какой и был выбран изначально? Помогите пожалуйста.
Нужно хранить в сессии значение language_id и при любом обращении роута - в первую очередь - проверять сессийное значение, потом "печеньки" и только потом, дёргать бейс, ИМХО! уловить логику, не видя хардкодинга сложно, это как тыцать скальпелем в пациента, понимая что у него дергается коленко, когда он чихает, сорян за тавтологию.
Магазин новый, без каких либо изменений, ocstore 3, включено в настройках seo pro, созданы категории, товары и прописаны seo_url (keyword), больше ничего. Подскажите пожалуйста, а где происходит это обращение? В каком файле? Где происходит этот выбор, какой url откроется?
Огромное Вам спасибо, Вы мне очень сильно помогли! Если вдруг у кого-то будет подобный вопрос - вот решение: в файле system/library/seopro.php необходимо 557 строку, а именно: $query = $this->db->query("SELECT language_id FROM " . DB_PREFIX . "seo_url WHERE keyword = '" . $this->db->escape($keyword) . "' AND store_id = '" . (int)$this->config->get('config_store_id') . "' LIMIT 1"); заменить на $query = $this->db->query("SELECT language_id FROM " . DB_PREFIX . "seo_url WHERE keyword = '" . $this->db->escape($keyword) . "' AND store_id = '" . (int)$this->config->get('config_store_id') . "' AND language_id = '" . (int)$request_language_id . "' LIMIT 1"); Еще раз спасибо!!!