Модуль для экспорта в Яндекс.Новости

Прислано: Dock@drupal.org

чт, 11/03/2010 - 15:10

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

Что сейчас позволяет делать модуль:

  1. Генерация страницы yandexnews.xml в формате годном для Яндекс.Новостей.
  2. Настройка выводимых в ленте материалов (количество, типы материалов).
  3. Настройка изображения для канала

Что ещё планируется сделать:

  1. Добавление к элементу item следующих вложенных элементов:
    • author
    • category
    • enclosure
    • yandex:genre
  2. Создание плагина для Views
  3. Публикация модуля на Drupal.org

Так же существует другой подобный модуль.
Посмотреть его можно здесь: http://drupal.ru/node/25954

Жду ваших отзывов:)

UPD от 23.04.2010: обновлен модуль: теперь из описания и полного текста новости вырезаются все теги.
UPD от 20.05.2010: обновлен модуль: улучшена очистка от тегов.

Прикрепленный файлРазмер
yandexnews.zip9.96 кб

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано SkyD в чт, 11/03/2010 - 17:37.

Спасибо, идея крайне хороша!

А подскажите, у вас уже есть сайт(-ы), где этот модуль работает и материалы с которого Я.Новости включают в свой поиск?


Опубликовано Dock@drupal.org в чт, 11/03/2010 - 18:34.

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


Опубликовано mak-vardugin в чт, 11/03/2010 - 20:25.

Будем ждать!


Опубликовано ingumsky@drupal.org в пт, 12/03/2010 - 19:57.

Спасибо. После переезда на новый сервер обязательно попробую.


Опубликовано nesca в пн, 15/03/2010 - 10:02.

спасибо за модуль!
но осталась проблема с тэгами <p style="text-align: justify;"><strong><em>


Опубликовано Dock@drupal.org в пн, 15/03/2010 - 10:41.

А что с ними за проблема? Яндекс их не запрещает, а rss reader'ы прекрасно понимает. Хотя я тоже думаю, что в description они лишние. Тогда с следующем релизе сделаю галочку, очищать от тегов или нет.


Опубликовано nesca в пн, 15/03/2010 - 19:35.

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


Опубликовано SkyD в пн, 15/03/2010 - 20:20.

"Dock@drupal.org" написал(а):

Есть один. Пока работает в тестовом режиме и ссылку на него дать по политическим причинам не могу:)

Если вы не против, нескромно поинтересуюсь:
AFAIK, критерии приёма в Я.Новости достаточно жёсткие, как вы смогли добавить туда сайт, работающий в тестовом режиме?

(или у вас какой-то невероятно уникальный контент?)


Опубликовано afishi в вт, 16/03/2010 - 06:45.

простите. и опять я...
что там на счет 5 варианта?


Опубликовано Dock@drupal.org в вт, 16/03/2010 - 07:31.

"SkyD" написал(а):
"SkyD" написал(а):

Если вы не против, нескромно поинтересуюсь:
AFAIK, критерии приёма в Я.Новости достаточно жёсткие, как вы смогли добавить туда сайт, работающий в тестовом режиме?

(или у вас какой-то невероятно уникальный контент?)

Просто сейчас есть сайт, транслировавший в Я.Новости очень давно и имеющий уникальный контент. Сейчас запускаю другой сайт, сделанный отдельно для новостей, которые раньше была на первом сайте. Так вот инфа дублируется и я отдаю яндексу поток, генерируемый тестовым сайтом. Вот так все запутано:)


Опубликовано Dock@drupal.org в вт, 16/03/2010 - 07:37.

"afishi" написал(а):

простите. и опять я...
что там на счет 5 варианта?

Так как модуль делал для себя, то версии для 5-ки нет. Так что ничего обещать не могу, пока буду развивать под 6-ку, будет ли время делать версию для 5-ки не знаю.


Опубликовано НовичОК в вт, 30/03/2010 - 17:55.

Это ж бомба! спасибо!


Опубликовано ingumsky@drupal.org в вт, 30/03/2010 - 19:20.

Спасибо. Поставил сегодня Ваш модуль, чтобы посмотреть, как он работает. Обратил внимание, что RSS-поток формируется из анонсов, хотя в требованиях Яндекса есть (было?) указание на то, что в материал должны включаться материалы целиком. Вы так и задумывали включать только анонсы?


