сообщество про Мамбо демо-сайт файлы справочник обзоры форум команда
    Расширенный поиск
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
јРЩ 20, 2019, 02:54:53

Войти
37540 Сообщений в 7701 Тем от 1704 Пользователей
Последний пользователь: nezhalsky
* Начало Помощь Поиск Войти Регистрация
Форум Ru-Mambo.ru  |  Ru-Mambo.ru  |  Компоненты  |  Syndicate & RSS & информеры & WAP - IRC  |  Тема: RSS для Яндекса 0 Пользователей и 1 Гость смотрят эту тему. « предыдущая тема следующая тема »
Страниц: « 1 2 3 4 » Вниз Печать
Автор Тема: RSS для Яндекса  (Прочитано 152772 раз)
andyr
Гость
« Ответ #30 : ёоЫм 14, 2005, 05:06:56 »

А давайте не будем спешить, а потестируйте сами, чтобы быть уверенными....

А про вопрос с UNIX-овской датой   читайте в тех файлах, которые мною присланы....

Даю наводку: "эра UNIX" началась в 1970 году...
« Последнее редактирование: ёоЫм 14, 2005, 05:08:33 от AndyR » Записан
garcia
Новичок
*

Репутация: 1
Offline Offline

Сообщений: 35



Просмотр профиля
« Ответ #31 : ёоЫм 14, 2005, 06:31:37 »

Ну канэшна!
У вас-то класс даты вообче для элементов не используется. Вы суете в feed дату прямо из MySQL
(А ЭТО ПРЯМОЕ НАРУШЕНИЕ СПЕЦИФИКАЦИИ RSS2,0!!!  БЕБЕБЕ!!!)
А мне-то надо выводить дату исключительно в RFC-822! А чтобы передать классу даты собственно дату - надо ее сперва отконвертить в юниксовый формат например (0000-00-00 00:00:00 в цифирь) - чего я и не могу сделать - регулярные выражения в глаза увидел только вчера. Вот я блин и прошу помочь!
А про эру Юникса я в курсе.
Записан

Ученье - свет, а неученье - чуть свет и на работу
smart
Ru-Mambo DevTeam
*****

Репутация: 82
Offline Offline

Сообщений: 1588


Руководитель группы разработчиков


Просмотр профиля WWW
« Ответ #32 : ёоЫм 14, 2005, 10:26:02 »

так, поскреб я по сусекам, и кое-что таки откопал... писалось давно и под 4.5.1, но будет по идее работать и в текущих версиях мамбы

вот это нужно добавить в конец файла feedcreator.class.php:

Код:
class YandexCreator extends FeedCreator {

function createFeed() {
$feed = "<?xml version=\"1.0\" encoding=\"".$this->encoding."\"?>\n";
$feed.= "<rss version=\"2.0\"\n";
$feed.= " xmlns=\"http://backend.userland.com/rss2\"\n";
$feed.= " xmlns:yandex=\"http://news.yandex.ru\">\n";
$feed.= " <channel>\n";
$feed.= " <title>".FeedCreator::iTrunc(htmlspecialchars($this->title),100)."</title>\n";
$this->descriptionTruncSize = 500;
$feed.= " <description>".$this->getDescription()."</description>\n";
$feed.= " <link>".$this->link."</link>\n";
$now = new FeedDate();

if ($this->image!=null) {
$feed.= " <image>\n";
$feed.= " <url>".$this->image->url."</url>\n";
$feed.= " <title>".FeedCreator::iTrunc(htmlspecialchars($this->image->title),100)."</title>\n";
$feed.= " <link>".$this->image->link."</link>\n";
$feed.= " </image>\n";
}
if ($this->pubDate!="") {
$pubDate = new FeedDate($this->pubDate);
$feed.= " <pubDate>".htmlspecialchars($pubDate->rfc822())."</pubDate>\n";
}
if ($this->category!="") {
$feed.= " <category>".htmlspecialchars($this->category)."</category>\n";
}

for ($i=0;$i<count($this->items);$i++) {
$feed.= " <item>\n";
$feed.= " <title>".FeedCreator::iTrunc(htmlspecialchars(strip_tags($this->items[$i]->title)),100)."</title>\n";
$feed.= " <link>".htmlspecialchars($this->items[$i]->link)."</link>\n";
$feed.= " <description>".$this->items[$i]->getDescription()."</description>\n";

if ($this->items[$i]->author!="") {
$feed.= " <author>".htmlspecialchars($this->items[$i]->author)."</author>\n";
}
if ($this->items[$i]->category!="") {
$feed.= " <category>".htmlspecialchars($this->items[$i]->category)."</category>\n";
}

if (is_array($this->items[$i]->images)) {
foreach($this->items[$i]->images as $image) {
if (function_exists( 'getimagesize' )) {
$type = @getimagesize($image);
} else {
$type = array();
}
$feed.= " <enclosure url=\"".$image."\" type=\"".$type['mime']."\"/>\n";
}
}

if ($this->items[$i]->date!="") {
$itemDate = new FeedDate($this->items[$i]->date);
$feed.= " <pubDate>".htmlspecialchars($itemDate->rfc822())."</pubDate>\n";
}
if ($this->items[$i]->fulltext!="") {
$feed.= " <yandex:full-text>".$this->items[$i]->fulltext."</yandex:full-text>\n";
}
$feed.= " </item>\n";
}
$feed.= " </channel>\n";
$feed.= "</rss>\n";
return $feed;
}
}

далле, в том же файле найти примерно такой код:
Код:
case "RSS2.0":
$this->_feed = new RSSCreator20();
break;

и после него добавить:
Код:
case "YA":
case "YANDEX":
$this->_feed = new YandexCreator();
break;

для правильной работы, нужно еще выставить вот эту константу в соответствии с вашей временной зоной:

Код:
define("TIME_ZONE","+03:00");

потом, открыть файл com_rss/rss.php
в нем, в самом конце, после кода:

Код:
// item info
$item->title = $item_title;
$item->link = $item_link;
$item->description = $item_description;
$item->source = $info[ 'link' ];

добавить:

Код:
$item->author = $row->author;

вроде бы все, ничего не забыл... RSS для Яндекса будет доступен по ссылке: /index2.php?option=com_rss&feed=YA&no_html=1
« Последнее редактирование: ёоЫм 14, 2005, 10:28:26 от smart » Записан

garcia
Новичок
*

Репутация: 1
Offline Offline

Сообщений: 35



Просмотр профиля
« Ответ #33 : ёоЫм 14, 2005, 04:20:10 »

Thanks!!!
Я правда уже и сам управился, помимо этого еще воткнул вывод картинок в статьях, секцию, дату в формате RFC-822. Но все равно спачибо!
Записан

Ученье - свет, а неученье - чуть свет и на работу
smart
Ru-Mambo DevTeam
*****

Репутация: 82
Offline Offline

Сообщений: 1588


Руководитель группы разработчиков


Просмотр профиля WWW
« Ответ #34 : ёоЫм 14, 2005, 04:29:06 »

Thanks!!!
Я правда уже и сам управился, помимо этого еще воткнул вывод картинок в статьях, секцию, дату в формате RFC-822. Но все равно спачибо!
у меня картинки тоже выводятся, и дата выводится в формате rfc-822, с Яндекса проверяли rss сгенерированный этим хаком, и сказали что все нормально
Записан

garcia
Новичок
*

Репутация: 1
Offline Offline

Сообщений: 35



Просмотр профиля
« Ответ #35 : ёоЫм 15, 2005, 08:13:52 »

Видно ты чегой-то все-таки забыл (например код с запросом по итемвм, исправленья в коде класса FeedItem - я так думаю) - не пашет. Можешь мне на мыло метнуть сырцы, или в файловый архив?
Записан

Ученье - свет, а неученье - чуть свет и на работу
smart
Ru-Mambo DevTeam
*****

Репутация: 82
Offline Offline

Сообщений: 1588


Руководитель группы разработчиков


Просмотр профиля WWW
« Ответ #36 : ёоЫм 15, 2005, 08:19:35 »

Видно ты чегой-то все-таки забыл (например код с запросом по итемвм, исправленья в коде класса FeedItem - я так думаю) - не пашет. Можешь мне на мыло метнуть сырцы, или в файловый архив?
хм... вроде ж больше ничего не менял... так, ну тогда посмотри аттач
« Последнее редактирование: ёоЫм 15, 2005, 09:10:59 от smart » Записан

garcia
Новичок
*

Репутация: 1
Offline Offline

Сообщений: 35



Просмотр профиля
« Ответ #37 : ёоЫм 15, 2005, 09:06:51 »

Не пойму, похоже не тот rss.php - там только автор добавлен, а fultextа и картинок немае
(а в feedcreator действительно есть и другие изменения - но вроде то че надо )
Позырь pls!
Записан

Ученье - свет, а неученье - чуть свет и на работу
smart
Ru-Mambo DevTeam
*****

Репутация: 82
Offline Offline

Сообщений: 1588


Руководитель группы разработчиков


Просмотр профиля WWW
« Ответ #38 : ёоЫм 15, 2005, 09:09:52 »

Не пойму, похоже не тот rss.php - там только автор добавлен, а fultextа и картинок немае
(а в feedcreator действительно есть и другие изменения - но вроде то че надо )
Позырь pls!
млин, действительно не тот щас выложу правильный.

все, обновил аттач, в предыдущем посте
« Последнее редактирование: ёоЫм 15, 2005, 09:11:28 от smart » Записан

garcia
Новичок
*

Репутация: 1
Offline Offline

Сообщений: 35



Просмотр профиля
« Ответ #39 : ёоЫм 15, 2005, 09:59:36 »

Наконец заканчивается эта длинная эпопея великих и героических свершений!!!
Smart! Огромныя респекты! Усе пашет!!! (тока кодировочку на win1251 перебил)
Записан

Ученье - свет, а неученье - чуть свет и на работу
Zhabbervog
Гость
« Ответ #40 : БХЭвпСам 30, 2005, 11:34:34 »

спасибо камрады! помогли ламеру
Записан
Mr.friction
Новичок
*

Репутация: 0
Offline Offline

Сообщений: 33


Просмотр профиля
« Ответ #41 : ѕЪвпСам 31, 2005, 11:31:24 »

Люди добрые а если мне почти в таком формате ртранслируют новости? - ак их вывести по человечески?
единственное отличие - это не <yandex:full-text> а просто <full-text>.
Надо вывести дату титл и <full-text>собственно.
Записан
newpraktika
Гость
« Ответ #42 : ґХЪРСам 11, 2005, 07:49:56 »

Люди добрые!
Поставил хак от smart
Заменил в feedcreator.class.php кодировку на windows-1251
Стало выводить кучей по-русски.

Но когда пытаюсь открыть через IE http://www.newpraktika.org/index2.php?option=com_rss&feed=YA&no_html=1
он ругается "Указанная кодировка не поддерживается. Ошибка при обработке ресурса ''http://www.newpraktika.org/index2.php?option=com_rss&feed=YA&no_html=1''.

А вот когда открываешь
http://joomlaportal.ru/index2.php?option=com_rss&feed=YA&no_html=1
Все красиво.
Как это исправить (чтобы и у меня было правильно)?
Заранее спасибо!
Записан
newpraktika
Гость
« Ответ #43 : ґХЪРСам 12, 2005, 12:09:26 »



Теперь более или менее работает, но почему то не показывает new FeedDate(), category и pubdate.

Окончание кода feedcreator такое - что ему на этот раз не хватает?


