Архив Айгуст —
архив помогалки Августа
«Никто не вечен… В отличие от знаний»
Внимание!
  Материалы на данном сайте представляют собой архивную копию форума «Айгуст - помогалка Августа» на момент октября 2019 года с целью сохранения знаний. Все права на материалы принадлежат их авторам. Материалы представлены в открытый доступ в ознакомительных целях, запрещено их коммерческое использование без согласования с авторами. Администрация сайта не несёт ответственности за содержание материалов, в том числе за наличие вредоносных закладок в коде, используйте любой предоставленный код на свой страх и риск. Рекомендуется проверять любые файлы вручную и перезаливать на собственный хостинг, дабы избежать возможной модификации или исчезновения в будущем.

Последние темы с форумов в чат

07.04.2011 08:25:07
Последние темы с форумов в чат
Итак, разберём такую вещь, как вывести последние темы с форумов в чат. Конкретно рассмотрим движки mybb2 и ipb.
mybb2
<script src="ССЫЛКА_НА_ФОРУМ/export.php?type=js&max=10" type="text/javascript"></script>
<script type="text/javascript">
var html='';
var ts = '';
var mo = '';
var hh = '';
var mm = '';
var i = 0;
for(i=0;i<content.length;i++) {
ts = new Date();
ts.setTime(1000*content[i][0]);
mo = ts.getMonth()+1;
if (mo<10) mo='0'+mo;
hh = ts.getHours();
mm = ts.getMinutes()+'';
if (mm<10) mm='0'+mm;
ts = ts.getDate()+'.'+mo+' '+hh+':'+mm;
html2="</tr></tbody></table></div>"
html1="<h2>Последние 10 сообщений форума</h2><div class=\"container\"><table cellspacing=\"0\" width=100%><thead><tr><th scope=\"col\">Автор</th><th scope=\"col\">Время</th><th scope=\"col\">Последнее сообщение</th></tr></thead><tbody class=\"hasicon\">"
html+='<tr><td>'+content[i][1]+'</td><td class=\"tc2\">'+ts+'<td class=\"tcr\"><a href=\"'+content[i][2]+'\" target=\"_blank\">'+content[i][3]+'</a><br /></td></tr>';
}

var arr=document.getElementsByTagName("div")
i=0
str=document.URL
while(arr[i] ){
if((str.substring(str.lastIndexOf('/')+1)=="" || str.substring(str.lastIndexOf('/')+1)=="index.php") && arr[i].className=="statscon"){
name=arr[i].innerHTML
name=name.substring(0)
arr[i].innerHTML=""+html1+""+html+""+html2+"<br><h2>Общая статистика</h2>"+name+""
}
i++
}
</script>

тут всё легко. ищем строчку
<script src="ССЫЛКА_НА_ФОРУМ/export.php?type=js&max=10" type="text/javascript">

и вписываем домен своего форума. Например:
<script src="https://igust4u-archive.ga/export.php?type=js&max=10" type="text/javascript">
Внимание: это как пример, темы с Айгуста выводиться не будут, ибо он не на mybb2!

Вставляем в нужное нам место - готово. Скрипт выводит 10 последних сообщений.

ipb

С этим будет всё сложнее, ибо скрипта под чат я не нашёл.
Для того, чтобы вывести последние сообщения для ipb нужен хостинг, поддерживающий php.

Ну, распишу всё подробно. Открываем блокнот, копируем в него этот скрипт:
<?php
//======[ОСНОВНЫЕ НАСТРОЙКИ]======
//Префикс таблицы с IPB
$prefix = '';
//Сколько тем выводить
$num = 10;
//Сколько символов оставить в названии темы после урезания
$topic_num_sym = 65;
//Имя папки с картинками текущего скина
$img_path = '1';
//Формат времени
$time = 'H:i';
//Форумы, которые мы не трогаем
$forumexclude = '0';
//Сервер БД на котором висит база форума
$host="localhost";
//Имя БД
$database="lalala";
//Логин БД
$username="lalala";
//Пароль БД
$password="lalala";

