Son mesajlar bölümü yerine son konular bölümü

Started by definitive, December 21, 2005, 08:35:36 AM

Previous topic - Next topic

definitive

son mesajlar bölümünde aynı konuya birden fazla yazılan mesajlar listeleniyor, arka arkaya 10 kez o konuya yazı yazılmışsa bu bölüm hep bu konuyla doluyor, her ayrı konunun sadece son mesajının listelenmesi mümkünmü?

pisdoktor

bence orada mesajlar yerine konular sıralansa daha iyi olur... bunu nasıl yapabiliriz arkadaşlar. ssi.php içerisinde böyle bir özellik var ama onu forumun en altına nasıl implante edebiliriz?
JoomlaTurkiye.net Web Admin - Joomla Support Specialist

Personal site: www.sonerekici.com

forsakenlad

Boardindex.template.php'ye require_once ile SSI'ı çağırıp kolayca ekleyebilirsin ;)
Eren "forsakenlad" Yaşarkurt
SMF Friend & Former Team Member

pisdoktor

JoomlaTurkiye.net Web Admin - Joomla Support Specialist

Personal site: www.sonerekici.com

definitive

ben buldum arkadaşlar
sources klasöründe recent.php dosyasını açın
function getLastPosts yazan yeri bulun, biraz aşağıdaki
bu kodu
AND t.ID_TOPIC = m.ID_TOPIC
bununla değiştirin
AND m.ID_MSG = t.ID_LAST_MSG

denemeden önce dosyanın yedeğini alın, sorumluluk size aittir
ben yaptım çok nefis oldu

Elmacik

definitive,
Olayın mantığını anlayamadım ama çalışıyorsa çok iyi, çok kısa bir çözüm. Teşekkürler.

Bunun uzun bir şekilde Sıkça sorulan sorular başlığında cevabı var. Burada başarısız olanlar oraya baksın.
Home of Elmacik

apache

Quote from: definitive on December 21, 2005, 06:13:09 PM
ben buldum arkadaşlar
sources klasöründe recent.php dosyasını açın
function getLastPosts yazan yeri bulun, biraz aşağıdaki
bu kodu
AND t.ID_TOPIC = m.ID_TOPIC
bununla değiştirin
AND m.ID_MSG = t.ID_LAST_MSG

denemeden önce dosyanın yedeğini alın, sorumluluk size aittir
ben yaptım çok nefis oldu
Hevesle denedim ama hiç bir değişiklik olmadı

Elmacik

Home of Elmacik

definitive

Quote from: kopoto on February 07, 2006, 04:16:36 PM
Quote from: definitive on December 21, 2005, 06:13:09 PM
ben buldum arkadaşlar
sources klasöründe recent.php dosyasını açın
function getLastPosts yazan yeri bulun, biraz aşağıdaki
bu kodu
AND t.ID_TOPIC = m.ID_TOPIC
bununla değiştirin
AND m.ID_MSG = t.ID_LAST_MSG

denemeden önce dosyanın yedeğini alın, sorumluluk size aittir
ben yaptım çok nefis oldu
Hevesle denedim ama hiç bir değişiklik olmadı

ben bunu 1.1 rc1 de yapmıştım ve hala çalışıyor, imzadaki siteye bakabilirsin, senin versiyonun farklıysa olmamış olabilir...

apache

RC2 safblue kullanıyorum.

S.S.S bölümünde anlatılanları uyguladım çalıştı.
Teşekkür ederim Elmacik.Çok iyi oldu bu.
Birileri muhabbete girse habire aynı konu ismi görünüyordu altalta.

KaLpSiz


samil21

#11
denedim gerçekten işe yarıyor.

AND t.ID_TOPIC = m.ID_TOPIC

sayfada bu koddan 3 tane var 3ünüde değişmek gerekiyor

ivan_

#12
Burada anlatmıştım çözümünü daha önce. olmazsa böyle deneyin. bir konuya ne kadar mesaj atılsada sadece son atılan mesaj görünüyor
http://www.simplemachines.org/community/index.php?topic=109130.msg701228#quickreply
Quote from: ivan_ on August 27, 2006, 05:33:50 AM

