1000を超える製品でカテゴリを保存することはできません


7

これは、PHP 5.3.9によって引き起こされる既知の問題max_input_varsであり、デフォルトでは1000に設定されています。

ここで提案されソリューション2 は、私の意見では最高ですが、機能しません。いくつかの奇妙な理由により、カテゴリーを527製品に制限しています。

そのため、関連する修正済みの回答とともにこの質問を投稿しています


たぶん、制限は527ではありません。たぶん、max_post_size
マリウスに

回答:


11

質問で説明されているように、この問題はここで扱われましたが、答えは私にとってうまくいきませんでした。

ここに完全な実用的なソリューションを追加します(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  
    }
 }

/MYNAMESPACE/CategoryFix/controllers/Adminhtml/Catalog/CategoryController.phpが機能した
Alan

3

これをMagentoルートの.htaccessファイルに追加しました:

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

Magentoを設定すると、1つのカテゴリに1001を超える製品を含めることができました。


ソリューションを注意してサーバーがDDoS攻撃に対して脆弱になるようにする
Fra
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.