yura3d |
Отправлено: 28 марта 2009 — 09:57
|
ExBB Team ExBB Developer ExBB Mods Author
Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009
Откуда: Минск, Беларусь
Репутация: 353
|
2B пишет:К сожалению, в этой только длина заголовков регулируется. А где можно найти вариант с одним последним сообщением?
Вы бы подробнее описали, что за вариант с последним сообщением, а то что-то не очень понятно
mastersound пишет:каким образом можно повлиять на шрифты в выводимых сообщениях?
на результат можно посмотреть barabass.net/index.php
Применить к выводимым ссылкам CSS-стиль:
CODE:<span class="last_topics"><?=$exbb_last_topics->last?></span>
Только помните, что стиль должен содержать описание тега <a>:
CODE:.last_topics a {
Здесь описание вида ссылки
}
.last_topics a:hover {
А здесь описание того, как будут выглядеть ссылки при наведении на них курсора
}
А вообще данный вопрос относится больше к веб-дизайну, нежели к данному моду |
|
|
|
Отправлено: 28 марта 2009 — 10:46
|
Покинул форум
Сообщений всего: 0
Дата рег-ции: N/A
Репутация: 0
|
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);
(Отредактировано автором: 4 марта 2011 — 02:21) |
|
|
yura3d |
Отправлено: 5 апреля 2009 — 15:05
|
ExBB Team ExBB Developer ExBB Mods Author
Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009
Откуда: Минск, Беларусь
Репутация: 353
|
DarthSemafor пишет:У меня такой вопрос: установил все по инструкции, ссылки появляются, но в обратной последовательности, т.е. самая последняя в списке тема - в ней самое последнее сообщение и список тем странно обновляется: если появляется новая тема с последним сообщением, то она встает в конец списка и не сдвигает весь список на одну позицию, а просто затирает ту, которая стояла там, таким образом получается, что меняется всего одна последняя позиция
Мод берёт по одной ссылке на последнюю тему от каждого раздела (т.е. фактически дублируется колонка Обновление в списке разделов). Если Вам нужно выводить последние темы по дате, а не по разделам, то Вам больше подойдёт мод, который выложил Zeg выше |
|
|
|
Отправлено: 13 апреля 2009 — 21:05
|
Покинул форум
Сообщений всего: 0
Дата рег-ции: N/A
Репутация: 0
|
По посту выше: т.к. вопросы по добавлению title возникают (не каждый силен в php), то отпишу тут. Строку, которая генерит ссылку (скрипт и более подробное описание) лучше изменить с
Цитата:$allname .= "<tr><td height=15><a class=\"menuR\" href=\"".$url."topic.php?forum=".$forumid."&topic=".$topicid."&postid=".$postkey."#".$postkey."\"><img src=\"images/strl_r.gif\" border=0 width=12 hight=7>".$topicname.$posts."</a></td></tr>\n";
на
Цитата:$allname .= "<tr><td height=15><a class=\"menuR\" href=\"".$url."topic.php?forum=".$forumid."&topic=".$topicid."&postid=".$postkey."#".$postkey."\" title=\"".$s['name']."\"><img src=\"images/strl_r.gif\" border=0 width=12 hight=7>".$topicname.$posts."</a></td></tr>\n"; (Отредактировано автором: 13 апреля 2009 — 21:06) |
|
|
yura3d |
Отправлено: 18 апреля 2009 — 12:48
|
ExBB Team ExBB Developer ExBB Mods Author
Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009
Откуда: Минск, Беларусь
Репутация: 353
|
Senc пишет:var $path = '/forum/';
Правильно будет так:
CODE:var $path = 'forum/';
Senc пишет:по идее зайдя на эту страницу я должен видеть последние сообщения своего форума однако она не открывается пока не убираю строку require_once...Подскажите плиз
Приведите ссылку на страницу, на которой наблюдается проблема |
|
|
Senc |
Отправлено: 19 апреля 2009 — 11:00
|
Junior Member
Покинул форум
Сообщений всего: 65
Дата рег-ции: Апр. 2009
Репутация: 1
|
Спасибки! Сейчас темы выводятся, но ссылки на них немного"кривые"
(ссылку убрал, так как уже не кажет)
содержимое файла /op.php
Спойлер (Отобразить)CODE:<?php
require_once('forum/exbb_last_topics.php');
?>
<html>
<head>
<title>ExBB Community :: Последние темы форума</title>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
</head>
<body style="font-family: verdana, arial, helvetica, sans-seirf; font-size: 12px;">
<b>Сайт находится на стадии разработки, поддержка ExBB осуществляется на <a href="http://exbb.info/community/">форуме</a></b><br><br>
<b><a href="http://exbb.info/community/topic.php?forum=2&topic=1">Скачать последнюю версию ExBB FM 1.0 RC1</a></b><br><br>
<b>Модификации (моды), дополнения, темы оформления (скины, стили), а также локализации (переводы) для ExBB Вы найдёте
<a href="http://exbb.info/community/?c=2">здесь</a></b><br><br>
<b>Последние темы форума </b><br>
[color=red]<?=$exbb_last_topics->last?>[/color]
</body>
</html>
Содержимое файла exbb_last_topics.php
Спойлер (Отобразить)CODE:<?php
/*
Last Topics Mod for ExBB FM 1.0 RC1
Copyright (c) 2009 by Yuri Antonov aka yura3d
http://www.exbb.org/
ICQ: 313321962
*/
define('IN_EXBB', TRUE);
class exbb_last_topics {
// Путь к корневой папке форума относительно папки, в которой находятся файлы, подключающие данный скрипт, либо полный путь
// В конце не забывайте ставить прямой слэш, например: path/to/forum/
// Это не URL! Путь указывается согласно структуры данных на Вашем сервере
[color=red]var $path = 'forum/';[/color]
// Максимальная длина для заголовка темы
var $len = 32;
// Далее идёт исходный код модуля. Изменять что-либо ниже НЕ рекомендуется!
var $last = '';
function read_file($file) {
$file = $this->path.$file;
if (!file_exists($file)) return array();
$fp = @fopen($file, 'r') or die('Could not read from the file <b>'.$file.'</b>');
flock($fp, 1);
fseek($fp, 8);
$str = fread($fp, ($size = filesize($file)) ? $size : 1);
flock($fp, 3);
fclose($fp);
return @unserialize($str);
}
function last_topics() {
require_once($this->path.'data/boardinfo.php');
$allforums = $this->read_file('data/allforums.php');
$list = array_filter($allforums, array($this, '_list'));
foreach ($list as $id => $forum) {
if (empty($forum['last_time'])) continue;;
$title = $forum['last_post'];
$id = (isset($forum['last_sub'])) ? $forum['last_sub'] : $id;
$forum['last_post'] = (strlen($forum['last_post']) <= $this->len) ? $forum['last_post'] : substr($forum['last_post'], 0, $this->len - 1).'...';
$this->last .= '• <a href="'.$this->exbb['boardurl'].'/topic.php?forum='.$id.'&topic='.$forum['last_post_id'].'&v=l#'.$forum['last_key'].'" title="'.$title.'">'.$forum['last_post'].'</a><br>'."\n";
}
}
function _list($forum) {
if (!stristr($forum['catid'], 'f') && empty($forum['private'])) return $forum;
}
}
$exbb_last_topics = new exbb_last_topics;
$exbb_last_topics->last_topics();
?>
Путь к файлу exbb_last_topics.php на сервере:
public_html/forum/exbb_last_topics.php(Отредактировано автором: 21 апреля 2009 — 14:59) |
|
|
|