西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > php教程 > magento教程 >

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

时间:2016-05-03 22:40来源: 作者: 点击:
magento目录产品数据可以批量导入超入1001条的产品,但如果对产品目录进行保存,就会发现只有1001条的产品了, 解决这个有两种思路, 一种是改服务器配置,但这个改动可能会引发dd

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的问题

(责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容