Добавление дополнительной разметки для RSS в Drupal 7

В Drupal 7 вывод для RSS ленты настраивается на странице редактирования типа материала во вкладке "Управление отображением" - "RSS". В этой вкладке можно определить порядок вывода полей материала для rss view mode. Если же нужно добавить к RSS ленте какую-нибудь дополнительную html разметку, то можно воспользоваться hook_node_view. Для этого нужно добавить рендерный элемент в массив $node->content.

К примеру, добавим после вывода статьи представление "Похожие статьи" (similar_articles), созданное по инструкции http://xandeadx.ru/blog/drupal/553. Имплементируем hook_node_view() в своем модуле:


/**
 * Implements hook_node_view().
 */
function MYMODULE_node_view($node, $view_mode) {
  if ($node->type == 'article' && $view_mode == 'rss') {
    $tids = array();
    // В цикле получим массив из tid всех терминов ноды поля field_tags   
    foreach ($node->field_tags['und'] as $tag) {
      $tids[] = $tag['tid'];
    } 
    // Массив преобразуем в строку, разделенную запятыми
    $arg1 = implode(',', $tids);
    $arg2 = $node->nid;
    $output = views_embed_view('similar_articles', 'default', $arg1, $arg2);
    $markup = 'Похожие статьи: <br>' .  $output;
    $node->content['similar_articles'] = array(
      '#markup' => $markup,
      // С помощью веса разметку опустим вниз
      '#weight' => 500,
    );
  }
}

После включения модуля в RSS ленте в конце каждой статьи будет выводиться список с похожими статьями.