RSS

Тема в разделе "WASM.SITE", создана пользователем ash, 20 окт 2005.

  1. ash

    ash New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2004
    Сообщения:
    52
    Адрес:
    Latvia
    Было бы неплохо, если бы был у форума был RSS.
     
  2. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    а зачем?
     
  3. _staier

    _staier New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2003
    Сообщения:
    738
    Адрес:
    Ukraine
    например для снижения нагрузки на сервер за счёт постоянного обновления главной страницы форума
     
  4. ash

    ash New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2004
    Сообщения:
    52
    Адрес:
    Latvia
    Да элементарно для удобства. Большая часть ресурсов, которые я регулярно посещаю, RSS имеют и мне не нужно заботиться о том, чтобы проверить, нет ли чего нового - оно [новое] само мне об этом сообщает.



    А Беспощадные по этому вопросу не выскажутся?
     
  5. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348




    Что-то Беспощадные давненько молчат. Для зимней сессии силы бережете? :))
     
  6. apple

    apple Виктор

    Публикаций:
    0
    Регистрация:
    26 апр 2005
    Сообщения:
    907
    Адрес:
    Russia
    Внимание!
    У форума есть RSS! :)
    http://www.wasm.ru/forum/extern.php?type=rss&action=active&fid=10 - вот это хип. То есть число 10 - это id форума.

    Не знаю, почему он не виден, но он есть!

    Вот так его можно поместить на главную (index.php)
    Найдем
    Код (Text):
    1. $forum_field = '<h3><a href="viewforum.php?id='.$cur_forum['fid'].'">'.pun_htmlspecialchars($cur_forum['forum_name']).'</a></h3>';
    Заменим (предварительно найдя красивую кнопку rss)

    Код (Text):
    1. $forum_field = '<h3><a href="viewforum.php?id='.$cur_forum['fid'].'">'.pun_htmlspecialchars($cur_forum['forum_name']).'</a><div style="float:right;"><a href="extern.php?type=rss&action=active&fid='.$cur_forum['fid'].'"><img src="img/rss.png" border="0" height="15" width="27" alt="RSS" align="middle" /></a></div></h3>';
     
  7. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    IE7.0 отказывается без красивой кнопки добавлять в "Просмотр веб-каналов" RSS-url.
     
  8. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    интересно, а как часто rss обновляется?
    что-то у меня темы старые...

    ЗЫ: в опере тоже кнопочки соответствующей нет.
    2 администрация: добавьте
    Код (Text):
    1. <link href="ссылка на rss" rel="alternate" type="application/rss+xml" title="wasm.ru" />
    в заголовок страниц.
     
  9. apple

    apple Виктор

    Публикаций:
    0
    Регистрация:
    26 апр 2005
    Сообщения:
    907
    Адрес:
    Russia
    Все правильно
    Читай спецификацию
    Код (Text):
    1.     action: active (show most recently active topics) (HTML or RSS)
    2.             new (show newest topics) (HTML or RSS)
    3.             online (show users online) (HTML)
    4.             online_full (as above, but includes a full list) (HTML)
    5.             stats (show board statistics) (HTML)
     
  10. apple

    apple Виктор

    Публикаций:
    0
    Регистрация:
    26 апр 2005
    Сообщения:
    907
    Адрес:
    Russia
    Вот многими желаемая статистика online ;)
    http://www.wasm.ru/forum/extern.php?action=online_full
     
  11. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    хех, спасибо!
     
  12. apple

    apple Виктор

    Публикаций:
    0
    Регистрация:
    26 апр 2005
    Сообщения:
    907
    Адрес:
    Russia
    В файле header.php
    найти
    Код (Text):
    1. ?>
    2. <link rel="stylesheet" type="text/css" href="style/<?php echo $pun_user['style'].'.css' ?>" />
    3. <?php
    Перед ним написать

    Код (Text):
    1. /*RSS*/
    2. if (in_array(basename($_SERVER['PHP_SELF']), array('viewforum.php'))) {
    3. //if(ereg("viewtopic\.php", $_SERVER['PHP_SELF']))  {
    4.     if (isset($_GET["id"]))
    5.     {
    6.         echo '<link href="extern.php?type=rss&action=active&fid='.$_GET["id"].'" rel="alternate" type="application/rss+xml" title="RSS Rootkits.ru" />';
    7.     }
    8.   }
    9. /*RSS*/
    RSS лучше сделать 2.0 (extern.php)

    Код (Text):
    1.     // Should we output this as RSS?
    2.     if (isset($_GET['type']) && strtoupper($_GET['type']) == 'RSS')
    3.     {
    4.         $rss_description = ($_GET['action'] == 'active') ? $lang_common['RSS Desc Active'] : $lang_common['RSS Desc New'];
    5.         $url_action = ($_GET['action'] == 'active') ? '&amp;action=new' : '';
    6.  
    7.         // Send XML/no cache headers
    8.         header('Content-Type: text/xml');
    9.         header('Expires: '.gmdate('D, d M Y H:i:s').' GMT');
    10.         header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    11.         header('Pragma: public');
    12.  
    13.         // It's time for some syndication!
    14.         echo '<?xml version="1.0" encoding="'.$lang_common['lang_encoding'].'"?>'."\r\n";
    15.         echo '<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">'."\r\n";
    16.         echo '<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">'."\r\n";
    17.         echo '<channel>'."\r\n";
    18.         echo "\t".'<title>'.pun_htmlspecialchars($pun_config['o_board_title']).'</title>'."\r\n";
    19.         echo "\t".'<link>'.$pun_config['o_base_url'].'/</link>'."\r\n";
    20.         echo "\t".'<description>'.pun_htmlspecialchars($rss_description.' '.$pun_config['o_board_title']).'</description>'."\r\n";
    21.         echo "\t".'<language>en-us</language>'."\r\n";
    22.  
    23.         // Fetch 15 topics
    24.         $result = $db->query('SELECT t.id, t.poster, t.subject, t.posted, t.last_post, f.id AS fid, f.forum_name 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=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.moved_to IS NULL'.$forum_sql.' ORDER BY '.$order_by.' DESC LIMIT 15') or error('Unable to fetch topic list', __FILE__, __LINE__, $db->error());
    25.  
    26.         while ($cur_topic = $db->fetch_assoc($result))
    27.         {
    28.             if ($pun_config['o_censoring'] == '1')
    29.                 $cur_topic['subject'] = censor_words($cur_topic['subject']);
    30.  
    31.             echo "\t".'<item>'."\r\n";
    32.             echo "\t\t".'<title>'.pun_htmlspecialchars($cur_topic['subject']).'</title>'."\r\n";
    33.             echo "\t\t".'<link>'.$pun_config['o_base_url'].'/viewtopic.php?id='.$cur_topic['id'].$url_action.'</link>'."\r\n";
    34.             echo "\t\t".'<description><![CDATA['.escape_cdata($lang_common['Forum'].': <a href="'.$pun_config['o_base_url'].'/viewforum.php?id='.$cur_topic['fid'].'">'.$cur_topic['forum_name'].'</a><br />'."\r\n".$lang_common['Author'].': '.$cur_topic['poster'].'<br />'."\r\n".$lang_common['Posted'].': '.date('r', $cur_topic['posted']).'<br />'."\r\n".$lang_common['Last post'].': '.date('r', $cur_topic['last_post'])).']]></description>'."\r\n";
    35.             echo "\t\t".'<content:encoded><![CDATA[<p></p>]]></content:encoded>'."\r\n";
    36.             echo "\t\t".'<pubDate>'.date('r', $cur_topic['last_post']).'</pubDate>'."\r\n";
    37.             echo "\t".'</item>'."\r\n";
    38.         }
    39.  
    40.         echo '</channel>'."\r\n";
    41.         echo '</rss>';
    42.     }
     
  13. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Feeds - Manage feeds - Add.
     
  14. Aquila

    Aquila Самурай дзена

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    1.467
    Адрес:
    Russia, Moscow
    apple
    Круто! Надо будет поместить, раз он уже есть :).
     
  15. apple

    apple Виктор

    Публикаций:
    0
    Регистрация:
    26 апр 2005
    Сообщения:
    907
    Адрес:
    Russia
    Немного переделанный вариант. Может понравится. RSS стал 2.0. Выглядит так.
    Код (Text):
    1.     // Should we output this as RSS?
    2.     if (isset($_GET['type']) && strtoupper($_GET['type']) == 'RSS')
    3.     {
    4.         $rss_description = ($_GET['action'] == 'active') ? $lang_common['RSS Desc Active'] : $lang_common['RSS Desc New'];
    5.         $url_action = ($_GET['action'] == 'active') ? '&amp;action=new' : '';
    6.  
    7.         // Send XML/no cache headers
    8.         header('Content-Type: text/xml');
    9.         header('Expires: '.gmdate('D, d M Y H:i:s').' GMT');
    10.         header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    11.         header('Pragma: public');
    12.  
    13.         // It's time for some syndication!
    14.         echo '<?xml version="1.0" encoding="'.$lang_common['lang_encoding'].'"?>'."\r\n";
    15.         echo '<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">'."\r\n";
    16.         echo '<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">'."\r\n";
    17.         echo '<channel>'."\r\n";
    18.         echo "\t".'<title>'.pun_htmlspecialchars($pun_config['o_board_title']).' : #'.$_GET["fid"].'</title>'."\r\n";
    19.         echo "\t".'<link>'.$pun_config['o_base_url'].'/</link>'."\r\n";
    20.         echo "\t".'<description>'.pun_htmlspecialchars($rss_description.' '.$pun_config['o_board_title']).'</description>'."\r\n";
    21.         echo "\t".'<language>en-us</language>'."\r\n";
    22.  
    23.         // Fetch 15 topics
    24.         $result = $db->query('SELECT t.id, t.poster, t.subject, t.posted, t.last_post, f.id AS fid, f.forum_name 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=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.moved_to IS NULL'.$forum_sql.' ORDER BY '.$order_by.' DESC LIMIT 15') or error('Unable to fetch topic list', __FILE__, __LINE__, $db->error());
    25.  
    26.         while ($cur_topic = $db->fetch_assoc($result))
    27.         {
    28.             if ($pun_config['o_censoring'] == '1')
    29.                 $cur_topic['subject'] = censor_words($cur_topic['subject']);
    30.  
    31.             echo "\t".'<item>'."\r\n";
    32.             echo "\t\t".'<title>'.pun_htmlspecialchars($cur_topic['subject']).'</title>'."\r\n";
    33.             echo "\t\t".'<link>'.$pun_config['o_base_url'].'/viewtopic.php?id='.$cur_topic['id'].$url_action.'</link>'."\r\n";
    34.             echo "\t\t".'<description><![CDATA[]]></description>'."\r\n";
    35.             echo "\t\t".'<content:encoded><![CDATA[<p>'.escape_cdata($lang_common['Forum'].': <a href="'.$pun_config['o_base_url'].'/viewforum.php?id='.$cur_topic['fid'].'">'.$cur_topic['forum_name'].'</a><br />'."\r\n".$lang_common['Author'].': '.$cur_topic['poster'].'<br />'."\r\n".$lang_common['Posted'].': '.date('r', $cur_topic['posted']).'<br />'."\r\n".$lang_common['Last post'].': '.date('r', $cur_topic['last_post'])).'</p>]]></content:encoded>'."\r\n";
    36.             echo "\t\t".'<pubDate>'.date('r', $cur_topic['last_post']).'</pubDate>'."\r\n";
    37.             echo "\t".'</item>'."\r\n";
    38.         }
    39.  
    40.         echo '</channel>'."\r\n";
    41.         echo '</rss>';
    42.     }
    Весь остальной код остался прежним.
    Интересные возможности форума или привет от Rickard Andersson

    Вот это самый низкотрафиковый отчет о последних 15 темах. Даже без регистрации даёт!
    http://wasm.ru/forum/extern.php?action=active

    Вот это 10 новых топиков форумов по ID 5, 6 и 7:
    http://wasm.ru/forum/extern.php?action=new&show=10&fid=5,6,7

    А кто у нас онлайн?
    http://wasm.ru/forum/extern.php?action=online_full

    15 активных тем в RSS
    http://host.com/extern.php?action=active&type=RSS

    15 активных тем в RSS из форума с ID=2
    http://host.com/extern.php?action=active&type=RSS&fid=2

    То есть можно еще играться параметрами
    action=new
    action=active
     
  16. dr_dred

    dr_dred Сергей

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    301
    Адрес:
    Russia
    Народ, у меня мобильник. Как мне rss подключить? .php не хочет открывать.
     
  17. apple

    apple Виктор

    Публикаций:
    0
    Регистрация:
    26 апр 2005
    Сообщения:
    907
    Адрес:
    Russia
    Это парсер надо писать и закидивать на какой-нибудь сайт. Тогда что угодно откроет.