ThaiSEOBoard.com

พัฒนาเว็บไซต์ => CMS & Free Script => ข้อความที่เริ่มโดย: nitikon101 ที่ 27 มีนาคม 2018, 15:42:49



หัวข้อ: อยากได้โค๊ด ดึงภาพแรก ในกระทู้ SMF แชร์ลงเฟสบุ๊ค ซอยข่อยแน๊(ช่วยผมด้วย)
เริ่มหัวข้อโดย: nitikon101 ที่ 27 มีนาคม 2018, 15:42:49
- ผมใช้ smf 1.1.21  ไม่มี mod
- ผมได้ทำปุ่มแชร์ในแต่ละกระทู้เรียบร้อย แต่เวลาแชร์ภาพที่ออกมามัน fix เป็นโลโก้เว็บ
- ผมได้นำ <meta property="og:image" รูปภาพที่จะแสดง " >  ตัวนี้วางในส่วนเฮด
ของ index.template.php ใน theme ที่ใช้ ซึ่งมันก็ fix เฉพาะภาพที่วางนี้
   ผมขอความกรุณาเซียนผู้รู้ ได้โปรด บอกโค๊ดที่ผมจะสามารถ ดึงเอาภาพแรกในกระทู้นั้นๆ มาแสดง โดยอัตโนมัติ ....
เนื่องจากเวลานี้ ผมต้องคอย เอาลิ้งค์ภาพมาวางในหน้านี้ แล้ว อัพๆไฟล์  index.template.php ขึ้นใหม่ทุกครั้ง และต้องเองลิ้งกระทู้ไปโพส แก้ ดีบักอีก กว่าจะได้ลิ้งค์มาแชร์ ใช้ระยะเวลามาก และมึนหัว
     ขอความกรุณาด้วยนะครับ................กราบล่ะครับ


หัวข้อ: Re: อยากได้โค๊ด ดึงภาพแรก ในกระทู้ SMF แชร์ลงเฟสบุ๊ค ซอยข่อยแน๊(ช่วยผมด้วย)
เริ่มหัวข้อโดย: CONY ที่ 27 มีนาคม 2018, 16:48:32
ค่อนข้างใช้เวลาครับ เหมือนการทำ mod ใหม่ขึ้นมาหนึ่งตัว
คือถ้าเป็นเทคนิคการแก้ปัญหาที่มีมาก่อนอยู่แล้ว หรือการปรับแต่งที่ไม่ต้องใช้เวลามาก
ยินดีตอบให้ครับ แต่แบบนี้ทำได้แค่ชี้ช่องให้ ซึ่งคนทำ ก็ต้องมีความรู้พื้นฐานอยู่ด้วย
ลองดูจากกระทู้ดึงรูปภาพแรกในกระทู้มาแสดง ที่มีคนบอกวิธีไว้แล้ว เอามาประยุกต์ใช้เอาครับ


หัวข้อ: Re: อยากได้โค๊ด ดึงภาพแรก ในกระทู้ SMF แชร์ลงเ
เริ่มหัวข้อโดย: romance69 ที่ 27 มีนาคม 2018, 16:58:42
ผมว่าจ้างทำง่ายสุดละครับ  :wanwan019:

วิธีทำนะครับ อ้างอิงจากกระทู้นี้เลยครับ
http://www.thaiseoboard.com/index.php/topic,186333.msg2541560.html#msg2541560

อันดับแรก
เปิดไฟล์ index.tem.php ธีมที่ใช้
ค้นหาโค้ด (หรือบรรทัดล่างสุด)
โค๊ด:
?>

นำโค้ดนี้ใส่ไว้ก่อนหน้า ?> ครับ
โค๊ด:
function findIMG($text){
if (preg_match_all('/\[img\].*?\[\/img\]/i',$text,$page)){
foreach($page as $value)
$src = substr($value[0],5);
$src = substr($src,0,-6);
return($src);}
if (preg_match_all('/\[img width=\d{3} height=\d{3}\].*?\[\/img\]/i',$text,$page)){
foreach($page as $value)
$src = substr($value[0],26);
$src = substr($src,0,-6);
return($src);}
}
function meta_image($id_topic) {
global $db_prefix, $scripturl, $smcFunc;
if (!is_numeric($id_topic))
return FALSE;

$request = $smcFunc['db_query']('', '
SELECT t.id_topic, m.body, m.subject
FROM {db_prefix}topics as t
INNER JOIN {db_prefix}messages as m on (t.id_first_msg = m.id_msg)
WHERE t.id_topic = {int:id_topic}', array(
'id_topic' => $id_topic
)
);
$row = $smcFunc['db_fetch_assoc']($request);
if (empty($row))
return FALSE;

$image = findIMG($row['body']);
if ($image == '') {
$image = 'http://wwww.monkey-th.com/noimage.png';
}
return '<meta property="og:image" content="'. $image .'" />';
}


ต่อไปหาโค้ดนี้
โค๊ด:
	// Please don't index these Mr Robot.
if (!empty($context['robot_no_index']))
echo '
<meta name="robots" content="noindex" />';

แทนที่ด้วยโค้ดนี้
โค๊ด:
	// Please don't index these Mr Robot.
if (!empty($context['robot_no_index']))
echo '
<meta name="robots" content="noindex" />';

if (isset($_GET['topic'])) {
echo meta_image($_GET['topic']);
}


ลองดูครับ ได้ไหมไม่รู้นะครับ เพราะยังไม่ได้ลองรันเลยครับ


หัวข้อ: Re: อยากได้โค๊ด ดึงภาพแรก ในกระทู้ SMF แชร์ลงเฟสบุ๊ค ซอยข่อยแน๊(ช่วยผมด้วย)
เริ่มหัวข้อโดย: infamous ที่ 27 มีนาคม 2018, 18:34:50
ผมคิดว่า ไม่น่าจะยากครับ แต่ผมไม่ได้ใช้ smf นานแล้ว และไม่มีเวลาทดสอบให้ดูเป็นตัวอย่างครับ

ลองดู mod ตัวนี้ และลองประยุกต์ดูครับ

http://custom.simplemachines.org/mods/index.php?mod=1151

คอนเซ็ปต์ง่ายๆ ที่คิดว่าทำได้นะครับ

กรณีดึงจากเนื้อหา
1. ดึงรายละเอียด(body) ของ topic นั้นๆออกมา
2. ใช้ฟังก์ชั่น preg_match() เอา src ของรูปแรกมา
3. เอาลิงค์ src ไปยำลงใน meta ตามใจชอบ

ให้ดีลอง capture สิ่งที่ท่านต้องการมาดูครับ เพราะบางครั้งอาจจะมีท่านอื่นเข้ามาช่วยเพิ่มอีกแรง


หัวข้อ: Re: อยากได้โค๊ด ดึงภาพแรก ในกระทู้ SMF แชร์ลงเฟสบุ๊ค ซอยข่อยแน๊(ช่วยผมด้วย)
เริ่มหัวข้อโดย: nitikon101 ที่ 27 มีนาคม 2018, 21:24:54
หมดปัญญา ยอมแพ้ครับพี่น้องครับ


หัวข้อ: Re: อยากได้โค๊ด ดึงภาพแรก ในกระทู้ SMF แชร์ลงเฟสบุ๊ค ซอยข่อยแน๊(ช่วยผมด้วย)
เริ่มหัวข้อโดย: romance69 ที่ 27 มีนาคม 2018, 21:49:19
หมดปัญญา ยอมแพ้ครับพี่น้องครับ
โค้ดที่ผมให้ไปมันใช้ไม่ได้หรอครับ หรือยังไม่ได้ลอง ?


หัวข้อ: Re: อยากได้โค๊ด ดึงภาพแรก ในกระทู้ SMF แชร์ลงเฟสบุ๊ค ซอยข่อยแน๊(ช่วยผมด้วย)
เริ่มหัวข้อโดย: nitikon101 ที่ 28 มีนาคม 2018, 09:47:47
หมดปัญญา ยอมแพ้ครับพี่น้องครับ
โค้ดที่ผมให้ไปมันใช้ไม่ได้หรอครับ หรือยังไม่ได้ลอง ?

ไม่ได้ครับ

ขอบคุณทุกท่านที่สนใจ และพยายามช่วยเหลือ


หัวข้อ: Re: อยากได้โค๊ด ดึงภาพแรก ในกระทู้ SMF แชร์ลงเฟสบุ๊ค ซอยข่อยแน๊(ช่วยผมด้วย)
เริ่มหัวข้อโดย: nitikon101 ที่ 28 มีนาคม 2018, 17:35:03
นึกขึ้นได้เป็นอย่างๆ
    แปลกตรงที่ว่า ผมไม่ต้องเอาโค๊ดอะไรมาใส่เลย แต่มันแสดง ยูอาแอล หัวข้อถูก และดึงเอารูปฟิกมาเลย  แสดงว่าต้องมีคำสั่งใดเชื่อมโยงกันแน่ๆ
   เพียงแต่ว่าตอนนี้ผมจะหาโค้ด สคริป อะไรที่จะใช้ดึงภาพแรก ในบอดนั้นๆได้เท่านั้น  หามาสามสัปดาแล้ว ปวดหัว หาต่อๆๆๆๆ


