Русское сообщество fluxbb

Быстрый лёгкий надёжный форумный движок

Вы не вошли.

Объявление

Вы можете внести свой вклад в содержание сайта. Жертвователи попадут в почетную группу "Спонсоры". Поддержать сайт.

#1 2007-01-26 20:44:34

cL1zMa
Гость

Вывод последних сообщений с форума на сайт

Подскажите есть ли такой скрипт. Нужно на главной странице сайта в блоке вывести последние изменённые темы punbb

#2 2007-01-26 20:52:21

TEXist
Гость

Re: Вывод последних сообщений с форума на сайт

Все уже есть.
См файл:
extern.php

#3 2007-02-04 21:24:16

abend
Гость

Re: Вывод последних сообщений с форума на сайт

Для своего сайта я делал так.Был блок для phpnuke
Маленько модифицировал для Slaed
В действии можешь глянуть на сайте www.pe4ora.ru

<?php
if (!defined('BLOCK_FILE')) {
    Header("Location: ../index.php");
    exit;
}

# Этот блок предназначен для вывода ообщений с форума punBB
#
# TODO:
# есть 7 переменных которые вам надо описать:
# $pbb_dbhost - хост где расположена база форума
# $pbb_dbuser - имя юзера для доступа к базе
# $pbb_dbpass - пасс юзера для доступа к базе
# $pbb_dbname - название базы данных в которую установлен форум
# $pbb_dbprefix - префикс баз данныз форума
# $pbb_path - писать в виде ссылки!(как в примере внизу)..думаю смысл понятен
#
# iSage 2006.



$pbb_dbname = "**********";
$pbb_dbprefix = "pun";
$pbb_dbhost ="localhost";
$pbb_dbuser = "************";
$pbb_dbpass= "**************";
$pbb_path = "http://pe4ora.ru/forum";


$xdbx=mysql_connect($pbb_dbhost, $pbb_dbuser, $pbb_dbpass,true);
mysql_select_db($pbb_dbname,$xdbx);
$content ="<center>Последние сообщения</center><br>";
$a = 1;
$result = mysql_query("SELECT a.id,a.subject,FROM_UNIXTIME(a.last_post,'%d/%m/%Y в %T') as last_post,a.last_poster,b.id from ".$pbb_dbprefix."topics a LEFT JOIN ".$pbb_dbprefix."users b ON b.username=a.last_poster ORDER BY a.last_post DESC LIMIT 0, 7", $xdbx);
while(list($topic_id,$topic_name, $post_time,$poster_name,$poster_id) = mysql_fetch_row($result))
{
              $content .="<STYLE=\"text-decoration: none\"><font color=\"#666666\"><b>Тема: <br></b>";

       $content .= "<a href=\"$pbb_path/viewtopic.php?id=$topic_id&action=new\"STYLE=\"text-decoration: none\"><b> $topic_name</b></a><br><font color=\"#666666\"><i>Автор <A HREF=\"$pbb_path/profile.php?id=$poster_id\"STYLE=\"text-decoration: none\">$poster_name</a><br> $post_time</i></font><br><br>";
       $a++;
}
mysql_close($xdbx);
?>

Редактировался hcs (2007-02-05 05:20:31)

#4 2007-02-04 21:34:58

vvik
Гость

Re: Вывод последних сообщений с форума на сайт

abend
когда пишешь код, лучше всего его вставлять в теги [code ] и [/code ]
wink

#5 2007-02-04 23:57:10

artoodetoo
Гость

Re: Вывод последних сообщений с форума на сайт

В моде punportal есть такой пример. я немного изменил его под себя.

Не совсем понятно что значит "на главной странице сайта". Сайт поддерживает, например, авторизацию через форум punbb или имеет собственный механизм? Стили форума включены на главной странице? Если да - то вот подходящий код:

<div class="block">
<h2><span><? echo $lang_portal['Recent Topics']; ?></span></h2>
    <div class="box">
    <div id="recenttopics" class="inbox">
<?php

$topictodisplay = '10';

$result = $db->query('SELECT t.subject, t.id '.
  'FROM '.      $db->prefix.'topics AS t '.
  'INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_id '.
  'LEFT JOIN '. $db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') '.
  'WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.moved_to IS NULL'.
  'ORDER BY t.last_post DESC LIMIT '. $topictodisplay) 
  or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());

while($cur_topic = $db->fetch_assoc($result))
{
  $caption = $cur_topic['subject'];

  // truncate subject if necessary. approx 22 (mulibyte) characters for 190px column 
  if (mb_strlen($caption) > 22) {
    $alt = ' title="'.pun_htmlspecialchars($caption).'"';
    $caption = pun_htmlspecialchars(mb_substr($caption, 0, 21)).'&hellip;';
  } else {
    $caption = pun_htmlspecialchars($caption);
    $alt = '';
  }
  echo "\t<ul><li>&raquo;&nbsp;<a href=\"".$pun_config['o_base_url'].'/topic/'.$cur_topic['id'].'"'.$alt.'>'.$caption."</a></li></ul>\n";
}
?>

    </div>
    </div>
