Экспорт в Яндекс.Новости

8 апреля 2011 в 18:16
Аватар пользователя restyler restyler 0 51 Решено

Сделал модуль для экспорта ленты сайта в Яндекс.новости.
Для views, с гибкими настройками маппинга полей. Под семерку.
Просьба потестить и рассказать про результаты проверки Яндексом ваших лент.
Баги - в issue tracker модуля, но можно и сюда.

http://drupal.org/project/ynews

Комментарии

ну, попросили сделать по семерку, вот и сделал под семерку Smile
если у кого-то есть желание отконвертить под шестерку - всегда пожалуйста, дам прав мейнтейнера, или можете проспонсировать.

9 апреля 2011 в 0:31

"<a href="mailto:P.Selfin@drupal.org">P.Selfin@drupal.org</a>" wrote:
Я так понимаю в Яндекс.Новости далеко не каждый сайт пускают... Или я не прав?

Именно так.

13 апреля 2011 в 16:49

«Андрей, здравствуйте.

Оказывается я вас немного дезинформировал о существовании возможности передать координату в Яндекс.Новости. На данный момент такой возможности нет. Но мои коллеги очень заинтересовались возможностью принимать новости вместе с координатой и стоит ожидать, что в ближайшее время эту возможность реализуют.

Я вам сообщу о появлении такого функционала.

--

Вадим Францев
Менеджер по маркетингу API Яндекс.Карт
»

палю тему Smile

13 апреля 2011 в 19:44

"reMaster" wrote:
к чему изврат с модулем, если всё это делается через шаблон обычной RSS

как вы настроите, например, enclosure через шаблон RSS? я имею ввиду, не для своего сайта, зная какие поля надо вывести, а вообще - для всех сайтов.

13 апреля 2011 в 21:17

В шестерке заработало с небольшим хаком ynews_style_plugin.inc

if(!class_exists('views_plugin_style')) {
include (drupal_get_path('module', 'views').'/plugins/views_plugin_style.inc');
}

не работает «author» если мапить термин таксономии, показывает значение node.vid вместо имени термина. Как побороть?

15 июля 2011 в 1:02

"restyler" wrote:
если у кого-то есть желание отконвертить под шестерку - всегда пожалуйста

Появилось желание с потребностью:) Портировал под 6-ку. См. прикрепленный файл.

10 ноября 2015 в 11:47

Установил на D7
Рубрики новостей у меня сделаны словарем.
Добавил поле Содержимое:Рубрика
В настройках item:category выбрал свое поле
Но в файл почему то выводится не содержимое моего поля (Рубрика новости), а NID новости (214)

20 октября 2011 в 16:21

У меня модуль работает, но саппорт яндекса написал, что есть замечания:

«Единственное замечание есть к тегам : из них необходимо исключить ссылки на иллюстрации.
Для трансляции иллюстраций нужно использовать теги . Если в сообщении содержится несколько иллюстраций, или иллюстрация и видеофайл, элемент повторяется.

Пример: »

И как это исправить?

31 мая 2012 в 0:02

Marygold wrote:
У меня модуль работает, но саппорт яндекса написал, что есть замечания:

«Единственное замечание есть к тегам : из них необходимо исключить ссылки на иллюстрации.
Для трансляции иллюстраций нужно использовать теги . Если в сообщении содержится несколько иллюстраций, или иллюстрация и видеофайл, элемент повторяется.

Пример: »

И как это исправить?


фильтр на , или не пихать картинки в тело ноды. Сделать для этого отдельное поле.

4 июня 2012 в 13:16

не пихать картинки в тело ноды. Сделать для этого отдельное поле.

Для картинок есть отдельное поле, но иногда пресс-служба вставляет изображения непосредственно в текст статьи, если это требуется по каким-то причинам.

фильтр на изображение

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

4 июня 2012 в 14:29

не пихать картинки в тело ноды. Сделать для этого отдельное поле.

Для картинок есть отдельное поле, но иногда пресс-служба вставляет изображения непосредственно в текст статьи, если это требуется по каким-то причинам.

фильтр на изображение

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

4 июня 2012 в 14:29

Так. Дополню немного. Яндекс не воспринимает вообще лишний html код, точнее не желательны теги и изображения. Поэтому можно просто в настройках поля выбрать "Перезаписать результаты" и поставить галочку "Удалить html теги".
Так же решил проблему с выводом id, вместо названия категории. Для исправления этого "бага" потребуется в файле ynews/includes/ynews.views.inc
Строчки:

<?phpif ($options['category']) {
      $alias = $fields[$options['category']]->field_alias;
      $ynews_item['category'] = isset($row->$alias) ? yml_safe($row->$alias) : NULL;
    }?>

Заменить на:

<?phpif ($options['category']) {
      $alias = $fields[$options['category']]->field_alias;
      $ynews_item['category'] = yml_safe($view->style_plugin->get_field($key, $options['category']));
    }?>
5 июня 2012 в 16:20

Все здорово, но. В ynews появился баг с пустой первой строчкой (что смертельно для Яндекс-новостей), а в Yandex Elements вообще не предусмотрен обязательный для Я-Н image.

Что-то надо поправить, но что?

23 июля 2013 в 0:50

"guruken" wrote:
в Yandex Elements вообще не предусмотрен обязательный для Я-Н image

Можно поподбробней, что за обязательный image, где про него написано?

23 июля 2013 в 9:35

В Техрегламенте Яндекс-новостей http://partner.news.yandex.ru/tech.pdf указано, что в channel обязательный элемент - image с логотипом сайта. То есть

<image>
<url>http://www.rossiyskie-novosti.ru/logo.gif</url>
<title>Российские новости</title>
<link>http://www.rossiyskie-novosti.ru/</link>
</image>

