[SMF]วิธีดึงภาพแรกในกระทู้

เริ่มโดย ganginwpop, 08 เมษายน 2011, 22:50:42

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

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

ganginwpop

จริงๆ เคยตอบไว้ใน http://www.thaiseoboard.com/index.php/topic,185845.msg2534640.html#msg2534640 นี้นะครับ
แต่พอดีท่าน หนุ่มบ้านโคก PM มาขอวิธีของ SMF 2.0 ผมเลยมานั่งแก้
แต่ไหนๆก็ไหนๆแล้วเลยเอามาให้ดูทั้ง 1.1 กับ 2.0 เลยนะครับ

**แก้ไข Code จากกระทู้นู้นด้วยนะครับ มีบัคนิดหน่อย  :wanwan017:

ตัวอย่างนี้ผมใช้กับ SSI นะครับ
โดยผมเขียน function เพิ่มเข้าไปนะครับ

findIMG() สำหรับหา tag [img]
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);
}

อธิบายตัวแปล :
$text = ข้อความที่มี Tag [img] อยู่เพื่อดึงภาพ


ssi_pic() สำหรับ SMF 1.1.X
function ssi_pic($num_top = 12,$order,$board)
{
global $context, $settings, $db_prefix, $txt, $scripturl, $ID_MEMBER, $user_info, $modSettings;
// Find boards with lots of posts.
$request = db_query("
SELECT t.ID_TOPIC,m.body,m.subject
FROM ({$db_prefix}topics as t , {$db_prefix}messages as m)
WHERE t.ID_FIRST_MSG=m.ID_MSG AND t.ID_BOARD=$board
ORDER BY t.".$order." DESC
LIMIT $num_top", __FILE__, __LINE__);
$topics = array();
while ($row = mysql_fetch_assoc($request))
{
$topics[] = array(
'id' => $row['ID_TOPIC'],
'body' => $row['body'],
'subject' => $row['subject']
);
}
mysql_free_result($request);
foreach ($topics as $data){
$topic = "forum/?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="" /></a></div><center>'.mb_substr($subject,0,25,'UTF-8').'</center>
<div class="viewAllpic"><a href="'.$topic.'" target="_blank">More info</a></div>  
</div>';
}
}



ssi_pic() สำหรับ SMF 2.0 RCX
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 = "forum/?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="" /></a></div><center>'.mb_substr($subject,0,25,'UTF-8').'</center>
<div class="viewAllpic"><a href="'.$topic.'" target="_blank">More info</a></div>   
</div>';
}
}


อธิบายตัวแปล :
$num_top = จำนวนที่ต้องการให้แสดง หากไม่ใส่จะเป็น 12
$order = เรียงโดยอะไร (มากไปน้อย)
$board = ดึงมากจากบอร์ดไหน

