Discuz Thai

 ลืมรหัสผ่าน
 สมัครสมาชิก

ข้อตกลงการใช้งานกระดานข่าวดิสคัสไทย DiscuzThai Agreement (English Version) ประกาศดิสคัสไทย - ทำเนียบดิสคัสภาษาไทย

Discuz! X3.5 Thai R20240520 Rev.9 (NEW) [วิดีโอช่วยสอน] อัปเกรด Discuz! X3.4 เป็น X3.5 Discord ของ Discuz! Thai Community อย่างเป็นทางการ

Discuz! X3.4 Thai R20220811 (REV.75) สิ้นสุดการสนับสนุน Discuz! X3.4 ภาษาไทยตั้งแต่วันนี้เป็นต้นไป (ขอแนะนำให้อัปเกรดเป็น X3.5 แทน)

ค้นหา
แท็กยอดนิยม: ดิสคัสภาษาไทย Discuz Thai
ดู: 3819|ตอบกลับ: 11

[X2] ใครใช้ ฟังชั่น setthreadcover เป็นบ้างครับ

[คัดลอกลิงก์]
rokaisakkon โพสต์ 2012-1-31 07:31:06 |โหมดอ่าน
setthreadcover  ไอ่ฟังชั่นนี้อะ ผม งง มาก ไม่เข้าใจว่ามันต้องทำอย่างไรถึงจะ ผ่าน

ใครทำเป็น บอกใบ้ หรือสอนหน่อยครับ  พอดีอยาก เช็ตภาพหน้าปก กระทู้


ปล.  นู๋นิว ถ้าทำเป็น สอนหน่อย ครับ     
acaz โพสต์ 2012-1-31 12:00:56
อันนี้หรือเปล่าไม่ได้แปลเพิ่มนะครับดูรูปเอา


หากต้องการเปลี่ยนขนาดรูปด้วยดูจากรูปหนึ่งคลิ๊กลิงค์ตรงคำแนะนำจะพาไปหน้ากำหนดขนาดหน้าปก


หากไม่ตั้งอะไรจะเป็นค่าเดิมจาก โรงงาน

ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง

คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? สมัครสมาชิก

x
jaideejung007 โพสต์ 2012-1-31 12:08:06 จากอุปกรณ์พกพา
ต้นฉบับโพสต์โดย acaz เมื่อ 2012-1-31 12:00
อันนี้หรือเปล่าไม่ได้แปลเพิ่มนะครับดูรูปเอา



ตั้งค่าจากโรงงาน พูดยังกะอุปกึณ์อิเล็กทรอนิกส์แหะ

ปล. ทดสอบตอบกระทู้ผ่าน iPad ^^
 เจ้าของ| rokaisakkon โพสต์ 2012-1-31 12:20:58
ต้นฉบับโพสต์โดย acaz เมื่อ 2012-1-31 12:00
อันนี้หรือเปล่าไม่ได้แปลเพิ่มนะครับดูรูปเอา

บอสครับ   อันนั้นมันดิสคัส ๆ  แต่ที่ผมต้องการคือ ผมจะใช้ฟังชั่นของมัน

พอดีเขียนระบบ ออโต้โพสต์ โดยดึงรูป ทั้งยวงมาใส่ ดิสคัส ทีนี้ ติดตรง ทำไงให้มัน โชว์ รูป หน้าบอร์ดของบอร์ดนั้น ด้วย


พอดี ลอง พยายามใช้งาน ไอ่ฟังชั่นนี้แล้ว ใช้ไม่ ผ่านซักที่ หรือผมโง่ ก็ไม่รู้

เลยต้อง เข้าไป บอร์ด ที่ มันโพสต์ ออโต้ แล้ว ตั้งค่าหน้าปก เอง



DEMO
  1. http://7nime.com/forum-59-1.html
คัดลอกไปที่คลิปบอร์ด
ตามนี้เลยครับ
ZeroBlack โพสต์ 2012-1-31 12:25:16
ต้นฉบับโพสต์โดย acaz เมื่อ 2012-1-31 12:00
อันนี้หรือเปล่าไม่ได้แปลเพิ่มนะครับดูรูปเอา

ขาใหญ่มาตอบเอง
acaz โพสต์ 2012-1-31 12:40:15
ปรกติถ้า set หน้าปกทำงานแล้วถ้าไม่มีการกำหนดรูปหน้าปกมันก็เลือกรูปแรกเป็นหน้าปกอยู่แล้ว

แล้วไอ้ auto post นั้นทำงานยังไงเขียนยังไงผมก็ไม่รู้ code ซักตัวยังไม่เคยเห็นเลย

ไม่ได้บอกตั้งแต่แรกผมก็นึกว่าตั้งค่าปรกติทั่วไป -___-
 เจ้าของ| rokaisakkon โพสต์ 2012-1-31 12:52:43
ต้นฉบับโพสต์โดย acaz เมื่อ 2012-1-31 12:40
ปรกติถ้า set หน้าปกทำงานแล้วถ้าไม่มีการกำหนดรูปหน้าป ...

ก็ ดึงจาก mthai ครับ

แล้ว เอาเขียนฟังชั่น หา url รูป แล้ว เซิฟเก็บลงโฮส  แล้ว จับยัดเข้า db  

แล้วก็ แปลง เป็น bbcode   แล้วก็ ยัดลง db อีกที

ทีนี้ ไฟล์ไปได้  โพสต์ แล้วใช้งานได้

ผมเลย พยายาม ทำให้มันเซ็ตหน้าปกอัตโนมัติ  ทำงัยก็ใช้ ไอ่ฟังชั่นที่ว่าไม่เป็นซักที ครับผม

ขอโทษ ด้วยครับที่ตอนแรก อธิบายไม่ ละเอียด
acaz โพสต์ 2012-1-31 13:11:48
ต้นฉบับโพสต์โดย rokaisakkon เมื่อ 2012-1-31 12:52
ก็ ดึงจาก mthai ครับ

แล้ว เอาเขียนฟังชั่น หา url รูป แล้ว ...


ไปเพิ่มค่าใน Field "cover" ที่ Table "pre_forum_thread"
ให้มากกว่า 0

ลองดูนะ เพราะผมไม่เห็น Script
 เจ้าของ| rokaisakkon โพสต์ 2012-1-31 13:39:52
ต้นฉบับโพสต์โดย acaz เมื่อ 2012-1-31 13:11
ไปเพิ่มค่าใน Field "cover" ที่ Table "pre_forum_thread"
ให้มากกว่า 0

อันนี้ คือตัวฟังชั่น ของการทำหน้าปก
  1. function setthreadcover($pid, $tid = 0, $aid = 0) {
  2.         global $_G;
  3.         $cover = 0;
  4.         if(empty($_G['uid']) || !intval($_G['setting']['forumpicstyle']['thumbwidth']) || !intval($_G['setting']['forumpicstyle']['thumbwidth'])) {
  5.                 return false;
  6.         }
  7.         if(($pid || $aid) && empty($tid)) {
  8.                 if($aid) {
  9.                         $attachtable = getattachtablebyaid($aid);
  10.                         $wheresql = "aid='$aid' AND isimage IN ('1', '-1')";
  11.                 } else {
  12.                         $attachtable = getattachtablebypid($pid);
  13.                         $wheresql = "pid='$pid' AND isimage IN ('1', '-1') ORDER BY width DESC LIMIT 1";
  14.                 }
  15.                 $query = DB::query("SELECT * FROM ".DB::table($attachtable)." WHERE $wheresql");
  16.                 if(!$attach = DB::fetch($query)) {
  17.                         return false;
  18.                 }
  19.                 if(empty($_G['forum']['ismoderator']) && $_G['uid'] != $attach['uid']) {
  20.                         return false;
  21.                 }
  22.                 $pid = empty($pid) ? $attach['pid'] : $pid;
  23.                 $tid = empty($tid) ? $attach['tid'] : $tid;

  24.                 $basedir = !$_G['setting']['attachdir'] ? (DISCUZ_ROOT.'./data/attachment/') : $_G['setting']['attachdir'];
  25.                 $coverdir = 'threadcover/'.substr(md5($tid), 0, 2).'/'.substr(md5($tid), 2, 2).'/';
  26.                 dmkdir($basedir.'./forum/'.$coverdir);
  27.                 $picsource = ($attach['remote'] ? $_G['setting']['ftp']['attachurl'] : $_G['setting']['attachurl']).'forum/'.$attach['attachment'];

  28.                 require_once libfile('class/image');
  29.                 $image = new image();
  30.                 if($image->Thumb($picsource, 'forum/'.$coverdir.$tid.'.jpg', $_G['setting']['forumpicstyle']['thumbwidth'], $_G['setting']['forumpicstyle']['thumbheight'], 2)) {
  31.                         $remote = '';
  32.                         if(getglobal('setting/ftp/on')) {
  33.                                 if(ftpcmd('upload', 'forum/'.$coverdir.$tid.'.jpg')) {
  34.                                         $remote = '-';
  35.                                 }
  36.                         }
  37.                         $cover = DB::result_first("SELECT COUNT(*) FROM ".DB::table($attachtable)." WHERE pid='$pid' AND isimage IN ('1', '-1')");
  38.                         $cover = $remote.$cover;
  39.                 } else {
  40.                         return false;
  41.                 }
  42.         }
  43.         if($tid || $cover) {
  44.                 if(empty($cover)) {
  45.                         $oldcover = DB::result_first("SELECT cover FROM ".DB::table('forum_thread')." WHERE tid='$tid'");
  46.                         $cover = DB::result_first("SELECT COUNT(*) FROM ".DB::table(getattachtablebytid($tid))." WHERE pid='$pid' AND isimage IN ('1', '-1')");
  47.                         $cover = $cover && $oldcover < 0 ? '-'.$cover : $cover;
  48.                 }
  49.                 DB::update('forum_thread', array('cover' => $cover), array('tid'=>$tid));
  50.         }
  51.         return true;
  52. }
