SEO фильтр + MyLang корректность работы + InSales

Доброго времени суток!

Стоит приложение MyLang на две локали + SEO фильтр 

1. При формировании результата фильтра формируется кнопка "очистить", которая ведет на родительскую категорию страницы фильтрации. И если ты не на основной локали, а например на /ru/ или /en/ то в блоке:

<div class="in-blocks__title-name category-name">{$category.name}</div> 

в переменную $category.name возвращается $category.name со значением основной локали, почему-то, а не той - на которой пользователь находится, при этом, вся остальная страница на правильной локали, и META-теги - так же приводятся к виду той страницы и той локали на которой пользователь находится, только $category.name почему-то на языке основной локали выводится...

Я проверил блок с кодом: 

<a href="/ru/category/udleniteli/" class="f-finds__list f-finds__button" data-url="/ru/category/udleniteli/">очистить</a>

под кнопку "очистить" подставляет правильный URL и если открыть ссылку в новом окне - то category.name в правильном переводе...

2. В index.html был добавлен код: 

{* SOE alternate *}
<link rel="alternate" hreflang="ru-RU" href="{$wa->domainUrl()}/ru{$wa->currentUrl()|replace:'/ru/':'/'}">
<link rel="alternate" hreflang="uk-UA" href="{$wa->domainUrl()}{$wa->currentUrl()|replace:'/ru/':'/'}" > ,

как того просит GOOGLE для информировании о нескольких языковых версиях страницы... И вот что получается, при формировании SEO страницы:

wa->currentUrl() - остается прежним, родительской категории... Подскажите, где находится функция отслеживающая клик по checkbox фильтра, что бы добавить туда замену на уровне не PHP, а уже на уровне html+js замену значений href в теги link

уточнение: при прямом переходе по ссылке сформированной SEO фильтры (bodysite) -> wa->currentUrl() - подставляет правильный URL

4 ответа

  • 1
    civicd14 12 октября 2022 01:19 #

    UPD. по 1му пункту - подмена category.name на главный локаль происходит даже, если страница не сформирована в SEO фильтр и просто пользователь выбирает характеристики, то при нажатии на ЧЕКБОКСЫ category.name - меняет свое значение на язык из главного локаля

  • 2
    civicd14 28 ноября 2022 15:39 #

    Спустя полтора месяца я достучался до Богов веб разработки компонентов для вебасист и получил ответ в стиле: «мы на бую вертели мультиязычность» — это так мило в 2022м году 

  • 1
    civicd14 28 ноября 2022 15:45 #

    Чуть покопался в проблеме глубже... пробежался по JS, ничего не обычного подмена в блоке

    <div class="сategory-name">{$category.name}</div>

    вот что странно, при изучении массива категории: 

    {$c = $wa->shop->category(52)}
    <pre>
        {print_r($c)}
    </pre>
    
    //--------------
    Array
    (
        [id] => 52
        [left_key] => 11
        [right_key] => 18
        [depth] => 2
        [parent_id] => 51
        [name] => Реле напряжения
        [meta_title] => 
        [meta_keywords] => 
        [meta_description] => 
    

    Мы получаем ответ от сервера

    {$category.name}

    в соответсвии с витриной которая запрашивается

    [name] => Реле напряжения

    но при этом, SEO-filter почему то считает, что у нас 

    [name] => Gərginlik rölesi

    как задано в основной витрине, то есть, СЕО фильтр беред {$category.name} из БД ??? а не из массива категории, которая рендерится в данный момент???

    поправьте меня кто то если я ошибаюсь... Но это алогично!


    • +1
      civicd14 civicd14 28 ноября 2022 15:46 #

      лезть в PHP  и менять логику компонента SEO фильтра там - не особо ест желание...

      Остается на уровне JS поправить функцию, которая переписывает 

      этот блок

      <div class="сategory-name">{$category.name}</div>

      Да начнутся голодные игры... Если кто уже сталкивался с этим - пните пЛИЗЗЗ

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите