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;
 }
示例#3
0
 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);
 }
示例#5
0
 /**
  * 上传帖子图片(正常的附件目录)
  * 
  * @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;
 }
示例#6
0
 /**
  * 列表显示需要的字段
  * 
  * @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;
 }
示例#8
0
 /**
  * 上传图片
  * 
  * @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);
     }
 }