Опубликовано areafix в пн, 05/04/2010 - 18:31.

Я делал Яндекс.Новости через  views +  views_node_feed + кастомный темплейт. К сожалению,  views_node_feed так и не дотащили до 6ки, в следующем проекте придется скорее всего играться с  views_datasource. Но все-таки такое решение выглядит более устойчивым, что ли, т.к. использует менее специализированные модули. Отдельный модуль под Яндекс будет жить ровно столько, сколько автору интересна эта задача.


Опубликовано Dock@drupal.org в пт, 16/04/2010 - 10:02.

"ingumsky@drupal.org" написал(а):

Спасибо. Поставил сегодня Ваш модуль, чтобы посмотреть, как он работает. Обратил внимание, что RSS-поток формируется из анонсов, хотя в требованиях Яндекса есть (было?) указание на то, что в материал должны включаться материалы целиком. Вы так и задумывали включать только анонсы?

RSS-поток формируется верно. В тег description (показывается в RSS-ридерах) отображается лишь краткое сожержание, а в yandex:full-text вся нода целиком.


Опубликовано Dock@drupal.org в пт, 16/04/2010 - 10:05.

"areafix" написал(а):

Я делал Яндекс.Новости через views + views_node_feed + кастомный темплейт. К сожалению, views_node_feed так и не дотащили до 6ки, в следующем проекте придется скорее всего играться с views_datasource. Но все-таки такое решение выглядит более устойчивым, что ли, т.к. использует менее специализированные модули. Отдельный модуль под Яндекс будет жить ровно столько, сколько автору интересна эта задача.

Если будет мануал по описанному решению буду очень рад, на самом деле это будет более универсально. Хотя специализированные модули иногда удобней тем, что развертывание занимает пару минут. Времени на развития модуля у меня почти нет, поэтому прогресс будет идти очень медленно:(


Опубликовано ingumsky@drupal.org в вс, 18/04/2010 - 15:19.

"Dock@drupal.org" написал(а):

RSS-поток формируется верно. В тег description (показывается в RSS-ридерах) отображается лишь краткое сожержание, а в yandex:full-text вся нода целиком.

Спасибо. Мне даже в голову не пришло внимательно посмотреть на сам XML.


Опубликовано areafix в пн, 19/04/2010 - 21:37.

Dock@drupal.org написал(а):

Если будет мануал по описанному решению буду очень рад, на самом деле это будет более универсально. Хотя специализированные модули иногда удобней тем, что развертывание занимает пару минут. Времени на развития модуля у меня почти нет, поэтому прогресс будет идти очень медленно:(

Ну, 2 года назад это выглядело так:

1. Ставим drupal,  views,  views_node_feed.
2. Читаем ТЗ Яндекса и настраиваем темплейт для  views_node_feed. На тот момент Яндекс не хотел категорий и чего-то там еще, в общем, тогда было актуально следующее:

Шапка (Wrapper template):

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns="http://backend.userland.com/rss2" xmlns:yandex="http://news.yandex.ru">
	<channel>
		<title>Новости издательского дома Рога и Копыта</title>
		<link>http://roga-kopyta.ru/</link>
			<description>Профессиональные издания для пастухов, животноводов, работников крайнего севера и специалистов копытного учета</description>
		<image>
			<url>http://roga-kopyta.ru/<? print base_path() . path_to_theme() ?>/images/logo-100.gif</url>
			<title>Новости издательского дома Рога и Копыта</title>
			<link>http://roga-kopyta.ru/</link>
		</image>
<? ***VIEWS_NODE_FEED_ITEMS*** ?>
</channel>
</rss>

Тушка (Node Template):

<?
function yastr($node_text) {
	$output = str_replace('&#039;', '&apos;', htmlspecialchars(preg_replace(array('/&nbsp;/', '/<!--break-->/', '/&laquo;/', '/&raquo;/', '/&ndash;/', '/&ldquo;/', '/&rdquo;/'), array(' ', '', '&amp;laquo;', '&amp;raquo;', '&amp;ndash;', '&amp;ldquo;', '&amp;rdquo;'), $node_text), ENT_COMPAT, $charset = 'UTF-8', FALSE))
	return $output;
}
$out = '';
$address = 'http://roga-kopyta.ru';
if ($node->nid) {
	$out = '		<item>'."\n";
	$out .= '			<title>'. htmlspecialchars($node->title) .'</title>'."\n";
	$out .= '			<link>'. htmlspecialchars($address .'/'. $node->path) .'</link>'."\n";
	if ($node->print_display == '1') {
		$out .= '			<pdalink>'. htmlspecialchars($address .'/print/'. $node->nid) .'</pdalink>'."\n";
	}
	$out .= '			<description>'. yastr($node->teaser) .'</description>'."\n";
	$out .= '			<pubDate>'. t('!date', array('!date' => format_date($node->created, 'custom',  "r", NULL, 'en')), 'en') .'</pubDate>'."\n";
	$out .= '			<yandex:full-text>'. yastr($node->body) .'</yandex:full-text>'."\n";
	$out .= '		</item>'."\n"
}
print 	$out;
?>

3. Далее делаем views с каким нибудь именем и добавляем туда:

а) Отображение - feed.
б) Style - Views Node Feed, в настройках выбираем нужный темплейт.
в) Путь - ну что-нибудь, например /yandex
г) Сортировка: Материал: Post date asc
д) Фильтры:
Материал: Тип = Новость.
Материал: Опубликовано Да
Материал: Post date > -7 day
е) Потом пишем письмо в Яндекс и просим проверить, как работает http://roga-kopyta.ru/yandex. По мере их ответов наращиваем содержимое массивов в функции yastr() в шаблоне. В какой-то момент обе стороны устают спорить и сходятся на том, что есть, в http://roga-kopyta.ru/yandex начинают бежать настоящие новости, а Яндекс разрождается инструкцией, что публикация ссылок на источники теперь в тушке фида допустима и еще какими-то послаблениями.

