magento目录产品数据1001条的限制解决

magento目录产品数据可以批量导入超入1001条的产品,但如果对产品目录进行保存,就会发现只有1001条的产品了,
解决这个有两种思路,
一种是改服务器配置,但这个改动可能会引发ddos的风险,所以弃之
第二是改magento的核心代码,改动如下:
app/code/core/Mage/Adminhtml/controllers/Catalog/CategoryController.php文件中

parse_str($data['category_products'], $products);
改成
$cat_products_split = explode('&', $data['category_products']);
foreach($cat_products_split as $row) {
    $arr = array();
    parse_str($row, $arr); //This will always work
    list($k, $v) = each($arr);
    if (!empty($k) && !empty($v)) {
        $products[$k] = $v;
    }
}
即可解决后台保存超过1001个产品的问题

if (isset($data['category_products']) &&
                !
$category->getProductsReadonly()) {
                $products 
= array();
                
parse_str($data['category_products']$products);
                
$category->setPostedProducts($products);
            
}

换成

if (isset($data['category_products']) &&
            !
$category->getProductsReadonly()) {
            $products 
= array();
            
$records preg_split('/&/',$data['category_products'],-1,PREG_SPLIT_NO_EMPTY);
            if(
count($records) > 0){
                
foreach($records as $record){
                    $record 
trim($record);
                    if(
preg_match('/([0-9]*)=([0-9]*)/',$record,$matches)){
                        $products[$matches[1]] 
$matches[2];
                    
}
                }
            }
            $category
->setPostedProducts($products);
        
}
可以解决之一个方案在某些情况下,产品变0的问题