การดึงรูป smf แสดงหน้าแรก

เริ่มโดย zeelacul, 29 ตุลาคม 2015, 09:19:04

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

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

zeelacul

เนื่องจากพยายามมาหลายวันแล้ว ต้องขอบคุณทุกคนที่แสดงความเห็นน่ะครับ

ก่อนอื่น เลย ลองค้นหา แล้วมเจอลิงห์นี้ครับ http://www.thaiseoboard.com/index.php?action=printpage;topic=355815.0

Smf 2.0.x  boardindex.tem.php
ค้นหา ?> (บรรทัดสุดท้าย) เพิ่มโค้ดนี้ไว้ก่อนที่ค้นหา

function findIMG($text){
   preg_match_all('/\[img\].*?\[\/img\]/i',$text,$page);
   foreach($page as $value)
      $src = substr($value[0],5);
   $src = substr($src,0,-6);
   return($src);
}

function ssi_pic($num_top = 12,$order,$board){
   global $db_prefix, $scripturl, $smcFunc;
   $request = $smcFunc['db_query']('', '
      SELECT t.id_topic,m.body,m.subject
      FROM {db_prefix}messages m,{db_prefix}topics t
      WHERE t.id_first_msg=m.id_msg AND t.id_board='.$board.'
      ORDER BY t.'.$order.' DESC
      LIMIT '.$num_top,
      array(
      )
   );
   $posts = array();
   while ($row = $smcFunc['db_fetch_assoc']($request))
   {
      // Build the array.
      $topics[] = array(
         'id' => $row['id_topic'],
         'body' => $row['body'],
         'subject' => $row['subject']
      );
   }
   $smcFunc['db_free_result']($request);
   foreach ($topics as $data){
      $topic = "topic/".$data['id'];
      $srcPic = findIMG($data['body']);
      $subject = $data['subject'];

      if($srcPic ==''){

         echo '<div class="boxpGal">
         <div class="picpGal"><a href="'.$topic.'" title="'.$subject.'" target="_blank"><img src="http://www.post-nook.com/forum/Themes/default/images/NO_IMAGE.png" width="150" height="180" alt="" /></a></div>
      </div>';
      }else{   
      echo '<div class="boxpGal">
         <div class="picpGal"><a href="'.$topic.'" title="'.$subject.'" target="_blank"><img src="'.$srcPic.'" width="150" height="180" alt="" /></a></div>
      </div>';
      }
   }
}


แล้วทำการแทรก ในไฟล์เดียวกัน ตรงบริเวณที่ต้องการครับ

echo'<div class="cat_bar">
<h3 class="catbg">ดึงรูปมาแสดงโอ๊ววววว</h3></div>';
echo''.ssi_pic(6,'ID_TOPIC',34).'';

ตรงนี้ http://www.post-nook.com/forum/Themes/default/images/NO_IMAGE.png ได้ทำเปลี่ยนเป็นเวปของเราแล้วครับ รูปขึ้นครับ แต่เป็นรูปที่เซตได้เฉพาะลิงห์นี้ ไม่เปลี่ยนตามไฟล์ แนบของบอร์ดครับ

คำถามครับ
1.จะเปลี่ยนเป็นรูปภาพที่เปลี่ยนตามกระทู้ที่ได้ตั้งได้อย่างไรครับ
2. echo''.ssi_pic(6,'ID_TOPIC',34).'';  ตรงนี้ ได้ทำเปลี่ยนเป็น Category ที่ได้ตั้งไว้แล้ว ซึ่งได้แค่ Category เดียว อยากเพิ่ม ต้องทำอย่างไรครับ

ขอบคุณมากครับ

SWOY

ข้อ 1. เท่าที่ดูจากโค้ด ระบบจะดึงภาพในกระทู้มานะครับ (ไม่ใช่ไฟล์แนบ) ฉนั้น ในกระทู้ต้องมีรูปภาพครับ
ข้อ 2. แก้ไขตามด้านล่างนี้

