Перейти к контенту

Экспоритируем новости с форума


Рекомендуемые сообщения

<?php
/*--------------------------------------------------------------------
Новостной скрипт для вывода новостей с форума IPB
Выводит последние топики с указанного форума
v.1.2 by IT-Security (Asafchik@inbox.ru)
ICQ: 683993
© 2007
----------------------------------------------------------------------*/
// Вставляем нужные файлы
require_once "forum/ips_kernel/class_db_mysql.php";
require_once "forum/conf_global.php";
// Создаём параметры подключения
$db = new db_driver_mysql;
$db->obj['sql_database']	 = $INFO['sql_database'];
$db->obj['sql_user']		 = $INFO['sql_user'];
$db->obj['sql_pass']		 = $INFO['sql_pass'];
$db->obj['sql_host']		 = $INFO['sql_host'];
$db->obj['sql_tbl_prefix']   = $INFO['sql_tbl_prefix'];
$db->obj['mysql_codepage']   = $INFO['mysql_codepage'];
// Подключаем базу
$db->connect();
// Настройки скрипта
// Сколько выводить новостей?
$limit = "10";
// ID форума для забора новостей
$forum_id = "4";
// Максимальная длина для обрезки
$max_lenght = "300";
// Путь к форуму
$forum_url = "http://some_site/forum/";
			// Папка смайликов
			$smiles = "default";
// Сам скрипт
$news = $db->query("Select t.tid, t.topic_firstpost, t.title,t.views ,t.posts, t.starter_id, t.start_date, t.starter_name, t.forum_id, m.post from ibf_topics t, ibf_posts m where t.topic_firstpost = m.pid and t.forum_id = '$forum_id' order by t.start_date desc limit $limit");
while ($res = $db->fetch_row($news))
	{
		$tid = $res['tid'];
		$views = $res['views'];
		$news_link = $forum_url."index.php?showtopic=".$tid;
		$title = $res['title'];
		$posts = $res['posts'];
		$author_id = $res['starter_id'];
		$author = $res['starter_name'];
		$author_link = $forum_url."index.php?showuser=".$author_id;
		$date = $res['start_date'];
		$news_date = date("d.m.Y H:i:s", $date);
		$message = $res['post'];
			if (strlen($message)> $max_lenght)
				{
					$mess = substr($message, 0, $max_lenght-3)."...<br><a target='_blank' href='".$news_link."'>Подробнее</a>";
				}
			else
				{
					$mess = $message;
				}
			$mess = str_replace("style_emoticons/<#EMO_DIR#>","forum/style_emoticons/".$smiles, $mess);
echo '<TABLE class=nb3 cellSpacing=1 cellPadding=2 width="100%" border=0>
<TBODY>
<TR>
<TD class=nb3 style="WIDTH: 90%">
<DIV class=nb3><A class=nb2  href='.$news_link.'>'.$title.'</A></DIV></TD>
<TD  style="FONT-WEIGHT: normal; FONT-SIZE: 8px; LINE-HEIGHT: normal; FONT-STYLE: normal; WHITE-SPACE: nowrap; FONT-VARIANT: normal" align=right>'
.$news_date.'</TD></TR>
<TR>
<TD class=nb3 colSpan=2>'.$mess.'</TD></TR>
<TR>
<TD class=nb2 colSpan=2>Просмотров: '.$views.' | Добавил: <A class=nb2 href="'.$author_link.'">'.$author.'</A> | <A class=nb2 href="'.$news_link.'">Комментарии 
					('.$posts.')</A> 
					<HR class=nb3>
				  </TD></TR></TBODY></TABLE><BR>';


	}
?>

Пользуемся, комментируем...

Изменено пользователем IT-Security
Ссылка на комментарий
Поделиться на других сайтах

проще и правильнее настроить RSS поток на соответствующие форум и экспортировать ним. там и кеширование присутствует, а соответственно меньше нагрузка на сервер.

 

если хотите чтобы была HTML страничка, то можна написать скрипт, который будет брать этот XML и трансформировать его по нужному шаблону.

Ссылка на комментарий
Поделиться на других сайтах

Когда я спрашивал как такое сделать в клиентском форуме - мне не ответили, вот и пришлось изобретать велосипед.

Не нравится - не пользуйтесь, в чём проблема?Мне нужна была именно страничка без использования RSS/XML и я её сделал.

Появилось желание поделится тем, на чем я сидел полдня.

Видимо зря. Ниодной благодарности, только упрёки.

Ссылка на комментарий
Поделиться на других сайтах

IT-Security, расслабся :D никто тебя не упрекает))

 

просто показывают, что есть и другие решения, а там, быть может, ты и себе прооптимизируешь этот код...

Ссылка на комментарий
Поделиться на других сайтах

