Связь
Здравствуйте! Я Ваш личный надежный программист.
1С Предприятие 8.2-8.3, 1С-Битрикс: Управление сайтом, Битрикс24

Константин (Все сообщения пользователя)

На форумах вы можете обсудить и решить свои вопросы по 1С Предприятию и 1С Битрикс.
Выбрать дату в календареВыбрать дату в календаре

Поля Раздела на другом языке применяется только после повторного сохранения базовой языковой версии
 
Цитата
Пожалуйста, подскажите , вы данные манипуляции проводите на новосозданном разделе?  
Нет, на уже добавленных ранее разделах.
Изменено: Константин - 18.03.2024 12:25:22
Поля Раздела на другом языке применяется только после повторного сохранения базовой языковой версии
 
Выяснили, что баг с категориями всё таки возникает в закодированном коде вашего модуля мультиязычности.

Тут bitrix/modules/modulemarket.translator/include.php
Событие OnBeforeIBlockSectionUpdate

Если убрать амперсанд из функции у аргумента $arFields, чтобы она перестала быть ссылочной переменной - все заработает правильно.
Скрин https://72seo.ru/s/2024-03-14_103311.jpg

Поскольку там код закодирован, то невозможно предсказать последствия такого изменения.

Поэтому очень прошу проверить ваш закодированный код и разобраться в описанной выше ошибке. Заранее спасибо!
Изменено: Константин - 14.03.2024 09:37:50
HL блоки не работают - куча ошибок
 
1 и 2 пункты исправлены, теперь ошибок нет, НО! Теперь вообще не переводит, т.е. не выводит значения на другом языке.
Скрин запроса https://72seo.ru/s/2024-02-07_150639.jpg
Скрин ответа https://72seo.ru/s/2024-02-07_150657.jpg
Скринт HL https://72seo.ru/s/2024-02-07_150719.jpg - выделил то что должно было вывести

3. Ошибка сохраняется, видео по ошибкам https://youtu.be/NcbdbxpsxPQ
4. Ошибка https://72seo.ru/s/2024-02-07_150322.jpg возникает в случаях:
- когда добавляется новое пользовательское поле при сохранении HL элемента
- при втором сохранении элемента

при этом в базе пропадает значения SITE_ID и LANGUAGE_ID

________________________
Резюмирую, после доработок в файле datamanager.php принципиально вообще ни чего не поменялось. Ошибки как были так и есть, HL как не работал так и не работает.
Только сейчас окончательно поломался, даже перевод не выдаёт в ответе getlist.
HL блоки не работают - куча ошибок
 
Очевидно что при создании модуля обошли стороной HL блоки, функционал явно сырой.

1. Если при вызове HL Блока в getlist вставить "select" => array("*"), то значения вернутся непереведенные. Без этого параметра переводится.

2. Массив переведенных значений имеет дубли в названии ключей UF_UF_ и деже если после использовать функцию RenameRowKeys всё равно не переименовываются, она тоже не работает корректно

3. Выше пункты еще цветочки, в сравнении с работой с самими блоками из админки.
- зашёл в элемент - сохранил на русском
- переключил язык на En - сохранил - в таблице mm_hl_lang_selector появилась запись, но сбросился чекбокс.
- сохраняю повторно без правок - сбрасываются SITE_ID и LANGUAGE_ID в таблице базы
- сохраняю повторно - записывается новая запись и так до бесконечности

Вообще, зачем добавлять в таблицу SITE_ID когда привязка идёт к языку, это лишнее значение.

4. Не корректно работает обработка мультиполей. При сохранении вызывет ошибку https://72seo.ru/s/2024-01-24_130240.jpg

На данный момент работать с HL Блоками невозможно!
Очень хотелось бы чтобы доработали их в ближайшее время.

Прикладываю Видео по ошибкам https://youtu.be/NcbdbxpsxPQ

==========================

P.S. Поскольку документации нет совершенно по HL Блокам поэтому напишу сюда вызовы, вдруг кому пригодится

$hlblock = Modulemarket\Translator\Highloadblock\HighloadBlockTable::getById($hlblock_id)->fetch();
$entity = \Modulemarket\Translator\Highloadblock\HighLoadBlockTable::compileEntity($hlblock);
$entity_data_class = $entity->getDataClass();
$arRes = $entity_data_class::getList([
'order' => ['UF_SORT' => 'ASC'],
   'filter' => $arFilter,
])->fetchAll();

Также можно запустить переименование ключей, UF_UF_ на UF_
\Modulemarket\Translator\Highloadblock\HighLoadBlockTable::RenameRowKeys($arRes);
Только нужно саму функцию переписать

В файле /bitrix/modules/modulemarket.translator/lib/highloadblock/highloadblocktable.php функция RenameRowKeys
Заменить весь код на этот

// Замена UF_UF_ на UF_ / Кастом
       foreach ($row as &$subArray) {
           $newSubArray = array();
           foreach ($subArray as $key => $item) {
               $newKey = str_replace('UF_UF_', 'UF_', $key);
               $newSubArray[$newKey] = $item;
           }
           $subArray = $newSubArray;
       }

==========================

ОЧЕНЬ надеюсь, что функционал HL блоков получится сделать в самое ближайшее время.
Сделать возможность перевода полей форм модуля Веб формы
 
"Сделать возможность перевода полей форм модуля Веб формы"

Сейчас есть куча форм и чтобы их адаптировать под каждый язык на публичке, нужно делать копии форм под каждый язык и потом в коде в каждом сайте вручную проставлять нужный ID формы.
Это достаточно хлопотно. Собственно данный модуль и решает вопросы подобных танцев с бубном в Инфоблоках, Highload блоках, Свойствах и очень в тему добавить поддержку Веб форм.

Скрин https://72seo.ru/s/2023-12-12_163056.jpg
Не сохраняет значения других полей, пока не заполнено для базового языка.
 
"Не сохраняет значения других полей, пока не заполнено для базового языка."

Если нужно чтобы поле на базовой версии языка было пустое, а на en было заполнено, то такой трюк не прокатит.
Есть связка с базовым языком и без заполнения его не получится указать другую локализацию.

Не совсем понял почему так сделано, но в некоторых случаях было бы полезно указывать поля для других языков.
Сделать автоперевод метаданных разделов и элементов
 
"Сделать автоперевод метаданных"

Считаю, будет полезно сделать автоматический перевод метаданных разделов и элементов.
С возможностью в ручном режиме, по скрипту всей базы и при создании новых элементов.
Не совсем понял почему изначально при разработке автоперевода остальных полей это не было сделано.

Если есть какая то в этом логика, то сделайте, пожалуйста, включение через параметр перевод и метаданных.
Поля Раздела на другом языке применяется только после повторного сохранения базовой языковой версии
 
"Поля Раздела на другом языке применяется только после повторного сохранения базовой языковой версии"

А теперь детали:
Если перейти в раздел и выбрать например EN и внести изменения в элементе: название, метаданные и прочая информация и нажать сохранить, то на публичной части сайте они не применяются даже после полного сброса кеша сайта. Применение происходит только при сохранении в админке на базовом языке, в моём случае на русском.

Это дико не удобно, постоянно сохранять раздел по 2 раза и переключаться между языками, теряется время.

Всё правильно работает при работе с элементами, значит можно правильно настроить для разделов.
Изменено: Константин - 05.12.2023 21:20:19
Не работает автоперевод свойств элементов с типом HTML
 
Если включить автоперевод, то все типы полей переводит отлично, даже мультиполя, а вот с типом HTML/текст переводить не хочет.



Это только у товаров.
Не работает перевод свойств товара в корзине, Баг в работе модуля перевода в частности с работой в компонентами корзины
 
Всё точно также, ни чего не изменилось. версия 2.1.2 от 25.09.2023
file_download Скачать Модуль Маркет
file_download Скачать Модуль Маркет