|  | @@ -0,0 +1,120 @@
 | 
	
		
			
				|  |  | +<?php
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +namespace Push\Lib;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +use Dever;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +class Data
 | 
	
		
			
				|  |  | +{
 | 
	
		
			
				|  |  | +    public function get($key, $name, $total = 10, $col = '1,2,3', $function = '-1', $page = false, $limit = false, $cdate = 'Y-m-d H:i')
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +        $info = Dever::db('push/info')->one(array('key' => $key));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if (!$info) {
 | 
	
		
			
				|  |  | +            $insert['key'] = $key;
 | 
	
		
			
				|  |  | +            $insert['name'] = $name;
 | 
	
		
			
				|  |  | +            $insert['num'] = $total;
 | 
	
		
			
				|  |  | +            $insert['col'] = $col;
 | 
	
		
			
				|  |  | +            $insert['function'] = $function;
 | 
	
		
			
				|  |  | +            $info['id'] = Dever::db('push/info')->insert($insert);
 | 
	
		
			
				|  |  | +            $info['num'] = $insert['num'];
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        $data = array();
 | 
	
		
			
				|  |  | +        if ($info) {
 | 
	
		
			
				|  |  | +            if (!$info['num']) {
 | 
	
		
			
				|  |  | +                $info['num'] = 20;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if ($limit > 0) {
 | 
	
		
			
				|  |  | +                $info['num'] = $limit;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            $where = array();
 | 
	
		
			
				|  |  | +            $where['info_id'] = $info['id'];
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            if ($page) {
 | 
	
		
			
				|  |  | +                $where['page'] = array($info['num'], 'list');
 | 
	
		
			
				|  |  | +                $data = Dever::db('push/data')->getAllPage($where);
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                $where['limit'] = '0,' . $info['num'];
 | 
	
		
			
				|  |  | +                $data = Dever::db('push/data')->getAll($where);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            if ($data) {
 | 
	
		
			
				|  |  | +                foreach ($data as $k => $v) {
 | 
	
		
			
				|  |  | +                    $data[$k] = $this->getOne($v, 2, $cdate);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return $data;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    public function getOne($info, $state = 2, $cdate = 'Y-m-d H:i')
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +        $data = is_array($info) ? $info : Dever::db('push/data')->one($info);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        $source = array();
 | 
	
		
			
				|  |  | +        $info = array();
 | 
	
		
			
				|  |  | +        $col = array();
 | 
	
		
			
				|  |  | +        if ($data['type'] > 0) {
 | 
	
		
			
				|  |  | +            $func = Dever::db('push/info')->config['func'];
 | 
	
		
			
				|  |  | +            $func = $func();
 | 
	
		
			
				|  |  | +            $method = false;
 | 
	
		
			
				|  |  | +            if ($func) {
 | 
	
		
			
				|  |  | +                foreach ($func as $k => $v) {
 | 
	
		
			
				|  |  | +                    if ($v['id'] == $data['type']) {
 | 
	
		
			
				|  |  | +                        $method = $v['api'];
 | 
	
		
			
				|  |  | +                        $col = Dever::array_decode($v['col']);
 | 
	
		
			
				|  |  | +                        break;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            if ($method) {
 | 
	
		
			
				|  |  | +                $source = Dever::load($method, $data['type_id']);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if ($state == 1) {
 | 
	
		
			
				|  |  | +            $result = array();
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            $result = $data;
 | 
	
		
			
				|  |  | +            unset($result['data']);
 | 
	
		
			
				|  |  | +            $result['cdate_string'] = date($cdate, $result['cdate']);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +        $text = $data['data'];
 | 
	
		
			
				|  |  | +        $text = Dever::array_decode($text);
 | 
	
		
			
				|  |  | +        foreach ($text as $k => $v) {
 | 
	
		
			
				|  |  | +            foreach ($v as $k1 => $v1) {
 | 
	
		
			
				|  |  | +                if (strstr($k1, 'col_')) {
 | 
	
		
			
				|  |  | +                    $id = str_replace('col_', '', $k1);
 | 
	
		
			
				|  |  | +                    $col_info = Dever::db('push/col')->one($id);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    if (!$v1 && $source && $col) {
 | 
	
		
			
				|  |  | +                        foreach ($col as $k2 => $v2) {
 | 
	
		
			
				|  |  | +                            if ($v2['col_id'] == $id && isset($source[$v2['name']]) && $source[$v2['name']]) {
 | 
	
		
			
				|  |  | +                                $v1 = $source[$v2['name']];
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    if ($state == 1) {
 | 
	
		
			
				|  |  | +                        if (strstr($v1, 'jpg') || strstr($v1, 'png') || strstr($v1, 'gif')) {
 | 
	
		
			
				|  |  | +                            $v1 = '<img src="'.$v1.'" width="150"/>';
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                        if (!isset($result[$k])) {
 | 
	
		
			
				|  |  | +                            $result[$k] = array();
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                        $result[$k][$col_info['name']] = $v1;
 | 
	
		
			
				|  |  | +                    } else {
 | 
	
		
			
				|  |  | +                        $result[$col_info['ename']] = $v1;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return $result;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +}
 |