Шаблон Rss ленты в Netcat 2.4

Тема в разделе "NetCat", создана пользователем alenkaaa, 17 дек 2009.

  1. alenkaaa

    alenkaaa Создатель

    Регистр.:
    30 окт 2007
    Сообщения:
    29
    Симпатии:
    0
    Подскажите, утерян шаблон для отображения rss ленты с другого сайта...в неткате 2.4
    Как мне его написать? Откуда взять?
     
  2. Asi

    Asi Создатель

    Регистр.:
    4 янв 2008
    Сообщения:
    16
    Симпатии:
    1
    Если память не изменяет, там RSS настраивался с помощью макета. В макеты заглядывали? мож и не терялся никуда..
     
  3. InoffLine

    InoffLine

    Регистр.:
    18 апр 2007
    Сообщения:
    573
    Симпатии:
    155
    В базе знаний на сайте неткета есть. точно.
     
  4. max-sparker

    max-sparker

    Регистр.:
    9 мар 2008
    Сообщения:
    166
    Симпатии:
    39
    NetCat по каким то причинам закрыл Базу Знаний.
     
  5. InoffLine

    InoffLine

    Регистр.:
    18 апр 2007
    Сообщения:
    573
    Симпатии:
    155
    Создать новый макет дизайна, в котором в шаблонах вывода навигации указать:

    header("Content-type: text/xml");

    В верхней части страницы (Header:(

    <?xml version=\"1.0\" encoding=\"windows-1251\" ?>
    <rss version=\"2.0\" xmlns=\"http://backend.userland.com/rss2\">
    <channel>
    <title>Название Вашего сайта</title>
    <link>Ссылка на Ваш сайт</link>
    <description>Опсание вашего сайта</description>
    Нижняя часть страницы (Footer:(
    </channel>
    </rss>

    Далее отредактируем шаблон отображения раздела (допустим, шаблон "новости", входящий в поставку
    NetCat).

    Главный принцип - отображать поля по разному, в зависимости от передаваемого значения макета($template).

    В поле "Объект в списке:" мы вводим:
    ".opt_case($template!=7,"<a href=$fullDateLink>$f_Date_day.$f_Date_month.$f_Date_year</a><br>
    <font size=-1>$f_NewsAnons</font><br>
    $f_AdminButtons<br>", "<item><title>$f_NewsAnons</title><link>http://".$HTTP_HOST. $fullLink. "</link><description>$f_NewsText</description><pubDate>". date("r",
    strtotime($f_Date))."</pubDate></item>")."

    (вместо <a href=$fullDateLink> $f_Date_day.$f_Date_month.$f_Date_year</a> <br>
    <font size=-1>$f_NewsAnons</font><br>
    $f_AdminButtons<br>)

    и в поле Системные настройки: - global $HTTP_HOST;

    RSS версия теперь доступна по адресу:
    http://netcat_site/news/?template=7
     
  6. MFD

    MFD Создатель

    Регистр.:
    19 фев 2007
    Сообщения:
    16
    Симпатии:
    0
    Создаем "Новый макет" ни с кем не связанный..
    Шаблоны вывода навигации:
    PHP:
    //Кол-во
    $Limit=30;
    // Срок годности документа в минутах
    $ttl=5
    $Updated=$db->get_var("SELECT LastUpdated FROM Message".$NewsClass." WHERE Checked='1' ORDER BY LastUpdated DESC LIMIT 1");
    $Updated=strtotime($Updated);
    $SubName=$db->get_var("SELECT Subdivision_Name from Subdivision where Subdivision_ID = ".$NewsSub."");
    unset(
    $rs);
    // Посылаем нужные заголовки
    Header("X-Powered-By: 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)")."");
    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: NetCat");
    Header("Content-Language: ru, ru-RU");  // Язык данных в файле
    Header("Content-Type: application/xml; charset=windows-1251");   // Объявляем тип файла
    //Header("Content-Disposition: attachment; filename=rss.xml");   // Объявляем имя файла
    Верхняя часть страницы (Header:(
    PHP:
    <?xml version=\"1.0\" encoding=\"windows-1251\"?>
    <rss version=\"2.0\" xml:lang=\"ru-RU\">
        <channel>
            <title>
    $SubName - ".htmlspecialchars($system_env[ProjectName], ENT_QUOTES)."</title>
            <link>http://"
    .$HTTP_HOST."/</link>
            <description>"
    .htmlspecialchars(strip_tags($current_sub[Description]), ENT_QUOTES)."</description>
            <language>ru-RU</language>
            <copyright>Copyright "
    .date("Y")." ".htmlspecialchars($system_env[ProjectName], ENT_QUOTES)."</copyright>
            <lastBuildDate>"
    .gmdate("D, d M Y H:i:s"$Updated)." GMT</lastBuildDate>
            <generator>
    $HTTP_HOST</generator>
            <ttl>"
    .$ttl."</ttl>
    "
    ;
    // Собственно начнем выводе информации из раздела
    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']]=$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);
    // Выборка всех полей из нужного шаблона
    if ($rss=$db->get_results("SELECT * FROM Message".$NewsClass." WHERE Checked='1' AND Subdivision_ID=".$NewsSub." ORDER BY Created DESC LIMIT ".$Limit.""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]);
            
    $RSSbody="\t\t<item>\n\t\t\t<title>".htmlspecialchars(strip_tags($rs[$rss_Title]), ENT_QUOTES)."</title>\n";
            
    $RSSbody.= "\t\t\t<link>".$rss_Link."</link>\n";
            
    //$RSSbody.= "\t\t\t<description>".htmlspecialchars(strip_tags($rs[$rss_Description]), ENT_QUOTES)."</description>\n";
            
    $RSSbody.= "\t\t\t<description><![CDATA[ ".($nl2br nl2br($rs[$rss_Description]) : $rs[$rss_Description] )." ]]></description>\n";
            
    $RSSbody.= "\t\t\t<pubDate>".gmdate("D, d M Y H:i:s"$time)." GMT</pubDate>\n";
            
    $RSSbody.= "\t\t\t<guid isPermaLink=\"true\">".$rss_Link."</guid>\n";
            
    // Начнем выводить записи
            
    echo($RSSbody);
            if (
    $rs[$rss_Author]!=""
                echo(
    "\t\t\t<author>".htmlspecialchars(strip_tags($rs[$rss_Author]), ENT_QUOTES)."</author>\n"); 
            echo(
    "\t\t</item>\n");
        }
    }
    echo
    "
    Нижняя часть страницы (Footer:(
    PHP:
        </channel>
    </
    rss>
    теперь на его основе можно делать RSS для любого раздела
    вот пример макета для раздела с "Вопросами и ответами"
    создаем на основе первого новый макет
    например "RSS - вопросы и ответы"
    и в шаблонах вывода навигации описываем необходимые настройки и все
    Шаблоны вывода навигации:
    PHP:
    // ID шаблона 
    $NewsClass=3
    // ID раздела c объектами
    $NewsSub=335
    // Опишем поля, которые будут использованы
    $rss_Title="Message";
    $rss_Description="Answer";
    $rss_Author="Name";
    // Переносить строки
    $nl2br="yes";
     
  7. tevong

    tevong Создатель

    Регистр.:
    7 май 2012
    Сообщения:
    31
    Симпатии:
    26
    делал по всему вышеописанному для джумлы - не работает((