4 марта 2011 года - выложен
вариант мода с кешированием (значительно снижает нагрузку на сервер, если вы используете вывод сообщений с форума на несколько страниц своего сайта). Там же есть и пояснения.
Файл перезалит 13.09.2009! Рекомендую заменить, подробности
тут!
2B пишет:К сожалению, в этой только длина заголовков регулируется. А где можно найти вариант с одним последним сообщением?

Цепляю свой вариант. Когда-то давно переделал уже готовый код от exBB под FM beta. Внутри есть комментарии к настройкам, разобраться думаю будет не сложно. У меня этот файл лежит в папке с форумом.
Там нужно настроить:
CODE:$home_path = путь к папке с форумом, вида /home/etc... или вида W:/home/etc... если развернуть под виндами локально (допустим в Денвере)
$url = урл-адрес форума
Дальше все понятно, настраивается количество сообщений, символов в сообщении и пр.
И в самом скрипте настраивается html-код выводимых ссылок. См. строку
CODE:$allname .= "<a href=\"".$url."topic.php?forum=".$forumid."&topic=".$topicid."&postid=".$postkey."#".$postkey."\" title=\"".$s['name']."\">".$topicname.$posts."</a>\n";
Ссылку можно произвольно менять под свой код (дизайн).
Добавлено 5 ноября.
Если нужно выводить
автора сообщения, то ищем строку:
CODE:$temp_arr[$k]['posts'] = $alltopic[$topic_id]['posts'];
после нее вставляем:
CODE:$temp_arr[$k]['poster'] = $alltopic[$topic_id]['poster'];
Дальше ищем:
CODE:$topicid = $s['topic_id'];
после нее вставляем:
CODE:$poster = $s['poster'];
Далее переменную
$poster вставляем туда, где нужно. В моем примере:
CODE:$allname .= "<a href=\"".$url."topic.php?forum=".$forumid."&topic=".$topicid."&postid=".$postkey."#".$postkey."\" title=\"".$s['name']."\">".$topicname.$posts.[b]" - ".$poster.[/b]"</a>\n";
С датой (и временем) чуть сложнее, нужно unix формат преобразовать в "человеческий" да еще выводить с учетом часового пояса. А пользователь может быть и не залогинен... Вобщем, гляну, красиво что придумаю - сообщу.
Как работает скрипт, можно глянуть
тут. Справа вверху есть "
:: Сообщения на Форуме ::"
Дополнение от 5 марта 2010 года:
Если ссылки на ваш сайт нужно выводить не в кодировке windows-1251, а utf-8, а функции
mb_convert_encoding() и
iconv(), хотя и должны работать на хостингах с php 4.5 и выше, но часто не работают, предлагаю использовать собственную функцию перекодировки из windows-1251 в utf-8:
CODE:function CP1251toUTF8($string){
$out = '';
for ($i = 0; $i<strlen($string); ++$i){
$ch = ord($string{$i});
if ($ch < 0x80) $out .= chr($ch);
else
if ($ch >= 0xC0)
if ($ch < 0xF0)
$out .= "\xD0".chr(0x90 + $ch - 0xC0); // ю-ъ, Ю-О (A-YA, a-p)
else $out .= "\xD1".chr(0x80 + $ch - 0xF0); // П-Ъ (r-ya)
else
switch($ch){
case 0xA8: $out .= "\xD0\x81"; break; // YO
case 0xB8: $out .= "\xD1\x91"; break; // yo
// belorussain and ukrainian
case 0xA1: $out .= "\xD0\x8E"; break; // ║ (U)
case 0xA2: $out .= "\xD1\x9E"; break; // ╒ (u)
case 0xAA: $out .= "\xD0\x84"; break; // ╙ (e)
case 0xAF: $out .= "\xD0\x87"; break; // ╞ (I..)
case 0xB2: $out .= "\xD0\x86"; break; // I (I)
case 0xB3: $out .= "\xD1\x96"; break; // i (i)
case 0xBA: $out .= "\xD1\x94"; break; // ╨ (e)
case 0xBF: $out .= "\xD1\x97"; break; // № (i..)
}
}
return $out;
}
Функцию нужно вставить сразу после строки:
CODE:#XXXXXXXXXXXX FUNCTIONS XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Тогда строку вывода нужно изменить с:
на
CODE:echo CP1251toUTF8($allname);