RSS Feed для Турбо-страниц

+15
4.58K
Сделал для себя, выкладываю по просьбам трудящихся правильный rss feed для Турбо-страниц

Иллюстрация



Как сказано в документации к движку

Вы можете по аналогии делать свои шаблоны вывода, которые нужно разместить по пути /templates/default/controllers/rss/. После чего они появятся в опции автоматически.

InstantCMS

Создайте свой файл шаблона /templates/ВАШ_ШАБЛОН/controllers/rss/turbo.tpl.php


  1.  
  2. <?php
  3. $config = cmsConfig::getInstance();
  4. if ($category){ $feed['title'] = $feed['title'].' / '.$category['title']; }
  5. if ($author){ $feed['title'] = $author['nickname'].' - '.$feed['title']; }
  6. $feed_title = sprintf(LANG_RSS_FEED_TITLE_FORMAT, $feed['title'], $config->sitename);
  7. ?>
  8. <?php echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n"; ?>
  9. <rss xmlns:yandex="http://news.yandex.ru" xmlns:media="http://search.yahoo.com/mrss/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  10. <channel>
  11. <title><?php html($feed_title); ?></title>
  12. <link><?php html($config->host); ?></link>
  13. <?php if(!empty($feed['image'])) { ?>
  14. <image>
  15. <url><?php echo $config->upload_host_abs.'/'.$feed['image']['normal']; ?></url>
  16. <title><?php html($feed_title); ?></title>
  17. <link><?php html($config->host); ?></link>
  18. </image>
  19. <yandex:logo><?php echo $config->upload_host_abs.'/'.$feed['image']['normal']; ?></yandex:logo>
  20. <yandex:logo type="square"><?php echo $config->upload_host_abs.'/'.$feed['image']['normal']; ?></yandex:logo>
  21. <?php } ?>
  22. <?php if(!empty($feed['items'])) { ?>
  23. <?php foreach($feed['items'] as $item){ ?>
  24. <item turbo="true">
  25. <?php if(!empty($feed['mapping']['title'])) { ?>
  26. <title><?php html($item[$feed['mapping']['title']]); ?></title>
  27. <?php } ?>
  28. <link><?php echo $item['page_url']; ?></link>
  29.  
  30. <?php if(!empty($item['user_nickname'])) { ?>
  31. <author><?php html($item['user_nickname']); ?></author>
  32. <?php } ?>
  33.  
  34. <?php if(!empty($feed['mapping']['pubDate'])) { ?>
  35. <pubDate><?php html(date('r', strtotime($item[$feed['mapping']['pubDate']]))); ?></pubDate>
  36. <?php } ?>
  37.  
  38. <turbo:content>
  39. <?php if(!empty($feed['mapping']['title'])) { ?>
  40. <title><?php html($item[$feed['mapping']['title']]); ?></title>
  41. <?php } ?>
  42.  
  43. <?php if(!empty($feed['mapping']['description'])) { ?>
  44. <description><?php html(html_clean($item[$feed['mapping']['description']], 150)); ?></description>
  45. <yandex:full-text><?php html(html_clean($item[$feed['mapping']['description']])); ?></yandex:full-text>
  46. <?php } ?>
  47. <?php if(!empty($feed['mapping']['image'])) { ?>
  48. <?php $image = cmsModel::yamlToArray($item[$feed['mapping']['image']]); ?>
  49. <?php if (!empty($image[$feed['mapping']['image_size']])){ ?>
  50. <?php $imgp = img_get_params($config->upload_path.$image[$feed['mapping']['image_size']]); ?>
  51. <enclosure url="<?php echo $config->upload_host_abs.'/'.$image[$feed['mapping']['image_size']]; ?>" type="<?php echo $imgp['mime']; ?>" length="<?php echo $imgp['filesize']; ?>" />
  52. <?php } ?>
  53. <?php } ?>
  54.  
  55.  
  56. </turbo:content>
  57.  
  58. </item>
  59. <?php } ?>
  60. <?php } ?>
  61. </channel>
  62. </rss>
  63.  
в файле robots.txt добавить строчку

  1.  
  2. User-agent: Yandex
  3. ........
  4. ........
  5. Allow: /rss/feed/
  6. ........
  7. ........
  8.  
+1
Нико Нико 6 лет назад #
Подскажите где находится роботс.тхт или ее надо создать в той же папке ?
0
garry garry 6 лет назад #
В корне вашего сайта ищите - вашсайт.ру/robots.txt
+1
TOPg TOPg 6 лет назад #
Яндекс Дзен кстати тоже прошел модерацию!
0
Нико Нико 6 лет назад #
Как можно создать такое для фесбук моментальных статей на сайте много таких вопросов но пока ответов нет ?

Код PHP:
  1. <rss version="2.0"
  2. xmlns:content="http://purl.org/rss/1.0/modules/content/">
  3. <channel>
  4. <title>News Publisher</title>
  5. <link>http://www.example.com/</link>
  6. <description>
  7. Read our awesome news, every day.
  8. </description>
  9. <language>en-us</language>
  10. <lastBuildDate>2014-12-11T04:44:16Z</lastBuildDate>
  11. <item>
  12. <title>This is an Instant Article</title>
  13. <link>http://example.com/article.html</link>
  14. <guid>2fd4e1c67a2d28fced849ee1bb76e7391b93eb12</guid>
  15. <pubDate>2014-12-11T04:44:16Z</pubDate>
  16. <author>Mr. Author</author>
  17. <description>This is my first Instant Article. How awesome is this?</description>
  18. <content:encoded>
  19. <!doctype html>
  20. <html lang="en" prefix="op: http://media.facebook.com/op#">
  21. <head>
  22. <meta charset="utf-8">
  23. <link rel="canonical" href="http://example.com/article.html">
  24. <meta property="op:markup_version" content="v1.0">
  25. </head>
  26. <body>
  27. <article>
  28. <header>
  29. <!— Article header goes here -->
  30. </header>
  31. <!— Article body goes here -->
  32. <footer>
  33. <!— Article footer goes here -->
  34. </footer>
  35. </article>
  36. </body>
  37. </html>
  38. </content:encoded>
  39. </item>
  40. </channel>
  41. </rss>
Нужно сделать такое как пишет феййсбук что бы прошел модерацию.
0
TOPg TOPg 6 лет назад #
это отдельное что то для фейсбук? можно больше информации?
0
Нико Нико 6 лет назад #
Фейсбуке есть моментальные статьи. Но они требуют что бы был подходящий им rss. Вот
Код PHP:
  1. https://developers.facebook.com/docs/instant-articles/publishing/setup-rss-feed
+1
TOPg TOPg 6 лет назад #
Товариши, у кого была проблема с добавлением в вебмастере из-за непонятных ошибок, выяснилось что проблема у самого яндекса, вопрос они решают, выяснилось, это в процессе моей переписки, со службой поддержки так, как почувствовал, что то не здоровое, ведь все было правильно, также пообещали добавить анализ канала и теперь будет понятно,если что то с ним не так! Всем, Мир! С Наступающим!
0
SHDF2 SHDF2 6 лет назад #
Добрый день. А для первой ветки кто нибудь не делал? Интересует для турбо страниц. А так же генерация Accelerated Mobile Pages (AMP)
0
TOPg TOPg 6 лет назад #
дЫк по аналогии, там же все просто, я бы помог да первой ветки нет)
0
SHDF2 SHDF2 6 лет назад #
А вот мне не просто, сколько копался и не получилось.
0
TOPg TOPg 6 лет назад #
скиньте мне файл где в первой ветке формирутеся рсс, сделаю вам
0
TOPg TOPg 6 лет назад #
в ЛС
0
saraqael saraqael 6 лет назад #
Так почему бы не сделать эти турбо страницы+AMP одним плагином, да зипихнуть туда еще opengraph и shema?
ЗЫ. ну это так мысли в слух)
0
saraqael saraqael 6 лет назад #
Моментальные статьи появись так же и в vk
0
TOPg TOPg 6 лет назад #
лет 5 назад, если не больше уже))
0
Бичукин Андрей Бичукин Андрей 6 лет назад #
У меня есть для турбо. Сделал дубликат стандартного RSS и немного доработал под турбо яндекса. Если нужда актуальна, могу поделиться.
+1
Бичукин Андрей Бичукин Андрей 6 лет назад #
Компонент для первой ветки выложил сюда, если кому нужно
0
R161Net R161Net 6 лет назад #
Подскажите!
Добавить RSS-канал - Укажите адрес RSS канала
Вставляю https://мой сайт/rss/feed/news - Ошибка
Может нужно другое что то вставлять?
Раскажите!...
0
TOPg TOPg 6 лет назад #
посмотрите в настройках RSSон включен? и по этой ссылке что то открывается?
0
Скела Скела 6 лет назад #
Добра. Что делаю не так?

В элементе item отсутствует атрибут turbo со значением true (10 ошибок)
+1
R161Net R161Net 6 лет назад #
Нужно подождать пока обработает весь контент.
Вы посмотрите по ссылке вашдомен/rss/feed/novosti появился ли тег <turbo:content>
0
TOPg TOPg 6 лет назад #
верно!
0
Скела Скела 6 лет назад #
<turbo.. не присутствует.. Ошибки так же пишет на все виды контента одинаково и они не проподают (время обхода меняется).
В самом файле прописано
Код PHP:
  1. <item turbo="true">
, а у меня в rss отображается просто item
-3
Андрей Андрей 6 лет назад #
отключите кэширование rss ленты, обновите, а потом опять включите.
0
TOPg TOPg 6 лет назад #
Вообще на данный момент сервис у Яндекса работает не корректно, при добавлении пишет, что все окей, но как только включаешь пишет ошибка обновления, я писал в суппорт недели 2 назад, они сказали ошибка у них и решают эту проблему!!!
+1
TOPg TOPg 6 лет назад #
на днях вышли обновления по ленте

Код PHP:
  1. [b]Добрый день![/b]
  2. В новом году [b]Турбо-страницы[/b] стали быстрее и интерактивнее: теперь они поддерживают галереи изображений, таблицы, списки и цитаты из десктопной версии сайта, а также коды вставки контента из социальных сетей &#8213; Youtube, Vimeo, Instagram, Twitter &#8213; и комментарии читателей.
  3. Кроме того, теперь вы можете выводить собственное меню сайта на Турбо-страницах и формировать для пользователей «бесконечную» ленту с помощью блока «Вам может быть интересно». А еще понравившимися материалами теперь легко делиться в соцсетях прямо с Турбо-страниц.
кто то уже тестировал их?
0
demelkar demelkar 6 лет назад #
а у меня всего одна ошибка:

XML-элементы указаны некорректно
стр.
поз.
14
128
The entity "mdash" was referenced, but not declared.

Еще от автора

Просмотры профиля
Создаем в компоненте "Профили пользователей" новое поле hits_count: Содержимое архива скопировать с заменой в корень сайта.
Определение устройства пользователя в профиле
Дополнение выводит с какого устройства в данный момент зашел пользователь, пишет в базу и соответственно, как и ВК видно с какого устройства был в пос
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.