? .svn ? feedapi_node_views_extra_fields.patch ? po/.svn Index: feedapi_node_views.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/feedapi/feedapi_node_views/Attic/feedapi_node_views.module,v retrieving revision 1.1.2.5 diff -u -r1.1.2.5 feedapi_node_views.module --- feedapi_node_views.module 11 Apr 2008 19:46:33 -0000 1.1.2.5 +++ feedapi_node_views.module 12 Aug 2008 20:12:08 -0000 @@ -21,9 +21,24 @@ 'field' => 'nid' ) ), + 'fields' => array( + 'url' => array( + 'name' => t('FeedAPI node: Original url'), + 'handler' => 'feedapi_node_views_handler_field_url', + 'help' => t('The original url for a feed item'), + 'option' => array( + '#type' => 'select', + '#options' => array( + 'title_link' => t('Item\'s Title with link'), + 'link' => t('With link'), + 'nolink' => t('Without link'), + ), + ), + ), + ), 'sorts' => array( 'timestamp' => array( - 'name' => t('FeedAPI Item: Time of the news item'), + 'name' => t('FeedAPI node: Time of the news item'), 'handler' => 'views_handler_sort_data', 'option' => views_handler_sort_date_options(), 'help' => t('Sort by the arrival date for a feed item.') @@ -43,13 +58,14 @@ ), 'fields' => array( 'feed_nid' => array( - 'name' => t('Parent feed'), + 'name' => t('FeedAPI node: Parent feed'), 'handler' => 'feedapi_node_views_handler_field_feed_nid', 'option' => array( '#type' => 'select', '#options' => array( 'link' => 'As link', 'nolink_to_feeds' => 'As link to feeds', + 'link_to_site' => 'As link to site', 'nolink' => 'Without link', ), ), @@ -57,7 +73,7 @@ ), 'filters' => array( 'feed_nid' => array( - 'name' => t('FeedAPI Item: Parent Feed'), + 'name' => t('FeedAPI node: Parent Feed'), 'option' => 'integer', 'operator' => views_handler_operator_gtlt(), 'help' => t('This allows you to filter feed items based on parent feed. You should supply the feed\'s nid.'), @@ -80,9 +96,29 @@ elseif ($fielddata['options'] == 'nolink_to_feeds') { return l($node->title, "feed-item/$node->nid"); } + elseif ($fielddata['options'] == 'link_to_site') { + return l($node->title, $node->feed->link); + } return l($node->title, "node/$node->nid"); } +/** + * Feed item node URL handler. + */ +function feedapi_node_views_handler_field_url($fieldinfo, $fielddata, $value, $data) { + $url = $data->feedapi_node_item_url; + if( $fielddata['options'] == 'title_link' ) { + if( ($node = node_load($data->nid)) ) { + return l($node->title, $url); + } + return l(t('n/a'), $url); + } + elseif( $fielddata['options'] == 'link' ) { + return l($url, $url); + } + return check_plain($url); +} + /** * Implementation of hook_views_arguments(). */