/***************************************************************************/
/**
* RSSCreator10 is a FeedCreator that implements RDF Site Summary (RSS) 1.0.
*
* @see http://www.purl.org/rss/1.0/
* @since 1.3
* @author Kai Blankenhorn <kaib@bitfolge.de>
*/
class YandexCreator extends FeedCreator {
function createFeed() {
$feed = "<?xml version=\"1.0\" encoding=\"".$this->encoding."\"?>\n";
$feed.= "<rss version=\"2.0\"\n";
$feed.= " xmlns=\"http://backend.userland.com/rss2\"\n";
$feed.= " xmlns:yandex=\"http://news.yandex.ru\">\n";
$feed.= "<channel>\n";
$feed.= "<title>".FeedCreator::iTrunc(htmlspecialchars($this->title),100)."</title>\n";
$this->descriptionTruncSize = 500;
$feed.= "<description>".$this->getDescription()."</description>\n";
$feed.= "<link>".$this->link."</link>\n";
$now = new FeedDate();
 
if ($this->image!=null) {
$feed.= "<image>\n";
$feed.= "<url>".$this->image->url."</url>\n";
$feed.= "<title>".FeedCreator::iTrunc(htmlspecialchars($this->image-
>title),100)."</title>\n";
$feed.= "<link>".$this->image->link."</link>\n";
$feed.= "</image>\n";
}
if ($this->pubDate!="") {
$pubDate = new FeedDate($this->pubDate);
$feed.= "<pubDate>".htmlspecialchars($pubDate->rfc822())."</pubDate>\n";
}
if ($this->category!="") {
$feed.= "<category>".htmlspecialchars($this->category)."</category>\n";
}
for ($i=0;$i<count($this->items);$i++) {
$feed.= "<item>\n";
$feed.= "<title>".FeedCreator::iTrunc(htmlspecialchars(strip_tags($this-
>items[$i]->title)),100)."</title>\n";
$feed.= "<link>".htmlspecialchars($this->items[$i]->link)."</link>\n";
$feed.= "<description>".$this->items[$i]->getDescription()."</
description>\n";

if ($this->items[$i]->author!="") {
$feed.= "<author>".htmlspecialchars($this->items[$i]->author)."</author>\n";
}
if ($this->items[$i]->category!="") {
$feed.= "<category>".htmlspecialchars($this->items[$i]->category)."</
category>\n";
}
if (is_array($this->items[$i]->images)) {
foreach($this->items[$i]->images as $image) {
if (function_exists( 'getimagesize' )) {
$type = @getimagesize($image);
} else {
$type = array();
}
$feed.= "<enclosure url=\"".$image."\"
type=\"".$type['mime']."\"/>\n";
}
}
if ($this->items[$i]->date!="") {
$itemDate = new FeedDate($this->items[$i]->date);
$feed.= "<pubDate>".htmlspecialchars($itemDate->rfc822())."</pubDate>\n";
}

$feed.= "<yandex:full-text>".$this->items[$i]->fulltext."</yandex:full-
text>\n";

$feed.= "</item>\n";
}
$feed.= "</channel>\n";
$feed.= "</rss>\n";
return $feed;
}
}
 
?>
 
« Последнее редактирование: °ТУгбв 21, 2006, 04:59:12 от newpraktika » Записан
MAGNATE
Гость
« Ответ #44 : ДХТаРЫм 20, 2006, 04:15:52 »

Народ пришлите плиз установочную папку cache удалил блин. почта support@seva-group.ru Спасибо.
Записан
Страниц: « 1 2 3 4 » Вверх Печать 
Форум Ru-Mambo.ru  |  Ru-Mambo.ru  |  Компоненты  |  Syndicate & RSS & информеры & WAP - IRC  |  Тема: RSS для Яндекса « предыдущая тема следующая тема »
Перейти в:  

Яндекс цитирования Powered by SMF 1.1.12 | SMF © 2006-2009, Simple Machines LLC