0 ? "AND af.dateline>'$posttime'" : ''; if(!empty($_G['fid']) && $_G['forum']['attachextensions']) { $allowext = str_replace(' ', '', strtolower($_G['forum']['attachextensions'])); $allowext = explode(',', $allowext); } else { $allowext = ''; } foreach(C::t('forum_attachment')->fetch_all_unused_attachment($_G['uid'], empty($aidsnew) ? null : $aidsnew, $posttime > 0 ? $posttime : null) as $attach) { $attach['filenametitle'] = $attach['filename']; $attach['ext'] = fileext($attach['filename']); if($allowext && !in_array($attach['ext'], $allowext)) { continue; } getattach_row($attach, $attachs, $imgattachs); } if($pid > 0) { $attachmentns = C::t('forum_attachment_n')->fetch_all_by_id('tid:'.$_G['tid'], 'pid', $pid); foreach(C::t('forum_attachment')->fetch_all_by_id('pid', $pid, 'aid') as $attach) { $attach = array_merge($attach, $attachmentns[$attach['aid']]); $attach['filenametitle'] = $attach['filename']; $attach['ext'] = fileext($attach['filename']); if($allowext && !in_array($attach['ext'], $allowext)) { continue; } getattach_row($attach, $attachs, $imgattachs); } } return array('attachs' => $attachs, 'imgattachs' => $imgattachs); } function getattach_row($attach, &$attachs, &$imgattachs) { global $_G; $attach['filename'] = cutstr($attach['filename'], $_G['setting']['allowattachurl'] ? 25 : 30); $attach['attachsize'] = sizecount($attach['filesize']); $attach['dateline'] = dgmdate($attach['dateline']); $attach['filetype'] = attachtype($attach['ext']."\t".$attach['filetype']); if($attach['isimage'] < 1) { if($attach['isimage']) { $attach['url'] = $attach['remote'] ? $_G['setting']['ftp']['attachurl'] : $_G['setting']['attachurl']; $attach['width'] = $attach['width'] > 300 ? 300 : $attach['width']; } if($attach['pid']) { $attachs['used'][] = $attach; } else { $attachs['unused'][] = $attach; } } else { $attach['url'] = ($attach['remote'] ? $_G['setting']['ftp']['attachurl'] : $_G['setting']['attachurl']).'/forum'; $attach['width'] = $attach['width'] > 300 ? 300 : $attach['width']; if($attach['pid']) { $imgattachs['used'][] = $attach; } else { $imgattachs['unused'][] = $attach; } } } function parseattachmedia($attach) { $attachurl = 'attach://'.$attach['aid'].'.'.$attach['ext']; switch(strtolower($attach['ext'])) { case 'mp3': case 'wma': case 'ra': case 'ram': case 'wav': case 'mid': return '[audio]'.$attachurl.'[/audio]'; case 'wmv': case 'rm': case 'rmvb': case 'avi': case 'asf': case 'mpg': case 'mpeg': case 'mov': case 'flv': case 'swf': return '[media='.$attach['ext'].',400,300]'.$attachurl.'[/media]'; default: return; } } function ftpupload($aids, $uid = 0) { global $_G; $uid = $uid ? $uid : $_G['uid']; if(!$aids || !$_G['setting']['ftp']['on']) { return; } $attachtables = $pics = array(); foreach(C::t('forum_attachment')->fetch_all($aids) as $attach) { if($uid != $attach['uid'] && !$_G['forum']['ismoderator']) { continue; } $attachtables[$attach['tableid']][] = $attach['aid']; } foreach($attachtables as $attachtable => $aids) { $remoteaids = array(); foreach(C::t('forum_attachment_n')->fetch_all($attachtable, $aids, 0) as $attach) { $attach['ext'] = fileext($attach['filename']); if(((!$_G['setting']['ftp']['allowedexts'] && !$_G['setting']['ftp']['disallowedexts']) || ($_G['setting']['ftp']['allowedexts'] && in_array($attach['ext'], $_G['setting']['ftp']['allowedexts'])) || ($_G['setting']['ftp']['disallowedexts'] && !in_array($attach['ext'], $_G['setting']['ftp']['disallowedexts']) && (!$_G['setting']['ftp']['allowedexts'] || $_G['setting']['ftp']['allowedexts'] && in_array($attach['ext'], $_G['setting']['ftp']['allowedexts'])) )) && (!$_G['setting']['ftp']['minsize'] || $attach['filesize'] >= $_G['setting']['ftp']['minsize'] * 1024)) { if(ftpcmd('upload', 'forum/'.$attach['attachment']) && (!$attach['thumb'] || ftpcmd('upload', 'forum/'.getimgthumbname($attach['attachment'])))) { dunlink($attach); $remoteaids[$attach['aid']] = $attach['aid']; if($attach['picid']) { $pics[] = $attach['picid']; } } } } if($remoteaids) { C::t('forum_attachment_n')->update($attachtable, $remoteaids, array('remote' => 1)); } } if($pics) { C::t('home_pic')->update($pics, array('remote' => 3)); } } function updateattach($modnewthreads, $tid, $pid, $attachnew, $attachupdate = array(), $uid = 0) { global $_G; $thread = C::t('forum_thread')->fetch($tid); $uid = $uid ? $uid : $_G['uid']; if($attachnew) { $newaids = array_keys($attachnew); $newattach = $newattachfile = $albumattach = array(); foreach(C::t('forum_attachment_unused')->fetch_all($newaids) as $attach) { if($attach['uid'] != $uid && !$_G['forum']['ismoderator']) { continue; } $attach['uid'] = $uid; $newattach[$attach['aid']] = daddslashes($attach); if($attach['isimage']) { $newattachfile[$attach['aid']] = $attach['attachment']; } } if($_G['setting']['watermarkstatus'] && empty($_G['forum']['disablewatermark']) || !$_G['setting']['thumbdisabledmobile']) { require_once libfile('class/image'); $image = new image; } if(!empty($_GET['albumaid'])) { array_unshift($_GET['albumaid'], ''); $_GET['albumaid'] = array_unique($_GET['albumaid']); unset($_GET['albumaid'][0]); foreach($_GET['albumaid'] as $aid) { if(isset($newattach[$aid])) { $albumattach[$aid] = $newattach[$aid]; } } } foreach($attachnew as $aid => $attach) { $update = array(); $update['readperm'] = $_G['group']['allowsetattachperm'] ? $attach['readperm'] : 0; $update['price'] = $_G['group']['maxprice'] ? (intval($attach['price']) <= $_G['group']['maxprice'] ? intval($attach['price']) : $_G['group']['maxprice']) : 0; $update['tid'] = $tid; $update['pid'] = $pid; $update['uid'] = $uid; $update['description'] = censor(cutstr(dhtmlspecialchars($attach['description']), 100)); C::t('forum_attachment_n')->update('tid:'.$tid, $aid, $update); if(!$newattach[$aid]) { continue; } $update = array_merge($update, $newattach[$aid]); if(!empty($newattachfile[$aid])) { if($_G['setting']['thumbstatus'] && $_G['forum']['disablethumb']) { $update['thumb'] = 0; @unlink($_G['setting']['attachdir'].'/forum/'.getimgthumbname($newattachfile[$aid])); if(!empty($albumattach[$aid])) { $albumattach[$aid]['thumb'] = 0; } } elseif(!$_G['setting']['thumbdisabledmobile']) { $_daid = sprintf("%09d", $aid); $dir1 = substr($_daid, 0, 3); $dir2 = substr($_daid, 3, 2); $dir3 = substr($_daid, 5, 2); $dw = 320; $dh = 320; $thumbfile = 'image/'.$dir1.'/'.$dir2.'/'.$dir3.'/'.substr($_daid, -2).'_'.$dw.'_'.$dh.'.jpg'; $image->Thumb($_G['setting']['attachdir'].'/forum/'.$newattachfile[$aid], $thumbfile, $dw, $dh, 'fixwr'); $dw = 720; $dh = 720; $thumbfile = 'image/'.$dir1.'/'.$dir2.'/'.$dir3.'/'.substr($_daid, -2).'_'.$dw.'_'.$dh.'.jpg'; $image->Thumb($_G['setting']['attachdir'].'/forum/'.$newattachfile[$aid], $thumbfile, $dw, $dh, 'fixwr'); } if($_G['setting']['watermarkstatus'] && empty($_G['forum']['disablewatermark'])) { $image->Watermark($_G['setting']['attachdir'].'/forum/'.$newattachfile[$aid], '', 'forum'); $update['filesize'] = $image->imginfo['size']; } } if(!empty($_GET['albumaid']) && isset($albumattach[$aid])) { $newalbum = 0; if(!$_GET['uploadalbum']) { require_once libfile('function/spacecp'); $_GET['uploadalbum'] = album_creat(array('albumname' => $_GET['newalbum'])); $newalbum = 1; } $picdata = array( 'albumid' => $_GET['uploadalbum'], 'uid' => $uid, 'username' => $_G['username'], 'dateline' => $albumattach[$aid]['dateline'], 'postip' => $_G['clientip'], 'filename' => censor($albumattach[$aid]['filename']), 'title' => censor(cutstr(dhtmlspecialchars($attach['description']), 100)), 'type' => fileext($albumattach[$aid]['attachment']), 'size' => $albumattach[$aid]['filesize'], 'filepath' => $albumattach[$aid]['attachment'], 'thumb' => $albumattach[$aid]['thumb'], 'remote' => $albumattach[$aid]['remote'] + 2, ); $update['picid'] = C::t('home_pic')->insert($picdata, 1); if($newalbum) { require_once libfile('function/home'); require_once libfile('function/spacecp'); album_update_pic($_GET['uploadalbum']); } } C::t('forum_attachment_n')->insert('tid:'.$tid, $update, false, true); C::t('forum_attachment')->update($aid, array('tid' => $tid, 'pid' => $pid, 'tableid' => getattachtableid($tid))); C::t('forum_attachment_unused')->delete($aid); } if(!empty($_GET['albumaid'])) { $albumdata = array( 'picnum' => C::t('home_pic')->check_albumpic($_GET['uploadalbum']), 'updatetime' => $_G['timestamp'], ); C::t('home_album')->update($_GET['uploadalbum'], $albumdata); require_once libfile('function/home'); require_once libfile('function/spacecp'); album_update_pic($_GET['uploadalbum']); } if($newattach) { ftpupload($newaids, $uid); } } if(!$modnewthreads && $newattach && $uid == $_G['uid']) { updatecreditbyaction('postattach', $uid, array(), '', count($newattach), 1, $_G['fid']); } if($attachupdate) { $attachs = C::t('forum_attachment_n')->fetch_all_by_id('tid:'.$tid, 'aid', array_keys($attachupdate)); foreach($attachs as $attach) { if(array_key_exists($attach['aid'], $attachupdate) && $attachupdate[$attach['aid']]) { dunlink($attach); } } $unusedattachs = C::t('forum_attachment_unused')->fetch_all($attachupdate); $attachupdate = array_flip($attachupdate); $unusedaids = array(); foreach($unusedattachs as $attach) { if($attach['uid'] != $uid && !$_G['forum']['ismoderator']) { continue; } $unusedaids[] = $attach['aid']; $update = $attach; $update['dateline'] = TIMESTAMP; $update['remote'] = 0; unset($update['aid']); if($attach['isimage'] && $_G['setting']['watermarkstatus'] && empty($_G['forum']['disablewatermark'])) { $image->Watermark($_G['setting']['attachdir'].'/forum/'.$attach['attachment'], '', 'forum'); $update['filesize'] = $image->imginfo['size']; } C::t('forum_attachment_n')->update('tid:'.$tid, $attachupdate[$attach['aid']], $update); @unlink($_G['setting']['attachdir'].'image/'.$attach['aid'].'_100_100.jpg'); C::t('forum_attachment_exif')->delete($attachupdate[$attach['aid']]); C::t('forum_attachment_exif')->update($attach['aid'], array('aid' => $attachupdate[$attach['aid']])); ftpupload(array($attachupdate[$attach['aid']]), $uid); } if($unusedaids) { C::t('forum_attachment_unused')->delete($unusedaids); } } $attachcount = C::t('forum_attachment_n')->count_by_id('tid:'.$tid, $pid ? 'pid' : 'tid', $pid ? $pid : $tid); $attachment = 0; if($attachcount) { if(C::t('forum_attachment_n')->count_image_by_id('tid:'.$tid, $pid ? 'pid' : 'tid', $pid ? $pid : $tid)) { $attachment = 2; } else { $attachment = 1; } } else { $attachment = 0; } C::t('forum_thread')->update($tid, array('attachment'=>$attachment)); C::t('forum_post')->update('tid:'.$tid, $pid, array('attachment' => $attachment), true); if(!$attachment) { C::t('forum_threadimage')->delete_by_tid($tid); } $_G['forum_attachexist'] = $attachment; } function checkflood() { global $_G; if(!$_G['group']['disablepostctrl'] && $_G['uid']) { if($_G['setting']['floodctrl'] && discuz_process::islocked("post_lock_".$_G['uid'], $_G['setting']['floodctrl'])) { return true; } return false; } return FALSE; } function checkmaxperhour($type) { global $_G; $morenumperhour = false; if(!$_G['group']['disablepostctrl'] && $_G['uid']) { if($_G['group']['max'.($type == 'pid' ? 'posts' : 'threads').'perhour']) { $usernum = C::t('common_member_action_log')->count_per_hour($_G['uid'], $type); $var = $type === 'tid' ? 'maxthreadsperhour' : 'maxpostsperhour'; $isflood = $usernum && ($usernum >= $_G['group'][$var]); if($isflood) { $morenumperhour = true; } } } return $morenumperhour; } function checkpost($subject, $message, $special = 0) { global $_G; if(dstrlen($subject) > 80) { return 'post_subject_toolong'; } if(!$_G['group']['disablepostctrl'] && !$special) { if($_G['setting']['maxpostsize'] && strlen($message) > $_G['setting']['maxpostsize']) { return 'post_message_toolong'; } elseif($_G['setting']['minpostsize']) { $minpostsize = !IN_MOBILE || !$_G['setting']['minpostsize_mobile'] ? $_G['setting']['minpostsize'] : $_G['setting']['minpostsize_mobile']; if(strlen(preg_replace("/\[quote\].+?\[\/quote\]/is", '', $message)) < $minpostsize || strlen(preg_replace("/\[postbg\].+?\[\/postbg\]/is", '', $message)) < $minpostsize) { return 'post_message_tooshort'; } } } return FALSE; } function checkbbcodes($message, $bbcodeoff) { return !$bbcodeoff && (!strpos($message, '[/') && !strpos($message, '[hr]')) ? -1 : $bbcodeoff; } function checksmilies($message, $smileyoff) { global $_G; if($smileyoff) { return 1; } else { if(!empty($_G['cache']['smileycodes']) && is_array($_G['cache']['smileycodes'])) { foreach($_G['cache']['smileycodes'] as $id => $code) { if(strpos($message, $code) !== FALSE) { return 0; } } } return -1; } } function updatepostcredits($operator, $uidarray, $action, $fid = 0) { global $_G; $val = $operator == '+' ? 1 : -1; $extsql = array(); if(empty($uidarray)) { return false; } $uidarray = (array)$uidarray; $uidarr = array(); foreach($uidarray as $uid) { $uidarr[$uid] = !isset($uidarr[$uid]) ? 1 : $uidarr[$uid]+1; } foreach($uidarr as $uid => $coef) { $opnum = $val*$coef; if($action == 'reply') { $extsql = array('posts' => $opnum); } elseif($action == 'post') { $extsql = array('threads' => $opnum, 'posts' => $opnum); } if($uid == $_G['uid']) { updatecreditbyaction($action, $uid, $extsql, '', $opnum, 1, $fid); } elseif(empty($uid)) { continue; } else { batchupdatecredit($action, $uid, $extsql, $opnum, $fid); } } if($operator == '+' && ($action == 'reply' || $action == 'post')) { C::t('common_member_status')->update(array_keys($uidarr), array('lastpost' => TIMESTAMP), 'UNBUFFERED'); } } function updateattachcredits($operator, $uidarray) { global $_G; foreach($uidarray as $uid => $attachs) { updatecreditbyaction('postattach', $uid, array(), '', $operator == '-' ? -$attachs : $attachs, 1, $_G['fid']); } } function updateforumcount($fid) { extract(C::t('forum_thread')->count_posts_by_fid($fid)); $thread = C::t('forum_thread')->fetch_by_fid_displayorder($fid, 0, '='); $thread['subject'] = addslashes($thread['subject']); $thread['lastposter'] = $thread['author'] ? addslashes($thread['lastposter']) : lang('forum/misc', 'anonymous'); $tid = $thread['closed'] > 1 ? $thread['closed'] : $thread['tid']; $setarr = array('posts' => $posts, 'threads' => $threads, 'lastpost' => "$tid\t$thread[subject]\t$thread[lastpost]\t$thread[lastposter]"); C::t('forum_forum')->update($fid, $setarr); } function updatethreadcount($tid, $updateattach = 0) { $replycount = C::t('forum_post')->count_visiblepost_by_tid($tid) - 1; $lastpost = C::t('forum_post')->fetch_visiblepost_by_tid('tid:'.$tid, $tid, 0, 1); $lastpost['author'] = $lastpost['anonymous'] ? lang('forum/misc', 'anonymous') : addslashes($lastpost['author']); $lastpost['dateline'] = !empty($lastpost['dateline']) ? $lastpost['dateline'] : TIMESTAMP; $data = array('replies'=>$replycount, 'lastposter'=>$lastpost['author'], 'lastpost'=>$lastpost['dateline']); if($updateattach) { $attach = C::t('forum_post')->fetch_attachment_by_tid($tid); $data['attachment'] = $attach ? 1 : 0; } C::t('forum_thread')->update($tid, $data); } function updatemodlog($tids, $action, $expiration = 0, $iscron = 0, $reason = '', $stamp = 0) { global $_G; $uid = empty($iscron) ? $_G['uid'] : 0; $username = empty($iscron) ? $_G['member']['username'] : 0; $expiration = empty($expiration) ? 0 : intval($expiration); $data = $comma = ''; $stampadd = $stampaddvalue = ''; if($stamp) { $stampadd = ', stamp'; $stampaddvalue = ", '$stamp'"; } foreach(explode(',', str_replace(array('\'', ' '), array('', ''), $tids)) as $tid) { if($tid) { $data = array( 'tid' => $tid, 'uid' => $uid, 'username' => $username, 'dateline' => $_G['timestamp'], 'action' => $action, 'expiration' => $expiration, 'status' => 1, 'reason' => $reason ); if($stamp) { $data['stamp'] = $stamp; } C::t('forum_threadmod')->insert($data); } } } function isopera() { $useragent = strtolower($_SERVER['HTTP_USER_AGENT']); if(strpos($useragent, 'opera') !== false) { preg_match('/opera(\/| )([0-9\.]+)/', $useragent, $regs); return $regs[2]; } return FALSE; } function deletethreadcaches($tids) { global $_G; if(!$_G['setting']['cachethreadon']) { return FALSE; } require_once libfile('function/forumlist'); if(!empty($tids)) { foreach(explode(',', $tids) as $tid) { $fileinfo = getcacheinfo($tid); @unlink($fileinfo['filename']); } } return TRUE; } function disuploadedfile($file) { return function_exists('is_uploaded_file') && (is_uploaded_file($file) || is_uploaded_file(str_replace('\\\\', '\\', $file))); } function postfeed($feed) { global $_G; if($feed) { require_once libfile('function/feed'); feed_add($feed['icon'], $feed['title_template'], $feed['title_data'], $feed['body_template'], $feed['body_data'], '', $feed['images'], $feed['image_links'], '', '', '', 0, $feed['id'], $feed['idtype']); } } function messagesafeclear($message) { if(strpos($message, '[/password]') !== FALSE) { $message = ''; } if(strpos($message, '[/postbg]') !== FALSE) { $message = preg_replace("/\s?\[postbg\]\s*([^\[\<\r\n;'\"\?\(\)]+?)\s*\[\/postbg\]\s?/is", '', $message); } if(strpos($message, '[/begin]') !== FALSE) { $message = preg_replace("/\[begin(=\s*([^\[\<\r\n]*?)\s*,(\d*),(\d*),(\d*),(\d*))?\]\s*([^\[\<\r\n]+?)\s*\[\/begin\]/is", '', $message); } if(strpos($message, '[page]') !== FALSE) { $message = preg_replace("/\s?\[page\]\s?/is", '', $message); } if(strpos($message, '[/index]') !== FALSE) { $message = preg_replace("/\s?\[index\](.+?)\[\/index\]\s?/is", '', $message); } if(strpos($message, '[/begin]') !== FALSE) { $message = preg_replace("/\[begin(=\s*([^\[\<\r\n]*?)\s*,(\d*),(\d*),(\d*),(\d*))?\]\s*([^\[\<\r\n]+?)\s*\[\/begin\]/is", '', $message); } if(strpos($message, '[/groupid]') !== FALSE) { $message = preg_replace("/\[groupid=\d+\].*\[\/groupid\]/i", '', $message); } $language = lang('forum/misc'); $message = preg_replace(array($language['post_edithtml_regexp'],$language['post_editnobbcode_regexp'],$language['post_edit_regexp']), '', $message); return $message; } function messagecutstr($str, $length = 0, $dot = ' ...') { global $_G; $str = messagesafeclear($str); $sppos = strpos($str, chr(0).chr(0).chr(0)); if($sppos !== false) { $str = substr($str, 0, $sppos); } $language = lang('forum/misc'); loadcache(array('bbcodes_display', 'bbcodes', 'smileycodes', 'smilies', 'smileytypes', 'domainwhitelist')); $bbcodes = 'b|i|u|p|color|size|font|align|list|indent|float'; $bbcodesclear = 'email|code|free|table|tr|td|img|swf|flash|attach|media|audio|groupid|payto'.($_G['cache']['bbcodes_display'][$_G['groupid']] ? '|'.implode('|', array_keys($_G['cache']['bbcodes_display'][$_G['groupid']])) : ''); $str = strip_tags(preg_replace(array( "/\[hide=?\d*\](.*?)\[\/hide\]/is", "/\[quote](.*?)\[\/quote]/si", $language['post_edit_regexp'], "/\[url=?.*?\](.+?)\[\/url\]/si", "/\[($bbcodesclear)=?.*?\].+?\[\/\\1\]/si", "/\[($bbcodes)=?.*?\]/i", "/\[\/($bbcodes)\]/i", "/\\\\u/i" ), array( "[b]$language[post_hidden][/b]", '', '', '\\1', '', '', '', '%u' ), $str)); if($length) { $str = cutstr($str, $length, $dot); } $str = preg_replace($_G['cache']['smilies']['searcharray'], '', $str); if($_G['setting']['plugins']['func'][HOOKTYPE]['discuzcode']) { $_G['discuzcodemessage'] = & $str; $param = func_get_args(); hookscript('discuzcode', 'global', 'funcs', array('param' => $param, 'caller' => 'messagecutstr'), 'discuzcode'); } return trim($str); } function setthreadcover($pid, $tid = 0, $aid = 0, $countimg = 0, $imgurl = '') { global $_G; $cover = 0; if(empty($_G['uid']) || !intval($_G['setting']['forumpicstyle']['thumbheight']) || !intval($_G['setting']['forumpicstyle']['thumbwidth'])) { return false; } if(($pid || $aid) && empty($countimg)) { if(empty($imgurl)) { if($aid) { $attachtable = 'aid:'.$aid; $attach = C::t('forum_attachment_n')->fetch('aid:'.$aid, $aid, array(1, -1)); } else { $attachtable = 'pid:'.$pid; $attach = C::t('forum_attachment_n')->fetch_max_image('pid:'.$pid, 'pid', $pid); } if(!$attach) { return false; } if(empty($_G['forum']['ismoderator']) && $_G['uid'] != $attach['uid']) { return false; } $pid = empty($pid) ? $attach['pid'] : $pid; $tid = empty($tid) ? $attach['tid'] : $tid; $picsource = ($attach['remote'] ? $_G['setting']['ftp']['attachurl'] : $_G['setting']['attachurl']).'forum/'.$attach['attachment']; } else { $attachtable = 'pid:'.$pid; $picsource = $imgurl; } $basedir = !$_G['setting']['attachdir'] ? (DISCUZ_ROOT.'./data/attachment/') : $_G['setting']['attachdir']; $coverdir = 'threadcover/'.substr(md5($tid), 0, 2).'/'.substr(md5($tid), 2, 2).'/'; dmkdir($basedir.'./forum/'.$coverdir); require_once libfile('class/image'); $image = new image(); if($image->Thumb($picsource, 'forum/'.$coverdir.$tid.'.jpg', $_G['setting']['forumpicstyle']['thumbwidth'], $_G['setting']['forumpicstyle']['thumbheight'], 2)) { $remote = ''; if(getglobal('setting/ftp/on')) { if(ftpcmd('upload', 'forum/'.$coverdir.$tid.'.jpg')) { $remote = '-'; } } $cover = C::t('forum_attachment_n')->count_image_by_id($attachtable, 'pid', $pid); if($imgurl && empty($cover)) { $cover = 1; } $cover = $remote.$cover; } else { return false; } } if($countimg) { if(empty($cover)) { $thread = C::t('forum_thread')->fetch($tid); $oldcover = $thread['cover']; $cover = C::t('forum_attachment_n')->count_image_by_id('tid:'.$tid, 'pid', $pid); if($cover) { $cover = $oldcover < 0 ? '-'.$cover : $cover; } } } if($cover) { C::t('forum_thread')->update($tid, array('cover' => $cover)); return true; } } ?>