VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Перехожу с phpBB2 на VB4. В старом форуме работает мод, который выводит N последних тем. Скрипт можно использовать на других страницах сайта.
Подскажите пожалуйста, где найти аналогичный скрипт для VB 4.
Нашел подобный скрипт. Автор не отвечает. Помогите (не безвозмездно) адаптировать для VB4. Необходимо, чтоб этот скрипт находясь в корне форума выводил список последних сообщений независимо от форума.
PHP Code:
<?php
/*-------------------------------------------------------------------- block VBFORUM Version 2 for Slaed ---------------------------------------------------------------------- Этот скрипт предназначен для вывода информации с форумного движка системы VB 3.5.0(GOLD) сделан специально для использования в вашей phpNuke (тестился в версии Slaed 1.6 FREE но вполне может использоваться и в более ранних версиях) выводит темы, где был последний пост на главной страничке вашего сайта. автор скрипта Argos_Den, связаться с автором можно по адресу argosden@mail.ru ----------------------------------------------------------------------*/ global $db;
//Опции блока $lcolor = "#003366"; //Цвет заголовка блока $limit = "15"; //Колличество заголовков, которые нужно показать $urlforum = "http://www.cqham.ru/forum"; //Для корректного отображения ссылок, введите полный УРЛ до вашего форума(без слеша в конце/) $str2 = "35"; //При каком колличестве символов в нужно обрезать заголовок?? $str = "1000"; //При каком колличестве символов, резать текст в посте автора?
//Укажите нужный префикс таблиц (уточните в конфиге вашего форума) Если префикса нет, тогда оставьте кавычки пустыми. $prefic = "vb_";
//Параметры подключения к отдельной базе, если форум установлен отдельно(не рекомендуется) от базы phpnuke. //Мы не рекомендуем устанавливать форум отдельно от Nuke. Но если вы это сделали, введите нужные значения ниже. $host = ""; //Хост БД $username = ""; //Имя пользователя БД $passwd = ""; //Пароль БД $dbforum = ""; //Название БД от Форума. Если оставить пустым, используется БД от phpNuke
//====================================================================================================== //ТО ЧТО НИЖЕ, НЕ РЕКОМЕНДУЕТСЯ МЕНЯТЬ, ДЛЯ БЕЗОПАСНОСТИ РАБОТЫ БЛОКА (если не знаете язык php, mysql) //====================================================================================================== if ($prefic > "") { $pr = "$prefic"; } else { $pr = "<font color=red>не указан префикс!</font>"; } if ($dbforum != "") { include ("/home/xxxxxxxxxxxxxxxxx/forum/includes/config.php"); $content .="<fieldset style='padding: 2; color: $lcolor'><legend><b>Новое на форуме</b></legend><table width=100% border=0>"; $content .="<tr><td width=62%><b>Тема</b></td><td align=center><b>Автор</b></td><td align=center><b>Пр.</b></td><td align=center><b>От.</b></td><td width=5%><center><b>Последний</b></center></td></tr><tr><td bgcolor=#2D496E colspan=5></td></tr>"; $goto = mysql_connect($host, $username, $passwd) or die("К сожалению блок не установлен, причина >> Ошибка соединения с базой, проверьте данные доступа к базе! <br> Вы указали : <br>Хост базы = <b>$host</b><br> Имя пользователя = <b>$username</b><br> пароль = <b>*******</b> (если всё другое вы ввели верно, проверьте пароль доступа)<br> Название базы = <b>$dbforum</b><br><br><br>Если проблемы остались, тогда уточните данные у своего хостинг-провайдера " . mysql_error()); mysql_select_db($dbforum) or die("Не удалось выбрать базу, укажите точное название вашей базы, где установлен форум<br>Вы указали > <b>$dbforum</b>"); $query = "SELECT p.postid, p.parentid, p.username, p.userid, p.dateline, p.pagetext, t.forumid, t.threadid, t.title, t.replycount, t.postusername, t.postuserid, t.lastposter, t.views, t.lastpost FROM ".$prefic."post AS p LEFT JOIN ".$prefic."thread AS t ON (t.threadid = p.postid ) ORDER BY t.lastpost DESC LIMIT $limit"; $result = mysql_query($query) or die("Query failed : Блок не установлен, Ошибка выбора таблиц! <br>Укажите точный префикс базы форума!<br><br><br>Префикс для таблиц форума вы указали: <b>$pr</b><br>Решение проблемы такое: Неоходимо указать точный префикс для БД(можно узнать из конфига вашего форума)<br>В случае, если префикса вообще нет, тогда ничего не указывайте в переменной префикса этого блока!<br><br>" . mysql_error()); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
if ($ptitle > "") { $content .="<tr><td width=62%><a href=$urlforum/showthread.php?goto=newpost&t=$upid title='$ptitle'>$ptitle</a></td><td align=center><a href=$urlforum/member.php?u=$piduser title='контакт с автором этого топика ($postuser)'>$postuser</a></td><td align=center>$views</td><td align=center> $rcou</td><td align=center><a href=$urlforum/member.php?find=lastposter&t=$upid title='Последний, кто ответил в этой теме $postuser2'>$postuser2</a></td></tr>"; } } $content .="</table></fieldset>"; mysql_free_result($result); mysql_close($goto); sql_connect($dbhost, $dbuname, $dbpass, $dbname);
} else {
$content .="<fieldset style='padding: 2; color: $lcolor'><legend><b>Новое на форуме</b></legend><table width=100% border=0>"; $content .="<tr><td width=62%><b>Тема</b></td><td align=center><b>Автор</b></td><td align=center><b>Пр.</b></td><td align=center><b>От.</b></td><td width=5%><center><b>Последний</b></center></td></tr><tr><td bgcolor=#2D496E colspan=5></td></tr>"; $result = $db->sql_query("SELECT p.postid, p.parentid, p.username, p.userid, p.dateline, p.pagetext, t.forumid, t.threadid, t.title, t.replycount, t.postusername, t.postuserid, t.lastposter, t.views, t.lastpost FROM ".$prefic."post AS p LEFT JOIN ".$prefic."thread AS t ON (t.threadid = p.postid ) ORDER BY t.lastpost DESC LIMIT $limit") or die ("Query failed : Блок не установлен, Ошибка выбора таблиц! <br>Укажите точный префикс базы форума!<br><br><br>Префикс для таблиц форума вы указали: <b>$pr</b><br>Решение проблемы такое: Неоходимо указать точный префикс для БД(можно узнать из конфига вашего форума)<br>В случае, если префикса вообще нет, тогда ничего не указывайте в переменной префикса этого блока!<br><br>" . mysql_error()); while ($row = $db->sql_fetchrow($result)) {
if ($ptitle > "") { $content .="<tr><td width=62%><a href=$urlforum/showthread.php?goto=newpost&t=$upid title='Обсуждается пост автора $postuser далее цитата>>> $pagehtml'>$ptitle</a></td><td align=center><a href=$urlforum/member.php?u=$piduser title='контакт с автором этого топика ($postuser)'>$postuser</a></td><td align=center>$views</td><td align=center> $rcou</td><td align=center><a href=$urlforum/member.php?find=lastposter&t=$upid title='Последний, кто ответил в этой теме $postuser2'>$postuser2</a></td></tr>"; } } $content .="</table></fieldset>"; } echo $content; ?>
@SeM13
Знаток
Join Date: Dec 2007
Location: Норильск, Красноярский край.
Posts: 508
Версия vB: 4.0 Beta
Reputation:
Knowing 251
Репутация в разделе: 237
1
Зачем? у 4 есть свой модуль в правый блок!
Панель управления:
1) Разделы и модераторы
2) Управления блоками форума
3) Жмем кнопку добавить блок, далее там предложит что в этом блоке должно отображаться. Если последние темы то выбираем "Темы форума".
\Или нужен скрипт который бы выводил последние темы именно на сайт не на форум?\
@YuriB
Простоузер
Join Date: Jan 2008
Posts: 43
Версия vB: 4.1.x
Reputation:
Novice 2
Репутация в разделе: 2
0
Quote:
Originally Posted by SeM13
\Или нужен скрипт который бы выводил последние темы именно на сайт не на форум?\
Именно!
@Hitsi
Специалист
Join Date: Nov 2007
Location: где-то рядом
Posts: 632
Версия vB: 4.0 Beta
Reputation:
Professional 333
Репутация в разделе: 310
0
Этот скрипт работает и для 4-ой версии. Главное правильно заполнить нужные переменные )
и я не понял зачем подгружать конфиг форума (include ("/home/xxxxxxxxxxxxxxxxx/forum/includes/config.php");) если мы логин-пароль от бд вписываем вручную...
@YuriB
Простоузер
Join Date: Jan 2008
Posts: 43
Версия vB: 4.1.x
Reputation:
Novice 2
Репутация в разделе: 2
0
Hitsi, Ну так я ж и прошу подкорректировать скрипт. Если б сам умел....
@Hitsi
Специалист
Join Date: Nov 2007
Location: где-то рядом
Posts: 632
Версия vB: 4.0 Beta
Reputation:
Professional 333
Репутация в разделе: 310
0
корректировка скрипта заключается в заполнении
Code:
$urlforum = "http://www.cqham.ru/forum"; //Для корректного отображения ссылок, введите
$prefic = ""; //Укажите нужный префикс таблиц (уточните в конфиге вашего форума) Если префикса нет, тогда оставьте кавычки пустыми.
$host = ""; //Хост БД
$username = ""; //Имя пользователя БД
$passwd = ""; //Пароль БД
$dbforum = ""; //Название БД от Форума.
вашими данными. Скрипт является универсальным, подходящим для вывода информации на сайте, на форуме, еще где-то... Если вам нужно исключительно на сайте, то можно сократить вот до такого:
Code:
<?php
$lcolor = "#003366"; //Цвет заголовка блока
$limit = "15"; //Колличество заголовков, которые нужно показать
$urlforum = "http://www.cqham.ru/forum"; //Для корректного отображения ссылок, введите полный УРЛ до вашего форума(без слеша в конце/)
$str2 = "35"; //При каком колличестве символов в нужно обрезать заголовок??
$str = "1000"; //При каком колличестве символов, резать текст в посте автора?
//Укажите нужный префикс таблиц (уточните в конфиге вашего форума) Если префикса нет, тогда оставьте кавычки пустыми.
$prefic = "";
$host = ""; //Хост БД
$username = ""; //Имя пользователя БД
$passwd = ""; //Пароль БД
$dbforum = ""; //Название БД
$content ="<fieldset style='padding: 2; color: $lcolor'><legend><b>Новое на форуме</b></legend><table width=100% border=0>";
$content .="<tr><td width=62%><b>Тема</b></td><td align=center><b>Автор</b></td><td align=center><b>Пр.</b></td><td align=center><b>От.</b></td><td width=5%><center><b>Последний</b></center></td></tr><tr><td bgcolor=#2D496E colspan=5></td></tr>";
$goto = mysql_connect($host, $username, $passwd) or die("К сожалению блок не установлен, причина >> Ошибка соединения с базой, проверьте данные доступа к базе! <br> Вы указали : <br>Хост базы = <b>$host</b><br> Имя пользователя = <b>$username</b><br> пароль = <b>*******</b> (если всё другое вы ввели верно, проверьте пароль доступа)<br> Название базы = <b>$dbforum</b><br><br><br>Если проблемы остались, тогда уточните данные у своего хостинг-провайдера " . mysql_error());
mysql_select_db($dbforum) or die("Не удалось выбрать базу, укажите точное название вашей базы, где установлен форум<br>Вы указали > <b>$dbforum</b>");
$query = "SELECT p.postid, p.parentid, p.username, p.userid, p.dateline, p.pagetext, t.forumid, t.threadid, t.title, t.replycount, t.postusername, t.postuserid, t.lastposter, t.views, t.lastpost FROM ".$prefic."post AS p LEFT JOIN ".$prefic."thread AS t ON (t.threadid = p.postid ) ORDER BY t.lastpost DESC LIMIT $limit";
$result = mysql_query($query) or die("Query failed : Блок не установлен, Ошибка выбора таблиц! <br>Укажите точный префикс базы форума!<br><br><br>Префикс для таблиц форума вы указали: <b>$prefic</b><br>Решение проблемы такое: Неоходимо указать точный префикс для БД(можно узнать из конфига вашего форума)<br>В случае, если префикса вообще нет, тогда ничего не указывайте в переменной префикса этого блока!<br><br>" . mysql_error());
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$postid = $row['postid'];
$postuser = $row['postusername'];
$postuser2 = $row['lastposter'];
$postrow = $row['daterow'];
$ptitle = $row['title'];
$pagehtml = $row['pagetext'];
$rcou = $row['replycount'];
$views = $row['views'];
$upid = $row['threadid'];
$piduser = $row['postuserid'];
if(strlen($pagehtml) >= $str);
$pagehtml = substr($pagehtml,0,$str);
if (strlen($pagehtml) >= $str) {
$pagehtml .= ".......";
}
if(strlen($ptitle) >= $str2);
$ptitle = substr($ptitle,0,$str2);
if (strlen($ptitle) >= $str2) {
$ptitle .= "<b>......</b>";
}
if ($ptitle > "") {
$content .="<tr><td width=62%><a href=$urlforum/showthread.php?goto=newpost&t=$upid title='$ptitle'>$ptitle</a></td><td align=center><a href=$urlforum/member.php?u=$piduser title='контакт с автором этого топика ($postuser)'>$postuser</a></td><td align=center>$views</td><td align=center> $rcou</td><td align=center><a href=$urlforum/member.php?find=lastposter&t=$upid title='Последний, кто ответил в этой теме $postuser2'>$postuser2</a></td></tr>";
}
}
$content .="</table></fieldset>";
mysql_free_result($result);
mysql_close($goto);
echo $content;
?>
@YuriB
Простоузер
Join Date: Jan 2008
Posts: 43
Версия vB: 4.1.x
Reputation:
Novice 2
Репутация в разделе: 2
0
Уважаемый Hitsi!
Большое спасибо!
Я сократил скрипт еще больше, т.к. мне не нужны некоторые данные. Это работает: http://www.cqham.ru/forum/recforum.php Что то долго первый раз грузится, потом вроде быстро. Может там что то лишнее в запросе к БД?
PHP Code:
<?php
//Опции блока
$limit = "14"; //Колличество заголовков, которые нужно показать $urlforum = "http://www.cqham.ru/forum"; //Для корректного отображения ссылок, введите полный УРЛ до вашего форума(без слеша в конце/) $str2 = "47"; //При каком колличестве символов в нужно обрезать заголовок?? $prefic = "vb_"; //Укажите нужный префикс таблиц $host = ""; //Хост БД $username = ""; //Имя пользователя БД $passwd = ""; //Пароль БД $dbforum = ""; //Название БД от Форума.
$goto = mysql_connect($host, $username, $passwd); mysql_select_db($dbforum); $query = "SELECT p.postid, p.parentid, t.forumid, t.threadid, t.title FROM ".$prefic."post AS p LEFT JOIN ".$prefic."thread AS t ON (t.threadid = p.postid ) ORDER BY t.lastpost DESC LIMIT $limit";
$result = mysql_query($query); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {