Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
<?php
// ################################
// Даже если база сайта и база форума находится не на одном хосте, то
// в том месте на сайте, где хотите видеть последние "х" тем с форума, подключить код ниже
/*
include 'http://path_to_file/file.php';
*/
// где "path_to_file" - путь до файла
// ################################
SetLocale(LC_ALL, 'ru_RU.UTF-8');
require('./forum/includes/config.php'); // написать свой путь до файла конфига форума
// Define($tableprefix = $config['Database']['tableprefix']);
$link = mysql_connect(
($config['MasterServer']['servername']),
($config['MasterServer']['username']),
($config['MasterServer']['password'])
)
or die
("Нет соединения с базой");
mysql_select_db(($config['Database']['dbname']), $link) or die ("Невозможно выбрать базу");
// ###### Начало настроек ######
$forumdir = "/forum"; // директория форума (без слэша "/" в конце)
// если форум и сайт в разных доменах, прописать полный URL до дир. форума
$privateforumid = "0"; // закрытые форумы (ID форумов прописывать через запятую)
// если закрытых форумов нет, оставить как есть "0" (ноль)
$showlimit = "10"; // лимит выводимых тем
// ###### Конец настроек ######
$lastx_thread = $query=("
SELECT threadid,
lastposter,
title,
postusername,
T.lastpost AS lastpostdate,
views,
postuserid,
replycount,
U.userid as userid
FROM ".$tableprefix."thread T
LEFT JOIN ".$tableprefix."user U ON (T.lastposter = U.username)
WHERE forumid NOT IN ($privateforumid)
ORDER BY T.lastpost DESC
LIMIT $showlimit
");
$result = mysql_query($query, $link);
echo mysql_error();
$ct=1;
echo "<table class=latest-phorum-messages><tr>";
while ($lastx_thread = mysql_fetch_array($result))
{
$k =fmod($ct,2);
if ($k==1)
echo "</tr><tr>";
$ct=$ct+1;
echo "<td><div><a class=topic href='$forumdir/showthread.php?goto=lastpost&t=".$lastx_thread['threadid']."'>".$lastx_thread['title']."</a>";
if ($lastx_thread['userid'])
echo "".date("d.m.y, H:i",$lastx_thread['lastpostdate'])." ({$lastx_thread['views']}/{$lastx_thread['replycount']}) <a href='$forumdir/member.php?action=getinfo&userid=".$lastx_thread['userid']."'>".$lastx_thread['lastposter']."</a>
</div></td>";
else
echo "<td><font size='-1'>тема: <a href='$forumdir/showthread.php?goto=lastpost&t=".$lastx_thread['threadid']."'>".$lastx_thread['title']."</a></font> </td>
<td><font size='-1'>автор: {$lastx_thread['lastposter']}</font> </td>
<td><font size='-1'>дата: ".date("d.m.y, H:i",$lastx_thread['lastpostdate'])."</font> </td>
<td><font size='-1'>просмотров: {$lastx_thread['views']}</td>
<td>ответов: {$lastx_thread['replycount']}</font> </td>
";
echo "";
}
echo "</tr></table>";
?>
Пользуюсь таким решением, но у меня форум 3.8, я надеюсь что подойдет и для 4-й линейки, для самого будет актуально если буду обновляться.
з.ы. немного подправлял что-бы выводились темы таблицей в две колонки
Была такая-же проблема, сайт был в utf8, форум в 1251, пришлось конвертировать базу форума в utf8.На 4ой линейке код работает тоже. Только проблема с кодировкой.
SetLocale(LC_ALL, 'ru_RU.UTF-8');
$db->query("SET NAMES latin1");
Тоже вернулся к этой проблеме, сайт utf8, форум в cp1251.Пробовал, не помогло. В общем буду думать.
Этот вариант не помог к сожалению.добавь в начало перед путём к конфигу форума:
PHP:$db->query("SET NAMES latin1");
А что делает этот мод?или попробуй заюзать данный мод калиостро:
Посмотреть вложение 31518
он для версии 3.7.х и 3.8.х на 4.х.х не тестил пока что
("Нет соединения с базой");
mysql_select_db(($config['Database']['dbname']), $link) or die ("Невозможно выбрать базу");
mysql_query("SET NAMES 'utf8'");
<?php
$db_host = "localhost"; // Change this if your MySQL database host is different.
$db_name = ""; // Change this to the name of your database.
$db_user = ""; // Change this to your database username.
$db_pw = ""; // Change this to your database password.
$forum_url = "http://beer-review.ru/forum"; // Change this to reflect to your forum's URL.
$forum_id = ""; // If you wish to display the posts from a specific forum, enter the forum id here. Otherwise, leave it blank.
$limit = "5"; // Number of posts displayed.
$excludeforums = ""; // The forums you want to exclude from being displayed
$txtlimit = "120"; // This is the character limit.
$wheresql = "";
#######################################
// Connecting to your database
mysql_connect($db_host, $db_user, $db_pw)
OR die ("Cannot connect to your database");
mysql_select_db($db_name) OR die("Cannot connect to your database");
mysql_query("SET NAMES 'utf8'");
// Below is the beginning of a table. If you feel you don't need it, you may remove it.
echo "<table border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\">";
if ($forum_id) {
$forum_id = "AND forumid=$forum_id";
}
if ($limit) {
$limited = "LIMIT $limit";
}
if ($excludeforums == "" or $excludeforums <= "0") {
$quarter = "no";
} else {
$excfid = explode(",",$excludeforums); $i = 0; $a = count($excfid);
while ($i < $a) {
$wheresql .= " AND thread.forumid!='$excfid[$i]'"; ++$i;
}
}
$qw = "SELECT threadid,title,lastpost,lastposter,forumid FROM thread WHERE visible=1 $wheresql AND open=1 $forum_id ORDER BY lastpost DESC $limited";
//PRINT $qw;
$thread_sql = mysql_query($qw);
while($thread_get=mysql_fetch_array($thread_sql))
{
$lastpost = $thread_get['lastpost'];
$poster = $thread_get['lastposter'];
$tid = $thread_get['threadid'];
$psql = mysql_query("SELECT postid FROM post WHERE threadid=$tid ORDER BY postid DESC");
$getp=mysql_fetch_array($psql);
$pid = $getp['postid'];
$date2 = date ("d/m H:i" ,$lastpost);
$title = $thread_get['title'];
$title = substr($title,0,$txtlimit);
echo "<tr><td><a href=\"$forum_url/showthread.php?p=$pid#post$pid\">$title</a> ответ от $poster <i>$date2</i></td></tr>";
}
echo "</table>";
?>
либоmysql_query("SET NAMES 'utf8'");
mysql_query("SET NAMES 'cp1251'");
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />