cotonti.com : RSS - Зло или полезная фича ? https://www.cotonti.com Последние сообщения в теме Cotonti en Mon, 03 Nov 2025 07:37:05 -0000 wAppp тут ответил уже про кодировку и ру-центр ))]]> вт, 14 июл 2009 19:15:55 -0000 Clever По прежнему ищу rss для яндекс новостей и выношу в отдельный топик.

Кто знает как настроить ру-центер на корректный вывод rss?]]>
чт, 30 апр 2009 02:15:20 -0000
NovoKain Clever, может проблема в кодировке базы... У меня закорючки от тега mail только.

Evil, +1 Надо думать о наполнении сайта и а его дружелюбности ползователю а не о финансовых выгодах. Если бы большинство так делало то интернет был бы гораздо юзабельней и чище.]]>
ср, 29 апр 2009 22:39:58 -0000
Evil 2. #Trustmaster прав, надо завлекать народ на сайт, а не считать, сколько людей читают ваши новости.]]> ср, 29 апр 2009 02:45:59 -0000 Clever # jcrush : у меня все работает...
Что делал? Как настраивал? В чем может быть проблема?]]>
вс, 26 апр 2009 14:22:00 -0000
NovoKain http://www.feedburner.com и не «ворует» а читает. Если кому-то понадобится воровать у вас контент он это сделает вне зависимости от наличия у вас на сайте rss ленты.]]> сб, 25 апр 2009 19:55:33 -0000 jcrush сб, 25 апр 2009 18:23:20 -0000 Clever сб, 25 апр 2009 00:58:16 -0000 NovoKain Clever, могу сказать что у меня аналогичная проблема.]]> сб, 25 апр 2009 00:23:56 -0000 Clever http://auto62rus.ru/rss.php

Ищу плагин для яндекс новостей. От седа не работают :(

Кто что может сказать по багу?]]>
сб, 25 апр 2009 00:19:55 -0000
Ratibor # jcrush : а там счетчик на левых сайтах крутили, ну ну Речь не идет о левых сайтах, вот потому я и говорил, там как то хитро надо вставлять,
а не просто в тело самого сообщения.

Во, нашел я старый плагин rss, смотрите в самом внизу:

<?PHP

/* ====================
Land Down Under - Website engine
Copyright Neocrome
http://www.neocrome.net

[BEGIN_LDU]
File=rss.php
Version=802
Updated=2005-dec-12
Type=Standalone
Author=Neocrome
Description=
[END_LDU]
==================== */

define('LDU_CODE', TRUE);
$location = "RSS";

require('system/functions.php');
//require('system/templates.php');
require('datas/config.php');
require('system/common.php');

// ======= Stuff that can be set ======

$cfg_maxlines = 20;
$cfg_charset = $cfg['charset'];
$cfg_timetolive = 300;
$cfg_lang = $usr['lang'];
$ldu_cache = FALSE;
$sys['now'] = time();

// ========================

//ldu_connect($cfg['mysqlhost'], $cfg['mysqluser'], $cfg['mysqlpassword'], $cfg['mysqldb']);
//unset($cfg['mysqlhost'], $cfg['mysqluser'], $cfg['mysqlpassword'], $cfg['mysqldb']);

unset ($category, $items);
$m = cv('m','G','STX');

// ======= Loading the categories ======

$sql = ldu_mysql_query("SELECT * FROM $db_structure ORDER BY structure_path");

while ($row = mysql_fetch_array($sql))
	{
	if (!empty($row['structure_icon']))
		{ $row['structure_icon'] = "<img src=https://www.cotonti.com/\"".$row['structure_icon']."\" alt=\"\" />"; }

	$row['structure_title'] = stripslashes($row['structure_title']);
	$row['structure_desc'] = stripslashes($row['structure_desc']);
	$path2 = strrpos($row['structure_path'],".");

	if ($path2>0)
		{
		$path1 = substr($row['structure_path'],0,($path2));
		$path[$row['structure_path']]=$path[$path1].".".$row['structure_code'];
		$tpath[$row['structure_path']]=$tpath[$path1]." ".$cfg['separator']." ".$row['structure_title'];
		}
	else
		{
		$path[$row['structure_path']]=$row['structure_code'];
		$tpath[$row['structure_path']]=$row['structure_title'];
		}

	$order = explode('.',$row['structure_order']);

	$ldu_cat[$row['structure_code']] = array (
		'path' => $path[$row['structure_path']],
		'tpath' => $tpath[$row['structure_path']],
		'rpath' => $row['structure_path'],
		'title' => $row['structure_title'],
		'desc' => $row['structure_desc'],
		'minlevel' => $row['structure_minlevel'],
		'icon' => $row['structure_icon'],
		'pages' => $row['structure_pages'],
		'links' => $row['structure_links'],
		'group' => $row['structure_group'],
		'order' => $order[0],
		'way' => $order[1]
			);
	}

$ldu_cat['system'] = array (
	'path' => '',
	'tpath' => '',
	'rpath' => '',
	'title' => $L['System'],
	'desc' => '',
	'minlevel' => 0,
	'icon' => '',
	'pages' => 1,
	'links' => 0,
	'group' => 0,
	'order' => 'title',
	'way' => 'asc'
		);

$sql = ldu_cgetall();

if ($sql)
	{
	while ($row = mysql_fetch_array($sql))
		{ $$row['c_name'] = unserialize(stripslashes($row['c_value'])); }
	}

// ======= Grabbing the datas ======

switch ($m)
	{

	// ======= Pages ======

	case 'pages':

	$category = "Pages";

	if (!$rss2_pages)
		{
		$sql = ldu_mysql_query("SELECT page_id, page_title, page_cat, page_desc, page_date FROM $db_pages WHERE page_state=0 AND page_cat NOT LIKE 'system' ORDER by page_date DESC LIMIT $cfg_maxlines ");

		while ($row = mysql_fetch_array($sql))
			{
			if ($usr['level']>=$ldu_cat[$row['page_cat']]['minlevel'])
				{
				$items .= "<item>\n";
				$items .= " <title>".htmlspecialchars($ldu_cat[$row['page_cat']]['title']." : 	".stripslashes($row['page_title']))."</title>\n";
				$items .= " <description>".htmlspecialchars(stripslashes($row['page_desc']))."</description>\n";
				$items .= " <link>".$cfg['mainurl']."/page.php?id=".$row['page_id']."</link>\n";
				$items .= " <pubdate>".date("r",$row["page_date"])."</pubdate>\n";
				$items .= " <comments>".$cfg['mainurl']."/comments.php?id=p".$row['page_id']."</comments>\n";
				$items .= "</item>\n\n";
				}
			}
		ldu_cstore('rss2_pages',$items,$cfg_timetolive);
		}
	else
		{ $items = $rss2_pages; }

	break;

	// ======= Links ======

	case 'links':

	$category = "Links";

	if (!$rss2_links)
		{
		$sql = ldu_mysql_query("SELECT link_id, link_cat, link_title, link_desc FROM $db_links WHERE link_state=0 ORDER by link_id DESC LIMIT $cfg_maxlines ");

		while ($row = mysql_fetch_array($sql))
			{
			if ($usr['level']>=$ldu_cat[$row['link_cat']]['minlevel'])
				{
				$items .= "<item>\n";
				$items .= " <title>".htmlspecialchars($ldu_cat[$row['link_cat']]['title']." : ".stripslashes($row['link_title']))."</title>\n";
				$items .= " <description>".htmlspecialchars(stripslashes($row['link_desc']))."</description>\n";
				$items .= " <link>".$cfg['mainurl']."/links.php?id=".$row['link_id']."&amp;a=jump</link>\n";
				$items .= " <pubdate>".date("r",time())."</pubdate>\n";
				$items .= "</item>\n\n";
				}
			}
		ldu_cstore('rss2_links',$items,$cfg_timetolive);
		}
	else
		{ $items = $rss2_links; }

	break;

	// ======= Events ======

	case 'events':

	$category = "Events";

	if (!$rss2_events)
		{
		$sql = ldu_mysql_query("SELECT event_id,event_date, event_title FROM $db_events WHERE event_state=0 AND event_date>'".$sys['now']."' ORDER by event_date ASC LIMIT $cfg_maxlines ");

		while ($row = mysql_fetch_array($sql))
			{
			$items .= "<item>\n";
			$items .= " <title>".htmlspecialchars(stripslashes($row['event_title']))."</title>\n";
			$items .= " <description>"."-"."</description>\n";
			$items .= " <link>".$cfg['mainurl']."/events.php?m=details&amp;id=".$row['event_id']."</link>\n";
			$items .= " <pubdate>".date("r",$row['event_date'])."</pubdate>\n";
			$items .= " <comments>".$cfg['mainurl']."/comments.php?id=e".$row['event_id']."</comments>\n";
			$items .= "</item>\n\n";
			}
		ldu_cstore('rss2_events',$items,$cfg_timetolive);
		}
	else
		{ $items = $rss2_events; }

	break;

	// ======= Forums ======

	case 'forums':

	$category = "Forums";

	if (!$rss2_forums)
		{
		$sql = ldu_mysql_query("SELECT t.ft_id, t.ft_title, t.ft_updated, s.fs_title
			FROM $db_forum_topics t,$db_forum_sections s
			WHERE t.ft_sectionid=s.fs_id AND s.fs_minlevel=0 AND t.ft_movedto=0
			ORDER by t.ft_updated DESC LIMIT $cfg_maxlines ");

		while ($row = mysql_fetch_array($sql))
			{
			$items .= "<item>\n";
			$items .= " <title>".htmlspecialchars(stripslashes($row['fs_title'])." : ".stripslashes($row['ft_title']))."</title>\n";
			$items .= " <description>"." "."</description>\n";
			$items .= " <link>".$cfg['mainurl']."/forums.php?m=posts&amp;q=".$row['ft_id']."&amp;n=last#bottom</link>\n";
			$items .= " <pubdate>".date("r",$row['ft_updated'])."</pubdate>\n";
			$items .= "</item>\n\n";
			}
		ldu_cstore('rss2_forums',$items,$cfg_timetolive);
		}
	else
		{ $items = $rss2_forums; }

	break;

	// ======= News ======

	default :

	$category = "News";

	if (!$rss2_news)
		{
		$sql = ldu_mysql_query("SELECT news_id, news_date, news_title, news_text FROM $db_news WHERE news_minlevel=0 AND news_state=0 AND news_date<'".$sys['now']."' ORDER by news_date DESC LIMIT $cfg_maxlines ");

		while ($row = mysql_fetch_array($sql))
			{
			$row["news_text"] = stripslashes($row['news_text']);
			$readmore = strpos($row['news_text'],"<more>");
			if ($readmore>0)
				{ $row['news_text'] = substr($row['news_text'], 0, $readmore)."..."; }
			$row['news_text'] = ldu_parse($row['news_text'], TRUE, TRUE, TRUE);

			$items .= "<item>\n";
			$items .= " <title>".htmlspecialchars(stripslashes($row['news_title']))."</title>\n";
			$items .= " <description>".htmlspecialchars($row['news_text'])."</description>\n";
			$items .= " <link>".$cfg['mainurl']."/index.php?m=single&amp;id=".$row['news_id']."</link>\n";
			$items .= " <pubdate>".date("r",$row['news_date'])."</pubdate>\n";
			$items .= " <comments>".$cfg['mainurl']."/comments.php?id=n".$row['news_id']."</comments>\n";
			$items .= "</item>\n\n";
			}
		ldu_cstore('rss2_news',$items,$cfg_timetolive);
		}
	else
		{ $items = $rss2_news; }

	break;

	}

// ======= And outputing the thing ======

// Fix for relative URLs, by Johnb :
/*
$paturl = '`<a href=https://www.cotonti.com/"(?!(http|/))`i';
$patimg = '`<img src=https://www.cotonti.com/"(?!(http|/))i`';
$base = '<a href='https://www.cotonti.com/.$cfg['mainurl']."/";
$base = '<a href=https://www.cotonti.com/"'.$cfg['mainurl']."/";
$items = preg_replace($paturl, $base, $items);
$items = preg_replace($patimg, $base, $items);
*/
// --- End of the fix

header('Content-type: text/xml');


$output = "<?xml version=\"1.0\" encoding=\"".$cfg_charset."\"?>\n";
$output .= "<rss version=\"2.0\">\n";
$output .= "<channel>\n";
$output .= "<title>".$cfg['maintitle'].": ".$category."</title>\n";
$output .= "<link>".$cfg['mainurl']."</link>\n";
$output .= "<description>".$cfg['subtitle']."</description>\n";
$output .= "<generator>Copyright by http://www.mysite.ru</generator>\n";
$output .= "<pubdate>".date("r",time())."</pubdate>\n";
$output .= "<category>".$cfg['maintitle'].": ".$category."</category>";
$output .= "<ttl>".$cfg_timetolive."</ttl>";
$output .= "<language>".$cfg_lang."</language>\n\n";
$output .= $items;
$output .= "</channel>\n";
$output .= "</rss>";


@ob_start("ob_gzhandler");
echo($output);
@ob_end_flush();

	$file = "bbclone/var/access.php";
	if (file_exists($file))
		{
		if ($cfg['plugin']['bbclone']['lng_control'] == "on") { $bblng = " (".$usr['lang'].")"; }

		define("_BBC_PAGE_NAME", "RSS 2.0 ".$category.$bblng);
		define("_BBCLONE_DIR", "bbclone/");
		define("COUNTER", _BBCLONE_DIR."mark_page.php");
		if (is_readable(COUNTER)) include_once(COUNTER);
		}
$handle = get_content ("http://counter.rambler.ru/top100.cnt?XXXXXX");
?>

Кстати глюк нашел, сперва попробовал заключить код в тэг highlight=php
и привыводе код обрезался вот на этой строке:
$output = "<?xml version=\"1.0\" encoding=\"".$cfg_charset."\"?>\n";

Ксати даже отдельно эту строку нельзя заключить в этот тэг.]]>
пт, 06 фев 2009 16:34:05 -0000
jcrush пт, 06 фев 2009 08:40:11 -0000 Ratibor # medar : Ратибор, а зачем тебе надо чтобы счетчик крутился ?
Чтобы отслеживать популярность RSS можно его зарулить через feedburner. Популярность rss мне до фени.
А вот показатели счетчика влияют на цену размещаемой рекламы на сайте :-)]]>
пт, 06 фев 2009 02:44:30 -0000
medar Чтобы отслеживать популярность RSS можно его зарулить через feedburner.

