Наши скрипты => Sanitarium WebLoG => Модификации => Тема начата: Magi от 06 Октября 2004, 18:55:47
Название: RSS
Отправлено: Magi от 06 Октября 2004, 18:55:47
Всем привет! Расскажите, как реализована функция RSS в санитариуме? В конфиге она включена, а что дальше, как предоставить пользователям возможность читать новости в этом виде?
Название: RSS
Отправлено: Green Kakadu от 07 Октября 2004, 01:25:12
тут возможно несколько вариантов (смотря что вам нужно) 1. вывод ленты новостей с помощью javascript 2. вывод в отдельный текстовый файл, который можно инклудить. по умолчанию js. все ленты кидаются в папку /your/public/sanitarium/news
Моя статейка... [url]http://site.ru/article.html[/url] Это моя супер статья My articles Nonfiction/Business/O\'Reilly_and_Associates/ Green Kakadu Sun, 02 Jan 2002 0:00:01 GMT
и т.д.
к сожалению такую фичу надо прикрутить самому. Т.к. можно настроить все содержимое , но все это надо еще запихнуть во внешнй клнтейнер - т.е. нужен доп. шаблон. Как добавить такую штуку? Sanitarium_WL.pm находим sub print_news (строка 1019) и переписываем ее - надо добавить всего лишь несколько строк, чтоб паралельно генерился RSS feed. Если нужно, я на днях кину сюда "видоизмененный вариант"
Название: RSS
Отправлено: Magi от 07 Октября 2004, 17:34:15
Нужно!
Название: RSS
Отправлено: Green Kakadu от 08 Октября 2004, 01:11:04
В общем ловите. Только следуйте инструкциям: 1 сделайте копию своего модуля Sanitarium_WL.pm 2. в папку шаблонов tmp-main киньте два файла rss.txt rss_item.txt Вот их примерное содержимое news_rss.txt ----------------------------------------------
%news=$self->get_nn_recs($how_news); foreach my $key(sort {$b <=> $a} keys %news){ $self->unpack_rec($news{$key}); $self->get_author_info(); if ($self->{\'static_pages\'}){$self->{\'article_url\'}="$self->{\'public_url\'}/$self->{\'cat_id\'}/$key"."_1.$self->{\'ext\'}";} else {$self->{\'article_url\'}=$self->{\'view_cgi_url\'}."?id=$key&cat_id=$self->{\'cat_id\'}&page=1";} $html=$self->small_parsing($self->{\'tmp_news\'}); #RSS ADDON $self->{\'rss\'} .= $self->small_parsing($self->{\'tmp_rss_item\'}); if ($use_txt){ $news_txt .= "$html\\n" ; } else { $html=~ s/"/\\\\"/g; $html=~ s/[\\n\\r]//g; $html=~ s/\'/\\\'/g; $news_js .= qq~document.write("$html");\\n~; } } #CHECK DIRS: if (!(-e "$self->{\'public_dir\'}/news")){ mkdir("$self->{\'public_dir\'}/news", 0777) or croak("Can\'t mkdir $self->{\'public_dir\'}/news, reason: $!"); chmod(0777, "$self->{\'public_dir\'}/news") or croak("Can\'t chmod $self->{\'public_dir\'}/news, reason: $!"); } #RSS PRINT open (RSS, ">$self->{\'public_dir\'}/news/$cat.xml") or croak("Can\'t open RSS, reason: $!"); if ($USE_FLOCK){flock(RSS, 2);} print RSS $self->small_parsing($self->{\'tmp_news_rss\'}); close RSS;
#PRINT in *.js if ($news_js){ open (NEWS, ">$self->{\'public_dir\'}/news/$cat.js") or croak("Can\'t open NEWS, reason: $!"); if ($USE_FLOCK){flock(NEWS, 2);} print NEWS $news_js; close NEWS; } #Print in *.txt if ($news_txt){ open (NEWSTXT, ">$self->{\'public_dir\'}/news/$cat.txt") or croak("Can\'t open NEWSTXT, reason: $!"); print NEWSTXT $news_txt; close NEWSTXT; } }
все. Для каждой категории будут созданы rss ленты + общая на всех все они будут лежать там же где и обычные новости http://site.ru/public_sanitar/news index.xml - общая лента 1.xml - лента категории с id=1 и т.д. Кол-во новостей столько сколько вы указали в конфиге Я не пробовал, но должно работать, если я опечаток не сделал. Если что не так -кидайте сюда, поправим.
Название: RSS
Отправлено: Green Kakadu от 08 Октября 2004, 01:13:31
вот еще. в RSS 0.91 и выше есть в заголовках поля времен, типа 08 Oct 02 2004 GMT 08 Oct 02 2004 GMT не знаю, обязательные они или нет. Если обязательные, то надо будет доп. тег с временем генерить
:) теперь можно и в Яндекс.новости суваться
Название: RSS
Отправлено: Magi от 10 Декабря 2004, 15:39:29
Попробовал. У меня вообще тишина. Просто все работает как раньше, файлы с rss лентой не создаются. В логах никаких ошибок нет...
Название: RSS
Отправлено: Green Kakadu от 10 Декабря 2004, 16:04:02
опс. очипяточка там вышла, поправлено вот тут: #RSS ADDON: Load RSS Templates
Название: RSS
Отправлено: Cyberinfo от 11 Февраля 2005, 19:36:13
народ помагите у меня тут ошибка какая то выдается http://www.cyberinfo.ru/news/index.xml ------- XML parsing failed: no element found (Line: 1, Character: 0) --------- Че это значит?
Название: RSS
Отправлено: Cyberinfo от 11 Февраля 2005, 19:40:01
я так понял это пишет что ошибка в первой строчке т.е. это
что тогда не так и есть рабочие варианты где нить?
Название: RSS
Отправлено: Green Kakadu от 14 Февраля 2005, 21:54:35
забавно. а сами файлы по фтп глянь - Они в норме, есть?
Название: RSS
Отправлено: Cyberinfo от 14 Февраля 2005, 22:27:11
сами файлы есть, но они пустые полностью внутри! в чем дело может быть?
Название: RSS
Отправлено: Cyberinfo от 14 Февраля 2005, 22:36:32
можешь сказать что должно быть в файлах 1.news_rss.txt 2. rss.txt 3. rss_item.txt
какое именно у них должно быть содержание и изменить надо только Sanitarium_WL.pm ?
Название: RSS
Отправлено: Green Kakadu от 15 Февраля 2005, 10:53:55
Цитировать
Cyberinfo: можешь сказать что должно быть в файлах 1.news_rss.txt 2. rss.txt 3. rss_item.txt
какое именно у них должно быть содержание и изменить надо только Sanitarium_WL.pm ?
rss.txt переименуй в news_rss.txt ну а содержание news_rss.txt (ранее rss.txt) и rss_item.txt написано там же где и сам мод.
Название: RSS
Отправлено: Cyberinfo от 16 Февраля 2005, 01:36:01
млин! все так и сделанно! и вчем может быть ошибка? из-за чего он не пишет данные в эти файлы?
Название: RSS
Отправлено: Borovik от 17 Сентября 2005, 01:51:31
Вот такая же история - файлы создаются, но они пустые. Так и нет решения ?
Название: RSS
Отправлено: newseditor от 12 Декабря 2005, 14:28:25
Заплачу $ за "заточку" санитара под требования Яндекс.Новости.