Magento 1.7 не может редактировать некоторые продукты

Я на 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, но не могу найти, где. Даже если я смогу просто удалить скрипт проверки из форм администратора, я это сделаю, но я не думаю, что должен, и я не знаю, как это сделать.

Любая помощь будет принята с благодарностью. Спасибо за ваше время.


person Mohit    schedule 25.07.2013    source источник


Ответы (1)


Внимательно посмотрите на свой файл .htaccess. Когда я перенес свой магазин Magento 1.7.0 на другой сервер, я включил файл .htaccess со старого сервера, а затем на экране появилось сообщение: «Неверный ключ формы. Пожалуйста, обновите страницу», и ничего не произошло, даже изменения конфигурации не изменились. эффект.

Решение состояло в том, чтобы установить свежий Magento, а затем скопировать файлы My Store в корень Magento, за исключением .htaccess. Когда я использовал .htaccess из новой установки, все стало работать нормально. Я не знаю, что именно произошло, возможно, каждая структура сервера имеет разные и определенные записи и правила .htaccess. Это работает для меня.

person Paulo    schedule 10.10.2013
comment
Неважно, проблеме уже больше 4 месяцев, и когда я наконец не смог разобраться в проблеме, я установил свежую копию, и все заработало гладко. Спасибо за ваше время. - person Mohit; 10.10.2013