Аз съм на Magento ver. 1.7.0.0 и не мога да редактирам някои от продуктите от бекенда на администратора.
Когато се опитах да променя описанието на продукта директно с помощта на mysql, това проработи,
така че след това опитах да премахна части от описанието и след това открих, че всичко до текста
"драйверът на принтера позволява на потребителите да прехвърлят данни" работи, но когато добавих думата "от" към него, не работи, като абзацът завършва на "драйверът на принтера позволява на потребителите да прехвърлят данни от ' не направи нищо, нито показа грешка, нито успешно съобщение, просто обнови страницата. Не може да става въпрос за дължината, защото ако заменя текста от на krom, работи.
Затова се опитах да редактирам описанието само на „драйверът на принтера позволява на потребителите да прехвърлят данни от“, проработи
От system.log:
ERR (3): Предупреждение: array_key_exists() очаква параметър 2 да бъде масив, нула, дадена в //app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php на ред 507
ERR (3) : Възстановима >>ГРЕШКА: Аргумент 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 (вътрешна сървърна грешка) prototype.js:1530
Ajax.Request.Class.create .request prototype.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, но не мога да намеря къде. Дори ако мога просто да премахна скрипта за валидиране от административните форми, ще го направя, но не мисля, че трябва и не знам как.
Всяка помощ ще бъде високо оценена. Благодаря за отделеното време.