private function _getImageInfoByTids($page, $pageSize) { $imageList = $this->_getImageTidsByFids($page, $pageSize); $list = array(); global $_G; $forum = $_G['forum']; foreach ($imageList as $image) { $tmpImageInfo = ForumUtils::getTopicInfo($image); $imageSummary = ForumUtils::getTopicCover((int) $image); $imageInfo['board_id'] = (int) $tmpImageInfo['fid']; $imageInfo['board_name'] = $fid != 0 ? $forum['name'] : ForumUtils::getForumName($tmpImageInfo['fid']); $imageInfo['board_name'] = WebUtils::emptyHtml($imageInfo['board_name']); $imageInfo['topic_id'] = (int) $image; $imageInfo['title'] = WebUtils::emptyHtml($tmpImageInfo['subject']); $imageInfo['user_id'] = (int) $tmpImageInfo['authorid']; $imageInfo['last_reply_date'] = $tmpImageInfo['lastpost'] . "000"; $imageInfo['user_nick_name'] = $tmpImageInfo['author']; $imageInfo['hits'] = (int) $tmpImageInfo['views']; $imageInfo['replies'] = (int) $tmpImageInfo['replies']; $imageInfo['top'] = (int) ForumUtils::isTopTopic($image) ? 1 : 0; $imageInfo['status'] = (int) $tmpImageInfo['status']; $imageInfo['essence'] = (int) $tmpImageInfo['digest'] ? 1 : 0; $imageInfo['hot'] = (int) $tmpImageInfo['highlight'] ? 1 : 0; $tempImageInfo = ImageUtils::getThumbImageEx($imageSummary, 15, true, false); $imageInfo['pic_path'] = $tempImageInfo['image']; $imageInfo['ratio'] = $tempImageInfo['ratio']; $imageInfo['userAvatar'] = UserUtils::getUserAvatar($tmpImageInfo['authorid']); $imageInfo['recommendAdd'] = (int) ForumUtils::getRecommendAdd($image); $imageInfo['isHasRecommendAdd'] = (int) ForumUtils::isHasRecommendAdd($image); $imageInfo['imageList'] = array(); $imageInfo['sourceWebUrl'] = (string) ForumUtils::getSourceWebUrl($image, 'topic'); $list[] = $imageInfo; } return $list; }
private function _saveAttachment($uid, $attachment) { $res = false; switch ($attachment['type']) { case 'audio': $res = $this->_uploadMobcentAudio($res, $attachment); break; case 'image': if (!WebUtils::getDzPluginAppbymeAppConfig('forum_allow_upload_with_plugin') && $attachment['module'] == 'forum') { $res = $this->_uploadAttach($uid, $attachment); } else { $res = $this->_uploadMobcentImage($res, $attachment); } ImageUtils::getThumbImageEx($res['urlName'], 10, false, false, true); break; default: break; } return $res; }
private function _filterContent($content) { $newContent = array(); foreach ($content as $key => $value) { $newContent[$key]['infor'] = $value['content']; $newContent[$key]['type'] = $value['type']; // 兼容老版本的url类型 if ($value['type'] == 'url') { $newContent[$key]['infor'] = sprintf('[mobcent_url=%s]%s[/mobcent_url]', $value['extraInfo']['url'], $value['content']); $newContent[$key]['type'] = 'text'; } else { if ($value['type'] == 'image') { $image = ImageUtils::getThumbImageEx($value['content'], 5); // 分享返回缩略大图 $image['image'] = str_replace('xgsize_', 'mobcentBigPreview_', $image['image']); $newContent[$key]['infor'] = $image['image']; } } } return $newContent; }
public function actionMakeThumb($count = 10) { $thumbTaskList = CacheUtils::getDzPluginCache('thumb_task_list'); $thumbTaskList === false && ($thumbTaskList = array()); $count <= 0 && ($count = count($thumbTaskList)); $count = min(count($thumbTaskList), $count); $i = 0; foreach ($thumbTaskList as $key => $thumb) { if ($i >= $count) { break; } ImageUtils::getThumbImageEx($thumb, 20, false, false, true); $i++; } echo WebUtils::jsonEncode($thumbTaskList); array_splice($thumbTaskList, 0, $count); CacheUtils::setDzPluginCache('thumb_task_list', $thumbTaskList); }
/** * 上传帖子图片(正常的附件目录) * * @param mixed $uid Description. * @param mixed $allowValue Description. * * @access private * * @return mixed Value. */ private function _uploadAttach($uid, $allowValue) { global $_G; $fileExtension = FileUtils::getFileExtension($_FILES['uploadFile']['name'][$allowValue], 'jpg'); $type = 'forum'; $extid = 0; $forcename = ''; Yii::import('application.components.discuz.source.class.discuz.discuz_upload', true); $upload = new Mobcent_upload(); $attach['extension'] = $fileExtension; $attach['attachdir'] = $upload->get_target_dir($type, $extid); $filename = $upload->get_target_filename($type, $extid, $forcename) . '.' . $attach['extension']; $attach['attachment'] = $attach['attachdir'] . $filename; $attach['target'] = getglobal('setting/attachdir') . './' . $type . '/' . $attach['attachment']; $savePath = getglobal('setting/attachdir') . './' . $type . '/' . $attach['attachdir']; if (!is_dir($savePath)) { mkdir($savePath, 0777, true); } $remote = $width = $thumb = 0; $res = array(); $saveName = $savePath . $filename; if (move_uploaded_file($_FILES['uploadFile']['tmp_name'][$allowValue], $saveName)) { $aid = getattachnewaid($uid); $img_info = getimagesize($attach['target']); $size = filesize($attach['target']); $insert = array('aid' => $aid, 'dateline' => $_G['timestamp'], 'filename' => $filename, 'filesize' => $size, 'attachment' => $attach['attachment'], 'isimage' => 1, 'uid' => $uid, 'thumb' => $thumb, 'remote' => $remote, 'width' => $img_info[0]); C::t('forum_attachment_unused')->insert($insert); // 添加水印 Yii::import('application.components.discuz.source.class.class_image', true); $image = new Mobcent_Image(); if ($image->param['watermarkstatus']['forum'] > 0) { $image->makeWatermark($attach['target'], '', 'forum'); } $path_url = ImageUtils::getAttachUrl() . '/' . $type . '/' . $attach['attachment']; ImageUtils::getThumbImageEx($path_url, 10, false, false, true); $res['id'] = $aid; $res['urlName'] = $path_url; } return $res; }
/** * 列表显示需要的字段 * * @param array $list 帖子或者文章的详细字段信息. * @param array $summary 帖子或者文章的摘要和图片. * @param string $source_type 源的类型. * @param int $source_id 源的id. * * @return array 整理好的字段. */ private function _getListField($list, $summary, $source_type, $source_id, $params = array()) { $row = array(); // 显示样式 if ($params['topic_style'] == 2) { $statu = 'lastpost'; } else { $statu = 'dateline'; } if ($source_type == 'topic') { $row['fid'] = (int) $list['fid']; } $row['source_type'] = (string) $source_type; $row['source_id'] = (int) $source_id; $row['title'] = $source_type == 'topic' ? (string) $list['subject'] : (string) $list['title']; $row['title'] = WebUtils::emptyHtml($row['title']); $row['user_id'] = $source_type == 'topic' ? (int) $list['authorid'] : (int) $list['uid']; $row['last_reply_date'] = $source_type == 'topic' ? $list[$statu] . '000' : $list['dateline'] . '000'; $row['user_nick_name'] = $source_type == 'topic' ? (string) $list['author'] : (string) $list['username']; $row['hits'] = $source_type == 'topic' ? (int) $list['views'] : (int) $list['viewnum']; $row['summary'] = (string) $summary['msg']; $row['replies'] = $source_type == 'topic' ? (int) $list['replies'] : (int) $list['commentnum']; $tempRow = ImageUtils::getThumbImageEx($summary['image'], 15, true, true); $row['pic_path'] = (string) $tempRow['image']; $row['ratio'] = $tempRow['ratio']; $row['redirectUrl'] = (string) $list['url']; $row['userAvatar'] = (string) UserUtils::getUserAvatar($row['user_id']); $row['gender'] = (int) UserUtils::getUserGender($row['user_id']); $row['recommendAdd'] = $source_type == 'topic' ? (int) ForumUtils::getRecommendAdd($row['source_id']) : 0; $row['isHasRecommendAdd'] = $source_type == 'topic' ? (int) ForumUtils::isHasRecommendAdd($row['source_id']) : 0; $row['distance'] = isset($list['distance']) ? (string) $list['distance'] : ''; $row['location'] = isset($list['location']) ? (string) $list['location'] : ''; $row['imageList'] = (array) $summary['imageList']; $row['sourceWebUrl'] = (string) ForumUtils::getSourceWebUrl($source_id, $source_type); return $row; }
private function _getListField($topicList) { global $_G; $forum = $_G['forum']; $isImageList = isset($_GET['isImageList']) ? $_GET['isImageList'] : 0; $list = array(); foreach ($topicList as $topic) { // 该主题是由别的版块移动过来的 $isTopicMoved = false; $movedTitle = ''; if ($topic['closed'] > 1) { $movedTitle = WebUtils::t('移动: '); $isTopicMoved = true; $topic['tid'] = $topic['closed']; } $tid = (int) $topic['tid']; $topicFid = (int) $topic['fid']; // 主题分类标题 $typeTitle = ''; if (WebUtils::getDzPluginAppbymeAppConfig('forum_allow_topictype_prefix')) { if (isset($forum['threadtypes']['prefix']) && $forum['threadtypes']['prefix'] == 1 && isset($forum['threadtypes']['types'][$topic['typeid']])) { $typeTitle = '[' . $forum['threadtypes']['types'][$topic['typeid']] . ']'; } } // 分类信息标题 $sortTitle = ''; if (WebUtils::getDzPluginAppbymeAppConfig('forum_allow_topicsort_prefix')) { if (!empty($forum['threadsorts']['prefix']) && isset($forum['threadsorts']['types'][$topic['sortid']])) { $sortTitle = '[' . $forum['threadsorts']['types'][$topic['sortid']] . ']'; } } $isTopicMoved && ($typeTitle = $sortTitle = ''); $topicInfo['board_id'] = $topicFid; $topicInfo['board_name'] = $fid != 0 ? $forum['name'] : ForumUtils::getForumName($topicFid); $topicInfo['board_name'] = WebUtils::emptyHtml($topicInfo['board_name']); $topicInfo['topic_id'] = $tid; $topicInfo['type'] = ForumUtils::getTopicType($topic); $topicInfo['title'] = $movedTitle . $typeTitle . $sortTitle . $topic['subject']; $topicInfo['title'] = WebUtils::emptyHtml($topicInfo['title']); // 修正帖子查看数 if (isset($_G['forum_thread']['views']) && $_G['forum_thread']['tid'] == $topic['tid'] && $_G['forum_thread']['views'] > $topic['views']) { $topic['views'] = $_G['forum_thread']['views']; } $topicInfo['user_id'] = (int) $topic['authorid']; $topicInfo['user_nick_name'] = $topic['author']; $topicInfo['last_reply_date'] = $topic['lastpost'] . '000'; $topicInfo['vote'] = ForumUtils::isVoteTopic($topic) ? 1 : 0; $topicInfo['hot'] = ForumUtils::isHotTopic($topic) ? 1 : 0; $topicInfo['hits'] = (int) $topic['views']; $topicInfo['replies'] = (int) $topic['replies']; $topicInfo['essence'] = ForumUtils::isMarrowTopic($topic) ? 1 : 0; $topicInfo['top'] = ForumUtils::isTopTopic($topic) ? 1 : 0; $topicInfo['status'] = (int) $topic['status']; $cache = Yii::app()->params['mobcent']['cache']['topicSummary']; $key = sprintf('mobcentTopicSummary_%s_%s_%s', $tid, $_G['groupid'], $isImageList); if (!$cache['enable'] || ($topicSummary = Yii::app()->cache->get($key)) === false) { $topicSummary = ForumUtils::getTopicSummary($tid, 'forum', true, array('imageList' => $isImageList, 'imageListLen' => 9, 'imageListThumb' => 1)); if ($cache['enable']) { Yii::app()->cache->set($key, $topicSummary, $cache['expire']); } } $topicInfo['subject'] = $topicSummary['msg']; // $topicInfo['pic_path'] = ImageUtils::getThumbImage($topicSummary['image']); $tempTopicInfo = ImageUtils::getThumbImageEx($topicSummary['image'], 15, true, false); $topicInfo['pic_path'] = $tempTopicInfo['image']; $topicInfo['ratio'] = $tempTopicInfo['ratio']; $topicInfo['userAvatar'] = UserUtils::getUserAvatar($topic['authorid']); $topicInfo['gender'] = (int) UserUtils::getUserGender($topic['authorid']); $topicInfo['recommendAdd'] = (int) ForumUtils::getRecommendAdd($tid); $topicInfo['isHasRecommendAdd'] = ForumUtils::isHasRecommendAdd($tid); $topicInfo['imageList'] = (array) $topicSummary['imageList']; $topicInfo['sourceWebUrl'] = (string) ForumUtils::getSourceWebUrl($tid, 'topic'); $tmpList = $list[] = $topicInfo; } return $list; }
/** * 上传图片 * * @author HanPengyu * @access public * * @return mixed 返回状态码和信息. */ public function actionUploadIcon($type = 'uidiy') { $res = WebUtils::initWebApiResult(); // 没有上传的文件 if (empty($_FILES)) { self::makeResponse(0, '没有上传的文件,或者选择的文件太大!'); } // 创建放置图片的文件夹 $date = date('Ym/d', time()); $path = MOBCENT_UPLOAD_PATH . '/' . $type . '/' . $date; if (UploadUtils::makeBasePath($path) == '') { self::makeResponse(0, '上传目录不可写!'); } foreach ($_FILES as $file) { $file['name'] = strip_tags($file['name']); $ext = FileUtils::getFileExtension($file['name'], 'jpg'); // 检测 $imageRes = $this->checkUpload($res, $file); if (!$imageRes['errCode']) { self::makeResponse(0, $imageRes['errMsg']); } $saveName = FileUtils::getRandomUniqueFileName($path); $fileName = $saveName . '.' . $ext; if (!move_uploaded_file($file['tmp_name'], $fileName)) { self::makeResponse(0, '上传图片失败!'); } $fileName = $this->dzRootUrl . '/data/appbyme/upload/' . $type . '/' . $date . '/' . basename($fileName); ImageUtils::getThumbImageEx($fileName, 10, false, false, true); self::makeResponse(1, $fileName); } }