Я на Magento вер. 1.7.0.0, и я не могу редактировать некоторые продукты из административной панели.
Когда я попытался изменить описание продукта напрямую с помощью mysql, это сработало,
затем я попытался удалить части описания и затем обнаружил, что все до текста
«драйвер принтера позволяет пользователям передавать данные» работает, но когда я добавил к нему слово «от», это не сработало, чтобы абзац заканчивался словами «драйвер принтера позволяет пользователям передавать данные из ' ничего не сделал, не показал ни ошибки, ни успешного сообщения, просто обновил страницу. Дело не в длине, потому что, если я заменю текст с на кром, он сработает.
Поэтому я попытался отредактировать описание, указав просто «драйвер принтера позволяет пользователям передавать данные из», и это сработало
Из системного.лога:
ERR (3): Предупреждение: array_key_exists() ожидает, что параметр 2 будет массивом, значение null указано в //app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php в строке 507
ERR (3) : Восстановимое >>ERRor: Аргумент 1, переданный в Varien_Object::addData(), должен быть массивом, заданным null, вызванным в //app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php в строке 514 и определенным в //lib/Varien/Object.php в строке 243
ERR (3): Предупреждение: указан недопустимый аргумент для foreach() в //lib/Varien/Object.php в строке 245
Консоль Chrome говорит мне:
index.php/admin/catalog_product/validate/id/1/back/edi…roduct_info_tabs_group_7/key/978d8fe4570a41312a7520945e982662/?isAjax=true 500 (внутренняя ошибка сервера) прототип.js:1530
Ajax.Request.Class.create .request Prototo.js:1530
Ajax.Request.addMethods.initialize loader.js:61
(анонимная функция) Prototype.js:429
класс Prototype.js:101
varienForm._validate form.js:80
varienForm.submit form.js:65
saveAndContinueEdit /index.php/admin/catalog_product/edit/id/1/back/edit/tab/product_info_tabs_group_7/key/ a325cea2187bfa32cec5c6d0c14e0baa/:2240
по клику
Небольшая отладка PHP говорит мне, что для продукта с ошибкой описания $product->getAttributes(); был пуст, но для рабочих продуктов это был массив.
$attributes = $product->getAttributes();
в строке 504 файла app\code\core\Mage\Adminhtml\controllers\Catalog\ProductController.php
Если я изменю следующую часть из form.js, ошибки консоли Chrome не будет, но она все равно не работает:
this.submitUrl = url;
if(this.validator && this.validator.validate()){
if(this.validationUrl){
this._validate();
}
else{
this._submit(); // I removed everything but this
}
return true;
}
Если это поможет, перед словом «от» в описании 5881 символ. Я пробовал редактировать во всех основных браузерах, поэтому проблем с совместимостью нет.
Я считаю, что проблема где-то в javascript, но не могу найти, где. Даже если я смогу просто удалить скрипт проверки из форм администратора, я это сделаю, но я не думаю, что должен, и я не знаю, как это сделать.
Любая помощь будет принята с благодарностью. Спасибо за ваше время.