Öncelikle selamlar, php bilgim yok denecek kadar az, isteğimle hazıra kaçmış olacağım ama yardım edenler de etmeyenler de sağolsun. MKPortal ve SMF kullanıyorum. MKPortalda php blok olarak, SMF forumda son mesajları görüntüleyen bir blok edinmiştim bir zaman. Üzerinde karınca kararınca editleme yaptım. Şimdi yapmak istediğim pek pürüzlü birşey değil yani mevcut haliyle hata yok sanırım ama yine de bir istek.
$$db_prefix = DBPREFIX;
$sql = "
SELECT
m.posterTime AS lastPosterTime, m.ID_TOPIC, m.ID_MSG, m.ID_MEMBER, m.smileysEnabled,
m2.ID_MEMBER AS ID_FIRST_MEMBER, m2.subject, m2.posterTime, m2.body,
t.ID_BOARD, t.ID_LAST_MSG, t.numReplies, t.numViews, b.name AS bName,
IFNULL(mem2.realName, m2.posterName) AS posterName, t.ID_FIRST_MSG,
IFNULL(mem.realName, m.posterName) AS lastPosterName, t.ID_LAST_MSG
FROM ({$db_prefix}messages AS m, {$db_prefix}messages AS m2, {$db_prefix}topics AS t, {$db_prefix}boards AS b)
LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER = m.ID_MEMBER)
LEFT JOIN {$db_prefix}members AS mem2 ON (mem2.ID_MEMBER = m2.ID_MEMBER)
WHERE m2.ID_MSG = t.ID_FIRST_MSG
AND m.ID_MSG = t.ID_LAST_MSG
AND t.ID_TOPIC = m.ID_TOPIC
AND m.ID_MSG >= " . max(0, $modSettings['maxMsgID'] - 20 * $limit) . "
AND b.ID_BOARD = t.ID_BOARD" . (!empty($modSettings['recycle_enable']) && $modSettings['recycle_board'] > 0 ? "
AND b.ID_BOARD != $modSettings[recycle_board]" : '') . "
AND $user_info[query_see_board]
GROUP BY m.ID_TOPIC
ORDER BY t.ID_LAST_MSG DESC
LIMIT $limit";
$DB->query($sql);
while ( $post = $DB->fetch_row() ) {
$starter = $post['posterName'];
$lastname = $post['lastPosterName'];
$lastid = $post['ID_MEMBER'];
$last_postid = $post['ID_LAST_MSG'];
$posts = $post['numReplies'];
$views = $post['numViews'];
$tid = $post['ID_TOPIC'];
$title = $post['subject'];
$title = strip_tags($post['subject']);
$title = str_replace( "!" , "!" ,$title );
$title = str_replace( """, "\"", $title );
if (strlen($title) > $cuttitle) {
$title = substr($title,0,$cuttitle);
$title .= "...";
}
$prepost = $post['body'];
$prepost = strip_tags($post['body']);
$prepost = str_replace( "!" , "!" , $prepost );
$prepost = str_replace( """, "\"", $prepost );
if (strlen($prepost) > $cutpost) {
$prepost = substr( $prepost,0,($cutpost - 3) ) . "...";
$prepost = preg_replace( '/&(#(\d+;?)?)?(\.\.\.)?$/', '...',$prepost );
}
$startdate = $mklib->create_date($post['posterTime'],$startformat);
$lastdate = $mklib->create_date($post['lastPosterTime'], $lastformat);
if ($showprev == 1) {
$preview = "<tr><td style=\"padding: 2px 20px\" class=\"modulecell\" colspan=\"5\">$prepost</td></tr>";
}
else
$preview = "";
bu sekilde uzun yazdığım için kusura bakmayın ama tam olarak neyin öncelikli olarak gerekli olduğunu seçemediğim için kısaltma ve renklendirme yapamazdım. Yukardaki kodlar daha bayağı devam ediyor ve tanımlamalar bittikten sonra da html tablo kısmı başlıyor. Yardım görürsem şayet yapmak istediğim şu;
Konu Başlığı, Son Mesaj, Gönderen, Tarih, Okunma, Cevap şeklinde 6 sütun var blokta, Gönderen kısmının aşağısında son mesajı gönderenin adı ve profiline bir link bağlanıyor, kullanıcının online listesindeki rengini buraya entegre ederek sıralamadaki tek renk monotonluktan çıkarmak ve görüntüyü biraz daha zenginleştirmek istiyorum. Mesajları tahminimce veritabanındaki smf_messages veya smf_topics tablosundan alıyor, bu tablolarda gönderen üyenin ID numarası mevcut zaten, ama kullanıcı adı geçiyor mu bu tablolarda dikkat etmedim, geçiyorsa da geçmiyorsa da smf_members tablosuna bir atıf var her halukarda. Sizlerinde teveccühüyle, smf_membergroups tablosuna nasıl bir bağlantı kurup da ilgili üyelerin online listesindeki renklerini döngünün içine hatasız bir şekilde katabiliriz?
smf_messages ve
smf_members tablolarında
ID_MEMBER değişkeni var ama
onlineColor değişkeni yok,
smf_members ve
smf_membergroupstablolarında
ID_GROUP değişkeni var ve bundan da hareketle
smf_membergroups tablosunda
onlineColor değişkeni var.
$starter = $post['posterName'];
$lastname = $post['lastPosterName'];
gibi bir tanımlamayı
$lastnamecolor = $post['color'];
sekline yapıp ilgili php dosyasının devamındaki html kodlarının $lastname yazan kısmındaki renk style ına eklemeyi düşünüyorum. İnşallah yardım edebilecek olanların da kafasını karıştırmamışımdır.
SiteBlok PHP dosyası