function ssi_pic($num_top = 12,$order,$board = array()){
global $db_prefix, $scripturl, $smcFunc;
$request = $smcFunc['db_query']('', '
SELECT t.id_topic,m.body,m.subject
FROM {db_prefix}messages m,{db_prefix}topics t
WHERE t.id_first_msg=m.id_msg AND t.id_board IN('. implode(',',$board) .')
ORDER BY t.'.$order.' DESC
LIMIT '.$num_top,
array(
)
);
$posts = array();
while ($row = $smcFunc['db_fetch_assoc']($request))
{
// Build the array.
$topics[] = array(
'id' => $row['id_topic'],
'body' => $row['body'],
'subject' => $row['subject']
);
}
$smcFunc['db_free_result']($request);
foreach ($topics as $data){
$topic = "topic/".$data['id'];
$srcPic = findIMG($data['body']);
$subject = $data['subject'];

if($srcPic ==''){

echo '<div class="boxpGal">
<div class="picpGal"><a href="'.$topic.'" title="'.$subject.'" target="_blank"><img src="http://www.post-nook.com/forum/Themes/default/images/NO_IMAGE.png" width="150" height="180" alt="" /></a></div>
</div>';
}else{
echo '<div class="boxpGal">
<div class="picpGal"><a href="'.$topic.'" title="'.$subject.'" target="_blank"><img src="'.$srcPic.'" width="150" height="180" alt="" /></a></div>
</div>';
}
}
}


การเรียกใช้งานก็ตามนี้ครับ
echo'<div class="cat_bar">
<h3 class="catbg">ดึงรูปมาแสดงโอ๊ววววว</h3></div>';
echo''.ssi_pic(6,'ID_TOPIC', array(34,35,36)).'';


34,35,36 คือไอดีของบอร์ดที่ต้องการดึงมาแสดงครับ

