| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 | <?phpnamespace Push\Lib;use Dever;class Data{    public function get($key, $name, $total = 10, $page = false, $limit = false)    {        $info = Dever::db('push/info')->one(array('key' => $key));        if (!$info) {            $insert['key'] = $key;            $insert['name'] = $name;            $insert['num'] = $total;            $insert['col'] = '1,3';            $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;            }            if ($page) {                $data = Dever::db('push/data')->getAllPage(array('info_id' => $info['id'], 'page' => array($info['num'], 'list')));            } else {                $data = Dever::db('push/data')->getAll(array('info_id' => $info['id'], 'limit' => '0,' . $info['num']));            }            if ($data) {                foreach ($data as $k => $v) {                    $data[$k] = $this->getOne($v);                }            }        }        return $data;    }    private function getOne($info)    {        $info['id'] = 0;        if ($info['type'] < 10) {            $table = Dever::config('base')->type_table[$info['type']];            if ($info['type'] == 1) {                $id = $info['article_id'];            } elseif ($info['type'] == 2) {                $id = $info['vod_id'];            } elseif ($info['type'] == 3) {                $id = $info['live_id'];            } elseif ($info['type'] == 4) {                $id = $info['journal_id'];            }            unset($info['article_id']);            unset($info['vod_id']);            unset($info['live_id']);            unset($info['journal_id']);            if ($id > 0) {                $info['id'] = $id;                $data = Dever::db($table)->one($id);                if (isset($data) && $data) {                    if (isset($data['name']) && $data['name'] && !$info['name']) {                        $info['name'] = $data['name'];                    }                    if (isset($data['pic_cover']) && $data['pic_cover'] && !$info['pic']) {                        $info['pic'] = $data['pic_cover'];                    }                    if (isset($data['pic_view_cover']) && $data['pic_view_cover'] && !$info['pic']) {                        $info['pic'] = $data['pic_view_cover'];                    }                    if (isset($data['num_ding'])) {                        $info['num_ding'] = $data['num_ding'] + $data['num_add_ding'];                    }                    if (isset($data['buy'])) {                        $info['buy'] = $data['buy'];                    }                    if (isset($data['pdate']) && $data['pdate']) {                        $info['cdate'] = $data['pdate'];                    }                    if (isset($data['cate_id']) && $data['cate_id']) {                        $cate = Dever::db('content/cate')->one($data['cate_id']);                        $info['cate_name'] = $cate['name'];                    }                    if (isset($data['author_id']) && $data['author_id']) {                        $author = Dever::db('content/author')->one($data['author_id']);                        $info['author_name'] = $author['name'];                    }                }            }        } else {            unset($info['article_id']);            unset($info['vod_id']);            unset($info['live_id']);            unset($info['journal_id']);        }        if ($info['link']) {            if (!strstr($info['link'], 'http')) {                $info['link'] = 'http://' . $info['link'];            }        }        $info['cdate'] = date('Y-m-d', $info['cdate']);        if (isset($info['pic']) && $info['pic']) {            $info['pic'] = Dever::load('main/lib/core')->replacePic($info['pic']);        }        return $info;    }}
 |