接口 PHPOK_arc

查看次数:302,最后更新时间:2019-12-13 14:12

在 nodes.php 里的方法是:

public function PHPOK_arc()
{
    //这里开始编写PHP代码
}

可接收数据来源:

$arc = $this->data('arc');

$arc 就是当前内容,可以在这里进行重新格式化,格式化后,重新附值

$this->data('arc',$arc);

完整示例(优惠券示例)

public function PHPOK_arc()
{
    $arc = $this->data('arc');
    if(!$arc){
        return false;
    }
    if(!$arc['price']){
        return false;
    }
    $time = strtotime(date("Y-m-d",$this->time));
    $condition = "types='list' AND stopdate>=".$time." AND time_start<=".date("G",$this->time)." AND time_stop>=".date("G",$this->time);
    $clist = $this->model('coupon')->get_list($condition,0,999);
    
    if(!$clist){
        return false;
    }
    
    $pid = $arc['project_id'];
    $cateid = $arc['cate_id'];
    $cateids = array();
    if($cateid && $arc['_catelist']){
        $cateids = array($cateid);
        foreach($arc['_catelist'] as $key=>$value){
            $cateids[] = $value['id'];
        }
        $cateids = array_unique($cateids);
    }
    $tmplist = array();
    $_user = array();
    if($this->session->val('user_id')){
        $_user = $this->model('user')->get_one($this->session->val('user_id'));
    }
    foreach($clist as $key=>$value){
        if($value['user_groupid'] || $value['users']){
            if(!$this->session->val('user_id')){
                continue;
            }
            $tmp_users = $value['users'] ? explode(",",$value['users']) : array();
            if($value['user_groupid'] != $_user['group_id'] && !in_array($_user['id'],$tmp_users)){
                continue;
            }
        }
        if($value['min_price'] && $value['min_price']>$arc['price']){
            continue;
        }
        if($value['tids']){
            $tmp = explode(",",$value['tids']);
            if(in_array($arc['id'],$tmp)){
                $tmplist[] = $value;
                continue;
            }
        }
        if(!$value['pid']){
            $tmplist[] = $value;
            continue;
        }
        if($value['pid'] != $pid){
            continue;
        }
        if($value['pid'] && !$value['cateid'] && $value['pid'] == $arc['project_id']){
            $tmplist[] = $value;
            continue;
        }
        if($value['cateid'] && $cateids && count($cateids)>0){
            $cids = array($value['cateid']);
            $this->model('cate')->get_sonlist_id($cids,$value['cateid'],true);
            $cids = array_unique($cids);
            if(array_intersect($cateids,$cids)){
                $tmplist[] = $value;
                continue;
            }
        }
    }
    if(!$tmplist || count($tmplist)<1){
        return false;
    }
    foreach($tmplist as $key=>$value){
        $value['price'] = $this->_format($arc['price'],$value);
        $tmplist[$key] = $value;
    }
    $me = $this->model('appsys')->get_one('coupon');
    $arc['apps']['coupon'] = array('rs'=>$tmplist[0],'list'=>$tmplist,'me'=>$me);
    $this->data('arc',$arc);
    return true;
}
private function _format($price,$rule)
{
    if(!$price){
        return false;
    }
    if(!is_array($rule)){
        return $price;
    }
    $price = floatval($price);
    if($rule['min_price'] && $price < $rule['min_price']){
        return $price;
    }
    if($rule['discount_type']){
        return $price - floatval($rule['discount_val']);
    }
    return $price - ($price * $rule['discount_val'] / 100);
}


没有找到答案?

您可以通过留言获取更多帮助。也可以通过社区提交相关问题。

留言 开发者社区
论坛咨询