//====[Если не знаем PHP - дальше ничего не трогаем ]=========

$ipb_db = mysql_pconnect($host, $username, $password);
mysql_select_db($database, $ipb_db);
$rd = "SET CHARACTER SET utf8";
IF (!$result = mysql_query($rd)) {
ECHO "ERROR!!!\n";
}
$resultf = mysql_query("SELECT tid, title, description, state, posts, starter_id, last_poster_id, last_post, icon_id, starter_name, last_poster_name, views, topic_hasattach FROM ".$prefix."topics WHERE (forum_id NOT IN ($forumexclude)) ORDER BY last_post DESC LIMIT $num",$ipb_db) or die(mysql_error());
$row_resultf = mysql_fetch_assoc($resultf);
$totalRows_resultf = mysql_num_rows($resultf);
do {
$topicstrip = $row_resultf['title'];
if (strlen($topicstrip) > $topic_num_sym) {
$topicstrip = substr($topicstrip,0,$topic_num_sym);
$topicstrip = $topicstrip."...";
}
$status = ($row_resultf['state'] == "closed") ? "<img src=\"forum/style_images/$img_path/f_closed.gif\" border=\"0\" alt=\"Тема закрыта\">" : "";
$attach = ($row_resultf['topic_hasattach'] == "1") ? "<img src=\"temp/A-Vector/images/files.gif\" border=\"0\" alt=\"В сообщении есть прикрепленные файлы\"> " : "";

$last_date = date($time,$row_resultf['last_post']);
$bt.= "<small class=\"3\">$last_date:</small> <b><a title=\"".$row_resultf['description']."\" href=\"forum/index.php?showtopic=".$row_resultf['tid']."&view=getlastpost\">$topicstrip</a></b><br>";
} while($row_resultf = mysql_fetch_assoc($resultf));
mysql_free_result($resultf);
echo $bt;
return $bt;
?>

Настраиваем скрипт под свой форум:
//Сервер БД на котором висит база форума
$host="localhost";

вместо localhost вписываем IP сервера.
//Имя БД
$database="lalala";
//Логин БД
$username="lalala";
//Пароль БД
$password="lalala";

Вписываем имя базы данных, логин и пароль доступа к ней.
Скрипт настроен.

Теперь сохраняем файл с расширением .php
Заливаем его на PHP-хостинг.

А в самом чате уже прописываем:
<iframe src="ссылка на файл, который залили" width="ширина_окна" height="высота_окна"></iframe>

Ширину и высоту подберёте нужную. Скрипт выводит последние 10 тем с форума. (Количество тем можно настроить под свой вкус)

Удачного пользования.
#6866
08.04.2019 11:55:49
Re: Последние темы с форумов в чат
mybb2 ну вот не могу вставить..... скрипт почему то при сохранении меняется и исчезает первая строчка
#36318
19.04.2019 13:11:39
Re: Последние темы с форумов в чат
Деня: mybb2 ну вот не могу вставить..... скрипт почему то при сохранении меняется и исчезает первая строчка
видать не правильно делаешь
#36319
03.05.2019 19:30:11
Re: Последние темы с форумов в чат
Деня: mybb2 ну вот не могу вставить..... скрипт почему то при сохранении меняется и исчезает первая строчка
Учитывая, что данный скрипт был выложен 8 лет назад, очень подозреваю, что на стороне mybb2 что-то изменилось (например, переименовались эндпойты или поменялся формат возвращаемых данных) и по этой причине скрипт и не работает. К примеру, на демо.форуме файла export.php не существует (выдаёт 404): http://demo.mybb2.ru/export.php , значит, либо эту функцию убрали, либо по другому пути нужно скрипт вызывать.
#36322

Другие темы раздела