Не редактируется модуль CommerceML

Добрый день!

Странно себя ведёт файл /Tygh/Commerceml/RusEximCommerceml.php в модуле rus_exim_1c - любое его редактирование, даже просто лишний пробел или символ переноса строки приводит к тому что при обращении к https://адрес_сайта.ru/exim_1c?type=sale&mode=query вываливается ошибка “SERVICE
UNAVAILABLE”. Если загрузить исходный - работоспособность восстанавливается. Даже удаленный комментарий из файла приводит к ошибке. При этом любые другие скрипты которые находил редактируются без проблем, а тут как буд-то какая-то защита от изменений. Подскажите, как исправить?

Самый надежный способ понять в чем причина это посмотреть ошибку на странице Service unavailable. Ее можно найти в исходном коде страницы, в самом низу (Ctrl+U).

Навскидку, если при редактировании вы не допускаете синтаксических ошибок, то проблема либо в правах, либо в файл добавляется BOM (его могут добавлять некоторые текстовые редакторы)

1 лайк

Пользую Notepad++, он отсебятины вроде как не городит, сохраняет в том же формате в котором открыл, UTF-8 без BOM, по крайней мере и до и после правил другие файлы CMS и никогда с ним проблем не возникало… По ошибке - да, появляется, на строке 3000-какой-то(т.е. 3000 строк до этого он как-то при этом отрабатывает), которая работает(выводит цену), при этом при заливке оригинального файла не редактированного ошибка вновь пропадает, и отображает цену корректно. Права я уже поставил 777 - не влияет. Просто добавляю один пробел в комментарий и вываливается ошибка. Заливаю оригинальный файл - всё работает. Я с таким никогда не сталкивался, какой-то скрипт-недотрога. Отправил запрос в поддержку вчера с доступами, но ответа что-то нет.

Скиньте текст ошибки с бектрейсом

В первой строке файла перед “<?php” добавил один пробел. Ошибка:
PHP Parse Error

Message
syntax error, unexpected ‘$cml’ (T_VARIABLE), expecting ‘)’

Error at
app/addons/rus_exim_1c/Tygh/Commerceml/RusEximCommerceml.php, line: 3079

Backtrace… тут пусто.

Можете привести пример какой-нибудь другой модификации? Очевидно что при добавлении пробела перед тегом php вы как минимум получите варнинги “… headers already sent …” или фаталку если добавить его в класс.

Ровно то же при добавлении пробела в любой комментарии. Или лишний перенос строки добавить. Да что угодно, что вообще любое прикосновение к файлу приносит такой результат, раз 20 пробовал - в любом варианте одно и то же. Если добавил пробел, сохранил, удалил добавленный пробел и сохранил(по идее привёл к первозданному виду) - тоже не работает и отличается по размеру от исходного файла. Не могу понять что с ним не так, почему в любые другие скрипты изменения вносятся без проблем, а этот файл какой-то заколдованный. Может в нём правда что-то внутри с кодировками не так внутри? Но у меня другого нет, он как из установочного дистрибутива попал такой и есть. Могли бы прикрепить свой оригинальный файл, который можно редактировать?

Постоянно редактирую этот файл, у меня там уже куча правок, так как обмен свой настроен. Решили проблему? Если нет - сделайте правку, заархивируйте tar-ом прямо на сервере, скиньте файл в личку, посмотрю