@Upmycart Контентные страницы (в том числе страницы блога) можно пошарить на несколько витрин, поэтому CS-Cart не дает создать повторяющиеся SEO имена.
И не даёт править страницу на расшаренных витринах - Screenshot by Lightshot, чтобы поставить свой контент.
Кто это придумал? Правильное решение убрать этот шейринг, я не знаю кому нужны одиннаковые страницы на разных витринах(доменах)
Банально страница контакты, как мне клиенту обьяснить, что она должны быть одиннаковая везде, или ему надо везде ставить новый урл?
contacts
contacts-ru
contacts-ru-1
contacts-ru-2
Идеально убрать возможность шейрить на витрины. Писать пометку company_id прямо в seo_names и проверять хотя бы для типа - “a” на компани и давать делать один раз, свой урл для каждой storefront
Так а почему нельзя?
Домен будет разный. Поэтому полный URL страницы будет также разный для разных витрин.
Поэтому проблем для индексации не возникнет.
site1.com/blog site2.com/blog? почему для второго сайта должен быть другой урл? тем более он часть используется как путь для статей в нём.
Я не понимаю, почему вопрос логичности всегда в сторону того, какую не логичную логику заложили изначально и нету желания баги, называть багами.
Как и обещал. Я делал примерно так, по коду там понятно. Это вместо строки:
$exist = db_get_field(
“SELECT name FROM ?:seo_names WHERE name = ?s ?p AND (object_id != ?i OR type != ?s OR dispatch != ?s OR lang_code != ?s) ?p”,
$_object_name, $path_condition, $object_id, $object_type, $dispatch, $lang_code, $condition
);
//Kucher, фикс, чтобы давало использовать один и тот же урл, для двух языков
if(Registry::get('addons.seo.seo_language') == 'Y'){//Проверка, что включено выводить две буквы языка в url
$exist = db_get_field(
"SELECT name FROM ?:seo_names WHERE name = ?s ?p AND (object_id != ?i OR type != ?s OR dispatch != ?s) ?p",
$_object_name, $path_condition, $object_id, $object_type, $dispatch, $condition
);//Kucher, убрали проверку по языку
}
else{
$exist = db_get_field(
"SELECT name FROM ?:seo_names WHERE name = ?s ?p AND (object_id != ?i OR type != ?s OR dispatch != ?s OR lang_code != ?s) ?p",
$_object_name, $path_condition, $object_id, $object_type, $dispatch, $lang_code, $condition
);
}
/*Kucher, old
$exist = db_get_field(
"SELECT name FROM ?:seo_names WHERE name = ?s ?p AND (object_id != ?i OR type != ?s OR dispatch != ?s OR lang_code != ?s) ?p",
$_object_name, $path_condition, $object_id, $object_type, $dispatch, $lang_code, $condition
);
*/
Сейчс все работает в разрезе страница + в базе хранится информация в разрезе языков и если их много то база раздувается, если идти простым путем и хранить информацию в разрезе ещё и витрин, то БД можно будет с лёгкостью загладить.
Сейчс администрирование мультиязычности то ещё удовольствие, а если сопровождать ещё и мультивитринность, то это будет приводить в фатальным ошибкам, тормозам и головникам для разработчиков приложений.
Ещё один пример, в модуле ТИЛЬДА мы выгружаем контент в разрезе языков и макетов для конкретной страницы, а если использовать иную логику то это усложнит администрирование и разработку.
Второй вариант, если давать share страницы на другие витрины, как сейчас в коробке, то сделать чтобы название, описание, мета теги, можно было прописывать свои для каждой витрины, как “расшаренные” карточки товара. Это как второй вариант решения. Может он был бы проще, и не было в админка вагона одиннаковых страничек для каждой витрины.
Добавить эту логику не сложно, доработать модуль SEO, но если АДмин будет делать хаотично свои действия, то нужно будет делать защиту от дурака и это будет вечный Ад.
Мы все еще говорим о двух страницах с одним URL. Если пошарить одну страницу на разные витрины, то проблемы не будет. У нее будет адрес storefront1/seo_name на первой витрине и storefront2/seo_name на второй.
А вот если добавить на второй витрине еще одну страницу, с тем же SEO именем, то начнутся проблемы.
Предложение @Upmycart хорошее. Создам Featrue request для разработчиков, но не могу обещать что сразу возьмем в работу
Какой вариант кажется вам удобнее? Отдельные страницы с одинаковыми SEO именами или возможность задать свой контент для каждой витрины у одной пошареной страницы?
Не очень понятен смысл функционала расшаривания страниц. Чтобы сэкономить место в БД? Мне кажется, правильнее сделать функционал копирования страниц на витрины и там каждый с ними что хочет делает. Лишнюю проблему создали на ровном месте.
Спасибо за пояснения. Забыл про расшаривание, т.к. не используем. Все равно нельзя на разных сайтах делать одинаковые страницы - сеошник не одобряет.
Обсудите еще пожалуйста мультиязычность.
Например конкретный пример.
Категория Керамика на русском, Кераміка на украинском
SEO-имя - ЧПУ на обоих языках keramika
И вот система не дает сделать одинаковые.
Сайт/keramika
Сайт/uk/keramika
И тот и тот требует понимания от контент как оно работает. Лично мне удобно, чтобы в режиме определенной витрины, были только его сущности.
Я бы убрал расшаривание страниц на витрины совсем. И сделал бы просто и понятно, для каждой витрины свои страницы(и блог) будет меньше путаницы. В режиме все магазины, видно всё, было бы удобно чтобы оно как бы сворачивалось в каждую Витрину, или был заголовок, название витрины, и ниже все страницы, сейчас вроде по алфавиту и всё в перемешку. Но это не критично.