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

Аватар пользователя restyler restyler 8 апреля 2011 в 18:16

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

http://drupal.org/project/ynews

0 Thanks

Комментарии

Аватар пользователя darkdim darkdim 13 апреля 2011 в 19:46
demarko wrote:

Блин, а что только под 7ку?(((

Под 6-ку есть модуль, правда не на Drupal.org а тут на ru

Аватар пользователя restyler restyler 9 апреля 2011 в 0:31

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

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 13 апреля 2011 в 16:49
"<a href="mailto:P.Selfin@drupal.org">P.Selfin@drupal.org</a>" wrote:

Я так понимаю в Яндекс.Новости далеко не каждый сайт пускают... Или я не прав?

Именно так.

Аватар пользователя andribas@drupal.org andribas@drupal.org 13 апреля 2011 в 19:44

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

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

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

--

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

палю тему :)

Аватар пользователя restyler restyler 13 апреля 2011 в 21:17
"reMaster" wrote:

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

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

Аватар пользователя iTux iTux 15 июля 2011 в 1:02

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

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

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

Аватар пользователя molfar molfar 10 ноября 2015 в 11:47
"restyler" wrote:

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

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

Аватар пользователя molfar molfar 12 октября 2011 в 16:34
clubnemwen wrote:

У кого нибудь получилось настроить модуль?

Все четко работает

Аватар пользователя restyler restyler 20 октября 2011 в 1:45

закоммитил в шестую ветку файлы от комрада molfar с мелкими фиксами, спасибо!

Аватар пользователя sashken sashken 20 октября 2011 в 16:21

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

Аватар пользователя Айдар Айдар 12 апреля 2012 в 0:36

Огромное спасибо, restyler и molfar!

Сейчас же буду тестить модуль 6-ку (а то я так понял еще никто...) :)

Аватар пользователя Marygold Marygold 31 мая 2012 в 0:02

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

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

Пример: »

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

Аватар пользователя darkdim darkdim 4 июня 2012 в 13:16
Marygold wrote:

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

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

Пример: »

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

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

Аватар пользователя Marygold Marygold 4 июня 2012 в 14:29

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

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

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

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

Аватар пользователя Marygold Marygold 4 июня 2012 в 14:29

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

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

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

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

Аватар пользователя Hallboy222 Hallboy222 5 июня 2012 в 11:35

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

Аватар пользователя Hallboy222 Hallboy222 5 июня 2012 в 16:20

Так. Дополню немного. Яндекс не воспринимает вообще лишний 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']));
    }
?>
Аватар пользователя guruken guruken 23 июля 2013 в 0:50

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

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

Аватар пользователя duozersk duozersk 23 июля 2013 в 9:35
"guruken" wrote:

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

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

Аватар пользователя guruken guruken 23 июля 2013 в 13:17

В Техрегламенте Яндекс-новостей 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>

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

Аватар пользователя duozersk duozersk 23 июля 2013 в 13:29

Хм... так он есть в модуле 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>
Аватар пользователя guruken guruken 23 июля 2013 в 14:30

Спасибо за наводку! Оказывается, я просто не полностью активировал Views RSS.
Все работает!

Аватар пользователя thermenter thermenter 2 февраля 2014 в 0:26

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

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

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

Аватар пользователя duozersk duozersk 2 февраля 2014 в 7:58

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

Аватар пользователя thermenter thermenter 5 февраля 2014 в 1:03

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

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

Аватар пользователя duozersk duozersk 2 февраля 2014 в 12:55

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

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

Аватар пользователя thermenter thermenter 2 февраля 2014 в 13:12

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

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

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

Аватар пользователя mbaev mbaev 24 апреля 2014 в 17:36

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

Аватар пользователя Marygold Marygold 16 февраля 2015 в 19:02

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".
-
С уважением,
Яндекс.Новости

______________________________________________________________________-

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

Аватар пользователя Marygold Marygold 16 февраля 2015 в 19:28

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

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

<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>
Аватар пользователя dedkola dedkola 25 сентября 2015 в 14:13

А подскажите пожалуйста где найти в views_rss_yandex поля для вывода yandex:logo и yandex:logo type="square". В дев ветке на 7ке не нашел ;( скрин

Аватар пользователя Marygold Marygold 22 апреля 2016 в 15:47

Яндекс требует, чтобы дата была в формате 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)