Резюмируя, надо сделать
1. поддержку [ more ] в теле статьи
2. или обрезку текста после N-нного символа и вставку ссылки "читайте дальше на сайте"
3. возможность из админки отключать rss - все, только статьи, только комменты, только сообщения форума.
Так ?]]>
пт, 06 фев 2009 02:26:40 -0000
Trustmaster
Некоторые RSS читалки (вроде моей Liferea) имеют поддержку JavaScript, однако в общем случае в RSS можно добавлять только серверные счетчики (в PHP-скрипте) и счетчики-картинки. Баннеры, кстати, тоже можно вставлять, если у пользователя не отключено отображение графики в RSS.

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

Так что какие-то такие интеллектуальные настроечки, чтобы админ мог сам решить, что пользователи смогут грабить по RSS, а что нет, надо бы и нам воплотить.]]>
чт, 05 фев 2009 22:56:14 -0000
jcrush Вариант 1: рсс - вся новость
2. рсс под яндекс формат

по мне было бы неплохо настроить вывод рсс вручную например в середине рсс вставить урл сайта или ссылку атоматом ставить, это куда лучше если с тебя грабят хоть ссылку может не заметят...]]>
чт, 05 фев 2009 22:21:52 -0000
Amro чт, 05 фев 2009 21:19:39 -0000 Ratibor # Amro : В RSS рассылки ? или в модуль вывода Rss ленты ? та что в rss.php в корне.

Слышал что там прокатывает какое то шаманство :-)
Так вроде не через тэг, а как то хитро.
Софт для чтения rss как то же обращается к странице ?]]>
чт, 05 фев 2009 21:02:09 -0000
Amro Вообще в спецификации rss (1.0, 2.0 или Atom) нет тегов для вставки javascript, да и программы читалки rss лент его обрабатывать не будут, так что смысла нет.]]> чт, 05 фев 2009 20:59:56 -0000 Ratibor можно ли в RSS рассылки вставить коды счетчиков, таких к примеру как rambler top 100 и т.п. ?
Объясняю причину.
Юзеры подписываются на новости, для них это хорошо, не надо лазить по сайтам,
но мне как админу то какая от этого польза ?
Юзеры не заходят на сайт и соответственно счетчик не крутится :-)
Решаемо это как то ?]]>
чт, 05 фев 2009 20:14:04 -0000