- เครดิต
- 287
- เพื่อน
- ทักทาย
- บล็อก
- อัลบั้ม
- โพสต์
- กระทู้
- แชร์
- สำคัญ
- สิทธิ์อ่าน
- 20
- จำนวนผู้ติดตาม
- จำนวนผู้กำลังติดตาม
- เพศ
- ไม่บอก
|
ต้นฉบับโพสต์โดย acaz เมื่อ 2012-1-31 13:11
ไปเพิ่มค่าใน Field "cover" ที่ Table "pre_forum_thread"
ให้มากกว่า 0
อันนี้ คือตัวฟังชั่น ของการทำหน้าปก- function setthreadcover($pid, $tid = 0, $aid = 0) {
- global $_G;
- $cover = 0;
- if(empty($_G['uid']) || !intval($_G['setting']['forumpicstyle']['thumbwidth']) || !intval($_G['setting']['forumpicstyle']['thumbwidth'])) {
- return false;
- }
- if(($pid || $aid) && empty($tid)) {
- if($aid) {
- $attachtable = getattachtablebyaid($aid);
- $wheresql = "aid='$aid' AND isimage IN ('1', '-1')";
- } else {
- $attachtable = getattachtablebypid($pid);
- $wheresql = "pid='$pid' AND isimage IN ('1', '-1') ORDER BY width DESC LIMIT 1";
- }
- $query = DB::query("SELECT * FROM ".DB::table($attachtable)." WHERE $wheresql");
- if(!$attach = DB::fetch($query)) {
- 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;
- $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);
- $picsource = ($attach['remote'] ? $_G['setting']['ftp']['attachurl'] : $_G['setting']['attachurl']).'forum/'.$attach['attachment'];
- 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 = DB::result_first("SELECT COUNT(*) FROM ".DB::table($attachtable)." WHERE pid='$pid' AND isimage IN ('1', '-1')");
- $cover = $remote.$cover;
- } else {
- return false;
- }
- }
- if($tid || $cover) {
- if(empty($cover)) {
- $oldcover = DB::result_first("SELECT cover FROM ".DB::table('forum_thread')." WHERE tid='$tid'");
- $cover = DB::result_first("SELECT COUNT(*) FROM ".DB::table(getattachtablebytid($tid))." WHERE pid='$pid' AND isimage IN ('1', '-1')");
- $cover = $cover && $oldcover < 0 ? '-'.$cover : $cover;
- }
- DB::update('forum_thread', array('cover' => $cover), array('tid'=>$tid));
- }
- return true;
- }
คัดลอกไปที่คลิปบอร์ด ที่นี่ ผมลองไล่ดู เจอการเรียกใช้งาน อยู่ สอง แบบ
อันนี้ แบบ ajax- $aid = intval($_G['gp_aid']);
- require_once libfile('function/post');
- if($_G['forum'] && $aid) {
- $threadimage = DB::fetch_first("SELECT tid, pid, attachment, remote FROM ".DB::table(getattachtablebyaid($aid))." WHERE aid='$aid'");
- if($threadimage['tid'] && $threadimage['pid']) {
- $firstpost = DB::result_first("SELECT first FROM ".DB::table(getposttablebytid($threadimage['tid']))." WHERE pid='$threadimage[pid]'");
- } else {
- $firstpost = 0;
- }
- if(empty($firstpost)) {
- showmessage('set_cover_faild', '', array(), array('closetime' => 3));
- }
- if(setthreadcover(0, 0, $aid)) {
- $threadimage = daddslashes($threadimage);
- DB::delete('forum_threadimage', "tid='$threadimage[tid]'");
- DB::insert('forum_threadimage', array(
- 'tid' => $threadimage['tid'],
- 'attachment' => $threadimage['attachment'],
- 'remote' => $threadimage['remote'],
- ));
- showmessage('set_cover_succeed', '', array(), array('alert' => 'right', 'closetime' => 1));
- }
- }
- showmessage('set_cover_faild', '', array(), array('closetime' => 3));
คัดลอกไปที่คลิปบอร์ด ที่นี่มันมี แบบเรียกใช้ หลังจาก ตั้งกระทู้เลย- if(($_G['group']['allowpostattach'] || $_G['group']['allowpostimage']) && ($_G['gp_attachnew'] || $sortid || !empty($_G['gp_activityaid']))) {
- updateattach($displayorder == -4 || $modnewthreads, $tid, $pid, $_G['gp_attachnew']);
- if(!$threadimageaid) {
- $threadimage = DB::fetch_first("SELECT aid, attachment, remote FROM ".DB::table(getattachtablebytid($tid))." WHERE tid='$tid' AND isimage IN ('1', '-1') ORDER BY width DESC LIMIT 1");
- $threadimageaid = $threadimage['aid'];
- }
- if($_G['forum']['picstyle']) {
- setthreadcover($pid, 0, $threadimageaid);
- }
- }
คัดลอกไปที่คลิปบอร์ด ผม ลองเรียก ตามแบบนั้นแล้วก็ไม่ผ่าน ลองแล้วลองอีก หลายแบบแล้ว
ใครเทพ ๆ ช่วยเขียน การเรียกใช้ ฟังชั่น นี้ให้ดูหน่อย ครับ
|
|