การสุ่มภาพไฟล์แนบมาโชว์ที่หน้าแรกทำยังไงครับ SMF

เริ่มโดย jabkitticha, 15 กันยายน 2013, 05:34:33

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

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

jabkitticha

การสุ่มภาพไฟล์แนบมาโชว์ที่หน้าแรกทำยังไงครับ SMF

แบบเว็บ http://www.koratphotoclub.net/ ครับ

ภาพตัวอย่าง

*รับถ่ายภาพรับปริญา งานแต่ง งานบวช 088-231-5003

nociouz


jabkitticha

อ้างถึงจาก: nociouz ใน 15 กันยายน 2013, 10:14:52
google > random image smf

ผมอยากได้ ไปโชว์ที่ หน้าเว็บหลัก อะครับ อันที่ท่านให้มาเคยลองแล้วครับ มัน ตั้งค่าไรไม่ได้เลย และมันโชว์ในบอร์ดครับ
*รับถ่ายภาพรับปริญา งานแต่ง งานบวช 088-231-5003

jabkitticha

*รับถ่ายภาพรับปริญา งานแต่ง งานบวช 088-231-5003

jabkitticha

*รับถ่ายภาพรับปริญา งานแต่ง งานบวช 088-231-5003

SWOY

ปกติ SMF มันจะมีไฟล์ SSI.php ซึ่งรวมฟังชั่นไว้ในนั้นค่อนข้างเยอะครับ หนึ่งในนั้น มี ฟังชั้นที่ชื่อว่า ssi_recentAttachments อยู่ ซึ่งจะแสดงไฟล์แนบล่าสุดครับ เราสามารถปรับตัวนี้มาใช้ได้เลย
วิธีการใช้ก็แค่ include ไฟล์ SSI.php แล้วเรียกใช้ฟังชั่นได้เลย

แต่ถ้าหากไม่ซีเรียสเรื่อง permission ของแต่ละบอร์ดก็เขียนบ้านๆ แบบนี้ก็ได้ครับ
เขียนในไฟล์ SSI.php ก็ได้ครับง่ายดี จะได้ประมาณว่า

<?php
function 
AttRAND($num 1) {
global $smcFunc$context$modSettings$scripturl$txt$settings;
$request $smcFunc['db_query']('''
SELECT m.id_topic, m.subject, att.id_attach, att.id_thumb, att.id_msg
FROM {db_prefix}attachments AS att
INNER JOIN {db_prefix}messages AS m ON (att.id_msg = m.id_msg)
WHERE att.id_thumb = 0
ORDER BY RAND()
LIMIT {int:num}'
,
array(
'num' => $num,
)
);
$attachments = array();
while ($row $smcFunc['db_fetch_assoc']($request)){
$attachments[] = array(
'id' => $row['id_attach'],
'src' => $scripturl '?action=dlattach;topic=' $row['id_topic'] . '.0;attach=' $row['id_attach']. ';image',
'img' => '<img src="'$scripturl '?action=dlattach;topic=' $row['id_topic'] . '.0;attach=' $row['id_attach']. ';image" alt="" />',
'href' => $scripturl '?topic=' $row['id_topic'],
'link' => '<a href="'$scripturl '?topic=' $row['id_topic'] .'" target="_blank">' $row['subject'] . '</a>'
);
}
return $attachments;
}
?>


เวลาใช้งานก็ เหมือนที่บอกข้างต้น

<?php
include "SSI.php"// path SSI.php
$att AttRAND(2);  // 2 Num Attachments
print_r($att);
?>


ที่เหลือก็แล้วแต่การวาง css แล้วล่ะครับ
:wanwan003:
[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

jabkitticha

อ้างถึงจาก: SWOY ใน 16 กันยายน 2013, 14:28:30
ปกติ SMF มันจะมีไฟล์ SSI.php ซึ่งรวมฟังชั่นไว้ในนั้นค่อนข้างเยอะครับ หนึ่งในนั้น มี ฟังชั้นที่ชื่อว่า ssi_recentAttachments อยู่ ซึ่งจะแสดงไฟล์แนบล่าสุดครับ เราสามารถปรับตัวนี้มาใช้ได้เลย
วิธีการใช้ก็แค่ include ไฟล์ SSI.php แล้วเรียกใช้ฟังชั่นได้เลย

แต่ถ้าหากไม่ซีเรียสเรื่อง permission ของแต่ละบอร์ดก็เขียนบ้านๆ แบบนี้ก็ได้ครับ
เขียนในไฟล์ SSI.php ก็ได้ครับง่ายดี จะได้ประมาณว่า

<?php
function 
AttRAND($num 1) {
global $smcFunc$context$modSettings$scripturl$txt$settings;
$request $smcFunc['db_query']('''
SELECT m.id_topic, m.subject, att.id_attach, att.id_thumb, att.id_msg
FROM {db_prefix}attachments AS att
INNER JOIN {db_prefix}messages AS m ON (att.id_msg = m.id_msg)
WHERE att.id_thumb = 0
ORDER BY RAND()
LIMIT {int:num}'
,
array(
'num' => $num,
)
);
$attachments = array();
while ($row $smcFunc['db_fetch_assoc']($request)){
$attachments[] = array(
'id' => $row['id_attach'],
'src' => $scripturl '?action=dlattach;topic=' $row['id_topic'] . '.0;attach=' $row['id_attach']. ';image',
'img' => '<img src="'$scripturl '?action=dlattach;topic=' $row['id_topic'] . '.0;attach=' $row['id_attach']. ';image" alt="" />',
'href' => $scripturl '?topic=' $row['id_topic'],
'link' => '<a href="'$scripturl '?topic=' $row['id_topic'] .'" target="_blank">' $row['subject'] . '</a>'
);
}
return $attachments;
}
?>


