FeedModel::__paseTemplate PHP Method

__paseTemplate() private method

解析分享模板标签
private __paseTemplate ( array $_data ) : array
$_data array 分享的原始数据
return array 解析分享模板后的分享数据
    private function __paseTemplate($_data)
    {
        // 获取作者信息
        $user = model('User')->getUserInfo($_data['uid']);
        // 处理数据
        $_data['data'] = unserialize($_data['feed_data']);
        // 模版变量赋值
        $var = $_data['data'];
        if (!empty($var['attach_id'])) {
            $var['attachInfo'] = model('Attach')->getAttachByIds($var['attach_id']);
            foreach ($var['attachInfo'] 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' || $_data['type'] == 'postvideo') {
                    $_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);
                }
                $var['attachInfo'][$ak] = $_attach;
            }
        }
        if (!empty($var['video_id']) && !$var['flashimg']) {
            $video_config = model('Xdata')->get('admin_Content:video_config');
            $video_server = $video_config['video_server'] ? $video_config['video_server'] : SITE_URL;
            $var['flashimg'] = $video_server . $var['image_path'];
            //'__THEME__/image/video.png';\
            if ($var['transfer_id'] && !D('video_transfer')->where('transfer_id=' . $var['transfer_id'])->getField('status')) {
                $var['transfering'] = 1;
            }
            $var['flashvar'] = !$var['transfering'] ? $video_server . $var['video_mobile_path'] : $video_server . $var['video_path'];
            $var['flashvar_part'] = $video_server . $var['video_part_path'];
            $var['flash_width'] = $var['image_width'] ? $var['image_width'] : 430;
            $var['flash_height'] = $var['image_height'] ? $var['image_height'] : 400;
        }
        $var['uid'] = $_data['uid'];
        $var['actor'] = "<a href='{$user['space_url']}' class='name' event-node='face_card' uid='{$user['uid']}'>{$user['uname']}</a>";
        $var['actor_uid'] = $user['uid'];
        $var['actor_uname'] = $user['uname'];
        $var['feedid'] = $_data['feed_id'];
        //微吧类型分享用到
        // $var["actor_groupData"] = model('UserGroupLink')->getUserGroupData($user['uid']);
        //需要获取资源信息的分享:所有类型的分享,只要有资源信息就获取资源信息并赋值模版变量,交给模版解析处理
        if (!empty($_data['app_row_id'])) {
            empty($_data['app_row_table']) && ($_data['app_row_table'] = 'feed');
            $var['sourceInfo'] = model('Source')->getSourceInfo($_data['app_row_table'], $_data['app_row_id'], false, $_data['app']);
            $var['sourceInfo']['groupData'] = model('UserGroupLink')->getUserGroupData($var['sourceInfo']['source_user_info']['uid']);
        }
        // 解析Feed模版
        $feed_template_file = APPS_PATH . '/' . $_data['app'] . '/Conf/' . $_data['type'] . '.feed.php';
        if (!file_exists($feed_template_file)) {
            $feed_template_file = APPS_PATH . '/public/Conf/post.feed.php';
        }
        $feed_content = fetch($feed_template_file, $var);
        //输出模版解析后信息
        $return['content_txt'] = $_data['data']['body'];
        $return['attach_info'] = $var['attachInfo'];
        $return['userInfo'] = $user;
        $return['actor_groupData'] = $var['actor_groupData'];
        $return['title'] = $var['actor'];
        $return['body'] = $var['type'] != 'weiba_post' ? parse_html($feed_content) : $feed_content;
        $return['api_source'] = $var['sourceInfo'];
        $return['actions'] = array('comment' => true, 'repost' => true, 'like' => false, 'favor' => true, 'delete' => true);
        //验证转发的原信息是否存在
        if (!$this->_notDel($_data['app'], $_data['type'], $_data['app_row_id'])) {
            $return['body'] = L('PUBLIC_INFO_ALREADY_DELETE_TIPS');
            // 此信息已被删除〜
        }
        return $return;
    }