ปล. อันนี้ผมยังไม่ได้ลองนะครับ  :P
[direct=http://www.thaiseoboard.com/index.php/topic,331748.0.html]! ขายแล้ว SMF Lnw v.3 สคริปเว็บบอร์ดระบบจัดการครบครันราคาถูก[/direct]

รับติดตั้ง [direct=http://www.webcreation.in.th]ปรับแต่ง smf[/direct] ดูผลงานได้ตามลิงค์เลย
บริการรับทำเว็บบอร์ด SMF ปรับแต่งบอร์ด SMF

MaMa.Killer

http://demo.jubmeng.com/smf/index.php

ก็ได้ปกตินะครับ

ในกระทู้ต้องใช้ภาพโดยใช้โค้ด ไม่ใช่ไฟล์แนบนะครับ
[img]URL[/img]

ดู URL ตรงนี้ด้วยครับ
$topic = "topic/".$data['id'];
$topic = "index.php?topic=".$data['id'].".0";
รับโมฯ & แก้ไข และสร้าง Theme SMF, Wordpress และงานออกแบบ
Add Line Id : sodeclub

raykung

#3
มีคนตอบแล้ว ผมมาอธิบายเพิ่มเติมให้ละกัน เผื่อมีใครเอาไปใช้อีก  :wanwan019:

ฟังก์ชั่น findIMG ใช้ดึงภาพจาก tag ของ [ img]..[ /img] แรกของกระทู้นั้นๆ ครับ (ดึงภาพแรกของกระทู้)
โดยดึงจากข้อความในส่วนของ body นะ มันจะแยกให้ว่าภาพแรกของกระทู้คือลิงก์อะไรโดยใช้คำสั่ง preg_match_all

แต่ฟังก์ชั่นนี้มันมี bug อยู่ตรงที่ tag ของ [ img] มันใส่ parameter เพิ่มเติมได้เช่น alt, width, height
เช่น [ img width="80"]..[ /img] มันจะใช้งานกับฟังก์ชั่น findIMG ไม่ได้

ส่วนฟังก์ชั่น ssi_pic ถ้าคุณกำหนด Order โดย 'ID_TOPIC' จะเป็นการดึงกระทู้ล่าสุดของ Board ที่เลือกมา
แล้วก็วนลูปไปเอา Id, รูป, ชื่อกระทู้ มาแสดง แต่ถ้าในกระทู้นั้นไม่มีรูปอยู่ (ไม่มีการใช้งาน [ img]...[ /img])
มันจะไปเอารูป http://www.post-nook.com/forum/Themes/default/images/NO_IMAGE.png มาแสดงแทน
[direct=https://www.seogointer.com/viewforum.php?f=2]แจกไฟล์ฟรี Themeforest.com / แจกคูปองส่วนลด Name.com[/direct]

zeelacul

#4
ขอบคุณทุกความเห็นครับ

รูปขึ้นแล้วคับ ตามกระทู้ที่โพสต์เลยครับ ใช่ครับ ไม่ได้ใช้ไฟล์แนบ ใช้ BB Code เวปฝากรูปแทนครับ

และอีกหนึ่งปัญหา ข้อความ หัวข้อโพสต์ ไม่ขึ้นหง่ะคับ ขึ้นแต่รูปครับ แก้ไขอย่างไรครับ

MaMa.Killer

<a href="'.$topic.'" title="'.$subject.'" target="_blank"><img src="'.$srcPic.'" width="150" height="180" alt="" /><p>'.$subject.'</p></a>
รับโมฯ & แก้ไข และสร้าง Theme SMF, Wordpress และงานออกแบบ
Add Line Id : sodeclub

zeelacul

อ้างถึงจาก: MaMa.Killer ใน 29 ตุลาคม 2015, 15:41:52
<a href="'.$topic.'" title="'.$subject.'" target="_blank"><img src="'.$srcPic.'" width="150" height="180" alt="" /><p>'.$subject.'</p></a>

ขอบคุณครับ ที่ช่วยครับ

super18xxx

ขอโค้ดที่ท่านแก้ไขล่าสุดได้ไหมครับ ผมทำไม่เป็น อิอิ  :-[

zeelacul

#8
อ้างถึงจาก: super18xxx ใน 29 ตุลาคม 2015, 19:40:56
ขอโค้ดที่ท่านแก้ไขล่าสุดได้ไหมครับ ผมทำไม่เป็น อิอิ  :-[

ไฟล์ BoardIndex.template.php ครับผม เวอร์ชั่น 2.0.11

แทรกไว้ก่อน ?>

function findIMG($text){
  preg_match_all('/\[img\].*?\[\/img\]/i',$text,$page);
  foreach($page as $value)
     $src = substr($value[0],5);
  $src = substr($src,0,-6);
  return($src);
}

function ssi_pic($num_top = 12,$order,$board){
  global $db_prefix, $scripturl, $smcFunc;
  $request = $smcFunc['db_query']('', '
     SELECT t.id_topic,m.body,m.subject
     FROM {db_prefix}messages m,{db_prefix}topics t
     WHERE t.id_first_msg=m.id_msg AND t.id_board='.$board.'
     ORDER BY t.'.$order.' DESC
     LIMIT '.$num_top,
     array(
     )
  );
  $posts = array();
  while ($row = $smcFunc['db_fetch_assoc']($request))
  {
     // Build the array.
     $topics[] = array(
        'id' => $row['id_topic'],
        'body' => $row['body'],
        'subject' => $row['subject']
     );
  }
  $smcFunc['db_free_result']($request);
  foreach ($topics as $data){
     $topic = "index.php?topic=".$data['id'].".0";
     $srcPic = findIMG($data['body']);
     $subject = $data['subject'];

     if($srcPic ==''){

        echo '<div class="boxpGal">
        <div class="picpGal"><a href="'.$topic.'" title="'.$subject.'" target="_blank"><img src="http://เวปของคุณ/Themes/default/images/noimage.jpg" width="220" height="146" alt="" /><p>'.$subject.'</p></a></div>
     </div>';
     }else{  
     echo '<div class="boxpGal">
        <div class="picpGal"><a href="'.$topic.'" title="'.$subject.'" target="_blank"><img src="'.$srcPic.'" width="220" height="146" alt="" /><p>'.$subject.'</p></a></div>
     </div>';
     }
  }
}

ส่วนโค๊ดนี้ ไฟล์เดียวกันครับ แทรกไว้ตรงที่อยากจะแทรกครับ
   echo'<div class="cat_bar">
<h3 class="catbg">สินค้า และ ร้านค้าใหม่ ล่าสุด</h3></div>';
echo''.ssi_pic(16,'ID_TOPIC',1.0).'';

16 คือรูปหรือโพสต์ที่อยากให้โชว์ในหน้าแรกครับ
ส่วน 1.0 .ให้แก้ไขตามคุณ SWOY ที่โพสต์ไว้ก่อนน่ะครับ (ผมยังไม่ได้ลองน่ะครับ ว่า ใช้ได้หรือไม่ครับ

และใน ไฟล์ index.css (ในธีมที่คุณใช้อยู่ครับ) ต่อท้ายเลยครับ
.boxpGal {
  background-color: rgba(255, 255, 255, 0);
  float: left;
  height: 180;
  width: 150px;
  margin: 5px;
}

zeelacul

#9
ขอบคุณในคอมเม้นท์ทั้งหมดที่ช่วยเหลือน่ะครับ เหลืออีกแค่หน่อยครับ  กระดาน มันล้นขอบครับ ต้องแก้ไขตรงไหนครับ ทดสอบแล้ว เป็นเฉพาะ firefox ครับ

ใช่ไฟล์ index.css หรือเปล่าครับ ผมใช้โค๊ดนี้ ในขณะนี้ครับ

.boxpGal {
  background-color: rgba(255, 255, 255, 0);
  float: left;
  height: 155px;
  width: auto;
  margin: 12px;
}

ส่วนไฟล์ ก็ใช้ โค๊ด ด้านบนครับ




Talontour

#10
.boxpGal{
   background-color: #ffffff;
   padding:3px;
   float:left;
   width:174px;
   height:180px;
}
.picpGal{
   padding:2px;
   height:130px;
   overflow:hidden;
   border:1px #CCC dotted;
}


ลองใล่ปรับดูนะครับ  อันนี้ที่ผมปรับ  

จงตั้งใจทำ แล้วผลจะออกมาดีเอง

mosmf

ความรู้ดีๆ ขอบคุณครับ  :wanwan017:
[direct=http://smfmodify.blogspot.com/][/direct]

goodwide


Auto Tech

#13
   ลองนำไปใส่ในเว็บแต่เดิมใช้ smf 2.0.11 ปัจจุบันอับเกรดเป็น 2.0.13
แจ้งเออเรอร์นี้ครับ



 แก้ยังไงหนอ...  

  ลองนำใส่ใน smf 2.0.17 เออเรอร์คล้ายๆ กัน


Auto Tech

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


romance69

อ้างถึงจาก: Auto Tech ใน 01 มีนาคม 2020, 16:31:20
  ใกล้ความจริงแล้ว แต่ว่ากระทู้เร็วๆ นี้ไปต่อด้านข้างภาพ ทำไงจะให้แยกขึ้นบรรทัดใหม่



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

Auto Tech

#16
   ขอบพระคุณท่าน romance69 ที่ชี้แนวทางครับ ไล่หาแล้วไม่เจอครับ มันต่อกันอย่างนั้นเอาจะแทรกโค๊ดอะไร ให้หัวข้อข่าวขึ้นบรรทัดใหม่
เลยจำใจต้องย้ายไปวางต่อท้ายหัวข้อข่าวแทน

  จึงอยากจะนำโค๊ดไปใส่ในมอด Ad Management ซึ่งจะทำให้เราสะดวกมากเลยในการกำหนดจุด
ที่จะดึงภาพมาวาง ไม่รู้จะสามารถทำได้ไหม



  ขอบคุณล่วงหน้าครับ

romance69

อ้างถึงจาก: Auto Tech ใน 08 มีนาคม 2020, 13:49:02
  ขอบพระคุณท่าน romance69 ที่ชี้แนวทางครับ ไล่หาแล้วไม่เจอครับ มันต่อกันอย่างนั้นเอาจะแทรกโค๊ดอะไร ให้หัวข้อข่าวขึ้นบรรทัดใหม่
เลยจำใจต้องย้ายไปวางต่อท้ายหัวข้อข่าวแทน

  จึงอยากจะนำโค๊ดไปใส่ในมอด Ad Management ซึ่งจะทำให้เราสะดวกมากเลยในการกำหนดจุด
ที่จะดึงภาพมาวาง ไม่รู้จะสามารถทำได้ไหม



  ขอบคุณล่วงหน้าครับ


เขียนแยกไฟล์แล้วดึงผ่าน iframe มาแสดงครับ

สร้างไฟล์ใหม่ขึ้นมา แล้ว include 'SSI.php'; ตาม path
เช่นสร้าวไฟล์ new-topic.php

<?php
include 'SSI.php';

โค้ดต่างๆ ...............
?>

เวลาเรียกใช้งานก็ <iframe src="doamin[dot]com/new-topic.php"></iframe> เป็นต้นครับ
ขายปลั๊กอิน Wordpress ตรวจหวยออนไลน์ อัปเดตอัตโนมัติ ราคา 2,500 บาท ใส่โค้ด THAISEO10 รับส่วนลด 10%
รับเขียนเว็บไซต์, รับเขียน Theme wordpress, รับเขียน Plugin wordpress

Auto Tech

#18
   เข้ามาอ่านแล้วก็เงียบหายไป เพราะว่าต้องกลับไปทดลอง บางครั้งมีทบทวนเรื่องภาษา PHP
ลองผิดลองถูกเพื่อจะได้เกิดประสบการณ์ครับ ลองทำตามคำแนะนำกระทู้ด้านบน แต่ไม่มั่นใจ
ทำได้ถูกต้องไหม เพราะว่ามีเออเรอร์ขึ้นครับ

สร้างไฟล์ใหม่ชื่อว่า new-ad.php ใส่โค๊ดตามนี้
<?
 include ('SSI.php');
function findIMG($text){
  preg_match_all('/[img].*?[/img]/i',$text,$page);
  foreach($page as $value)
     $src = substr($value[0],5);
  $src = substr($src,0,-6);
  return($src);
}
function ssi_pic($num_top = 12,$order,$board = array()){
  global $db_prefix, $scripturl, $smcFunc;
  $request = $smcFunc['db_query']('', '
     SELECT t.id_topic,m.body,m.subject
     FROM {db_prefix}messages m,{db_prefix}topics t
     WHERE t.id_first_msg=m.id_msg AND t.id_board IN('. implode(',',$board) .')
     ORDER BY t.'.$order.' DESC
     LIMIT '.$num_top,
     array(
     )
  );
  $posts = array();
  while ($row = $smcFunc['db_fetch_assoc']($request))
  {
     // Build the array.
     $topics[] = array(
        'id' => $row['id_topic'],
        'body' => $row['body'],
        'subject' => $row['subject']
     );
  }
  $smcFunc['db_free_result']($request);
  foreach ($topics as $data){
     $topic = "index.php?topic=".$data['id'];
     $srcPic = findIMG($data['body']);
     $subject = $data['subject'];

   
     echo '<div class="boxpGal">
        <div class="picpGal"><a href="'.$srcPic.'" title="คลิ๊กเพื่อดูภาพเต็ม."><img src="'.$srcPic.'" width="150" alt="" />[/url]</div><center>'.mb_substr($subject,0,20,'UTF-8').'</center>
        <div class="viewAllpic"><a href="'.$topic.'" target="_blank"><font color="#0000FF">อ่านเพิ่มเติม...</font>[/url]</div>  
     </div>';
  }
}
    echo'<div class="cat_bar">
<h3 class="catbg">คู่มือการซ่อม และวายริ่งรถยนต์ ล่าสุด...</h3></div>';
echo''.ssi_pic(6,'ID_TOPIC', array(25,436,656,739)).'';
?>


ส่วนที่เรียกใช้งานแทรกโค๊ด iFrame ประมาณนี้
<iframe src="https://car.auto-nkp.com/new-ad.php"></iframe>

นำไปแทรกในไฟล์ Boardindex.template.php ขึ้นเออเรอร์
syntax error, unexpected '<'

  ทีนี้ไปไม่เป็นเลย วานผู้รู้ชี้แนะครับ ขอบคุณล่วงหน้าครับ

My rocket

เมื่อมีปัญหาฯ
สมาชิกThaiseoboard ไม่เคยทิ้งกันเลยยย
ปลื้มมมมม    :-[
❒¹❴บริการ❵❦
❧①รับยิงโฆษณา Facebook ADS ❴ทุกสาย❵
❒²❴ขาย❵❦❦
❧①Account Facebook ปกติ 1-5+ปี
❧②Account Facebook ADS ที่เคยรันโฆษณา
❧③Account Facebook Business
❥Mrs:Pearl Jiraporn
❥Tell:❍⑥⑤−②⑤❍−⑨①❍⑨
❥IDLine:Pearl_ceo ✠ช่องทางติดต่อหลัก✠