Не перекладаються назви та посилання СЕО тегів в розділах

 
СЕО теги https://prnt.sc/_YYf38eQUl5O, /ua/catalog/kormushki_1/ не перекладаються, і не зрозуміло як бути з посиланням в налаштуваннях в адмінці https://prnt.sc/3fscO-DnYSsJ. Там прописується адреса, але це поле однакове на мовних версіях. Якщо додам туди /ua/, то і на російській версії воно буде. Також замітив, що посилання тегів з /ua/ показують 404 сторінку. Спостерігається кешування УРЛ адрес цих тегів.
 
В файлі
Код
bitrix/templates/enext/components/bitrix/catalog/.default/section_vertical.php
Код
Код
//SECTION_LINKS//
if(!empty($arCurSection["PATH"]) && $filterSeoId > 0) {
   $arSectLinksFilter = array("ACTIVE" => "Y", "IBLOCK_ID" => $filterSeoId, "PROPERTY_SECTION" => array_keys($arCurSection["PATH"]));
   
   $obCache = new CPHPCache();
   if($obCache->InitCache($arParams["CACHE_TIME"], serialize($arSectLinksFilter), "/iblock/catalog")) {
      $sectionLinks = $obCache->GetVars();
   } elseif(Bitrix\Main\Loader::includeModule("iblock") && $obCache->StartDataCache()) {     
      $sectionLinks = array();      
      $rsElements = CIBlockElement::GetList(array("SORT" => "ASC", "NAME" => "ASC"), $arSectLinksFilter, false, false, array("ID", "CODE", "IBLOCK_ID", "NAME", "DETAIL_PAGE_URL", "PROPERTY_DEFAULT_URL", "PROPERTY_SECTION", "PROPERTY_SHOW_IN_SUBSECTIONS", "PROPERTY_SHOW_IN_SELECTED_SECTION"));    
      
      if($isCacheManager) {
         $GLOBALS["CACHE_MANAGER"]->StartTagCache("/iblock/catalog");
         $GLOBALS["CACHE_MANAGER"]->RegisterTag("iblock_id_".$filterSeoId);
      }
      
      while($arElement = $rsElements->GetNext()) {
         if($arElement["PROPERTY_SECTION_VALUE"] == $arCurSection["ID"] || !empty($arElement["PROPERTY_SHOW_IN_SUBSECTIONS_VALUE"]))
            $sectionLinks[] = $arElement;
      }
      
      if($isCacheManager)
         $GLOBALS["CACHE_MANAGER"]->EndTagCache();           
      
      $obCache->EndDataCache($sectionLinks);
   } else {
      $sectionLinks = array();
   }
   unset($arSectLinksFilter);
}
Замінив на:
Код
//SECTION_LINKS//
if(!empty($arCurSection["PATH"]) && $filterSeoId > 0) {
   $arSectLinksFilter = array("ACTIVE" => "Y", "IBLOCK_ID" => $filterSeoId, "PROPERTY_SECTION" => array_keys($arCurSection["PATH"]));
   
   $obCache = new CPHPCache();
   if($obCache->InitCache($arParams["CACHE_TIME"], serialize($arSectLinksFilter) .
        LANGUAGE_ID //edit_by_Fantych: 26.07.2023 
        , "/iblock/catalog")) {
      $sectionLinks = $obCache->GetVars();
   } elseif(Bitrix\Main\Loader::includeModule("iblock") && $obCache->StartDataCache()) {     
      $sectionLinks = array();      
      $rsElements = FCIBlockElement::GetList(array("SORT" => "ASC", "NAME" => "ASC"), $arSectLinksFilter, false, false, array("ID", "CODE", "IBLOCK_ID", "NAME", "DETAIL_PAGE_URL", "PROPERTY_DEFAULT_URL", "PROPERTY_SECTION", "PROPERTY_SHOW_IN_SUBSECTIONS", "PROPERTY_SHOW_IN_SELECTED_SECTION"));
      
      if($isCacheManager) {
         $GLOBALS["CACHE_MANAGER"]->StartTagCache("/iblock/catalog");
         $GLOBALS["CACHE_MANAGER"]->RegisterTag("iblock_id_".$filterSeoId);
      }
      
      while($arElement = $rsElements->GetNext()) {
         if($arElement["PROPERTY_SECTION_VALUE"] == $arCurSection["ID"] || !empty($arElement["PROPERTY_SHOW_IN_SUBSECTIONS_VALUE"]))
            $sectionLinks[] = $arElement;
      }
      
      if($isCacheManager)
         $GLOBALS["CACHE_MANAGER"]->EndTagCache();           
      
      $obCache->EndDataCache($sectionLinks);
   } else {
      $sectionLinks = array();
   }
   unset($arSectLinksFilter);
}

По суті тільки дві правки : FCIBlockElement та другий параметр InitCache не враховував LANGUAGE_ID

Зміни виванатижив Вам на сайт!
Читають тему