diyelimki forumunuzda geri sayım oyunu var. Adamın bir tanesi geldi mesaj sayısını yukseltmek için habire mesaj yazıyor.E noluyo TOP 10 'da sadece bu adamın mesajları var.İşte burada tabloda en son mesajın gösterilmesi için şöyle bir düzenleme yapıyoruz. Bu sayede  bir konuya ne kadar mesaj atılsada sadece son atılan mesaj görünür top 10'da
Sources/Recent.php 'yi açın
bu kodu bulun

// !!!SLOW This query is now slow, NEEDS to be fixed.  Maybe break into two?
$request = db_query("
SELECT
m.posterTime, m.subject, m.ID_TOPIC, m.ID_MEMBER, m.ID_MSG,
IFNULL(mem.realName, m.posterName) AS posterName, t.ID_BOARD, b.name AS bName,
LEFT(m.body, 384) AS body, m.smileysEnabled
FROM ({$db_prefix}messages AS m, {$db_prefix}topics AS t, {$db_prefix}boards AS b)
LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER = m.ID_MEMBER)
WHERE m.ID_MSG >= " . max(0, $modSettings['maxMsgID'] - 20 * $showlatestcount) . "
AND t.ID_TOPIC = m.ID_TOPIC
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]
ORDER BY m.ID_MSG DESC
LIMIT $showlatestcount", __FILE__, __LINE__);
$posts = array();
if (!empty($modSettings['MemberColorRecentLastPost']))
$MemberColor_ID_MEMBER = array();
while ($row = mysql_fetch_assoc($request))
{


Bununla değiştirin

// !!!SLOW This query is now slow, NEEDS to be fixed.  Maybe break into two?
$request = db_query("
SELECT
m.posterTime, m.subject, m.ID_TOPIC, m.ID_MEMBER, m.ID_MSG,
IFNULL(mem.realName, m.posterName) AS posterName, t.ID_BOARD, b.name AS bName,
LEFT(m.body, 384) AS body, m.smileysEnabled
FROM ({$db_prefix}messages AS m, {$db_prefix}topics AS t, {$db_prefix}boards AS b)
LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER = m.ID_MEMBER)
WHERE m.ID_MSG >= " . max(0, $modSettings['maxMsgID'] - 20 * $showlatestcount) . "
AND m.ID_MSG = t.ID_LAST_MSG
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]
ORDER BY m.ID_MSG DESC
LIMIT $showlatestcount", __FILE__, __LINE__);
$posts = array();
if (!empty($modSettings['MemberColorRecentLastPost']))
$MemberColor_ID_MEMBER = array();
while ($row = mysql_fetch_assoc($request))
{

nefret119

Quote from: samil21 on November 07, 2006, 09:16:44 PM
denedim gerçekten işe yarıyor.

AND t.ID_TOPIC = m.ID_TOPIC

sayfada bu koddan 3 tane var 3ünüde değişmek gerekiyor

evet bu işe yarıyor ... çok sağolun paylaşım için ....

PiRaNa

Quote from: definitive on December 21, 2005, 06:13:09 PM
ben buldum arkadaşlar
sources klasöründe recent.php dosyasını açın
function getLastPosts yazan yeri bulun, biraz aşağıdaki
bu kodu
AND t.ID_TOPIC = m.ID_TOPIC
bununla değiştirin
AND m.ID_MSG = t.ID_LAST_MSG

denemeden önce dosyanın yedeğini alın, sorumluluk size aittir
ben yaptım çok nefis oldu
Quote from: samil21 on November 07, 2006, 09:16:44 PM
denedim gerçekten işe yarıyor.

AND t.ID_TOPIC = m.ID_TOPIC

sayfada bu koddan 3 tane var 3ünüde değişmek gerekiyor


bu iki mesajı gönderen arkadaşlardan Allah razı olsun. hakkaten çok işe yaradı. bunu deneyin, oluyor ..

definitive

Arkadaşlar 1.1.3 ü yükledim, aynı işlemi uyguladım ve hala çalışıyor, ayrıca dosya içerisinde sadece function getLastPosts yazan yerin altındaki kısmı değiştirmek yeterli oluyor, diğerlerini değiştirmeye gerek yok.
Yani arama yaparken function getLastPosts diye arama yapın ve biraz altındaki:

AND t.ID_TOPIC = m.ID_TOPIC
yazan yeri
AND m.ID_MSG = t.ID_LAST_MSG
bununla değiştirin. Bu kadar basit.

Advertisement: