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

[1.x.x]RSS For Yandex и не только


helpix

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

подумай логично

что такое where

по русски

и зачем там есть такие штуки как AND и OR

их тоже по русски

ведь программисты тоже люди и язык запроса тоже людьми создан

ты же не говоришь "дайте мне огурец который красный который короткий который толстый"

ты наверное говоришь "который красный и короткий и толстый"

 

 

оффтоп

че-то тему про первую линейку оживились

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

  • Ответы 90
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

Если нужен кусок кода по "сборке" условия для запроса, то можно посмотреть как я это делал для мода расширенного SSI экспорта для 2.х.

 

че-то тему про первую линейку оживились

Пора переходить :D

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

Да вот пока что начал с этого. ))

$show = isset($ibforums->input['show']) ? intval($ibforums->input['show']) : 0;

 

if ($show == 'topics')

{

$limit = "5";

}

Ну это так, для проверки.

Сейчас буду думать что делать дальше. Эмм а ссылку можешь дать на "расширенный RSS Export"? :D

 

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

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

Делать SELECT не сообщений, а тем.

 

Цитата какая-то левая :D Если мы с $show сделаем такое, то оно никогда не будет == 'topics'. Intval нужно брать от переменных, в которых должны быть числа, я это приводил для f=5 и t=3;

Вот с ними как раз и нужно делать так.

 

$f = isset($ibforums->input['f']) ? intval($ibforums->input['f']) : 0;
if( $f )
{
$where .= "AND forum_id={$f}";
}

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

Что не выходит у меня... Сложновато все же.

 

Только что заметил, что у Сонга есть как раз то что нужно, интересно, поможет ли...

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

Сделал наконец-таки.. Правда пока не все, отображение первого поста темы, так и не смог сделать. Спасибо за помощь!
Ссылка на комментарий
Поделиться на других сайтах

  • 1 год спустя...
Вот значит что у меня получилось.

Правда я сначала писал для своего форума, а потом переводил для стандартных, поэтому может чего не заметил, говорите.

 

Только предупреждаю всех у кого стоят моды скрытия чего-либо: ссылок, части постов и прочего (моды HIDE, SPOIL и прочие), все эти моды в RSS работать не будут!

Всё что вы скрываете в общедоступных форумах, будет видно в поисковой машине.

 

Всё нормально запустилось. Вот только в ленте идёт показ сообщений со всех скрытых разделов форума, даже если просматриваешь гостём. По маске не срабатывает.

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

в ленте идёт показ сообщений со всех скрытых разделов форума, даже если просматриваешь гостём. По маске не срабатывает.

Я доделал подхват форумной авторизации и показ ленты с учетом прав доступа в форуме. Только поленился с запароленными форумами: не показываю, даже если пароль у пользователя в куках сидит.

 

Отредактировать, вписав данные своего форума, положить как ./rss/index.php:

<?php

define('ROOT_PATH', "../" ); // относительный путь к форуму

error_reporting  (E_ERROR | E_WARNING | E_PARSE);
set_magic_quotes_runtime(0);

//--------------------------------
// Подключаю форумный sql-драйвер
//--------------------------------
require ROOT_PATH."conf_global.php";
$INFO['sql_driver'] = !$INFO['sql_driver'] ? 'mySQL' : $INFO['sql_driver'];

require ( ROOT_PATH."sources/Drivers/".$INFO['sql_driver'].".php" );

$DB = new db_driver;

$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['use_shutdown']     = 0;
$DB->obj['debug']            = 0;

define('SERVER_DIR',$INFO['base_dir']);

//--------------------------------
// Коннектимся к БД
//--------------------------------
$DB->connect();

//--------------------------------
// Забираем форумную информацию о пользователе
//--------------------------------
class info {
var $member       = array();
var $input        = array();
var $session_id   = "";
var $vars         = "";
var $lastclick    = "";
var $location     = "";
var $perm_id      = "";
var $session_type = "";
}
$ibforums = new info();

//--------------------------------
// Подключаем форумные классы функций
//--------------------------------
require ROOT_PATH."sources/functions.php";
$std    = new FUNC;
$print  = new display();
$sess   = new session();

//--------------------------------
//  Используем форумные фильтры входящих
//--------------------------------
$ibforums->input = $std->parse_incoming();

