magento 分类保存产品数量瓶颈

php.ini 有个值 max_input_vars 默认是 1000
可能和版本有关,我的(php 5.5)是 2500

变量的解释是:
How many GET/POST/COOKIE input variables may be accepted

所以他导致的问题是 最多能接受 1000个变量
同理适用于 函数 parse_str(string,array)

<?php
parse_str("name=Bill&age=60",$myArray);
print_r($myArray);
?>

而magento 后台在分类页 将产品分到某个分类下就是采用了 parse_str 的方法
由此产生的问题就是 最多能将某个分类保存 1000或者1001 个产品。再多了 就会报错

Warning: parse_str(): Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini.
in /app/code/core/Mage/Adminhtml/controllers/Catalog/CategoryController.php on line 310

所以最直接的解决办法是 增大 max_input_vars 的值
但是 始终会有瓶颈。

更改程序

修改 文件:

app\code\core\Mage\Adminhtml\controllers\Catalog\CategoryController.php 的函数 saveAction()

其中一段 if 程序修改为:

“`
if (isset(data['category_products']) && !category->getProductsReadonly()) {
products=array(); exploded = explode('&', $data[‘category_products’]);

foreach ($exploded as $row) {
    $temp = array();
    parse_str($row, $temp);
    list($key, $value) = each($temp);
    if(!empty($key)) {
        $products[$key] = $value;
    }
}

$category->setPostedProducts($products);

}

相信你可以知道修改的程序具体位置在哪里 :)“`

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值