ตัวอย่างการใช้งาน
<? ssi_pic(20,'ID_TOPIC',4) ?>
รับโม ปรับแต่ง ติดตั้ง แก้ไข [direct=http://www.simpleyoursite.com]บอร์ด SMF[/direct] ผลงาน [direct=http://www.simpleyoursite.com/portfolio.html]คลิกที่นี่[/direct]

อ่านการ์ตูนออนไลน์ ที่ MangaOnlines.com
Auto Pic Post to SMF from Mthai DEMO : MangaOnlines.com

[direct=http://www.simpleyoursite.com]รับทำเว็บไซต์เชียงใหม่[/direct] | [direct=http://www.simpleyoursite.com]รับทำเว็บไซต์[/direct]

ganginwpop

#1
ผลที่ได้ก็จะเป็นดังนี้ครับ (จัด html + css เองนะครับ ^^)



เอาไปเผยแพร่ได้นะครับ
แต่ยังไงก็ให้ credit ด้วยละกันเด้อ
จาก : http://simpleyoursite.com
รับโม ปรับแต่ง ติดตั้ง แก้ไข [direct=http://www.simpleyoursite.com]บอร์ด SMF[/direct] ผลงาน [direct=http://www.simpleyoursite.com/portfolio.html]คลิกที่นี่[/direct]

อ่านการ์ตูนออนไลน์ ที่ MangaOnlines.com
Auto Pic Post to SMF from Mthai DEMO : MangaOnlines.com

[direct=http://www.simpleyoursite.com]รับทำเว็บไซต์เชียงใหม่[/direct] | [direct=http://www.simpleyoursite.com]รับทำเว็บไซต์[/direct]

Hanuman


bigbossbear

[direct=http://goo.gl/zNCxI]★★ HOSTGATOR ลด 25%ทุกแพลน ใช้โค้ด 25offsavegator ด่วน!! คลิกเลย ★★
[/direct]

aebb

สุดยอดครับขอนำไปใช้ด้วยคน
[direct=http://www.chiangraimedia.com]ทำเว็บเชียงราย[/direct] [direct=http://www.elephantstepschiangrai.com]Elephant Chiangrai[/direct]
[direct=http://www.thai-apache-guesthouse.com]Guesthouse Chiangrai[/direct]
[direct=http://www.chiangraiappletour.com/]เชียงตุงเมืองลา[/direct]
[direct=http://www.chiangraiappletour.com/]สิบสองปันนา[/direct]

ganginwpop

จริงๆก็ยังมีปัญหาอยู่ครับ
แต่ด้วยปัญญาอันน้อยนิดของผม

แก้บ่อได้  :wanwan031:
ยังไงเจอบัคก็รบกวนมาบอกกันด้วยนะครับ
:wanwan017: :wanwan017:
รับโม ปรับแต่ง ติดตั้ง แก้ไข [direct=http://www.simpleyoursite.com]บอร์ด SMF[/direct] ผลงาน [direct=http://www.simpleyoursite.com/portfolio.html]คลิกที่นี่[/direct]

อ่านการ์ตูนออนไลน์ ที่ MangaOnlines.com
Auto Pic Post to SMF from Mthai DEMO : MangaOnlines.com

[direct=http://www.simpleyoursite.com]รับทำเว็บไซต์เชียงใหม่[/direct] | [direct=http://www.simpleyoursite.com]รับทำเว็บไซต์[/direct]

MaMa.Killer

#6
ช่วยทีครับ  :P

กระทู้ที่ไม่มีรูปมันก็ดึงมาอ่ะครับ
findIMG() ใส่ยังไงครับ
ขอบคุณครับ
รับโมฯ & แก้ไข และสร้าง Theme SMF, Wordpress และงานออกแบบ
Add Line Id : sodeclub

ganginwpop

อันไหนไม่มีรูปให้ืำงี้ครับ

หา
$srcPic = findIMG($data['body']);
เพิ่ม
if(empty($srcPic))
$srcPic = 'http://yourdomain/logo.jpg';
รับโม ปรับแต่ง ติดตั้ง แก้ไข [direct=http://www.simpleyoursite.com]บอร์ด SMF[/direct] ผลงาน [direct=http://www.simpleyoursite.com/portfolio.html]คลิกที่นี่[/direct]

อ่านการ์ตูนออนไลน์ ที่ MangaOnlines.com
Auto Pic Post to SMF from Mthai DEMO : MangaOnlines.com

[direct=http://www.simpleyoursite.com]รับทำเว็บไซต์เชียงใหม่[/direct] | [direct=http://www.simpleyoursite.com]รับทำเว็บไซต์[/direct]

MaMa.Killer

#8
^
^
^
โอเคครับ ขอบคุณครับ

แต่ขอถามเพิ่มหายสงสัย ถ้าในกรณีที่เราต้องการใช้มันขึ้นตาม  Tag img จะเอา findIMG() ไปใส่ และใช้ยังไงครับ  :P
รับโมฯ & แก้ไข และสร้าง Theme SMF, Wordpress และงานออกแบบ
Add Line Id : sodeclub

ganginwpop

#9
ยังไงครับไม่เข้าใจ
คือ findIMG() ที่ผมเขียนไว้มันจะดึง เอา url ใน [img]url[/img] มาอะครับ
รับโม ปรับแต่ง ติดตั้ง แก้ไข [direct=http://www.simpleyoursite.com]บอร์ด SMF[/direct] ผลงาน [direct=http://www.simpleyoursite.com/portfolio.html]คลิกที่นี่[/direct]

อ่านการ์ตูนออนไลน์ ที่ MangaOnlines.com
Auto Pic Post to SMF from Mthai DEMO : MangaOnlines.com

[direct=http://www.simpleyoursite.com]รับทำเว็บไซต์เชียงใหม่[/direct] | [direct=http://www.simpleyoursite.com]รับทำเว็บไซต์[/direct]

MaMa.Killer

รับโมฯ & แก้ไข และสร้าง Theme SMF, Wordpress และงานออกแบบ
Add Line Id : sodeclub

thaizeal

อย่างนี้ต้องบุ๊คมาร์ค :'( ขอบคุณครับ

chanun

มีประโยชน์มากครับ เดียวเอาไว้ประยุกต์ใช้กับอย่างอื่น พอดีไม่ได้ใช้ smf :-[


ซื้อเครื่องเล่นเกมคุณภาพและเช็คราคา PS4 PS3 PSP XBOX WII 3DS ได้ที่นี้
[direct=http://www.pspinw.com]psp ราคา[/direct]

kamjam


หนุ่มบ้านโคก

มันจะขึ้นรูปเฉพาะในกรณีที่
โค๊ด:
[img]xxxx[/img]แบบนี้เท่านั้น

แต่ถ้า
โค๊ด:
[img width=900 height=675]xxxxxx[/img]แบบนี้รูปจะไม่ขึ้นทันที

จึงอยากจะถามวีธีเขียน preg_match_all('/\[img \].*?\[\/img\]/i',$text,$page); เจ้าตัวนี้ให้มันแสดงรูปแบบที่ 2 ได้อะครับ
พอจะมีใครช่วยได้บ้างมั้ย
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);
}

แก้ตรงไหนบ้าง :P

หนุ่มบ้านโคก

ได้แล้วครับพี่ หุหุ มั่ว ๆๆๆ
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);}
}

เพิ่มเติมกันเอาเองน่ะ

ganginwpop

รับโม ปรับแต่ง ติดตั้ง แก้ไข [direct=http://www.simpleyoursite.com]บอร์ด SMF[/direct] ผลงาน [direct=http://www.simpleyoursite.com/portfolio.html]คลิกที่นี่[/direct]

อ่านการ์ตูนออนไลน์ ที่ MangaOnlines.com
Auto Pic Post to SMF from Mthai DEMO : MangaOnlines.com

[direct=http://www.simpleyoursite.com]รับทำเว็บไซต์เชียงใหม่[/direct] | [direct=http://www.simpleyoursite.com]รับทำเว็บไซต์[/direct]


ganginwpop

ไม่ได้ลองครับ
Bookmark เก็บไว้ เฉยๆ

พอดีไม่มีบอร์ดให้ลองมือ  :wanwan004:
รับโม ปรับแต่ง ติดตั้ง แก้ไข [direct=http://www.simpleyoursite.com]บอร์ด SMF[/direct] ผลงาน [direct=http://www.simpleyoursite.com/portfolio.html]คลิกที่นี่[/direct]

อ่านการ์ตูนออนไลน์ ที่ MangaOnlines.com
Auto Pic Post to SMF from Mthai DEMO : MangaOnlines.com

[direct=http://www.simpleyoursite.com]รับทำเว็บไซต์เชียงใหม่[/direct] | [direct=http://www.simpleyoursite.com]รับทำเว็บไซต์[/direct]

praduk