yura3d |
Отправлено: 28 марта 2009 — 09:57
|
![Пользователь Пользователь](./templates/InvisionExBB/im/user2.gif)
ExBB Team ExBB Developer ExBB Mods Author
![](./im/images/pips6.gif)
Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009
Откуда: Минск, Беларусь
Репутация: 353
![](./templates/InvisionExBB/im/spacer.gif)
|
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 {
А здесь описание того, как будут выглядеть ссылки при наведении на них курсора
}
А вообще данный вопрос относится больше к веб-дизайну, нежели к данному моду |
|
|
Zeg |
Отправлено: 28 марта 2009 — 10:46
|
![](./im/avatars/personal/32-avatar.png)
![Пользователь Пользователь](./templates/InvisionExBB/im/user2.gif)
Super Member
![](./im/images/pips6.gif)
Покинул форум
Сообщений всего: 891
Дата рег-ции: Март 2009
Откуда: Беларусь
Репутация: 89
![](./templates/InvisionExBB/im/spacer.gif)
|
4 марта 2011 года - выложен вариант мода с кешированием (значительно снижает нагрузку на сервер, если вы используете вывод сообщений с форума на несколько страниц своего сайта). Там же есть и пояснения.
Файл перезалит 13.09.2009! Рекомендую заменить, подробности тут!
2B пишет:К сожалению, в этой только длина заголовков регулируется. А где можно найти вариант с одним последним сообщением? ![Улыбка Улыбка](./im/emoticons/smile24.gif)
Цепляю свой вариант. Когда-то давно переделал уже готовый код от 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
|
![Пользователь Пользователь](./templates/InvisionExBB/im/user2.gif)
ExBB Team ExBB Developer ExBB Mods Author
![](./im/images/pips6.gif)
Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009
Откуда: Минск, Беларусь
Репутация: 353
![](./templates/InvisionExBB/im/spacer.gif)
|
DarthSemafor пишет:У меня такой вопрос: установил все по инструкции, ссылки появляются, но в обратной последовательности, т.е. самая последняя в списке тема - в ней самое последнее сообщение и список тем странно обновляется: если появляется новая тема с последним сообщением, то она встает в конец списка и не сдвигает весь список на одну позицию, а просто затирает ту, которая стояла там, таким образом получается, что меняется всего одна последняя позиция ![Хм Хм](./im/emoticons/dry.gif)
Мод берёт по одной ссылке на последнюю тему от каждого раздела (т.е. фактически дублируется колонка Обновление в списке разделов). Если Вам нужно выводить последние темы по дате, а не по разделам, то Вам больше подойдёт мод, который выложил Zeg выше |
|
|
Zeg |
Отправлено: 13 апреля 2009 — 21:05
|
![](./im/avatars/personal/32-avatar.png)
![Пользователь Пользователь](./templates/InvisionExBB/im/user2.gif)
Super Member
![](./im/images/pips6.gif)
Покинул форум
Сообщений всего: 891
Дата рег-ции: Март 2009
Откуда: Беларусь
Репутация: 89
![](./templates/InvisionExBB/im/spacer.gif)
|
По посту выше: т.к. вопросы по добавлению 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
|
![Пользователь Пользователь](./templates/InvisionExBB/im/user2.gif)
ExBB Team ExBB Developer ExBB Mods Author
![](./im/images/pips6.gif)
Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009
Откуда: Минск, Беларусь
Репутация: 353
![](./templates/InvisionExBB/im/spacer.gif)
|
Senc пишет:var $path = '/forum/';
Правильно будет так:
CODE:var $path = 'forum/';
Senc пишет:по идее зайдя на эту страницу я должен видеть последние сообщения своего форума однако она не открывается пока не убираю строку require_once...Подскажите плиз
Приведите ссылку на страницу, на которой наблюдается проблема |
|
|
Senc |
Отправлено: 19 апреля 2009 — 11:00
|
![Пользователь Пользователь](./templates/InvisionExBB/im/user2.gif)
Junior Member
![](./im/images/pips2.gif)
Покинул форум
Сообщений всего: 65
Дата рег-ции: Апр. 2009
Репутация: 1
![](./templates/InvisionExBB/im/spacer.gif)
|
Спасибки! Сейчас темы выводятся, но ссылки на них немного"кривые"
(ссылку убрал, так как уже не кажет)
содержимое файла /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) |
|
|
|