</div>

#6 2007-02-20 08:48:40

russianaustria
Гость

Re: Вывод последних сообщений с форума на сайт

Так же сделали выход 10 последних сообщений с форума на главную. Вроде всё работает не плохо.

#7 2007-09-04 12:37:56

Dios
Гость

Re: Вывод последних сообщений с форума на сайт

Приветствую, у меня возникала небольшая проблема по теме, в файле extern.php есть небольшой пример:

Show the 15 most recently active topics from all forums:

include('http://host.com/forums/extern.php?action=active');

Делаю так:

include('/путь/к/корню/forums/extern.php?action=active');

но не получается, выводится сообщение:

Warning: include(/путь/к/корню/forums/extern.php?action=active) [function.include]: failed to open stream: No such file or directory in /путь/к/корню/content/support.inc.php on line 12

Warning: include() [function.include]: Failed opening '/путь/к/корню/forums/extern.php?action=active' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /путь/к/корню/content/support.inc.php on line 12

Путь к файлу точно верный, в чём проблема, подскажите пожалуйста?

Редактировался Dios (2007-09-04 12:43:47)

#8 2007-09-04 13:39:02

artoodetoo
Гость

Re: Вывод последних сообщений с форума на сайт

Dios, это неправильный синтаксис. оно и не должно работать

КСТАТИ О ПРИМЕРЕ: include('http://...') будет работать только если PHP имеет специальные настройки для этого. по-умолчанию такое невозможно.
а в виндовой версии php это может не заработать в принципе. на хостинге провайдер скорее всего закрыл такую возможность, чтобы голова меньше болела. вобщем забудь про include 'http:...'.

если ты НЕ указал протокол http или ftp, то php ищет на диске файл с именем "extern.php?action=active" — прямо вот так, с вопросиком. такого файла конечно нет, о чем тебе и сообщается.

и вообще, если тебе удастся заинклудить extern.php то появятся новые ошибки из-за повторного использования общих файлов (операторы require...)

все плохо, но решение есть: http://punbb.org/forums/viewtopic.php?pid=90394#p90394

#9 2007-09-04 19:31:03

artoodetoo
Гость

Re: Вывод последних сообщений с форума на сайт

на самом деле вывод последних сообщений с твоего же сайта через подключение extern — это лишний расход ресурсов. лучше все-таки сделать на базе примера из punportal.

#10 2007-09-04 21:47:19

Dios
Гость

Re: Вывод последних сообщений с форума на сайт

artoodetoo, спасибо тебе за оперативную помощь, ты внёс ясность в мой затуманеный моск smile)
Самым простым для меня решением оказалось: Новостная лента

#11 2007-09-04 22:05:11

artoodetoo
Гость

Re: Вывод последних сообщений с форума на сайт

тоже неплохо

#12 2007-10-21 13:48:01

Advan
Гость

Re: Вывод последних сообщений с форума на сайт

Непонятная штука получается:

в адресной строке ввожу
http://www.мой_сайт.ru/forum/extern.php?action=active
ничего не отображается sad

.. а вот
http://www.мой_сайт.ru/forum/extern.php?action=online
http://www.мой_сайт.ru/forum/extern.php?action=online_full
http://www.мой_сайт.ru/forum/extern.php?action=stats
отображаются

Ваще ничего непонимаю...

Редактировался Advan (2007-10-21 14:25:56)

#13 2007-10-22 19:16:40

jeder
Гость

Re: Вывод последних сообщений с форума на сайт

У меня такая  проблема сайт находится на адресе domen.ru, а форум на forum.domen.ru чего-то ни один из выше названных вариантов не заработал.
Есть какие-нить ещё варианты попроще?

Редактировался jeder (2007-10-22 19:17:05)

#14 2007-10-24 19:47:19

Advan
Гость

Re: Вывод последних сообщений с форума на сайт

Advan пишет:

Непонятная штука получается:

в адресной строке ввожу
http://www.мой_сайт.ru/forum/extern.php?action=active
ничего не отображается sad

.. а вот
http://www.мой_сайт.ru/forum/extern.php?action=online
http://www.мой_сайт.ru/forum/extern.php?action=online_full
http://www.мой_сайт.ru/forum/extern.php?action=stats
отображаются

Ваще ничего непонимаю...

[size=16]Неужели никто не поможет понять в чем дело?![/size]

#15 2007-10-31 21:40:17

Advan
Гость

Re: Вывод последних сообщений с форума на сайт