Все это для 5-го Друпала и тех правил Яндекса. Новые правила, думаю, легко решатся доп. полями, а чем заменить  views_node_feed - придется подумать. В крайнем случае, у них там валяется вне репрозиторя работающий порт под 6ку с предложением помочь, но в целом это не лучше, чем писать модуль самому.

На следующей неделе буду менять сайт под Жумлой на новую версию на Друпале6, придется решать эту задачу снова, по итогу могу написать.


Опубликовано ingumsky@drupal.org в вт, 20/04/2010 - 12:01.

М-м-м... А как бы сделать так, чтобы материалы, отмеченные определённым термином таксономии, не попадали в фид? У меня, например, есть термин «новости сайта», и я понимаю, что это не то, что нужно Яндексу :)


Опубликовано Dock@drupal.org в пт, 23/04/2010 - 09:55.

Пока с помощью этого модуля - никак. Можно воспользоваться модулем, ссылка на который есть в конце моего поста. Он как раз отбирает материалы по таксономии. Ну или пробовать вариант с Views, предложенный выше. В ближайшем времени модуль обновляться не будет.


Опубликовано PVasili в чт, 20/05/2010 - 19:55.

areafix - спасибо за наводк.
Сделал в  Views Datasource XML вывод во вьюхе.
DEV кривая пока, да и в 3-й альфе косяк детский живет но уже можно использовать... Завтра для всех ньюсов пропишу...

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


Опубликовано ingumsky@drupal.org в чт, 20/05/2010 - 20:05.

"PVasili" написал(а):

areafix - спасибо за наводк.
Сделал в Views Datasource XML вывод во вьюхе.
DEV кривая пока, да и в 3-й альфе косяк детский живет но уже можно использовать... Завтра для всех ньюсов пропишу...

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

Да, я тоже присматривался к Views datasource, но понял, что мне, вероятно, не хватит знаний, чтобы превратить это в полноценное решение.


Опубликовано Dock@drupal.org в пт, 21/05/2010 - 05:06.

"PVasili" написал(а):

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

В том, чтобы не использовать другие модули, функционал которых излишен и вряд ли в дальнейшем понадобится, плюс легче в использовании:) Начал писать плагин для views и теперь думаю, может ну его и использовать Views datasource?


