Drupal 7 добавляет поля для отображения в RSS-канале для таксономии

У меня проблемы с RSS-каналом. Я обнаружил, что могу получить канал для определенной таксономии, просто добавив /feed после этой таксономии, но как можно добавить/удалить поля из этого, где я могу найти это «представление» для этого канала? Спасибо


person Jason Derrick    schedule 03.03.2020    source источник
comment
Вы пытались заглянуть в модуль, который создает это представление? возможно, предусмотрен какой-то хук для переопределения рендеринга или предварительного рендеринга данных.   -  person Fky    schedule 04.03.2020


Ответы (1)


Обратный вызов определен в hook_menu из taxonomy.module :

$items['taxonomy/term/%taxonomy_term/feed'] = array(
    'title' => 'Taxonomy term',
    'title callback' => 'taxonomy_term_title',
    'title arguments' => array(2),
    'page callback' => 'taxonomy_term_feed',
    'page arguments' => array(2),
    'access arguments' => array('access content'),
    'type' => MENU_CALLBACK,
    'file' => 'taxonomy.pages.inc',
  );

он вызывает функцию taxonomy_term_feed

function taxonomy_term_feed($term) {
  $channel['link'] = url('taxonomy/term/' . $term->tid, array('absolute' => TRUE));
  $channel['title'] = variable_get('site_name', 'Drupal') . ' - ' . $term->name;
  // Only display the description if we have a single term, to avoid clutter and confusion.
  // HTML will be removed from feed description.
  $channel['description'] = check_markup($term->description, $term->format, '', TRUE);
  $nids = taxonomy_select_nodes($term->tid, FALSE, variable_get('feed_default_items', 10));

  node_feed($nids, $channel);
}

он вызывает функцию node_feed в node.module строку 2575

Таким образом, вы можете проанализировать эти функции, чтобы понять, как они работают, и найти решение.

person Fky    schedule 04.03.2020
comment
Можно ли его переопределить или добавить что-то к нему? Его системный модуль, я не могу его просто отредактировать, я думаю - person Jason Derrick; 05.03.2020
comment
Вы можете добавить функцию drupal_alter() для изменения данных без изменения ядра/модуля contrib api.drupal.org/api/drupal/includes%21module.inc/function/ - person Fky; 05.03.2020