Ну у вас то наверняка все выводится!!!? Подскажите, где собака зарыта???

Редактировался Advan (2007-10-31 21:41:18)

#16 2007-12-25 16:43:33

nobody
Гость

Re: Вывод последних сообщений с форума на сайт

Заметил небольшое неудобство при использовании extern.php. Если вывод использовать на форуме, и при этом быть "залогиненным", то при переходе по ссылке на тему мы попадаем к первому непрочитанному сообщению (ссылка вида *action=new). Но если мы выводим, например, список последних активных тем на сайте (или на форуме, но при этом "не залогинены") и переходим на тему по ссылке вида *action=new, то всегда попадаем на первое сообщение темы, даже если тема на нескольких страницах. Мне это показалось не очень удобным, поэтому чуть изменил extern.php. ~255 строка:

echo '<li><a href="'.$pun_config['o_base_url'].'/viewtopic.php?id='.$cur_topic['id'].'&amp;action=new" title="'.pun_htmlspecialchars($cur_topic['subject']).'">'.$subject_truncated.'</a></li>'."\n";

Заменим на:

echo '<li><a href="'.$pun_config['o_base_url'].'/viewtopic.php?id='.$cur_topic['id'].'&amp;action=last" title="'.pun_htmlspecialchars($cur_topic['subject']).'">'.$subject_truncated.'</a></li>'."\n";

В итоге, мы всегда будем переноситься к последнему сообщению в теме по клику на ссылку из вывода extern.php, что гораздо удобнее, имхо. Стоит подчеркнуть, что это незначительное изменение тестировалось лишь на выводе последних активных тем (Output - regular HTML), понятия не имею, как оно затронет вывод RSS и остальные функции. Скорее всего никак, но стоит иметь это ввиду smile

#17 2008-05-01 13:20:19

jeder
Гость

Re: Вывод последних сообщений с форума на сайт

У меня возникает другая проблема
ввожу в адресную строку:

http://forum.jeder.ru/extern.php?action=active

Выскакивает ошибка:

Fatal error: Call to undefined function my_strlen() in /home/......../forum/include/functions.php on line 861

Вот содержимое functions.php:

// Equivalent to strlen(), but counts &#[0-9]+ as one character (for unicode)
//
function pun_strlen($str)
{
    // FIX FOR UTF-ENCODING 
    // Original:
    //return strlen(preg_replace('/&#([0-9]+);/', '!', $str));
    //return mb_strlen(preg_replace('/&#([0-9]+);/', '!', $str));
    //return strlen(utf8_decode($str));
    return my_strlen($str);
}

861 строчка это return my_strlen($str);
поставил в начале //
т.е. так получилось:

// Equivalent to strlen(), but counts &#[0-9]+ as one character (for unicode)
//
function pun_strlen($str)
{
    // FIX FOR UTF-ENCODING 
    // Original:
    //return strlen(preg_replace('/&#([0-9]+);/', '!', $str));
    //return mb_strlen(preg_replace('/&#([0-9]+);/', '!', $str));
    //return strlen(utf8_decode($str));
    //return my_strlen($str);
}

всё заработало.
У меня форум в windows-1251 кодировке.
То, что я сделал, как-нить на его работе отразится?

И ещё вопрос. Выводится при этой команде только название темы, а как сделать вывод самого сообщения?



Не делайте так! Сообщения начинают выводиться на главной, но в результате этого новые пользователи не могут зарегистрироваться на форуме.
Взаимосвязь и решение проблемы в процессе поиска.

Редактировался jeder (2008-05-08 13:33:40)

#18 2008-05-09 23:00:21

ton96
Гость

Re: Вывод последних сообщений с форума на сайт

У меня так же не работает, хотя всё работало. sad

#19 2008-05-10 05:46:24

hcs
Гость

Re: Вывод последних сообщений с форума на сайт

ton96
Если у тебя всё работало, то зачем ты менял что-то?
jeder Скачай из новой сборки extern.php

#20 2008-05-10 13:26:29

Nickola9
Гость

Re: Вывод последних сообщений с форума на сайт

ну а вот скинуть готовый файл рабочий с новосной лентой не как? вот не че не понял вроде все как надо делал м не че... скиньте кто нить готовый нормальный файл extern

#21 2008-05-12 11:42:01

Nickola9
Гость

Re: Вывод последних сообщений с форума на сайт

TEXist пишет:

Все уже есть.
См файл:
extern.php

а у меня там кодировочка косячная... как быть ?

#22 2008-06-01 15:52:21

jeder
Гость

Re: Вывод последних сообщений с форума на сайт

Ещё вопрос возник.
Можно ли с помощью extern.php выводить на сайт первое сообщение из новой темы на форуме?
Чтобы именно сам текст сообщения был.

Подвал доски

Под управлением FluxBB. Хостинг Hostens