Мультиязычность: Инфоблоки на разных языках

 
На локалке все работает. Пытаюсь установить на сервере, все встает, но не открываются настройки модуля. Не видит класс почему то.
[Error]
Class "Bxproger\Translator\Services\TranslateService" not found (0)
***/bitrix/modules/bxproger.translator/options.php:92
#0: include
***/bitrix/modules/main/admin/settings.php:70
#1: require_once(string)
***/bitrix/admin/settings.php:2

пробовал полностью удалять файлы модуля, не помогает.

И еще пожелания - убрать проверку при копировании компонентов модуля. Приходится их в гитигнор добавлять, чтобы не мешались при установке.
 
А еще при удалении модуля через интерфейс тоже не видит класс. Приходиться удалять папку с моудлем.

Class "Bxproger\Core\Module\Installer" not found (0)
***/bitrix/modules/bxproger.translator/install/index.php:281
#0: bxproger_translator->UnInstallFiles()
***/bitrix/modules/bxproger.translator/install/index.php:380
#1: bxproger_translator->DoUninstall()
***/bitrix/modules/main/admin/partner_modules.php:250
#2: require_once(string)
***/bitrix/admin/partner_modules.php:2
 
Цитата
написал:
На локалке все работает. Пытаюсь установить на сервере, все встает, но не открываются настройки модуля. Не видит класс почему то.
[Error]
Class "Bxproger\Translator\Services\TranslateService" not found (0)
***/bitrix/modules/bxproger.translator/options.php:92
#0: include
***/bitrix/modules/main/admin/settings.php:70
#1: require_once(string)
***/bitrix/admin/settings.php:2

пробовал полностью удалять файлы модуля, не помогает.

И еще пожелания - убрать проверку при копировании компонентов модуля. Приходится их в гитигнор добавлять, чтобы не мешались при установке.
Для более точной диагностики потребуется доступ к админпанели сайта, а так же FTP/SSH доступ.
Пожалуйста пришлите нам на почту.
Цитата
написал:
А еще при удалении модуля через интерфейс тоже не видит класс. Приходиться удалять папку с моудлем.

Class "Bxproger\Core\Module\Installer" not found (0)
***/bitrix/modules/bxproger.translator/install/index.php:281
#0: bxproger_translator->UnInstallFiles()
***/bitrix/modules/bxproger.translator/install/index.php:380
#1: bxproger_translator->DoUninstall()
***/bitrix/modules/main/admin/partner_modules.php:250
#2: require_once(string)
***/bitrix/admin/partner_modules.php:2
По данному вопросу скорее всего проверьте  обновлен ли у вас модуль  bxproger.core до последней версии.  
 
Цитата
написал:
А еще при удалении модуля через интерфейс тоже не видит класс. Приходиться удалять папку с моудлем.

Class "Bxproger\Core\Module\Installer" not found (0)
***/bitrix/modules/bxproger.translator/install/index.php:281
#0: bxproger_translator->UnInstallFiles()
***/bitrix/modules/bxproger.translator/install/index.php:380
#1: bxproger_translator->DoUninstall()
***/bitrix/modules/main/admin/partner_modules.php:250
#2: require_once(string)
***/bitrix/admin/partner_modules.php:2
Данная проблема решена в обновлении 2.5.838. Пожалуйста обновите модуль до актуальной версии.  
 
По удалению помогло обновление. По подключению класса TranslateService отправил доступы в личку.
 
Не могу зайти на сайт test...com

Ошибка :
Код
[Error] 
Class "Bitrix\Sale\Fuser" not found (0)
/var/www/test_finntra_usr/data/www/test.
 
Проверил еще раз. Доступы рабочие.

На локалке завел модуль, но на сервере так не устанавливается.
На локаллке так же вылезла ошибка сохранения перевода в ИБ. Выбираю другой язык, пытаюсь поменять детальное описание. При сохранении выдает Query Error!,
В логах вот такое:
Код
CRITICAL 15.07.2024 12:52:07
Bitrix\Main\DB\SqlQueryException: Query error: [1064] You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ':2, `LANGUAGE_ID` = 'fr', `SITE_ID` = 'fr', `IBLOCK_PROPERTY_ID` = '2', `IBLO...' at line 1 in /var/www/www/bitrix/modules/main/classes/general/database.php:647
Stack trace:
#0 /var/www/www/bitrix/modules/main/classes/general/database.php(747): CAllDatabase->Query('UPDATE fan_tran...', false, '')
#1 /var/www/www/bitrix/modules/bxproger.translator/include.php(8): CAllDatabase->Update('fan_translator_...', Array, 'WHERE\n         ...')
#2 /var/www/www/bitrix/modules/bxproger.translator/include.php(8): CFanTranslator::IblockElement_UpdateTranslations(Array)
#3 /var/www/www/bitrix/modules/main/tools.php(4741): CFanTranslator::OnBeforeIBlockElementUpdate(Array)
#4 /var/www/www/bitrix/modules/iblock/classes/general/iblockelement.php(5202): ExecuteModuleEventEx(Array, Array)
#5 /var/www/www/bitrix/modules/iblock/classes/mysql/iblockelement.php(1197): CAllIBlockElement->CheckFields(Array, 4597, true)
#6 /var/www/www/bitrix/modules/bxproger.translator/admin/bitrix/iblock_element_edit.php(1013): CIBlockElement->Update(4597, Array, false, true, true)
#7 /var/www/www/bitrix/admin/iblock_element_edit.php(1): require('/var/www/www/bi...')
#8 {main}
Array
(
    [source] => UNKNOWN
)
Изменено: Илья - 15.07.2024 16:11:36
 
На тестовом проведите полное тестирование системы : test.... com /bitrix/admin/site_checker.php?lang=ru
Все ошибки и предупреждения исправьте пожалуйста.
У меня данный функционал совсем не запускается , явно какие то ошибки на сайте. Так же не удаляются файлы. Видимо ошибка доступов тоже имеется.
После исправления ошибок переустановите решение.  
 
, отключил HTTP авторизацию на сайте и все установилось. Видимо где то блокировка в модуле.
Но остался вопрос по сохранению элементов ИБ в каталоге. Сам запрос, который вызывает ошибку выглядит так:
Код
UPD ATE fan_translator_iblock_element_property SE T `VALUE_ID` = 31800:2, `LANGUAGE_ID` = 'fr', `SITE_ID` = 'fr', `IBLOCK_PROPERTY_ID` = '2', `IBLOCK_ELEMENT_ID` = '31800', `VALUE` = '1529', `VALUE_NUM` = '1529', `DESCRIPTION` = '' WHERE
                                        VALUE_ID = 31800:2
                                        AND LANGUAGE_ID = 'fr'
                                        AND SITE_ID = 'fr'
Если смотреть по ID, то это просто свойства типа строка. В данном случае ARTICLE, который указан числом без букв.

В другом ИБ та же ошибка возникает на свойстве типа строка, в котором указан день рождения, например так: 07.30.1981.
Смена цифр на буквы не помогает. даже если сделать в сайте по умолчанию.
Наверное нужно принудительно указывать тип текст для поля VALUE перед сохранением в БД. Но проверить не могу, так как методы зашифрованы.
 
Что показывает тестирование системы? Есть ли ошибки по БД?
 
, все тесты пройдены, ошибок в БД нет. Таблицы с полями все тоже созданы.
 
/bitrix/admin/site_checker.php?lang=ru - у вас не работает Проверка системы.
/bitrix/admin/update_system.php?refresh=Y&lang=ru - так же не обновлен продукт.

Исправьте пожалуйста данные замечания проверьте проблему еще раз.
 
Переустановил полностью сайт. Обновил. Проверка системы пройдена. Все та же ошибка при сохранении в каталоге.

Плюсом не открываются элементы ИБ... Если указать в классе тип переменной $LAST_ERROR строка все заработает.
Код
ErrorException: Type of FCIBlockProperty::$LAST_ERROR must be string (as in class CAllIBlockProperty) in /var/www/www/bitrix/modules/bxproger.translator/classes/FCIBlockProperty.php:3
Stack trace:
#0 [internal function]: Bitrix\Main\Diag\ExceptionHandler->handleFatalError()
#1 {main}
Array
(
    [source] => FATAL
)
 
Цитата
написал:
Переустановил полностью сайт. Обновил. Проверка системы пройдена. Все та же ошибка при сохранении в каталоге.
- По прежнему не работает. Выдает "The script encountered an error and will be aborted. To view extended error messages, enable this feature in .settings.php."
Цитата
написал:
ErrorException: Type of FCIBlockProperty::$LAST_ERROR must be string
- Данная ошибка связана с обнолвением ядра Битрикс. Выпускаем сегодня обновление модуля чтобы, адаптироваться под данные обновление Битрикса.  
 
В логе ошибка авторизации, почистите куки. Через инкогнито спокойно авторизируется. Логи смотрите тут /local/log/bitrix/.  
 
Еще вылезла ошибка при изменении названия раздела. Вообще при любом изменении раздела. Просто при сохранении. Пробовал в ИБ 51. Там даже пользовательских свойств нет, все стандартное.
Код
Bitrix\Main\DB\SqlQueryException: Query error: [1452] Cannot add or update a child row: a foreign key constraint fails (`finn`.`fan_translator_iblock_section`, CONSTRAINT `fan_translator_iblock_section_ibfk_2` FOREIGN KEY (`IBLOCK_SECTION_ID`) REFERENCES `b_iblock_section` (`ID`)) in /var/www/www/bitrix/modules/main/classes/general/database.php:647
Stack trace:
#0 /var/www/www/bitrix/modules/main/classes/mysql/database.php(395): CAllDatabase->Query('INS ERT IN TO fan...', false, '')
#1 /var/www/www/bitrix/modules/bxproger.translator/include.php(8): CDatabaseMysql->Insert('fan_translator_...', Array)
#2 /var/www/www/bitrix/modules/bxproger.translator/include.php(8): CFanTranslator::IblockSection_UpdateTranslations(Array)
#3 /var/www/www/bitrix/modules/main/tools.php(5259): CFanTranslator::OnBeforeIBlockSectionUpdate(Array)
#4 /var/www/www/bitrix/modules/iblock/classes/general/iblocksection.php(1742): ExecuteModuleEventEx(Array, Array)
#5 /var/www/www/bitrix/modules/bxproger.translator/classes/FCIBlockSection.php(718): CAllIBlockSection->CheckFields(Array, 273)
#6 /var/www/www/bitrix/modules/bxproger.translator/admin/bitrix/iblock_section_edit.php(377): FCIBlockSection->Update(273, Array, true, true, true)
#7 /var/www/www/bitrix/admin/iblock_section_edit.php(1): require('/var/www/www/bi...')
#8 {main}
Array
(
    [source] => UNKNOWN
)
Изменено: Илья - 26.07.2024 17:23:18
 
Решили проблему SQL запросом
Код
ALTER TABLE fan_translator_iblock_section 
DROP FOREIGN KEY fan_translator_iblock_section_ibfk_2, 
MODIFY COLUMN IBLOCK_SECTION_ID int(11);
Этот запрос можете испольщовать и на боевом сайте если такая ошибка выскакиевает , но замените fan_translator_iblock_section_ibfk_2 на такую которая будет указана там.

А так же изменили данную колонку IBLOCK_SECTION_ID при создании таблицы fan_translator_iblock_section.
Код
IBLOCK_SECTION_ID  int(11)
В новом обновлении уже не будет данной ошибки.
Спасибо что нашли.  
 
Цитата
написал:
, отключил HTTP авторизацию на сайте и все установилось. Видимо где то блокировка в модуле.
Но остался вопрос по сохранению элементов ИБ в каталоге. Сам запрос, который вызывает ошибку выглядит так:
Код
 UPD ATE fan_translator_iblock_element_property SE T `VALUE_ID` = 31800:2, `LANGUAGE_ID` = 'fr', `SITE_ID` = 'fr', `IBLOCK_PROPERTY_ID` = '2', `IBLOCK_ELEMENT_ID` = '31800', `VALUE` = '1529', `VALUE_NUM` = '1529', `DESCRIPTION` = '' WHERE
                                        VALUE_ID = 31800:2
                                        AND LANGUAGE_ID = 'fr'
                                        AND SITE_ID = 'fr'
 
Если смотреть по ID, то это просто свойства типа строка. В данном случае ARTICLE, который указан числом без букв.

В другом ИБ та же ошибка возникает на свойстве типа строка, в котором указан день рождения, например так: 07.30.1981.
Смена цифр на буквы не помогает. даже если сделать в сайте по умолчанию.
Наверное нужно принудительно указывать тип текст для поля VALUE перед сохранением в БД. Но проверить не могу, так как методы зашифрованы.
А что по поводу этой ошибки? По прежнему не сохраняется элемент каталога.
Код
Query Error: UPD ATE fan_translator_iblock_element_property SE T `VALUE_ID` = 2674:2, `LANGUAGE_ID` = 'fr', `SITE_ID` = 'fr', `IBLOCK_PROPERTY_ID` = '2', `IBLOCK_ELEMENT_ID` = '2674', `VALUE` = '1520', `VALUE_NUM` = '1520', `DESCRIPTION` = '' WHERE VALUE_ID = 2674:2 AND LANGUAGE_ID = 'fr' AND SITE_ID = 'fr'[[1064] You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ':2, `LANGUAGE_ID` = 'fr', `SITE_ID` = 'fr', `IBLOCK_PROPERTY_ID` = '2', `IBLO...' at line 1]
 

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

Наш модуль на данный момент не поддерживает работу с инфоблоками, у которых установлен данный тип хранения свойств.

Пожалуйста, измените тип хранения свойств на "в общей таблице" для корректной работы модуля.

Если у вас возникнут дополнительные вопросы или потребуется помощь, не стесняйтесь обращаться к нам.

 
Спасибо, помогло.

Еще есть вопрос по D7. Есть ли какая то возможность его использовать для получения данных с учетом перевода? Или в модуле можно использовать только старое ядро?
 
Данное решение на D7 уже используется в некоторых местах, но пока еще не рекомендуем его использовать самостоятельно.
Как пройдет полное тестирование - будет описано в документации.  
 
Добрый день. Еще обнаружил ошибку в работе HL блоков при установленном решении. При попытке открыть элементы хайлоадблока если в них есть множественное поле, выдается такая ошибка:
Код
Call to undefined method Bxproger\Translator\Highloadblock\HighLoadBlockTable::compileUtmEntity() (0)
/var/www/www/bitrix/modules/bxproger.translator/lib/highloadblock/highloadblocktable.php:219
#0: Bxproger\Translator\Highloadblock\HighLoadBlockTable::compileEntity(array)
   /var/www/www/bitrix/modules/bxproger.translator/admin/bitrix/highloadblock_rows_list.php:67
#1: require(string)
   /var/www/www/bitrix/admin/highloadblock_rows_list.php:1
----------

В данном случае это поле типа строка.  
 
Спасибо, большое за обращение!
После выявления проблемы, вернемся с ответом. Ожидайте пожалуйста.  
 
Проблема решена.
Обновление 2.5.888
Читают тему