FeedModel::getFeedInfo PHP Method

getFeedInfo() public method

获取指定分享的信息,用于资源模型输出???
public getFeedInfo ( integer $id, boolean $forApi = false ) : array
$id integer 分享ID
$forApi boolean 是否提供API数据,默认为false
return array 指定分享数据
    public function getFeedInfo($id, $forApi = false)
    {
        $data = model('Cache')->get('feed_info_' . $id);
        if ($data !== false && ($forApi === false || $forApi === true && isset($data['iscoll']))) {
            return $data;
        }
        $map['a.feed_id'] = $id;
        // //过滤已删除的分享 wap 版收藏
        // if($forApi){
        // 	$map['a.is_del'] = 0;
        // }
        $data = $this->where($map)->table("{$this->tablePrefix}feed AS a LEFT JOIN {$this->tablePrefix}feed_data AS b ON a.feed_id = b.feed_id ")->find();
        $fd = unserialize($data['feed_data']);
        $userInfo = model('User')->getUserInfo($data['uid']);
        $data['ctime'] = date('Y-m-d H:i', $data['publish_time']);
        $data['content'] = $forApi ? parseForApi($fd['body']) : $fd['body'];
        $data['uname'] = $userInfo['uname'];
        $data['user_group'] = $userInfo['api_user_group'];
        $data['user_gicon'] = $userInfo['group_icon_only'];
        $data['avatar_big'] = $userInfo['avatar_big'];
        $data['avatar_middle'] = $userInfo['avatar_middle'];
        $data['avatar_small'] = $userInfo['avatar_small'];
        unset($data['feed_data']);
        // 分享转发
        if ($data['type'] == 'repost') {
            $data['transpond_id'] = $data['app_row_id'];
            $data['transpond_data'] = $this->getFeedInfo($data['transpond_id'], $forApi);
        }
        // 附件处理
        if (!empty($fd['attach_id'])) {
            $data['has_attach'] = 1;
            $attach = model('Attach')->getAttachByIds($fd['attach_id']);
            foreach ($attach as $ak => $av) {
                $_attach = array('attach_id' => $av['attach_id'], 'attach_name' => $av['name'], 'attach_url' => getImageUrl($av['save_path'] . $av['save_name']), 'extension' => $av['extension'], 'size' => $av['size']);
                if ($data['type'] == 'postimage') {
                    $_attach['attach_small'] = getImageUrl($av['save_path'] . $av['save_name'], 120, 120, true);
                    $_attach['attach_medium'] = getImageUrl($av['save_path'] . $av['save_name'], 240);
                    $_attach['attach_middle'] = getImageUrl($av['save_path'] . $av['save_name'], 740);
                    $_attach['attach_middle_box'] = getImageUrl($av['save_path'] . $av['save_name'], 240, 240, true);
                }
                $data['attach'][] = $_attach;
            }
        } else {
            $data['has_attach'] = 0;
        }
        if ($data['type'] == 'postvideo') {
            if ($fd['video_id']) {
                $video_config = model('Xdata')->get('admin_Content:video_config');
                $video_server = $video_config['video_server'] ? $video_config['video_server'] : SITE_URL;
                $data['video_id'] = $fd['video_id'];
                if ($forApi) {
                    $data['flashvar'] = $fd['video_mobile_path'] ? $video_server . $fd['video_mobile_path'] : $video_server . $fd['video_path'];
                    $data['flashvar_part'] = $video_server . $fd['video_part_path'];
                } else {
                    $data['flashvar'] = $video_server . $fd['video_path'];
                }
                $data['flashimg'] = $video_server . $fd['image_path'];
                $data['flash_width'] = $fd['image_width'];
                $data['flash_height'] = $fd['image_height'];
                if ($fd['transfer_id'] && !D('video_transfer')->where('transfer_id=' . $fd['transfer_id'])->getField('status')) {
                    $data['transfering'] = 1;
                }
            } else {
                $data['host'] = $fd['host'];
                if ($forApi) {
                    $data['flashvar'] = $fd['source'];
                } else {
                    $data['flashvar'] = $fd['flashvar'];
                }
                $data['source'] = $fd['source'];
                $data['flashimg'] = $fd['flashimg'];
                $data['title'] = $fd['title'];
            }
        }
        $data['feedType'] = $data['type'];
        // 是否收藏分享
        if ($forApi) {
            $data['iscoll'] = model('Collection')->getCollection($data['feed_id'], 'feed');
            if (empty($data['iscoll'])) {
                $data['iscoll']['colled'] = 0;
            } else {
                $data['iscoll']['colled'] = 1;
            }
            //是否赞过
            $diggarr = model('FeedDigg')->checkIsDigg($data['feed_id'], $GLOBALS['ts']['mid']);
            $data['is_digg'] = $diggarr[$data['feed_id']] ? 1 : 0;
        }
        //获取赞过分享的人
        $diggs = model('FeedDigg')->where('feed_id=' . $id)->order('id desc')->limit(10)->findAll();
        foreach ($diggs as &$v) {
            $v['user'] = model('User')->getUserInfo($v['uid']);
        }
        $data['diggs'] = $diggs;
        // 分享详细信息
        $feedInfo = $this->get($id);
        $data['source_body'] = $feedInfo['body'];
        $data['api_source'] = $feedInfo['api_source'];
        //一分钟缓存
        model('Cache')->set('feed_info_' . $id, $data, 60);
        if ($forApi) {
            $data['content'] = real_strip_tags($data['content']);
            unset($data['is_audit'], $data['from_data'], $data['app_row_table'], $data['app_row_id']);
            unset($data['source_body']);
        }
        return $data;
    }