หัวข้อ: Re: อยากได้โค๊ด ดึงภาพแรก ในกระทู้ SMF แชร์ลงเฟสบุ๊ค ซอยข่อยแน๊(ช่วยผมด้วย)
เริ่มหัวข้อโดย: projectgun8 ที่ 28 มีนาคม 2018, 18:34:39
สามารถ get path รูปแรกของกระทู้มาได้หรือยังอะครับ


หัวข้อ: Re: อยากได้โค๊ด ดึงภาพแรก ในกระทู้ SMF แชร์ลงเฟสบุ๊ค ซอยข่อยแน๊(ช่วยผมด้วย)
เริ่มหัวข้อโดย: nitikon101 ที่ 29 มีนาคม 2018, 15:45:03
สามารถ get path รูปแรกของกระทู้มาได้หรือยังอะครับ
ยังครับ คือผมไม่มีความรู้ภาษาเลยครับ ทุกอย่างมั่วๆเดาๆครับ


หัวข้อ: Re: อยากได้โค๊ด ดึงภาพแรก ในกระทู้ SMF แชร์ลงเฟสบุ๊ค ซอยข่อยแน๊(ช่วยผมด้วย)
เริ่มหัวข้อโดย: virussman ที่ 29 มีนาคม 2018, 16:19:38
ต้องสร้าง og:image ครับ เฟสบุคมันจะดึงตรงนี้ ลองดูMod ตัวนี้ เห็นว่าใช้ได้ตั้งแต่ 1.0RC1 
http://custom.simplemachines.org/mods/index.php?mod=4117

หรือลองเอาโค้ดนี้ไปลอง manual ดูครับ

/Themes/your_theme/index.template.php
Search:
โค๊ด:
// Output any remaining HTML headers. (from mods, maybe?)

Replace with
:
อ้างถึง
// OG image
   if (isset($context['og_image']))
      echo '<meta property="og:image" content="' . $context['og_image'] . '" />';
   else
      echo '
   <meta property="og:image" content="url of your default forum image for topics with no image at all" />';

   // Output any remaining HTML headers. (from mods, maybe?)


/Sources/Display.php
Search:
โค๊ด:
// Get all the important topic info.
$request = $smcFunc['db_query']('', '
SELECT
t.num_replies, t.num_views, t.locked, ms.subject, t.is_sticky, t.id_poll,
Replace with:
 
โค๊ด:
// Get all the important topic info.
$request = $smcFunc['db_query']('', '
SELECT
t.num_replies, t.num_views, t.locked, ms.subject, t.is_sticky, t.id_poll, ms.body,

Search:
อ้างถึง
// Add up unapproved replies to get real number of replies...

Replace with:
โค๊ด:
// OG image
$aux = preg_match_all('/\[img.*\](.+)\[/img\]/i', $topicinfo['body'], $aux2);
if (!empty($aux2[1][0]) && !isset($context['og_image']))
$context['og_image'] = $aux2[1][0];

// Add up unapproved replies to get real number of replies...

And this should make your forum set the image for Facebook and any other page that uses OpenGraph.

https://www.simplemachines.org/community/index.php?topic=547326.0

ข่อยซอยดั้ยซั้มนี่เด้อ  (ผมช่วยได้เท่านี้)  :wanwan004:


หัวข้อ: Re: อยากได้โค๊ด ดึงภาพแรก ในกระทู้ SMF แชร์ลงเฟสบุ๊ค ซอยข่อยแน๊(ช่วยผมด้วย)
เริ่มหัวข้อโดย: nitikon101 ที่ 03 เมษายน 2018, 13:48:03
ไม่ได้ครับ


หัวข้อ: Re: อยากได้โค๊ด ดึงภาพแรก ในกระทู้ SMF แชร์ลงเฟสบุ๊ค ซอยข่อยแน๊(ช่วยผมด้วย)
เริ่มหัวข้อโดย: 7one011 ที่ 07 เมษายน 2018, 20:59:37
ไม่ได้ครับ

ยังไม่ได้หรอคับ พี่


หัวข้อ: Re: อยากได้โค๊ด ดึงภาพแรก ในกระทู้ SMF แชร์ลงเฟสบุ๊ค ซอยข่อยแน๊(ช่วยผมด้วย)
เริ่มหัวข้อโดย: nitikon101 ที่ 09 เมษายน 2018, 16:13:24
ยังครับช่วยผมหน่อย  ไอดีไลน์  0812880899