самое забавное что вариант от IT-Security заработал сразу.

в то время как велосипед ув. Aliance spb, загнулся в какой-то ошибке.

 

Лень было проверять в чем именно проблема. Но ИМХО иногда роликовые коньки бывают все же полезнее велосипеда.

Ссылка на комментарий
Поделиться на других сайтах

<?php
/*--------------------------------------------------------------------
Новостной скрипт для вывода новостей с форума IPB
Выводит последние топики с указанного форума
v.1.2 by IT-Security (Asafchik@inbox.ru)
ICQ: 683993
© 2007
----------------------------------------------------------------------*/
// Вставляем нужные файлы
require_once "forum/ips_kernel/class_db_mysql.php";
require_once "forum/conf_global.php";
// Создаём параметры подключения
$db = new db_driver_mysql;
$db->obj['sql_database']	 = $INFO['sql_database'];
$db->obj['sql_user']		 = $INFO['sql_user'];
$db->obj['sql_pass']		 = $INFO['sql_pass'];
$db->obj['sql_host']		 = $INFO['sql_host'];
$db->obj['sql_tbl_prefix']   = $INFO['sql_tbl_prefix'];
$db->obj['mysql_codepage']   = $INFO['mysql_codepage'];
// Подключаем базу
$db->connect();
// Настройки скрипта
// Сколько выводить новостей?
$limit = "10";
// ID форума для забора новостей
$forum_id = "4";
// Максимальная длина для обрезки
$max_lenght = "300";
// Путь к форуму
$forum_url = "http://some_site/forum/";
			// Папка смайликов
			$smiles = "default";
		   // Префикс таблиц
		   $table_prefix = "ibf_";
// Сам скрипт
$news = $db->query("Select t.tid, t.topic_firstpost, t.title,t.views ,t.posts, t.starter_id, t.start_date, t.starter_name, t.forum_id, m.post from ".$table_prefix."topics t, ".$table_prefix."posts m where t.topic_firstpost = m.pid and t.forum_id = '$forum_id' order by t.start_date desc limit $limit");
while ($res = $db->fetch_row($news))
	{
		$tid = $res['tid'];
		$views = $res['views'];
		$news_link = $forum_url."index.php?showtopic=".$tid;
		$title = $res['title'];
		$posts = $res['posts'];
		$author_id = $res['starter_id'];
		$author = $res['starter_name'];
		$author_link = $forum_url."index.php?showuser=".$author_id;
		$date = $res['start_date'];
		$news_date = date("d.m.Y H:i:s", $date);
		$message = $res['post'];
			if (strlen($message)> $max_lenght)
				{
					$mess = substr($message, 0, $max_lenght-3)."...<br><a target='_blank' href='".$news_link."'>Подробнее</a>";
				}
			else
				{
					$mess = $message;
				}
			$mess = str_replace("style_emoticons/<#EMO_DIR#>","forum/style_emoticons/'.$smiles, $mess);
echo '<TABLE class=nb3 cellSpacing=1 cellPadding=2 width="100%" border=0>
<TBODY>
<TR>
<TD class=nb3 style="WIDTH: 90%">
<DIV class=nb3><A class=nb2  href='.$news_link.'>'.$title.'</A></DIV></TD>
<TD  style="FONT-WEIGHT: normal; FONT-SIZE: 8px; LINE-HEIGHT: normal; FONT-STYLE: normal; WHITE-SPACE: nowrap; FONT-VARIANT: normal" align=right>'
.$news_date.'</TD></TR>
<TR>
<TD class=nb3 colSpan=2>'.$mess.'</TD></TR>
<TR>
<TD class=nb2 colSpan=2>Просмотров: '.$views.' | Добавил: <A class=nb2 href="'.$author_link.'">'.$author.'</A> | <A class=nb2 href="'.$news_link.'">Комментарии 
					('.$posts.')</A> 
					<HR class=nb3>
				  </TD></TR></TBODY></TABLE><BR>';


	}
?>

Ссылка на комментарий
Поделиться на других сайтах

А если на одной страничке ну3жно вывести 3 скрипта

- форум id 5

- форум id 6

- форум id 7 (урезанный с другими настройками скрипта)

 

Можно какнить модефицировать скрипт под такие задачи ?

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...

Как будет время - сделаю.

Только зачем новости из нескольких форумов???

Изменено пользователем IT-Security
Ссылка на комментарий
Поделиться на других сайтах

Только зачем новости из нескольких форумов???

мне незачем , но просто ля так сказать расширения возможностей данного скрипта

Ссылка на комментарий
Поделиться на других сайтах

SSI экпорт последних тем и сообщений

Если нету ssi.php - ищем в сети.

Ссылка на комментарий
Поделиться на других сайтах

  • 6 месяцев спустя...

Присоединиться к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.