У вас его в модуле нет, к сожалению, а попытка вставить во вьюсе в свободное текстовое поле ничего не дает.

23 июля 2013 в 13:17

Хм... так он есть в модуле Views RSS, для которого Views RSS: Yandex Elements является дополнительным, добавляющим только специфические для Яндекса поля...
Вот пример выдачи - http://www.computerbild.ru/yrss.xml - с элементом image:

<image> <url>http://www.computerbild.ru/sites/all/modules/custom/cobi_extras/images/CB_logo_...
 <title>Computer Bild</title>
 <link>http://www.computerbild.ru/</link>
 <width>100</width>
 <height>47</height>
</image>
23 июля 2013 в 13:29

Модуль работает, но есть 2 проблемы:
1. Кодировка. На сайте и в RSS фиде указывается utf-8, но на деле в RSS кодировка отображается некорректно, сплошные иероглифы.

2. В RSS фиде отображаются только заголовки, краткое содержание не отображается, хотя в xml коде оно присутствует.

Подскажите, пожалуйста, как исправить данные баги?

2 февраля 2014 в 0:26

Как исправить?
1. Понять, что именно происходит и где.
2. Описать это понятным для других языком, желательно со ссылками на где это происходит.

2 февраля 2014 в 7:58

1. Насколько я понял, в RSS фид по каким-то причинам данные отдаются не в utf-8.
PS: БД в кодировке utf-8, в .htaccess так же прописана utf-8.

2. В RSS фиде мы видем только заголовки статей. Если же открыть xml код страницы RSS фида - мы видим и заголовки и анонсы статей ().

5 февраля 2014 в 1:03

Что за модуль вы используете? Я могу помочь вам только по Views RSS: Yandex Elements (который сам и написал)

То, что вы описываете в пункте 2 - стандартные читалки RSS не поддерживают теги яндекса, поэтому обрезают всё то, что находится в тегах yandex:full-text

2 февраля 2014 в 12:55

Как я понял - это тема модуля ynews, по нему у меня и вопросы.

Ваш модуль "Views RSS: Yandex Elements" я тоже видел, но, к сожалению, не смог сходу разобраться как им пользоваться (ynews в этом плане более приятный).
Может быть у вас есть подробные инструкции по использованию вашего модуля? Мне хотелось бы протестировать и ваш модуль.
После того, как я включаю ваш модуль и иду во вкладку "views" я не вижу в ней 'Yandex.News'. Я что-то упустил?

Спасибо, у меня были такие подозрения, вы их подтвердили.

2 февраля 2014 в 13:12

duozersk, у вашего модуля родительским указан модуль Views RSS. А для того, чтобы появилась возможность интеграции с Яндекс.Новости вам нужно наследоваться от Views RSS: Core Elements, который входит в состав Views RSS. Ну или указать в своем модуле, что необходимо включить Views RSS: Core Elements, т.к. недостающие элементы находятся именно там.

24 апреля 2014 в 17:36

11 февраля я получила письмо от info@news.yandex.ru

Яндекс.Новости: изменения в технических требованиях к экспорту

Уважаемые партнёры!

Мы планируем изменить формат отображаемых на страницах нашего сервиса логотипов партнёрских сайтов для того, чтобы пользователю легче было найти заголовок предпочитаемого издания на странице сюжета. Фавиконки, которые мы показываем рядом с названием агентства, будут заменены на логотипы.
В этой связи мы немного меняем требования к экспортному файлу.

В должен быть добавлен элемент yandex:logo, предназначенный для передачи квадратного логотипа.

Пример:

<yandex:logo type="square">http://example.net/square_logo.png</yandex:logo>

Атрибут type может быть только square. Рекомендуется для передачи стандартного логотипа использовать тот же элемент yandex:logo, но без атрибута type. Т.е. вместо элемента лучше писать:

<yandex:logo>http://example.net/normal_logo.png</yandex:logo>
<yandex:logo type="square">http://example.net/square_logo.png</yandex:logo>

Минимальный размер логотипа, передаваемого посредством yandex:logo type="square" - 180 на 180 пикселей, его ширина и высота должны быть одинаковыми. Дополнительных требований к стандартному логотипу не накладывается.
Старая схема с передачей логотипов в пока тоже поддерживается (как отдельно, так и совместно с yandex:logo type="square").
Даже если вы решите использовать один и тот же логотип в качестве квадратного и стандартного, его всё равно необходимо в экспорте указать в двух элементах - yandex:logo и yandex:logo type="square".
-
С уважением,
Яндекс.Новости

______________________________________________________________________-

Будут ли внесены соответствующие изменения в модуль? Когда ждать обновления?

16 февраля 2015 в 19:02

Я не знаю, как установить патч(

Я руками дописала в модуле

<image>
  <url><?php print $image_url; ?></url>
  <title><?php print $title; //print yml_safe(variable_get('site_name', '')); ?></title>
  <link><?php print $GLOBALS['base_url'] . $GLOBALS['base_path']; ?></link>
</image>
<yandex:logo type="square"><?php print $image_url; ?></yandex:logo>
16 февраля 2015 в 19:28

Яндекс требует, чтобы дата была в формате RFC822
а в экспортном файле Thu, 14 Apr 16 16:15:59 +0300

выводится Apr 16 , а надо Apr 2016

я уже в представлении пробовала менять, в форматах данных, не помогает

в самом модуле
<?php if(isset($row['pubdate'])): ?>
<?php print $row['pubdate']; ?>
<?php endif; ?>

я не знаю, что тут менять

Единственное, что смогла изменить - саму дату экспортного файла

Поменяла
<?php print date(DATE_RFC822); ?> (выводился год 16)
на
<?php print date('D, d M Y H:i:s O'); ?> (стал выводиться 2016)

22 апреля 2016 в 15:47