RSS трансляция

Статус
В этой теме нельзя размещать новые ответы.

desert333

Создатель
Регистрация
23 Май 2009
Сообщения
42
Реакции
14
Подскажите как организовать RSS трансляцию своих новостей, из руководства не очень понятно
 
Неужели никто не поможет, или это очень простой вопрос.
 
  • Заблокирован
  • #3
Что именна вам непонятно?
 
Как настроить как подключить. В шаблоне RSS, вывод навигации прописал № раздела и компонента, дальше как. Если не трудно, то поподробнее.
 
В rss шабоне нужно прописать
$NewsClass=2; //Номеер компонента (новости компании стандартно = 22)
$NewsSub=354; // ID раздела новостей
И все, после этого все должно работать.
 
Подключаю вроде правильно,
// ID компонента новостей
$NewsClass=22;
// ID раздела новостей
$NewsSub=15;

но новости не выводятся

Точнее, выводятся только ссылки на новости и то в IE, В Opera только если через подписку, а хотелось чтобы анонсы выводились с названием новости
 
Если выводится что то не так, то следует смотреть в сторону Редактирование компонента -> Объект в списке. По всей видимости там вывод не правильно сделан.
 
Неужели никто не поможет, или это очень простой вопрос
 
  • Заблокирован
  • #9
Чтобы транслировать RSS со своего сайта нужно воспользоваться стандартным макетом который уже имеется в cms - Макеты дизайна. Нужно лишь его немного понастроить под свои нужды.

Шаблоны вывода навигации:
// ID компонента новостей
$NewsClass=104;

// ID раздела новостей
$NewsSub=520;

// Срок годности документа в минутах
$ttl=60;

$Updated=$db->get_var("SELECT LastUpdated FROM Message".$NewsClass." WHERE Checked='1' ORDER BY LastUpdated DESC LIMIT 1");

$Updated=strtotime($Updated);

unset($rs);

// Посылаем нужные заголовки
Header("X-Powered-By: ".$system_env[Powered]);
Header("Expires: ".gmdate("D, d M Y H:i:s", $Updated + ($ttl*60))." GMT"); // Время срока годности
Header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP 1.1
Header("Cache-Control: post-check=0, pre-check=0", false);
Header("Pragma: no-cache"); // HTTP 1.0
Header("Last-Modified: ".gmdate("D, d M Y H:i:s", $Updated)." GMT"); // Дата последней модификации
Header("X-Creator: ".$system_env[Powered]);
Header("Content-Language: ru, ru-RU"); // Язык данных в файле
Header("Content-Type: application/xml; charset=Windows-1251"); // Объявляем тип файла
#Header("Content-Disposition: attachment; filename=rss.xml"); // Объявляем имя файла


Верхняя часть страницы (Header:(
<?xml version=\"1.0\" encoding=\"WINDOWS-1251\"?>

<rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\">
<channel>
<title>Здесь указываем Тайтл</title>
<link>http://site.ru/</link>
<description>Здесь нужно указать описание</description>
<language>ru-RU</language>

<atom:link href=\"http://site.ru/rss/\" rel=\"self\" type=\"application/rss+xml\" />

<copyright>Copyright ".date("Y")." Копирайт </copyright>
<lastBuildDate>".gmdate("D, d M Y H:i:s", $Updated)." GMT</lastBuildDate>

<generator>NetCat ".$system_env[VersionNumber].opt($system_env[SystemID]==1, " Small Business").opt($system_env[SystemID]==2, " Standard").opt($system_env[SystemID]==3, " Extra").opt($system_env[SystemID]==4, " Modern")."</generator>
<managingEditor>admin@site.ru (Administration)</managingEditor>
<webMaster>admin@site.ru (Administration)</webMaster>
<ttl>".$ttl."</ttl>

// Здесь подгружаем картинку, если нужно
<image>
<url>http://www.site.ru/images/k-r/kr.gif</url>
<title>Описание картинки</title>
<link>http://www.site.ru/</link>
</image>
";

// Собственно начнем выводе информации из раздела
if ($rss=$db->get_results("SELECT Subdivision_ID, Hidden_URL FROM Subdivision WHERE Catalogue_ID='".$catalogue."' ORDER BY Subdivision_ID ASC", ARRAY_A))
{
$RealURL=array();
foreach ($rss as $rs)
{
$RealURL[$rs['Subdivision_ID']]=$SUB_FOLDER.$rs['Hidden_URL'];
}
}

unset($rs);

if ($rss=$db->get_results("SELECT Sub_Class_ID, EnglishName FROM Sub_Class WHERE Class_ID='".$NewsClass."' AND Checked='1' AND Catalogue_ID='".$catalogue."' ORDER BY Sub_Class_ID ASC", ARRAY_A))
{
$newscat=array();
foreach ($rss as $rs)
{
$newscat[$rs[Sub_Class_ID]]=$rs[EnglishName];
}
}

unset($rs);

// Опишем поля, которые будут использованы
$rss_Title="Title";
$rss_Description="Announce";
$rss_Author="SourceTitle";


// Выборка всех полей из нужного компонента

if ($rss=$db->get_results("SELECT * FROM Message".$NewsClass." WHERE Checked='1' AND Subdivision_ID IN (520) ORDER BY Created DESC LIMIT 15", ARRAY_A))
{
foreach ($rss as $rs)
{
$rss_Link="http://".$HTTP_HOST.$RealURL[$rs['Subdivision_ID']].$newscat[$rs[Sub_Class_ID]]."_".$rs[Message_ID].".html";

$time=strtotime($rs['Created']);
$DateLink=explode(" ", $rs['Created']);
$DateLink=explode("-", $DateLink[0]);

// Начнем выводить записи
echo("\t\t<item>\n\t\t\t<title>".htmlspecialchars(strip_tags($rs[$rss_Title]), ENT_QUOTES)."</title>\n\t\t\t<link>".$rss_Link."</link>\n\t\t\t<description>".htmlspecialchars(strip_tags($rs[$rss_Description]), ENT_QUOTES)."</description>\n\t\t\t<pubDate>".gmdate("D, d M Y H:i:s", $time)." GMT</pubDate>\n\t\t\t<guid isPermaLink=\"true\">".$rss_Link."</guid>\n");


if ($rs[$rss_Author]!="")
echo("\t\t\t<author>admin@site.ru (Administration)</author>\n");

echo("\t\t</item>\n");
}
}

echo"


Нижняя часть страницы (Footer:(

Вот и все.
 
Подключаю вроде правильно,
// ID компонента новостей
$NewsClass=22;
// ID раздела новостей
$NewsSub=15;

но новости не выводятся
Точнее, выводятся только ссылки на новости и то в IE, В Opera только если через подписку, а хотелось чтобы анонсы выводились с названием новости
с 15 что-то не так не может быть такой маленький номер
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху