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 CategoryFix
in 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
}
}
max_post_size