Вся правда об RSS
Ratibor |
|
---|---|
Меня интересует вот такой вопрос:
можно ли в RSS рассылки вставить коды счетчиков, таких к примеру как rambler top 100 и т.п. ? Объясняю причину. Юзеры подписываются на новости, для них это хорошо, не надо лазить по сайтам, но мне как админу то какая от этого польза ? Юзеры не заходят на сайт и соответственно счетчик не крутится Решаемо это как то ? Не задавай глупых вопросов, не услышишь вранья.
|
Amro |
|
---|---|
В RSS рассылки ? или в модуль вывода Rss ленты ?
Вообще в спецификации rss (1.0, 2.0 или Atom) нет тегов для вставки javascript, да и программы читалки rss лент его обрабатывать не будут, так что смысла нет. |
Ratibor |
|
---|---|
# Amro : В RSS рассылки ? или в модуль вывода Rss ленты ?та что в rss.php в корне. Слышал что там прокатывает какое то шаманство Так вроде не через тэг, а как то хитро. Софт для чтения rss как то же обращается к странице ? Не задавай глупых вопросов, не услышишь вранья.
|
Amro |
|
---|---|
Самый лучший способ это проверить ))) ну в спец софте для чтения rss срабатывать точно не будет а вот например в лисе, опере т.е. в браузерах, думаю должно сработать. alert("Test"); в помощь )
|
jcrush |
|
---|---|
по сути смотрите как в дле сделали правильно, все в настройках регулируется:
Вариант 1: рсс - вся новость 2. рсс под яндекс формат по мне было бы неплохо настроить вывод рсс вручную например в середине рсс вставить урл сайта или ссылку атоматом ставить, это куда лучше если с тебя грабят хоть ссылку может не заметят... SEO блог: http://blog.stfw.ru/
|
Trustmaster |
|
---|---|
Это важный религиозный вопрос вы подняли, товарищ Ратибор! Некоторые сайты вообще не предоставляют ленты в формате RSS/Atom, чтобы те не отбирали у них хлеб насущный за счет баннеропоказов, контекста и прочих приятностей.
Некоторые RSS читалки (вроде моей Liferea) имеют поддержку JavaScript, однако в общем случае в RSS можно добавлять только серверные счетчики (в PHP-скрипте) и счетчики-картинки. Баннеры, кстати, тоже можно вставлять, если у пользователя не отключено отображение графики в RSS. Мудрый же ньюсмейкер размещает в RSS-лентах только первый абзац новости, а остальное, как говорится, под катом. Так что какие-то такие интеллектуальные настроечки, чтобы админ мог сам решить, что пользователи смогут грабить по RSS, а что нет, надо бы и нам воплотить. May the Source be with you!
|
medar |
|
---|---|
Ратибор, а зачем тебе надо чтобы счетчик крутился ?
Чтобы отслеживать популярность RSS можно его зарулить через feedburner. Резюмируя, надо сделать 1. поддержку [ more ] в теле статьи 2. или обрезку текста после N-нного символа и вставку ссылки "читайте дальше на сайте" 3. возможность из админки отключать rss - все, только статьи, только комменты, только сообщения форума. Так ? rangjungyeshe.ru
|
|
This post was edited by medar (2009-02-06 12:18, 15 years ago) |
Ratibor |
|
---|---|
# medar : Ратибор, а зачем тебе надо чтобы счетчик крутился ?Популярность rss мне до фени. А вот показатели счетчика влияют на цену размещаемой рекламы на сайте Не задавай глупых вопросов, не услышишь вранья.
|
jcrush |
|
---|---|
интересно все такие глупые, посмотрели на счетчик взяли доступ к стате, а там счетчик на левых сайтах крутили, ну ну
SEO блог: http://blog.stfw.ru/
|
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=\"".$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']."&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&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&q=".$row['ft_id']."&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&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="(?!(http|/))`i'; $patimg = '`<img src="(?!(http|/))i`'; $base = '<a href='.$cfg['mainurl']."/"; $base = '<a href="'.$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"; Ксати даже отдельно эту строку нельзя заключить в этот тэг. Не задавай глупых вопросов, не услышишь вранья.
|
|
This post was edited by Ratibor (2009-02-06 16:53, 15 years ago) |
Clever |
|
---|---|
у меня рсс вообще не работает. идет конвертация в какую-то непонятную кодировку.
http://auto62rus.ru/rss.php Ищу плагин для яндекс новостей. От седа не работают :( Кто что может сказать по багу? |
NovoKain |
|
---|---|
Clever, могу сказать что у меня аналогичная проблема.
|
Clever |
|
---|---|
слава богу... дело не в кривых руках...
|
jcrush |
|
---|---|
у меня все работает, кстати по поводу счетчика, он может и будет считать посетителей но показывать что либо врятли булет скорее он для внутренних нужд кто сколько юзает рсс ваш, кстати вещь нужная например узнать кто ворует вашу ленту.
SEO блог: http://blog.stfw.ru/
|
NovoKain |
|
---|---|
http://www.feedburner.com и не «ворует» а читает. Если кому-то понадобится воровать у вас контент он это сделает вне зависимости от наличия у вас на сайте rss ленты.
|