За последние 24 часа нас посетили 17876 программистов и 1651 робот. Сейчас ищут 1424 программиста ...

Помогите пожалуйста подправить rss ленту

Тема в разделе "Сделайте за меня", создана пользователем DEMOKPAT, 30 июн 2017.

  1. DEMOKPAT

    DEMOKPAT Новичок

    С нами с:
    30 июн 2017
    Сообщения:
    3
    Симпатии:
    0
    Здравствуйте уважаемые!
    Может сможет мне кто помочь правильно вписать требования к ленте?

    Имеем следующий код в php файле:

    Код (Text):
    1. <?php
    2. require_once "maincore.php";
    3. header("Content-Type: text/xml");
    4. echo "<?xml version=\"1.0\" encoding=\"".$locale['charset']."\"?>\n\n\n\n\n";
    5. global $settings, $db_prefix;
    6. $result = dbquery("SELECT * FROM ".$db_prefix."news ORDER BY news_datestamp DESC LIMIT 0, 10");
    7. $numrows = dbrows($result);
    8. echo "<rss version=\"2.0\">\n\n";
    9. echo "<channel>\n";
    10. echo "<title>".htmlspecialchars($settings['sitename'])."</title>\n";
    11. echo "<link>".$settings['siteurl']."</link>\n";
    12. echo "<description>Новости</description>\n";
    13. echo "<image>
    14.         <title>".htmlspecialchars($settings['sitename'])."</title>
    15.         <url>".$settings['sitebanner']."</url>
    16.         <link>".$settings['siteurl']."</link>
    17.     </image>";
    18. echo "<language>ru-ru</language>\n\n";
    19. for ($i=0;$i < $numrows;$i++)  {
    20. $data = dbarray($result);
    21.     if ($data['news_breaks'] == "y") { $data['news_news'] = nl2br($data['news_news']); }
    22.     echo "<item>\n";
    23.     echo "<title>".$data['news_subject']."</title>\n";
    24.     echo "<link>".stripslashes(htmlspecialchars($settings['siteurl']."news.php?readmore=".$data['news_id']))."</link>\n";
    25.     echo "<description>".stripslashes(htmlspecialchars($data['news_news']))."</description>\n";
    26.     echo "<pubDate>".date("r",$data['news_datestamp'])."</pubDate>\n";
    27.    echo "<guid>".stripslashes(htmlspecialchars($settings['siteurl']."news.php?readmore=".$data['news_id']))."</guid>\n";
    28.     echo "</item>\n\n";
    29. }
    30. echo "</channel>\n";
    31. echo "</rss>";
    32. ?>
    Ленту не принимают, пишут:
    В рсс нет обязательных элементов yandex:full-text и enclosure. Yandex:full-text и description нужно заключить в <![CDATA[]]> и убрать спецсимволы

    Требования с примерами можно посмотреть здесь:
    http://adline.kiev.ua/tt/

    Помогите плиз реализовать, долго добивался чтобы сайт включили в ленту новостей, ресурс социальный - не коммерческий.

    На данный момент лента выглядит так: http://medicalline.info/rss.php
     
    #1 DEMOKPAT, 30 июн 2017
    Последнее редактирование: 30 июн 2017
  2. username

    username Новичок

    С нами с:
    6 июл 2017
    Сообщения:
    223
    Симпатии:
    17
    enclosure является обязательным для новостей, содержащих фото и изображения, если картинка содержится в описании, нужно определиться, как легче получить её адрес - с помощью запроса в бд или распарсив описание.

    PHP:
    1. <?php
    2. require_once "maincore.php";
    3. header("Content-Type: text/xml");
    4. echo "<?xml version=\"1.0\" encoding=\"".$locale['charset']."\"?>\n\n\n\n\n";
    5. global $settings, $db_prefix;
    6. $result = dbquery("SELECT * FROM ".$db_prefix."news ORDER BY news_datestamp DESC LIMIT 0, 10");
    7. $numrows = dbrows($result);
    8. echo "<rss version=\"2.0\">\n\n";
    9. echo "<channel>\n";
    10. echo "<title>".htmlspecialchars($settings['sitename'])."</title>\n";
    11. echo "<link>".$settings['siteurl']."</link>\n";
    12. echo "<description>Новости</description>\n";
    13. echo "<image>
    14.        <title>".htmlspecialchars($settings['sitename'])."</title>
    15.        <url>".$settings['sitebanner']."</url>
    16.        <link>".$settings['siteurl']."</link>
    17.    </image>";
    18. echo "<language>ru-ru</language>\n\n";
    19. for ($i=0;$i < $numrows;$i++)  {
    20. $data = dbarray($result);
    21.     if ($data['news_breaks'] == "y") { $data['news_news'] = nl2br($data['news_news']); }
    22.     echo "<item>\n";
    23.     echo "<title>".$data['news_subject']."</title>\n";
    24.     echo "<link>".stripslashes(htmlspecialchars($settings['siteurl']."news.php?readmore=".$data['news_id']))."</link>\n";
    25.     echo "<description>".stripslashes(htmlspecialchars($data['news_news']))."</description>\n".
    26.     '<yandex:full-text>'.stripslashes(htmlspecialchars($data['news_news'])).'</yandex:full-text>'."\n";
    27.     echo "<pubDate>".date("r",$data['news_datestamp'])."</pubDate>\n";
    28.    echo "<guid>".stripslashes(htmlspecialchars($settings['siteurl']."news.php?readmore=".$data['news_id']))."</guid>\n";
    29.     echo "</item>\n\n";
    30. }
    31. echo "</channel>\n";
    32. echo "</rss>";
    33. ?>
     
    DEMOKPAT нравится это.
  3. DEMOKPAT

    DEMOKPAT Новичок

    С нами с:
    30 июн 2017
    Сообщения:
    3
    Симпатии:
    0
    Спасибо большое!
     
  4. DEMOKPAT

    DEMOKPAT Новичок

    С нами с:
    30 июн 2017
    Сообщения:
    3
    Симпатии:
    0
    Вопрос решён