Опубликовано PVasili в пт, 21/05/2010 - 05:58.

ingumsky@drupal.org там нет абсолютно ничего сложного

"Dock@drupal.org" написал(а):

В том, чтобы не использовать другие модули, функционал которых излишен

это у views излишен? На большинстве сайтов он ставится как родной по умолчанию ;).

"Dock@drupal.org" написал(а):

думаю, может ну его и использовать Views datasource

там малость косяки в альфе 3.


Опубликовано skiller_07 в пн, 21/06/2010 - 04:56.

Подскажите пожалуйста, а можно как то это сделать отдельным скриптом, то есть без модуля, чтобы просто был файл, который генерирует rss для yandexa


Опубликовано areafix в вт, 29/06/2010 - 11:49.

"skiller_07" написал(а):

можно как то это сделать отдельным скриптом

Можно.

"skiller_07" написал(а):

то есть без модуля, чтобы просто был файл

Можно.

...но это долго, несовместимо, неудобно и много-много строчек кода.


Опубликовано sergebw@drupal.org в пн, 12/07/2010 - 10:04.

Как я делаю RSS.xml для Яндекса с помощью views

1. установил модуль Views Datasource
2. разрешил в модулях Views XML
3. создал представление (назвал yandex_rss)
Основные настройки
Стиль: XML data document
Взаимосвязи
Таксономия: Материал
Поля
Материал: Заголовок
Материал: Путь
Материал: Краткая аннотация
Пользователь: Имя
Таксономия: Термин
Материал: Дата создания
Материал: Содержимое
Критерии сортировки
Материал: Дата создания убыв.
Фильтры
Материал: Тип = Заметка
Таксономия: Термин Ни один из - список термины из словаря ...
(так как показывать надо было материалы входящие в 7 терминов из 10)
4. Добавляю Представление "Страница"
Настройки страницы
Путь: yandexrss.xml

5. Копирую файл views-views-xml-style.tpl.php из папки my_site/sites/all/modules/views_datasource/theme
в папку my_site/sites/all/themes/-Тема-/ с названием views-views-xml-style--yandex-rss.tpl.php

6. перехожу в подпункт - Основные настройки - Тема: Информация
жму кнопку "Пересканировать файлы шаблонов"

7. в файл views-views-xml-style--yandex-rss.tpl.php
помещаю код:


<?php
// $Id $
/**
 * @file views-views-xml-style.tpl.php
 * If you want to override the style theme switcher in views_views_xml_style.theme.inc use this file and add
 * a template = views-views-xml-style.tpl.php to the theme declaration for views_views_xml_style.
 *
 * - $view: The View object.
 * - $rows: Array of row objects as rendered by _views_xml_render_fields 
 *
 * @ingroup views_templates
 */

xml_raw_render($view);

function 

