Mit mehr als 1000 Produkten kann keine Kategorie gespeichert werden

7

Dies ist ein bekanntes Problem, das durch PHP 5.3.9 verursacht wird und max_input_varsstandardmäßig auf 1000 eingestellt ist.

Die hier vorgeschlagene Lösung 2 ist meiner Meinung nach die beste, funktioniert aber nicht: Aus irgendeinem seltsamen Grund wird die Kategorie auf 527 Produkte beschränkt.

Aus diesem Grund poste ich diese Frage mit der entsprechenden korrigierten Antwort

Fra
quelle
Vielleicht ist das Limit nicht 527. Vielleicht erreichen Sie diemax_post_size
Marius

Antworten:

11

Wie in der Frage beschrieben, wurde dieses Problem hier behoben , aber die Antwort funktionierte für mich nicht gut.

Ich füge hier eine vollständige Arbeitslösung hinzu ( method 2).

Dies ist der Code, der für mich gut funktioniert:

            $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];
                }
            }

- HIER DIE SCHRITTE, UM ES ZU BEHEBEN -

1. Erstellung eines neuen Moduls

Lassen Sie ein Modul CategoryFixin lokal erstellen .

Hier die 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. Überschreiben Sie den Category Controller ( saveAction())

Controller-Datei: /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  
    }
 }
Fra
quelle
/MYNAMESPACE/CategoryFix/controllers/Adminhtml/Catalog/CategoryController.php arbeitete für mich
Alan
3

Ich habe dies zur .htaccess-Datei im Magento-Stammverzeichnis hinzugefügt:

<IfModule mod_php5.c>
    php_value max_input_vars 100000
</IfModule>

Nachdem ich Magento eingestellt hatte, konnte ich mehr als 1001 Produkte in einer Kategorie haben.

Webninja
quelle
Achten Sie darauf, dass Ihre Lösung Ihren Server anfälliger für DDoS-Angriffe macht
Fra