เวลาใช้งานก็ เหมือนที่บอกข้างต้น

<?php
include "SSI.php"// path SSI.php
$att AttRAND(2);  // 2 Num Attachments
print_r($att);
?>


ที่เหลือก็แล้วแต่การวาง css แล้วล่ะครับ
:wanwan003:

ขอบคุณครับ ผมไปลองดัดแปลงดูแล้วนะครับ ขอโทดที่ไม่ได้บอกตั้งแต่แรกครับ ถ้าผมจะกำหนด ด้วยเช่นว่าให้ดึงมาจาก บอร์ด id 5,6,7 เท่านั้นจะทำได้มั้ยครับ และ ให้ มันแสดง เป็นชื่อ คนโพสต์แทน ชื่อหัวข้อได้มั้ยครับ ห้าๆ อยากตัด คำว่า อเลย์ ออกด้วยอะครับ ช่วยแก้ให้หน่อยนะครับ



นี่โค๊ดครับ

function AttRAND($num = 1) {
global $smcFunc, $context, $modSettings, $scripturl, $txt, $settings;
$request = $smcFunc['db_query']('', '
SELECT m.id_topic, m.subject, att.id_attach, att.id_thumb, att.id_msg
FROM {db_prefix}attachments AS att
INNER JOIN {db_prefix}messages AS m ON (att.id_msg = m.id_msg)
WHERE att.id_thumb = 0
ORDER BY RAND()
LIMIT {int:num}',
array(
'num' => $num,
                                'poster_name' => $row['poster_name'],
)
);
$attachments = array();
while ($row = $smcFunc['db_fetch_assoc']($request)){
$attachments[] = array(

'<a href="'. $scripturl . '?topic=' . $row['id_topic'] .'"

target="_blank">'. '<img src="'. $scripturl . '?action=dlattach;topic=' . $row['id_topic'] .

'.0;attach=' . $row['id_attach']. ';image" width="300" alt="" />'.'</a>',


'<a href="'. $scripturl . '?topic=' . $row['id_topic'] .'"

target="_blank">'. $row['subject'] . '</a>'
);
}
return $attachments;
}
*รับถ่ายภาพรับปริญา งานแต่ง งานบวช 088-231-5003

jabkitticha

*รับถ่ายภาพรับปริญา งานแต่ง งานบวช 088-231-5003