xml_raw_render($view) {

$htmlEntities = array
(
'&quot;','&amp;','&amp;','&lt;','&gt;','&nbsp;','&iexcl;','&cent;','&pound;','&curren;','&yen;',
'&brvbar;','&sect;','&uml;','&copy;','&ordf;','&laquo;','&not;','&shy;','&reg;','&macr;','&deg;',
'&plusmn;','&sup2;','&sup3;','&acute;','&micro;','&para;','&middot;','&cedil;','&sup1;','&ordm;',
'&raquo;','&frac14;','&frac12;','&frac34;','&iquest;','&Agrave;','&Aacute;','&Acirc;','&Atilde;',
'&Auml;','&Aring;','&AElig;','&Ccedil;','&Egrave;','&Eacute;','&Ecirc;','&Euml;','&Igrave;',
'&Iacute;','&Icirc;','&Iuml;','&ETH;','&Ntilde;','&Ograve;','&Oacute;','&Ocirc;','&Otilde;',
'&Ouml;','&times;','&Oslash;','&Ugrave;','&Uacute;','&Ucirc;','&Uuml;','&Yacute;','&THORN;',
'&szlig;','&agrave;','&aacute;','&acirc;','&atilde;','&auml;','&aring;','&aelig;','&ccedil;',
'&egrave;','&eacute;','&ecirc;','&euml;','&igrave;','&iacute;','&icirc;','&iuml;','&eth;',
'&ntilde;','&ograve;','&oacute;','&ocirc;','&otilde;','&ouml;','&divide;','&oslash;','&ugrave;',
'&uacute;','&ucirc;','&uuml;','&yacute;','&thorn;','&yuml;','&ndash;');

$xmlEntities   = array
(
'&#34;','&#38;','&#38;','&#60;','&#62;','','&#161;','&#162;','&#163;','&#164;','&#165;','&#166;',
'&#167;','&#168;','&#169;','&#170;','&#171;','&#172;','&#173;','&#174;','&#175;','&#176;','&#177;',
'&#178;','&#179;','&#180;','&#181;','&#182;','&#183;','&#184;','&#185;','&#186;','&#187;','&#188;',
'&#189;','&#190;','&#191;','&#192;','&#193;','&#194;','&#195;','&#196;','&#197;','&#198;','&#199;',
'&#200;','&#201;','&#202;','&#203;','&#204;','&#205;','&#206;','&#207;','&#208;','&#209;','&#210;',
'&#211;','&#212;','&#213;','&#214;','&#215;','&#216;','&#217;','&#218;','&#219;','&#220;','&#221;',
'&#222;','&#223;','&#224;','&#225;','&#226;','&#227;','&#228;','&#229;','&#230;','&#231;','&#232;',
'&#233;','&#234;','&#235;','&#236;','&#237;','&#238;','&#239;','&#240;','&#241;','&#242;','&#243;',
'&#244;','&#245;','&#246;','&#247;','&#248;','&#249;','&#250;','&#251;','&#252;','&#253;','&#254;',
'&#255;','&#8211;');

global 

$base_url;
$xml .= '<?xml version="1.0" encoding="UTF-8"?>'."\n";
$xml .= '<rss version="2.0" xmlns="http://backend.userland.com/rss2" xmlns:yandex="http://news.yandex.ru">'."\n";
$xml .= '<channel>'."\n";
$xml .= "   <title>".variable_get('site_name''drupal').'</title>'."\n";
$xml .= "   <link>".$base_url.'</link>'."\n";
$xml .= "   <description>Описание сайта</description>\n";
$xml .= "   <language>ru</language>\n";
$xml .= "   <image>\n";
$xml .= "         <url>".$base_urlbase_path() . path_to_theme() ."/images/yn-logo.gif</url>\n";
$xml .= "         <title>".variable_get('site_name''drupal').'</title>'."\n";
$xml .= "         <link>".$base_url.'</link>'."\n";
$xml .= "    </image>"."\n";
  
foreach (
$view->result as $node) {
    
$xml .= '  <item>'."\n";   
    foreach(
$node as $label => $value) {
      if (
is_null($value) || ($value === ''))                 continue;
      if (
strtolower($label) == 'nid')                    continue; 
      if (
strtolower($label) == 'term_data_vid')            continue; 
      if (
strtolower($label) == 'term_data_tid')            continue; 
      if (
strtolower($label) == 'node_revisions_format')    continue; 
      if (
strtolower($label) == 'users_uid')                continue; 
            
      
$label str_replace('_value'''str_replace("profile_values_profile_"''$label)); //strip out Profile: from profile fields
      
$label str_replace('_value'''str_replace("node_data_field_feature_image_field_feature_"''$label)); //strip out node_data_field_feature_image_field_feature from labels
        //added code to replace html entities with xml safe entities
        
$value str_replace($htmlEntities,$xmlEntities,$value);
        
$value str_ireplace($htmlEntities,$xmlEntities,$value);
        
$value preg_replace ("'<script[^>]*?>.*?</script>'si"""$value); // removes javascript
        
$value preg_replace ("'<[\/\!]*?[^<>]*?>'si"""$value);// removes html tags
        
$value preg_replace ("'([\r\n])[\s]+'""\\1"$value); // removes free space

      

if ((strtolower($label) == 'title')  || (strtolower($label) == 'node_title')) $label "title";  
      if  (
strtolower($label) == 'path'$label "link";
      if  (
strtolower($label) == 'node_revisions_teaser'$label "description";
      if  (
strtolower($label) == 'users_name')         $label "author";
      if ((
strtolower($label) == 'data_name') || (strtolower($label) == 'term_data_name')) $label "category";        
      if ((
strtolower($label) == 'published')      || (strtolower($label) == 'node_created'))   {    $label 'pubDate';
         if (
intval($value))         //timestamp
                
$value =  date(DATE_RFC822intval($value)) ;
         else if(
getdate($value))     //string date
                
$value date(DATE_RFC822strtotime($value)); 
      }  
      if ((
strtolower($label) == 'text') || (strtolower($label) == 'node_revisions_body'))
        
$label "yandex:full-text";

        
      

$xml .= "    <$label>".trim($value)."</$label>\n";
    }
  
$xml .= '  </item>'."\n";
  }
  
$xml .='</channel>'."\n";
  
$xml .='</rss>'."\n";
  if (
$view->override_path//inside live preview 
        
print htmlspecialchars($xml);
  else {  
       
drupal_set_header('Content-Type: text/xml');
       print 
$xml;
       
module_invoke_all('exit');
       exit;
  }
}
?>

8. Сохраняю представление и по ссылке my_site/yandexrss.xml получаю рсс поток

Огромная просьба к гуру:

не смог разобраться как добавить к каждому пункту item ссылку (link)

Подскажите пожалуйста как это сделать?


Опубликовано PVasili в пт, 09/07/2010 - 18:42.

"sergebw@drupal.org" написал(а):

не смог разобраться как добавить к каждому пункту item ссылку (link)
Подскажите пожалуйста как это сделать?

Делалось малость по другому и попроще :), думаю из кода понятно будет:

<?php
    $xml 
.= '    <link>'check_url(url('node/'.$val->nid, array('absolute' => TRUE,))). "</link>\n";      // адрес материала
?>


Опубликовано ingumsky@drupal.org в сб, 10/07/2010 - 11:02.

Тем временем модуль  Views datasource уже перебрался в первую бету, что радует...


Опубликовано PVasili в сб, 10/07/2010 - 11:16.

Нужно посмотреть, ибо в альфе было полно косяков в стиле: http://drupal.org/node/803186 Что делало её практически неработоспособной.


Опубликовано ingumsky@drupal.org в сб, 10/07/2010 - 12:18.

"PVasili" написал(а):

Нужно посмотреть, ибо в альфе было полно косяков в стиле: http://drupal.org/node/803186 Что делало её практически неработоспособной.

Да, я читал ещё когда Вы в прошлый раз кидали ссылку на багрепорт.


Опубликовано sergebw@drupal.org в пн, 12/07/2010 - 08:43.

"PVasili" написал(а):

<?php
    $xml 
.= '    <link>'check_url(url('node/'.$val->nid, array('absolute' => TRUE,))). "</link>\n";      // адрес материала
?>

Возможно и проще, но у меня почему то не получается :( вставил вот этот код

<?php
    $xml 
.= '    <link>'check_url(url('node/'.$label->nid, array('absolute' => TRUE))). "</link>\n";      // адрес материала
?>

ссылка появляется, но не та что нужно
http://my_site.ua/node

без темизации ссылки выводятся:

<title>В Ровенской области перевернулся микроавтобус</title>
    <path>http://my_site.ua/content/proisshestviya/10310v-rovenskoi-oblasti-perevernulsya-mikroavtobus-travmirovano-tri-chelovek</path>
    <teaser>Сегодня, в начале первого часа ...</teaser>
    <name>Автор</name>
    <created>Понедельник, 14 июня, 2010 - 10:15</created>
    <body>Сегодня, в начале первого часа, на Ровенщине, на 269 км автодороги Киев-Чоп, водитель микроавтобуса ....</body>

после применения шаблона темизации, ссылки пропадают:

  <item>
    <link>http://my_site.ua/node/</link>
    <title>В Ровенской области перевернулся микроавтобус</title>
    <description>Сегодня, в начале первого часа....</description>
    <author>Автор</author>
    <category>Происшествия</category>
    <pubDate>Mon, 14 Jun 10 10:15:46 +0300</pubDate>
    <yandex:full-text>Сегодня, в начале первого часа, на Ровенщине, на 269 км автодороги Киев-Чоп, водитель микроавтобуса....</yandex:full-text>
  </item>

что делать?
может это еще один баг Views datasource ? (стоит версия дев от 11.07.2010)


Опубликовано PVasili в вт, 13/07/2010 - 07:25.

Вы path с link не путаете?


Опубликовано sergebw@drupal.org в вт, 13/07/2010 - 08:44.

Яндекс требует структуру (внутреннюю)

<item>
    <title></title>
    <link></link>
    <description></description>
    <author></author>
    <category></category>
    <pubDate></pubDate>
    <yandex:full-text></yandex:full-text>
  </item>

так вот этот link (адрес материала) у меня и не получается вывести.
в выводе вьювс он называется path и выводится, а после применения шаблона темизации - нет.
уже голову сломал :(


Опубликовано PVasili в вт, 13/07/2010 - 11:17.

"sergebw@drupal.org" написал(а):

уже голову сломал :(

а чего ломать? Среди выводимых по материалу полей должно быть с NID материала. Его и подставляете в функцию, для получения адреса.


Опубликовано sergebw@drupal.org в вт, 13/07/2010 - 12:02.

Все получилось, спасибо, надо было в таком виде подставлять:

$xml .= "    <link>". url('node/'.$value, array('absolute' => TRUE)). "</link>\n";      // адрес материала


Опубликовано PVasili в вт, 13/07/2010 - 12:14.

Я писал, нужно свои данные. Для подстановки в функцию: нужно ID материала.


Опубликовано sergebw@drupal.org в вт, 13/07/2010 - 13:09.

"PVasili" написал(а):

Я писал, нужно свои данные. Для подстановки в функцию: нужно ID материала.

Спасибо, все получилось. теперь работает. файл в аттаче views-views-xml-style--yandex-rss.tpl.php (если кому интересно).

убрал из настроек представления: Поля - Материал: Путь


Опубликовано kodo в пт, 27/08/2010 - 11:18.

"sergebw@drupal.org" написал(а):

Спасибо, все получилось. теперь работает. файл в аттаче views-views-xml-style--yandex-rss.tpl.php (если кому интересно).

Вот и я добрался до Яндекс новостей. Буду пробовать, спасибо шаблон :)


Опубликовано afishi в сб, 28/08/2010 - 07:13.

покажите, как на сайтах это смотрится?


Опубликовано kadut в вт, 08/03/2011 - 19:55.

Здравствуйте, использовал этот модуль.
Подскажите, пожалуйста, как убрать тег на формирование pda/palm/wap/кпк-версии сообщения (тег pdalink). У меня нет таких версия сайта и тех. поддержка яндекса попросила удалить этот тег.


Опубликовано restyler в пт, 08/04/2011 - 14:18.

новый модуль для яндекс.новостей, работает через views и fields, под Друпал 7: http://www.drupal.ru/node/60373


Опубликовано afishi в пт, 08/04/2011 - 19:08.

ребята, а как прописать вот так
(Кроме того, информацию о датах Яндекс получает, разбирая адреса страниц (URL). Дата может содержаться в URL в виде определенного шаблона, например /yyyy/mm/dd/ или /yyyy-mm-dd/.

Если на вашем сайте есть новостная лента и вы хотели бы, чтобы наши алгоритмы определили даты новостных сообщений, настройте формирование URL так, чтобы в нем явным образом присутствовала дата (например, одним из указанных выше способов). Даты будут извлекаться при индексировании страниц поисковым роботом. Никаких дополнительных действий от вас не потребуется.)
http://help.yandex.ru/webmaster/?id=1112775

можно вот тут ......admin/settings/pathauto

Шаблон для всех адресов материалов типа Новость:
прописать что-то такое? news/[yyyy-mm-dd]

какой собрать?
[yyyy]
Node creation year (four digit)
[yy]
Node creation year (two digit)
[month]
Node creation month (full word)
[mon]
Node creation month (abbreviated)
[mm]
Node creation month (two digit, zero padded)
[m]
Node creation month (one or two digit)
[ww]
Node creation week (two digit)
[date]
Node creation date (day of month)
[day]
Node creation day (full word)
[ddd]
Node creation day (abbreviation)

news/[yyyy-mm-dd]
news/[yyyy]/[mm]/[day]

Так можно?


Новое на сайте