//--------------------------------
//  Авторизуем пользователя
//--------------------------------
$ibforums->member = $sess->authorise();
$ibforums->session_id = "";

//--------------------------------
// What to do?
//--------------------------------


if($ibforums->input['viev'] == "news")do_lastnews();
else do_lastposts();

$DB->close_db();
exit;


//-------------------------------------------------
//  Last Posts
//-------------------------------------------------
function do_lastposts() {
global $DB, $ibforums, $root_path, $std, $INFO;

$perm_ids = explode(",",$ibforums->perm_id);
$no_denyed = array(); // ID разделов, которые разрешены этому пользователю
$DB->query("SELECT id, read_perms, password FROM ibf_forums");
while( $p = $DB->fetch_row() )
{
	$perms = ",".$p['read_perms'].",";
	if( $perms == ",*," and (!$p['password'] or $p['password']==$std->my_getcookie('ibresource'.$p['id'])) )
	{
		$no_denyed[] = $p['id'];
	}

	else
	{
		foreach($perm_ids as $perm_id)
		{
			if(stristr($perms,",".$perm_id.",") and (!$p['password'] or $p['password']==$std->my_getcookie('ibresource'.$p['id'])))$no_denyed[] = $p['id'];
		}
	}
}
$no_denyed = array_unique($no_denyed);
$extra = "AND p.forum_id IN (".implode(",",$no_denyed).")";
// Если запрошен конкретный подфорум
if($ibforums->input['f'])
{

	$allov = 0;
	foreach($no_denyed as $id)
	{
		if($id == intval($ibforums->input['f']))$allov++;
	}
	$forum = intval($ibforums->input['f']);
	if($allov)$extra = "AND p.forum_id = ".$forum;
	else fatal_error("В этом форуме Вам не разрешен просмотр новостей!");
}
//die($ibforums->input['f']);
   $limit = "100"; // Количество 'последних постов'
if(isSet($ibforums->input['n']))
{
	$n=intval($ibforums->input['n']);
	if($n<1000)$limit = $n;
}
$prefix 	  =  $INFO['sql_tbl_prefix'];

//----------------------------------------
// Header parse...
//----------------------------------------

@header('Content-Type: text/xml');
@header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
@header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
@header('Pragma: public');


$template = "
     <item>
       <guid isPermaLink='true'>{post_url}</guid>
       <pubDate>{rfc_date}</pubDate>
       <title>{author} написал(а) в теме: {thread_title}</title>
       <link>{post_url}</link>
       <description><![CDATA[{text}]]></description>
       <comments>{post_url}</comments>
     </item>
";

 	$to_echo = "<?xml version='1.0' encoding=\"windows-1251\"?>
     <rss version='2.0'>
     <channel>
     <title>Заголовок ленты</title>
     <link>http://site.ru/</link>
     <description>Описание сайта или ленты новостей сайта</description>
     <generator>Vesvalo</generator>
  <managingEditor>info@site.ru</managingEditor>
 	";

$DB->query( "SELECT p.pid, p.author_name, p.post_date, p.forum_id, p.topic_id, p.author_id, p.post, t.title, t.posts FROM ibf_posts p LEFT JOIN ibf_topics t ON (t.tid = p.topic_id) WHERE p.hide_post=0 ".$extra." ORDER BY pid DESC LIMIT 0,".$limit );
if ( ! $DB->get_num_rows() ) {
	fatal_error("Could not get the information from the database");
}
$finded = array();
while($out = $DB->fetch_row($query))
{
	if(!$finded[ $out['topic_id'] ])$finded[ $out['topic_id'] ] = intval($out['posts']);
	else $finded[ $out['topic_id'] ]--;
	$st = (intval($finded[ $out['topic_id'] ] / 15))*15;

	$out['post'] = preg_replace( "#<span class='hide_post'>(.+?)</span>#is", "", $out['post'] );
	$thread_title = $out['title'];
       $thread_title = preg_replace( "'&'si", "&" , $thread_title );
	$forum_name = $out['name'];
	$author	            = $out['author_name'];
       $rfcdate            = date( 'r', $out['post_date'] );
	$out['post_date']	= $std->get_date( $out['post_date'], 'LONG' );
	$date               = $out['post_date'];
	$text               = $out['post'];

	$to_echo  .= parse_template( $template,array (

	'thread_url' => $INFO['board_url']."/index.php?act=ST&f=".$out['forum_id']."&t=".$out['topic_id'],
	'thread_title' => $thread_title,
	'forum_url' => $INFO['board_url']."/index.php?act=SF&f=".$out['forum_id'],
	'post_url' => $INFO['board_url']."/index.php?act=ST&f=".$out['forum_id']."&t=".$out['topic_id']."&st=".$st."#entry".$out['pid'],
	'forum_name' => $forum_name,
	'date'       => $date,
	'rfc_date'   => $rfcdate,
	'author'     => $author,
	'text'     => $text,
	'profile_link'   => $INFO['board_url']."/index.php?act=Profile&CODE=03&MID=".$out['author_id'],	) );
}

$to_echo  .= "
     </channel>
     </rss>
";

   echo $to_echo;
}


function do_lastnews() {
global $DB, $ibforums, $root_path, $std, $INFO;

if ( $INFO['portal_newsforum'] == "" )
{
	$forumid="1";
}
elseif ( $INFO['portal_newsforum'] == 0 )
{
	if ( $INFO['portal_newsforum_expert'] == "" )
	{
		$forumid="1";
	}
	else
	{
		$forumid = $INFO['portal_newsforum_expert'];
	}
}
else 
{
	$forumid = $INFO['portal_newsforum'];
}
$prefix 	  =  $INFO['sql_tbl_prefix'];
$max = $INFO['portal_newsposts'] ? $INFO['portal_newsposts'] : 5;
//----------------------------------------
// Header parse...
//----------------------------------------

@header('Content-Type: text/xml');
@header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
@header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
@header('Pragma: public');


$template = "
     <item>
       <guid isPermaLink='true'>{post_url}</guid>
       <pubDate>{rfc_date}</pubDate>
       <title>{author} опубликовал(а) новость: {thread_title}</title>
       <link>{post_url}</link>
       <description><![CDATA[{text}]]></description>
       <comments>{post_url}</comments>
     </item>
";

 	$to_echo = "<?xml version='1.0' encoding=\"windows-1251\"?>
     <rss version='2.0'>
     <channel>
     <title>Новости групп анонимных алкоголиков</title>
     <link>http://vesvalo.net/</link>
     <description>Новостная лента группы АА Vesvalo</description>
     <generator>Vesvalo.net</generator>
  <managingEditor>aa@vesvalo.net</managingEditor>
 	";

$top_query = $DB->query("SELECT tid, title, description, forum_id FROM ibf_topics WHERE forum_id IN (".$forumid.") ORDER BY tid DESC LIMIT 0 , ".$max);
if ( ! $DB->get_num_rows() ) {
	fatal_error("Could not get the information from the database");
}
while ( $t = $DB->fetch_row($top_query) ) 
{
	$DB->query("SELECT pid, post, author_id, author_name, post_date FROM ibf_posts WHERE topic_id = ".$t['tid']." ORDER BY pid ASC LIMIT 0,1");
	$p = $DB->fetch_row();
	if($p['author_name'] == "")$p['author_name'] = "Гость";
	$p['post'] = preg_replace( "#<span class='hide_post'>(.+?)</span>#is", "", $p['post'] );
// выковыряли...
	$thread_title = $t['title']." ".$t['description'];
       $thread_title = preg_replace( "'&'si", "&" , $thread_title );
	$forum_name = "Новости";
	$author	            = $p['author_name'];
       $rfcdate            = date( 'r', $p['post_date'] );
	$p['post_date']	= $std->get_date( $out['post_date'], 'LONG' );
	$date               = $p['post_date'];
	$text               = $p['post'];

	$to_echo  .= parse_template( $template,array (
		'thread_url' => $INFO['board_url']."/index.php?act=ST&f=".$t['forum_id']."&t=".$t['tid'],
		'thread_title' => $thread_title,
		'forum_url' => $INFO['board_url']."/index.php?act=SF&f=".$t['forum_id'],
		'post_url' => $INFO['board_url']."/index.php?showtopic=".$t['tid']."#entry".$p['pid'],
		'forum_name' => $forum_name,
		'date'       => $date,
		'rfc_date'   => $rfcdate,
		'author'     => $author,
		'text'     => $text,
		'profile_link'   => $INFO['board_url']."/index.php?act=Profile&CODE=03&MID=".$p['author_id'],
	) );
}

$to_echo  .= "
     </channel>
     </rss>
";

   echo $to_echo;
}


//+-------------------------------------------------
// GLOBAL ROUTINES
//+-------------------------------------------------


function parse_template( $template, $assigned=array() )
{

foreach( $assigned as $word => $replace)
{
	$template = preg_replace( "/\{$word\}/i", "$replace", $template );
}

return $template;
}



function fatal_error($message="") {
echo("An error occured whilst processing this directive");
if ($message)
{
	echo("<br>$message");
}
exit();
}
?>

 

Форматы вызова:

rss/?viev=news - новостной форум (задается через настройки портала в админке).

rss/? - все новости (по умолчанию 100 последних сообщений)

rss/?f=36 - 100 (по умолчанию) последних сообщений в подфоруме ID 36

rss/?f=36&n=25 - 25 последних сообщений в подфоруме ID 36

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

Вот что пишет:

Warning: require(./conf_global.php) [function.require]: failed to open stream: No such file or directory in /var/www/imtw.ru/rss/index.php on line 11

 

Ошибка в этой строке:

require ROOT_PATH."conf_global.php";

Никак не могу понять причину :D

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

Ерунда какая-то, не понимаю...

Чтож, попробуй

define('ROOT_PATH', substr($_SERVER['SCRIPT_FILENAME'],0,strpos($_SERVER['SCRIPT_FILENAME'],"rss/index.php")) );

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

Ерунда какая-то, не понимаю...

Чтож, попробуй

define('ROOT_PATH', substr($_SERVER['SCRIPT_FILENAME'],0,strpos($_SERVER['SCRIPT_FILENAME'],"rss/index.php")) );

 

Да сам не могу понять что к чему. Причём в версии что в этой теме, всё нормально.

 

После того как внёс изменения, теперь такое выдаёт:

Warning: require(./sources/Drivers/mySQL.php) [function.require]: failed to open stream: No such file or directory in /var/www/imtw.ru/rss/index.php on line 14
Ссылка на комментарий
Поделиться на других сайтах

Давай попробуем без define:

<?php

$root_path = "../"; // относительный путь к форуму

error_reporting  (E_ERROR | E_WARNING | E_PARSE);
set_magic_quotes_runtime(0);

//--------------------------------
// Подключаю форумный sql-драйвер
//--------------------------------
require $root_path."conf_global.php";
$INFO['sql_driver'] = !$INFO['sql_driver'] ? 'mySQL' : $INFO['sql_driver'];

require ( $root_path."sources/Drivers/".$INFO['sql_driver'].".php" );

$DB = new db_driver;

$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['use_shutdown']     = 0;
$DB->obj['debug']            = 0;

//--------------------------------
// Коннектимся к БД
//--------------------------------
$DB->connect();

//--------------------------------
// Забираем форумную информацию о пользователе
//--------------------------------
class info {
var $member       = array();
var $input        = array();
var $session_id   = "";
var $vars         = "";
var $lastclick    = "";
var $location     = "";
var $perm_id      = "";
var $session_type = "";
}
$ibforums = new info();

//--------------------------------
// Подключаем форумные классы функций
//--------------------------------
require $root_path."sources/functions.php";
$std    = new FUNC;
$print  = new display();
$sess   = new session();

//--------------------------------
//  Используем форумные фильтры входящих
//--------------------------------
$ibforums->input = $std->parse_incoming();

//--------------------------------
//  Авторизуем пользователя
//--------------------------------
$ibforums->member = $sess->authorise();
$ibforums->session_id = "";

//--------------------------------
// What to do?
//--------------------------------


if($ibforums->input['viev'] == "news")do_lastnews();
else do_lastposts();

$DB->close_db();
exit;

//-------------------------------------------------
//  Last Posts
//-------------------------------------------------
function do_lastposts() {
global $DB, $ibforums, $root_path, $std, $INFO;

$perm_ids = explode(",",$ibforums->perm_id);
$no_denyed = array(); // ID разделов, которые разрешены этому пользователю
$DB->query("SELECT id, read_perms, password FROM ibf_forums");
while( $p = $DB->fetch_row() )
{
	$perms = ",".$p['read_perms'].",";
	if( $perms == ",*," and (!$p['password'] or $p['password']==$std->my_getcookie('ibresource'.$p['id'])) )
	{
		$no_denyed[] = $p['id'];
	}

	else
	{
		foreach($perm_ids as $perm_id)
		{
			if(stristr($perms,",".$perm_id.",") and (!$p['password'] or $p['password']==$std->my_getcookie('ibresource'.$p['id'])))$no_denyed[] = $p['id'];
		}
	}
}
$no_denyed = array_unique($no_denyed);
$extra = "AND p.forum_id IN (".implode(",",$no_denyed).")";
// Если запрошен конкретный подфорум
if($ibforums->input['f'])
{

	$allov = 0;
	foreach($no_denyed as $id)
	{
		if($id == intval($ibforums->input['f']))$allov++;
	}
	$forum = intval($ibforums->input['f']);
	if($allov)$extra = "AND p.forum_id = ".$forum;
	else fatal_error("В этом форуме Вам не разрешен просмотр новостей!");
}
//die($ibforums->input['f']);
   $limit = "100"; // Количество 'последних постов'
if(isSet($ibforums->input['n']))
{
	$n=intval($ibforums->input['n']);
	if($n<1000)$limit = $n;
}
$prefix 	  =  $INFO['sql_tbl_prefix'];

//----------------------------------------
// Header parse...
//----------------------------------------

@header('Content-Type: text/xml');
@header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
@header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
@header('Pragma: public');


$template = "
     <item>
       <guid isPermaLink='true'>{post_url}</guid>
       <pubDate>{rfc_date}</pubDate>
       <title>{author} написал(а) в теме: {thread_title}</title>
       <link>{post_url}</link>
       <description><![CDATA[{text}]]></description>
       <comments>{post_url}</comments>
     </item>
";

 	$to_echo = "<?xml version='1.0' encoding=\"windows-1251\"?>
     <rss version='2.0'>
     <channel>
     <title>Заголовок ленты</title>
     <link>http://site.ru/</link>
     <description>Описание сайта или ленты новостей сайта</description>
     <generator>Vesvalo</generator>
  <managingEditor>info@site.ru</managingEditor>
 	";

$DB->query( "SELECT p.pid, p.author_name, p.post_date, p.forum_id, p.topic_id, p.author_id, p.post, t.title, t.posts FROM ibf_posts p LEFT JOIN ibf_topics t ON (t.tid = p.topic_id) WHERE p.hide_post=0 ".$extra." ORDER BY pid DESC LIMIT 0,".$limit );
if ( ! $DB->get_num_rows() ) {
	fatal_error("Could not get the information from the database");
}
$finded = array();
while($out = $DB->fetch_row($query))
{
	if(!$finded[ $out['topic_id'] ])$finded[ $out['topic_id'] ] = intval($out['posts']);
	else $finded[ $out['topic_id'] ]--;
	$st = (intval($finded[ $out['topic_id'] ] / 15))*15;

	$out['post'] = preg_replace( "#<span class='hide_post'>(.+?)</span>#is", "", $out['post'] );
	$thread_title = $out['title'];
       $thread_title = preg_replace( "'&'si", "&" , $thread_title );
	$forum_name = $out['name'];
	$author	            = $out['author_name'];
       $rfcdate            = date( 'r', $out['post_date'] );
	$out['post_date']	= $std->get_date( $out['post_date'], 'LONG' );
	$date               = $out['post_date'];
	$text               = $out['post'];

	$to_echo  .= parse_template( $template,array (

	'thread_url' => $INFO['board_url']."/index.php?act=ST&f=".$out['forum_id']."&t=".$out['topic_id'],
	'thread_title' => $thread_title,
	'forum_url' => $INFO['board_url']."/index.php?act=SF&f=".$out['forum_id'],
	'post_url' => $INFO['board_url']."/index.php?act=ST&f=".$out['forum_id']."&t=".$out['topic_id']."&st=".$st."#entry".$out['pid'],
	'forum_name' => $forum_name,
	'date'       => $date,
	'rfc_date'   => $rfcdate,
	'author'     => $author,
	'text'     => $text,
	'profile_link'   => $INFO['board_url']."/index.php?act=Profile&CODE=03&MID=".$out['author_id'],	) );
}

$to_echo  .= "
     </channel>
     </rss>
";

   echo $to_echo;
}


