Невозможно сохранить категорию с более чем 1000 товарами
Это известная проблема, вызванная PHP 5.3.9 и max_input_vars
, что по умолчанию она установлена на 1000.
Решение 2, предложенное здесь, на мой взгляд, является лучшим, но не работает: по какой-то странной причине оно ограничивает категорию 527 продуктами.
По этой причине я публикую этот вопрос с соответствующим исправленным ответом
2 answers
Как описано в вопросе, эта проблема была решена здесь, но ответ не работал для меня нормально.
Я добавляю сюда полное рабочее решение (method 2
).
Это код, который отлично работает для меня:
$cat_products_split = explode('&', $data['category_products']);
foreach ($cat_products_split as $row) {
$arr = explode('=', $row);
if (count($arr) == 2) {
$products[$arr[0]] = $arr[1];
}
}
- ВОТ ШАГИ, ЧТОБЫ ЭТО ИСПРАВИТЬ -
1. Создание нового модуля
Давайте создадим модуль CategoryFix
в локальном.
Здесь config.xml
:
<?xml version="1.0"?>
<config>
<modules>
<MYNAMESPACE_CategoryFix>
<version>0.1.0</version>
</MYNAMESPACE_CategoryFix>
</modules>
<admin>
<routers>
<adminhtml>
<args>
<modules>
<!--FOR THE USE OF OUR CONTROLLER BEFORE THE CORE ONES -->
<categoryfix before="Mage_Adminhtml">MYNAMESPACE_CategoryFix_Adminhtml</categoryfix>
</modules>
</args>
</adminhtml>
</routers>
</admin>
</config>
2. Переопределение категории контроллер ( saveAction()
)
Файл контроллера: /MYNAMESPACE/CategoryFix/Adminhtml/Catalog/CategoryController
<?php
require_once 'Mage/Adminhtml/controllers/Catalog/CategoryController.php';
class MYNAMESPACE_CategoryFix_Adminhtml_Catalog_CategoryController extends Mage_Adminhtml_Catalog_CategoryController
{
/**
* Category save
*/
public function saveAction()
{
// 1. COPY HERE THE CODE FROM THE ORIGINAL SAVEACTION() METHOD
// 2. COMMENT THIS LINE: `parse_str($data['category_products'], $products);`
// USE THE CODE REPORTED ABOVE
}
}
Я добавил это в файл .htaccess в корне Magento:
<IfModule mod_php5.c>
php_value max_input_vars 100000
</IfModule>
После установки этого Magento позволил мне иметь более 1001 товара в одной категории.