Архив | Об архиве | FAQ | New BAN List | Полезные ссылки | Друзья архива | Архив новостей |
|
Регистрация | Справка | Правила форума | Поиск | Сообщения за день | Все разделы прочитаны | Пользователи | Календарь |
Приёмная ArjLover-a Послания и пожелания по работе Архива |
|
Опции темы | Опции просмотра |
|
|||
Немного переделав запросы к базе и всякую другую мелочёвку, можно получить то, что надо. Взято с одного трекера:
Код:
<? # ---------- config variables ---------------------------- $S_header = "Content-Type: application/xml; charset=windows-1251" ; $ch_name = "тут было название трекера" ; $ch_link = "http://тут был урл трекера/" ; $mysql_user = "тут был логин" ; $mysql_pass = "тут был пароль" ; $mysql_db = "тут было имя базы" ; $images_dir = "тут был путь к картинкам" ; $web_images_dir = "http://тут был урл трекера/descimages" ; include("../include/global.php"); # ------------------------------------------- routines -- function RowSet ( $r ) { $o_link = "http://тут был урл трекера/details.php?id=".$r['id'] ; $o_desc = $r['descr']; #$o_desc = substr ( $o_desc, 0 , 80 ) ; $o_desc = str_replace ( "&", "and", $o_desc ) ; $o_desc = convert_cyr_string ( $o_desc, "k", "w" ) ; $o_desc = format_comment($o_desc); $o_desc = str_replace ( " ", " ", $o_desc ) ; global $images_dir, $web_images_dir; $image = ""; if (file_exists($images_dir."/1/".$r["id"].".gif")) $image = "<img src=\"".$web_images_dir."/1/".$r["id"].".gif\" align=\"left\" border=\"0\" />"; if (file_exists($images_dir."/1/".$r["id"].".jpg")) $image = "<img src=\"".$web_images_dir."/1/".$r["id"].".jpg\" align=\"left\" border=\"0\" />"; if (file_exists($images_dir."/1/".$r["id"].".png")) $image = "<img src=\"".$web_images_dir."/1/".$r["id"].".png\" align=\"left\" border=\"0\" />"; $o_desc = "<table width=\"100%\"><tr><td>" . $image . "</td></tr></table>" . $o_desc; $o_name = str_replace ( "&", "&", $r['name'] ) ; $o_desc = str_replace ( "<", "<", $o_desc ); $o_desc = str_replace ( ">", ">", $o_desc ); $o_time = date ("D, d M Y H:i:s", strtotime ( $r['added'])) ; $o_name = convert_cyr_string ( $o_name, "k", "w" ) ; $outp = "<item> <title>".$o_name."</title> <link>".$o_link."</link> <description>".$o_desc."</description> <pubDate>".$o_time." +0300</pubDate> <guid>".$o_link."</guid> </item>" ; return $outp ; } function PrintErrXml () { global $ch_name, $ch_link ; $ch_time = date ("D, d M Y H:i:s") ; $output = "<?xml version=\"1.0\" encoding=\"windows-1251\"?> <rss version=\"2.0\"> <channel> <title>$ch_name</title> <link>$ch_link</link> <description>The New Ten Torrents</description> <language>ru</language> <pubDate>$ch_time +0300</pubDate> <lastBuildDate>$ch_time +0300</lastBuildDate> <docs>http://blogs.law.harvard.edu/tech/rss</docs> <generator>GenericRSS 0.1</generator> <managingEditor>local@qwerty.ru</managingEditor> <webMaster>local@qwerty.ru</webMaster> <item> <title>Error.</title> <link>http://qwerty.ru</link> <description>вЕЦН-РН МЕ ЯНЕДХМХРЭЯЪ Я АЮГНИ.</description> <pubDate>".$ch_time." +0300</pubDate> </item> </channel> </rss>" ; print $output ; exit; } function ReadOldTime () { $fp = fopen ("./dynamic/011var", "r" ); $times = fread ( $fp, 128 ) ; fclose ( $fp ) ; $times = str_replace ( "\n", "", $times ); $times = (integer)$times ; $sec = time() - $times ; return $sec ; } # -------------------------------------------main code---- header ( $S_header ) ; $sec = ReadOldTime () ; if ( $sec < 600 ) { include ("./dynamic/ready2.php") ; } else { $ch_time = date ("D, d M Y H:i:s") ; $output = "<?xml version=\"1.0\" encoding=\"windows-1251\"?> <rss version=\"2.0\"> <channel> <title>$ch_name</title> <link>$ch_link</link> <description>The New 20 Torrents</description> <language>ru</language> <pubDate>$ch_time +0300</pubDate> <lastBuildDate>$ch_time +0300</lastBuildDate> <docs>http://blogs.law.harvard.edu/tech/rss</docs> <generator>GenericRSS 0.1</generator> <managingEditor>nobody@nowhere.ru</managingEditor> <webMaster>nobody@nowhere.ru</webMaster>" ; $link = @mysql_connect("localhost", $mysql_user, $mysql_pass) or PrintErrXml() ; @mysql_select_db($mysql_db) or PrintErrXml() ; @mysql_query("SET NAMES koi8r"); $q = "SELECT id, name, descr, added, seeders FROM torrents WHERE level=0 ORDER BY otime DESC,id DESC LIMIT 20" ; $qr = mysql_query( $q ) or die ("Error: Query execution failed"); while ($r = mysql_fetch_assoc ( $qr )) { $output.= RowSet ( $r ) ; } //while $output.="</channel> </rss>" ; $output2 = addslashes ( $output ) ; $output2 = "<?php print (\"".$output2."\"); ?>" ; $fp = fopen ("./dynamic/ready2.php","w+") ; fwrite ( $fp, $output2) ; fclose ( $fp ) ; $fp = fopen ("./dynamic/011var", "w+" ); fwrite ( $fp, time() ) ; fclose ( $fp ); print $output ; } ?> |
|
||||
Shurik, спасибо конечно, но это не совсем от что хотелось бы. я не собираюсь анонсировать торренты. Хотя в анонсе новых пополнений наверно стоит публиковать все типы линков. Может еще новости с главной? или какие-то срочные технические объявления? А можно пускать несколько подвидов чтобы они не смешивались?
|
|
|||
А нельзя это сделать так как это делают здесь:
http://mults.spb.ru/rss.php Это ОЧЕНЬ удобно... (RSS устанавливается на Mozilla Thunderbird) |
|
|||
ArjLover, ссылку, указанную Esn, нужно посмотреть с помощью пункта контекстного меню броузера "Просмотр исходного кода страницы".
RSS - это разновидность языка XML. RSS в Википедии. (есть пример RSS 2.0 канала) Оттуда взял вот эту ссылку: Спецификация RSS 2.0 (хм... она на русском) Есть примеры и главное - описание тэгов согласно международной спецификации. Shurik привел пример PHP-кода (если я правильно понял). К сожалению я не PHP-ишник (я "а-ля Mircosoft Windows"), хотя предложенный код вполне правильный. Кстати, RSS поддерживается не только Mozilla Thunderbird, но и многими броузерами. У меня Mozilla Firefox - всё прекрасно работает. Не удивлюсь, что в форумном PHP-движке уже заложен код формирования RSS-новостей. На каком-то форуме видел, была новостная ветка "прикрученная" к RSS-новостям. P.S. - Если честно, то не понял в чем собственно проблема... |
|
|||
"Внешнего" дизайна у RSS просто не существует - это зависит только от самих программ (на стороне пользователя), умеющих работать с RSS-новостями.
т.е. PHP-скрипт не формирует HTML-страницу для RSS-канала. Если я правильно понимаю, то проблема во "внутреннем" дизайне, т.е RSS (XML) коде? Последний раз редактировалось RUSpectrum, 27.03.2008 в 13:20. |
|
|||
Цитата:
Это переделка с кодировки koi8r. Кроме того должно быть соответствие "LIMIT 20" (прокрутите текст кода вправо) с содержимым "description" (10 или 20). Вроде мелочь, но всё же... Кстати, эти строки я бы записал в обратном порядке: Код:
if (file_exists($images_dir."/1/".$r["id"].".png")) $image = "<img src=\"".$web_images_dir."/1/".$r["id"].".png\" align=\"left\" border=\"0\" />"; else if (file_exists($images_dir."/1/".$r["id"].".jpg")) $image = "<img src=\"".$web_images_dir."/1/".$r["id"].".jpg\" align=\"left\" border=\"0\" />"; else if (file_exists($images_dir."/1/".$r["id"].".gif")) $image = "<img src=\"".$web_images_dir."/1/".$r["id"].".gif\" align=\"left\" border=\"0\" />"; Последний раз редактировалось RUSpectrum, 27.03.2008 в 15:57. |
|
||||
Прошу извинить, если не в тему, но вот на моем uTorrent имеется такая кнопка, как RSS загрузчик. Никто не может разъяснить, как этим можно пользоваться, и вообще - нужно ли мне это?
__________________
Восток - дело тонкое! |
|
|||
Pogonchik, я думаю, что было бы очень хорошо "прикрутить" RSS-канал и к uTorrent...
Как пользоваться? Ну я думую, что в RSS-подписке должен быть список новых торрентов на ArjLover. ArjLover, я тут посмотрел "валидатором", так он ругается на "кривость" RSS И даже СПб-шный (хоть и поменьше) И посмотрите коллекцию значков RSS (на любой вкус и цвет ) Последний раз редактировалось RUSpectrum, 27.03.2008 в 21:44. |
|
|||
В коде совсем неслучайно присутствует convert_cyr_string...
ArjLover, дайте мне |
|
|||
Shurik, я собственно говоря не понял к чему эта кодировка koi8r, если RSS формируется как windows-1251, а MySQL-база тоже windows-1251 ?
|
|
|||
Shurik, тогда понятно... господи, какой кошмар
P.S. - Если честно, то сначала бы базу перегнать в windows-1251 |
|
|||
Цитата:
Справа: RSS от сайта Слева: другии RSS-feeds к которым я подписался Последний раз редактировалось Esn, 28.03.2008 в 01:20. |
|
|||
RUSpectrum, если я и буду перегонять базу, то только в UTF-8. А вместо convert_cyr_string можно просто делать сразу set names cp1251. Главное - задаться целью и сделать. Но там это далеко не самая главная задача, я только сегодня, например, обнаружил одну неприятную уязвимость, которая висела, можно сказать, "на виду", но её почти два года никто не замечал... что довольно странно...
|
|
|||
Esn, да не волнуйтесь Вы так!
Будет RSS! И ни сколько не хуже! (хм... а возможно и лучше, т.к. база позволяет выводить более полную информацию) Shurik, разумеется это будет лучше. Хотя я обычно делал немного подругому: SQL-база в кодировке CP1251 (windows-1251), а кодировку страниц (HTML, XML и т.д.) делал UTF-8. Хех... Так задайтесь этой целью! Про себя уже написал - ну не PHP-ишник я. Кстати, смотрел PHP-спецификацию. Там есть функции по работе с DOM, xmlwriter. Их разве нельзя сюда как-то "прикрутить" ? |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | |
Опции просмотра | |
|
|