function do_lastnews() {
global $DB, $ibforums, $root_path, $std, $INFO;

if ( $INFO['portal_newsforum'] == "" )
{
	$forumid="1";
}
elseif ( $INFO['portal_newsforum'] == 0 )
{
	if ( $INFO['portal_newsforum_expert'] == "" )
	{
		$forumid="1";
	}
	else
	{
		$forumid = $INFO['portal_newsforum_expert'];
	}
}
else 
{
	$forumid = $INFO['portal_newsforum'];
}
$prefix 	  =  $INFO['sql_tbl_prefix'];
$max = $INFO['portal_newsposts'] ? $INFO['portal_newsposts'] : 5;
//----------------------------------------
// Header parse...
//----------------------------------------

@header('Content-Type: text/xml');
@header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
@header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
@header('Pragma: public');


$template = "
     <item>
       <guid isPermaLink='true'>{post_url}</guid>
       <pubDate>{rfc_date}</pubDate>
       <title>{author} опубликовал(а) новость: {thread_title}</title>
       <link>{post_url}</link>
       <description><![CDATA[{text}]]></description>
       <comments>{post_url}</comments>
     </item>
";

 	$to_echo = "<?xml version='1.0' encoding=\"windows-1251\"?>
     <rss version='2.0'>
     <channel>
     <title>Новости сайта site.ru</title>
     <link>http://site.ru/</link>
     <description>Новостная лента сайта site.ru</description>
     <generator>Vesvalo</generator>
  <managingEditor>info@site.ru</managingEditor>
 	";

$top_query = $DB->query("SELECT tid, title, description, forum_id FROM ibf_topics WHERE forum_id IN (".$forumid.") ORDER BY tid DESC LIMIT 0 , ".$max);
if ( ! $DB->get_num_rows() ) {
	fatal_error("Could not get the information from the database");
}
while ( $t = $DB->fetch_row($top_query) ) 
{
	$DB->query("SELECT pid, post, author_id, author_name, post_date FROM ibf_posts WHERE topic_id = ".$t['tid']." ORDER BY pid ASC LIMIT 0,1");
	$p = $DB->fetch_row();
	if($p['author_name'] == "")$p['author_name'] = "Гость";
	$thread_title = $t['title']." ".$t['description'];
       $thread_title = preg_replace( "'&'si", "&" , $thread_title );
	$forum_name = "Новости";
	$author	            = $p['author_name'];
       $rfcdate            = date( 'r', $p['post_date'] );
	$p['post_date']	= $std->get_date( $out['post_date'], 'LONG' );
	$date               = $p['post_date'];
	$text               = $p['post'];

	$to_echo  .= parse_template( $template,array (
		'thread_url' => $INFO['board_url']."/index.php?act=ST&f=".$t['forum_id']."&t=".$t['tid'],
		'thread_title' => $thread_title,
		'forum_url' => $INFO['board_url']."/index.php?act=SF&f=".$t['forum_id'],
		'post_url' => $INFO['board_url']."/index.php?showtopic=".$t['tid']."#entry".$p['pid'],
		'forum_name' => $forum_name,
		'date'       => $date,
		'rfc_date'   => $rfcdate,
		'author'     => $author,
		'text'     => $text,
		'profile_link'   => $INFO['board_url']."/index.php?act=Profile&CODE=03&MID=".$p['author_id'],
	) );
}

$to_echo  .= "
     </channel>
     </rss>
";

   echo $to_echo;
}


//+-------------------------------------------------
// GLOBAL ROUTINES
//+-------------------------------------------------


function parse_template( $template, $assigned=array() )
{

foreach( $assigned as $word => $replace)
{
	$template = preg_replace( "/\{$word\}/i", "$replace", $template );
}

return $template;
}



function fatal_error($message="") {
echo("An error occured whilst processing this directive");
if ($message)
{
	echo("<br>$message");
}
exit();
}
?>

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

Доброго дня. Вопрос следующий- как сделать последние сообщения с форума на другом сайте? Пробовал, что есть сдесь - никак не получается
Ссылка на комментарий
Поделиться на других сайтах

FatCat

 

А мне всё стало ясно с RSS.

Если ставлю вашу самую первую версию, то вот такую ошибку выдаёт:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/imtw.ru/sources/Drivers/mySQL.php on line 190

An error occured whilst processing this directive

Could not get the information from the database

Пойду искать ошибку...

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


×
×
  • Создать...

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

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