อยากได้โค๊ด ดึงภาพแรก ในกระทู้ SMF แชร์ลงเฟสบุ๊ค ซอยข่อยแน๊(ช่วยผมด้วย)

เริ่มโดย nitikon101, 27 มีนาคม 2018, 15:42:49

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

nitikon101

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

CONY

ค่อนข้างใช้เวลาครับ เหมือนการทำ mod ใหม่ขึ้นมาหนึ่งตัว
คือถ้าเป็นเทคนิคการแก้ปัญหาที่มีมาก่อนอยู่แล้ว หรือการปรับแต่งที่ไม่ต้องใช้เวลามาก
ยินดีตอบให้ครับ แต่แบบนี้ทำได้แค่ชี้ช่องให้ ซึ่งคนทำ ก็ต้องมีความรู้พื้นฐานอยู่ด้วย
ลองดูจากกระทู้ดึงรูปภาพแรกในกระทู้มาแสดง ที่มีคนบอกวิธีไว้แล้ว เอามาประยุกต์ใช้เอาครับ

romance69

ผมว่าจ้างทำง่ายสุดละครับ  :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']);
}



ลองดูครับ ได้ไหมไม่รู้นะครับ เพราะยังไม่ได้ลองรันเลยครับ
ขายปลั๊กอิน Wordpress ตรวจหวยออนไลน์ อัปเดตอัตโนมัติ ราคา 2,500 บาท ใส่โค้ด THAISEO10 รับส่วนลด 10%
รับเขียนเว็บไซต์, รับเขียน Theme wordpress, รับเขียน Plugin wordpress

infamous

ผมคิดว่า ไม่น่าจะยากครับ แต่ผมไม่ได้ใช้ smf นานแล้ว และไม่มีเวลาทดสอบให้ดูเป็นตัวอย่างครับ

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

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

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

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

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


romance69

อ้างถึงจาก: nitikon101 ใน 27 มีนาคม 2018, 21:24:54
หมดปัญญา ยอมแพ้ครับพี่น้องครับ
โค้ดที่ผมให้ไปมันใช้ไม่ได้หรอครับ หรือยังไม่ได้ลอง ?
ขายปลั๊กอิน Wordpress ตรวจหวยออนไลน์ อัปเดตอัตโนมัติ ราคา 2,500 บาท ใส่โค้ด THAISEO10 รับส่วนลด 10%
รับเขียนเว็บไซต์, รับเขียน Theme wordpress, รับเขียน Plugin wordpress

nitikon101

อ้างถึงจาก: romance69 ใน 27 มีนาคม 2018, 21:49:19
อ้างถึงจาก: nitikon101 ใน 27 มีนาคม 2018, 21:24:54
หมดปัญญา ยอมแพ้ครับพี่น้องครับ
โค้ดที่ผมให้ไปมันใช้ไม่ได้หรอครับ หรือยังไม่ได้ลอง ?

ไม่ได้ครับ

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

nitikon101

นึกขึ้นได้เป็นอย่างๆ
    แปลกตรงที่ว่า ผมไม่ต้องเอาโค๊ดอะไรมาใส่เลย แต่มันแสดง ยูอาแอล หัวข้อถูก และดึงเอารูปฟิกมาเลย  แสดงว่าต้องมีคำสั่งใดเชื่อมโยงกันแน่ๆ
   เพียงแต่ว่าตอนนี้ผมจะหาโค้ด สคริป อะไรที่จะใช้ดึงภาพแรก ในบอดนั้นๆได้เท่านั้น  หามาสามสัปดาแล้ว ปวดหัว หาต่อๆๆๆๆ

projectgun8


nitikon101

อ้างถึงจาก: projectgun8 ใน 28 มีนาคม 2018, 18:34:39
สามารถ get path รูปแรกของกระทู้มาได้หรือยังอะครับ
ยังครับ คือผมไม่มีความรู้ภาษาเลยครับ ทุกอย่างมั่วๆเดาๆครับ

virussman

ต้องสร้าง 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:
งดรับงาน



nitikon101