คัดลอกไปที่คลิปบอร์ด
ที่นี่ ผมลองไล่ดู เจอการเรียกใช้งาน อยู่ สอง แบบ

อันนี้ แบบ ajax
  1. $aid = intval($_G['gp_aid']);
  2.         require_once libfile('function/post');
  3.         if($_G['forum'] && $aid) {
  4.                 $threadimage = DB::fetch_first("SELECT tid, pid, attachment, remote FROM ".DB::table(getattachtablebyaid($aid))." WHERE aid='$aid'");
  5.                 if($threadimage['tid'] && $threadimage['pid']) {
  6.                         $firstpost = DB::result_first("SELECT first FROM ".DB::table(getposttablebytid($threadimage['tid']))." WHERE pid='$threadimage[pid]'");
  7.                 } else {
  8.                         $firstpost = 0;
  9.                 }
  10.                 if(empty($firstpost)) {
  11.                         showmessage('set_cover_faild', '', array(), array('closetime' => 3));
  12.                 }
  13.                 if(setthreadcover(0, 0, $aid)) {
  14.                         $threadimage = daddslashes($threadimage);
  15.                         DB::delete('forum_threadimage', "tid='$threadimage[tid]'");
  16.                         DB::insert('forum_threadimage', array(
  17.                                 'tid' => $threadimage['tid'],
  18.                                 'attachment' => $threadimage['attachment'],
  19.                                 'remote' => $threadimage['remote'],
  20.                         ));
  21.                         showmessage('set_cover_succeed', '', array(), array('alert' => 'right', 'closetime' => 1));
  22.                 }
  23.         }
  24.         showmessage('set_cover_faild', '', array(), array('closetime' => 3));
คัดลอกไปที่คลิปบอร์ด
ที่นี่มันมี แบบเรียกใช้ หลังจาก ตั้งกระทู้เลย
  1. if(($_G['group']['allowpostattach'] || $_G['group']['allowpostimage']) && ($_G['gp_attachnew'] || $sortid || !empty($_G['gp_activityaid']))) {
  2.                 updateattach($displayorder == -4 || $modnewthreads, $tid, $pid, $_G['gp_attachnew']);
  3.                 if(!$threadimageaid) {
  4.                         $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");
  5.                         $threadimageaid = $threadimage['aid'];
  6.                 }
  7.                 if($_G['forum']['picstyle']) {
  8.                         setthreadcover($pid, 0, $threadimageaid);
  9.                 }
  10.         }
คัดลอกไปที่คลิปบอร์ด
ผม ลองเรียก ตามแบบนั้นแล้วก็ไม่ผ่าน ลองแล้วลองอีก หลายแบบแล้ว

ใครเทพ ๆ ช่วยเขียน การเรียกใช้ ฟังชั่น นี้ให้ดูหน่อย ครับ
 เจ้าของ| rokaisakkon โพสต์ 2012-2-1 05:48:41
ใครเคยใช้ บอกผม หน่อยนะครับ
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | สมัครสมาชิก

รายละเอียดเครดิต

รายชื่อผู้กระทำผิด|Archiver|ดิสคัส ไทย Follow us: Become a fan on facebook. Follow us on Twitter.

GMT+7, 2024-12-23 08:09

Powered by Discuz! X3.4, Rev.66

Copyright © 2001-2021 Tencent Cloud. Licensed

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้