### Eclipse Workspace Patch 1.0 #P feedapi Index: feedapi_node/views/handlers/feedapi_node_handler_feedapi_item_title_url.inc =================================================================== RCS file: feedapi_node/views/handlers/feedapi_node_handler_feedapi_item_title_url.inc diff -N feedapi_node/views/handlers/feedapi_node_handler_feedapi_item_title_url.inc --- feedapi_node/views/handlers/feedapi_node_handler_feedapi_item_title_url.inc 9 Oct 2008 06:43:31 -0000 1.1.2.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,22 +0,0 @@ -ensure_my_table(); - $this->query->add_field('node', 'title', 'item_title'); - $this->query->add_field('feedapi_node_item', 'url', 'original_item_url'); - $this->add_additional_fields(); - } - - function render($values) { - return l(check_plain($values->item_title), $values->original_item_url, array('html' => TRUE)); - } - -} Index: feedapi_node/views/handlers/feedapi_node_handler_feedapi_title_link.inc =================================================================== RCS file: feedapi_node/views/handlers/feedapi_node_handler_feedapi_title_link.inc diff -N feedapi_node/views/handlers/feedapi_node_handler_feedapi_title_link.inc --- feedapi_node/views/handlers/feedapi_node_handler_feedapi_title_link.inc 1 Oct 2008 08:55:47 -0000 1.1.2.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,21 +0,0 @@ -ensure_my_table(); - $this->query->add_field('feed_node', 'title', 'feed_title'); - $this->query->add_field('feedapi', 'link', 'feed_link'); - } - - function render($values) { - return l(check_plain($values->feed_title), $values->feed_link, array('html' => TRUE)); - } - -} Index: feedapi_node/views/handlers/feedapi_node_handler_feedapi_title_url.inc =================================================================== RCS file: feedapi_node/views/handlers/feedapi_node_handler_feedapi_title_url.inc diff -N feedapi_node/views/handlers/feedapi_node_handler_feedapi_title_url.inc --- feedapi_node/views/handlers/feedapi_node_handler_feedapi_title_url.inc 1 Oct 2008 08:55:47 -0000 1.1.2.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,22 +0,0 @@ -ensure_my_table(); - $this->query->add_field('feed_node', 'title', 'feed_title'); - $this->query->add_field('feedapi', 'url', 'feed_url'); - $this->add_additional_fields(); - } - - function render($values) { - return l(check_plain($values->feed_title), $values->feed_url, array('html' => TRUE)); - } - -} Index: feedapi_node/views/handlers/feedapi_node_handler_feedapi_title_nid.inc =================================================================== RCS file: feedapi_node/views/handlers/feedapi_node_handler_feedapi_title_nid.inc diff -N feedapi_node/views/handlers/feedapi_node_handler_feedapi_title_nid.inc --- feedapi_node/views/handlers/feedapi_node_handler_feedapi_title_nid.inc 1 Oct 2008 08:55:47 -0000 1.1.2.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,22 +0,0 @@ -ensure_my_table(); - $this->query->add_field('feed_node', 'title', 'feed_title'); - $this->query->add_field('feed_node', 'nid', 'feed_nid'); - $this->add_additional_fields(); - } - - function render($values) { - return l(check_plain($values->feed_title), 'node/'. $values->feed_nid); - } - -} Index: views/feedapi.views.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/feedapi/views/Attic/feedapi.views.inc,v retrieving revision 1.1.2.2 diff -u -r1.1.2.2 feedapi.views.inc --- views/feedapi.views.inc 9 Oct 2008 07:42:31 -0000 1.1.2.2 +++ views/feedapi.views.inc 29 Dec 2008 23:16:43 -0000 @@ -12,64 +12,51 @@ * Implementation of hook_views_data(). */ function feedapi_views_data() { - $data['feedapi_standalone']['table']['group'] = t('FeedAPI Standalone Feed'); - - $data['feedapi_standalone']['table']['join']['node'] = array( - 'table' => 'feedapi', + $data['feedapi']['table']['group'] = t('FeedAPI Feed'); + $data['feedapi']['table']['join']['node'] = array( 'left_field' => 'nid', 'field' => 'nid', ); - - + + // Feed-related fields - $data['feedapi_standalone']['checked'] = array( - 'title' => t('Last refresh'), - 'help' => t('The date when the parent feed was refreshed.'), - 'field' => array( - 'handler' => 'views_handler_field_date', - ), - ); - $data['feedapi_standalone']['feed_url'] = array( - 'real field' => 'url', + $data['feedapi']['url'] = array( 'title' => t('URL'), - 'help' => t('The source RSS/Atom/RDF feed URL'), + 'help' => t('The source RSS/Atom/RDF feed URL.'), 'field' => array( - 'handler' => 'views_handler_field_url', + 'handler' => 'feedapi_handler_feedapi_url', ), ); - $data['feedapi_standalone']['feed_link1'] = array( - 'real field' => 'link', - 'title' => t('Link'), - 'help' => t('The original site'), + $data['feedapi']['feed_type'] = array( + 'title' => t('Feed Type'), + 'help' => t('The type of the feed.'), 'field' => array( - 'handler' => 'views_handler_field_url', - ), + 'click sortable' => TRUE, + ), ); - $data['feedapi_standalone']['guid'] = array( - 'real field' => 'title', - 'title' => t('Title with link to node'), - 'help' => t('Title of the feed node where this item arrived'), + $data['feedapi']['checked'] = array( + 'title' => t('Last refresh'), + 'help' => t('The date when the feed was last refreshed.'), 'field' => array( - 'handler' => 'feedapi_handler_feedapi_title_nid', + 'handler' => 'views_handler_field_date', + 'click sortable' => TRUE, ), - ); - $data['feedapi_standalone']['url'] = array( - 'title' => t('Title with link to feed'), - 'help' => t('Title of the feed where this item arrived'), - 'field' => array( - 'handler' => 'feedapi_handler_feedapi_title_url', + 'sort' => array( + 'handler' => 'views_handler_sort_date', + ), + 'filter' => array( + 'handler' => 'views_handler_filter_date', ), ); - $data['feedapi_standalone']['feed_link'] = array( + $data['feedapi']['link'] = array( 'real field' => 'link', - 'title' => t('Title with link to site'), - 'help' => t('Title of the feed node where this item arrived'), + 'title' => t('Link'), + 'help' => t('The link to the site.'), 'field' => array( - 'handler' => 'feedapi_handler_feedapi_title_link', + 'handler' => 'feedapi_handler_feedapi_url', ), ); - - $data['feedapi_standalone']['url_unique'] = array( + $data['feedapi']['url_unique'] = array( 'field' => 'url', 'title' => t('Unique URL'), 'help' => t('The feed that generated this node'), @@ -77,7 +64,23 @@ 'handler' => 'feedapi_handler_filter_url_unique', ), ); - + + // links to operate on the node + $data['feedapi']['purge_node'] = array( + 'field' => array( + 'title' => t('Purge link'), + 'help' => t('Provide a simple link to purge the feed.'), + 'handler' => 'feedapi_handler_field_node_link_purge', + ), + ); + $data['feedapi']['refresh_node'] = array( + 'field' => array( + 'title' => t('Refresh link'), + 'help' => t('Provide a simple link to refresh the feed.'), + 'handler' => 'feedapi_handler_field_node_link_refresh', + ), + ); + return $data; } @@ -90,18 +93,17 @@ 'path' => drupal_get_path('module', 'feedapi') . '/views/handlers', ), 'handlers' => array( - // field handlers - 'feedapi_handler_feedapi_title_nid' => array( + 'feedapi_handler_feedapi_url' => array( 'parent' => 'views_handler_field', ), - 'feedapi_handler_feedapi_title_url' => array( - 'parent' => 'views_handler_field', + 'feedapi_handler_field_node_link_refresh' => array( + 'parent' => 'views_handler_field_node_link', ), - 'feedapi_handler_feedapi_title_link' => array( - 'parent' => 'views_handler_field', + 'feedapi_handler_field_node_link_purge' => array( + 'parent' => 'views_handler_field_node_link', ), - + // filter handlers 'feedapi_handler_filter_url_unique' => array( 'parent' => 'views_handler_filter', Index: feedapi_node/views/feedapi_node.views_default.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/feedapi/feedapi_node/views/Attic/feedapi_node.views_default.inc,v retrieving revision 1.1.2.1 diff -u -r1.1.2.1 feedapi_node.views_default.inc --- feedapi_node/views/feedapi_node.views_default.inc 1 Oct 2008 08:55:47 -0000 1.1.2.1 +++ feedapi_node/views/feedapi_node.views_default.inc 29 Dec 2008 23:16:43 -0000 @@ -13,177 +13,116 @@ $view = new view; $view->name = 'feeds'; $view->description = t('Show a listing of all feed items for a feed'); - $view->tag = t('default'); + $view->tag = 'default'; $view->view_php = ''; $view->base_table = 'node'; - $view->is_cacheable = '0'; + $view->is_cacheable = FALSE; $view->api_version = 2; - $view->disabled = FALSE; - $view->display = array(); - - $display = new views_display; - $display->id = 'default'; - $display->display_title = t('Defaults'); - $display->display_plugin = 'default'; - $display->position = '1'; - $display->display_options = array( - 'style_plugin' => 'default', - 'style_options' => - array( - ), - 'row_plugin' => 'node', - 'row_options' => - array( - 'teaser' => 1, - 'links' => 1, - ), - 'relationships' => - array( - ), - 'fields' => - array( - ), - 'sorts' => - array( - 'created' => - array( - 'order' => 'DESC', - 'granularity' => 'second', - 'id' => 'created', - 'table' => 'node', - 'field' => 'created', - 'sortorder' => 'desc', - 'relationship' => 'none', + $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */ + $handler = $view->new_display('default', 'Defaults', 'default'); + $handler->override_option('relationships', array( + 'feed_nid' => array( + 'id' => 'feed_nid', + 'table' => 'feedapi_node_item_feed', + 'field' => 'feed_nid', + ), + )); + $handler->override_option('sorts', array( + 'created' => array( + 'order' => 'DESC', + 'granularity' => 'second', + 'id' => 'created', + 'table' => 'node', + 'field' => 'created', + 'sortorder' => 'desc', + 'relationship' => 'none', + ), + )); + $handler->override_option('arguments', array( + 'nid' => array( + 'default_action' => 'ignore', + 'style_plugin' => 'default_summary', + 'style_options' => array(), + 'wildcard' => 'all', + 'wildcard_substitution' => 'All', + 'title' => '', + 'default_argument_type' => 'fixed', + 'default_argument' => '', + 'validate_type' => 'node', + 'validate_fail' => 'not found', + 'break_phrase' => 0, + 'not' => 0, + 'id' => 'nid', + 'table' => 'node', + 'field' => 'nid', + 'relationship' => 'feed_nid', + 'default_options_div_prefix' => '', + 'default_argument_user' => 0, + 'default_argument_fixed' => '', + 'default_argument_php' => '', + 'validate_argument_node_type' => array( + 'blog' => 0, + 'event' => 0, + 'feed' => 0, + 'feed_item' => 0, + 'page' => 0, + 'story' => 0, + 'video' => 0, ), - ), - 'arguments' => - array( - 'feed_nid' => array( - 'default_action' => 'ignore', - 'style_plugin' => 'default_summary', - 'style_options' => array(), - 'wildcard' => 'all', - 'wildcard_substitution' => 'All', - 'title' => '%1', - 'default_argument_type' => 'fixed', - 'default_argument' => '', - 'validate_type' => 'node', - 'validate_fail' => 'not found', - 'break_phrase' => 0, - 'not' => 0, - 'id' => 'feed_nid', - 'table' => 'feedapi_node_item_feed', - 'field' => 'feed_nid', - 'relationship' => 'none', - 'default_options_div_prefix' => '', - 'default_argument_user' => 0, - 'default_argument_fixed' => '', - 'default_argument_php' => '', - 'validate_argument_node_type' => array( - 'blog' => 0, - 'bookmark' => 0, - 'feedapi_node' => 0, - 'feed_item' => 0, - 'page' => 0, - 'story' => 0, - ), - 'validate_argument_node_access' => 1, - 'validate_argument_nid_type' => 'nid', - 'validate_argument_vocabulary' => array( - '1' => 0, - ), - 'validate_argument_type' => 'tid', - 'validate_argument_php' => '', - ), - ), - 'filters' => - array( - 'status' => - array( - 'id' => 'status', - 'table' => 'node', - 'field' => 'status', - 'operator' => '=', - 'value' => '1', - 'group' => 0, - 'exposed' => FALSE, - 'expose' => - array( - 'operator' => FALSE, - 'label' => '', - ), + 'validate_argument_node_access' => 0, + 'validate_argument_nid_type' => 'nid', + 'validate_argument_vocabulary' => array( + '2' => 0, + '1' => 0, ), + 'validate_argument_type' => 'tid', + 'validate_argument_php' => '', ), - 'items_per_page' => 10, - 'use_pager' => '1', - 'pager_element' => 0, - 'title' => t('Feed items'), - 'header' => '', - 'header_format' => '1', - 'footer' => '', - 'footer_format' => '1', - 'empty' => t('No feed items found.'), - 'empty_format' => '1', - ); - $view->display['default'] = $display; - - $display = new views_display; - $display->id = 'page'; - $display->display_title = t('Page'); - $display->display_plugin = 'page'; - $display->position = '2'; - $display->display_options = array( - 'defaults' => - array( - 'access' => TRUE, - 'title' => TRUE, - 'header' => TRUE, - 'header_format' => TRUE, - 'header_empty' => TRUE, - 'footer' => TRUE, - 'footer_format' => TRUE, - 'footer_empty' => TRUE, - 'empty' => TRUE, - 'empty_format' => TRUE, - 'items_per_page' => TRUE, - 'offset' => TRUE, - 'use_pager' => TRUE, - 'pager_element' => TRUE, - 'link_display' => TRUE, - 'php_arg_code' => TRUE, - 'exposed_options' => TRUE, - 'style_plugin' => TRUE, - 'style_options' => TRUE, - 'row_plugin' => TRUE, - 'row_options' => TRUE, - 'relationships' => TRUE, - 'fields' => TRUE, - 'sorts' => TRUE, - 'arguments' => TRUE, - 'filters' => TRUE, - 'use_ajax' => TRUE, - 'distinct' => TRUE, - ), - 'relationships' => - array( - ), - 'fields' => - array( - ), - 'sorts' => - array( - ), - 'arguments' => - array( - ), - 'filters' => - array( + )); + $handler->override_option('filters', array( + 'status' => array( + 'id' => 'status', + 'table' => 'node', + 'field' => 'status', + 'operator' => '=', + 'value' => '1', + 'group' => 0, + 'exposed' => FALSE, + 'expose' => array( + 'operator' => FALSE, + 'label' => '', + ), ), - 'path' => 'feed-item', - ); - $view->display['page'] = $display; - + )); + $handler->override_option('access', array( + 'type' => 'none', + )); + $handler->override_option('title', 'Feed items'); + $handler->override_option('header_format', '1'); + $handler->override_option('footer_format', '1'); + $handler->override_option('empty', 'No feed items found.'); + $handler->override_option('empty_format', '1'); + $handler->override_option('use_pager', '1'); + $handler->override_option('row_plugin', 'node'); + $handler->override_option('row_options', array( + 'teaser' => 1, + 'links' => 1, + )); + $handler = $view->new_display('page', 'Page', 'page'); + $handler->override_option('path', 'feed-item'); + $handler->override_option('menu', array( + 'type' => 'none', + 'title' => '', + 'weight' => 0, + 'name' => 'navigation', + )); + $handler->override_option('tab_options', array( + 'type' => 'none', + 'title' => '', + 'weight' => 0, + )); $views[$view->name] = $view; + return $views; } Index: feedapi_node/views/feedapi_node.views.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/feedapi/feedapi_node/views/Attic/feedapi_node.views.inc,v retrieving revision 1.1.2.3 diff -u -r1.1.2.3 feedapi_node.views.inc --- feedapi_node/views/feedapi_node.views.inc 13 Nov 2008 18:01:32 -0000 1.1.2.3 +++ feedapi_node/views/feedapi_node.views.inc 29 Dec 2008 23:16:43 -0000 @@ -13,37 +13,17 @@ */ function feedapi_node_views_data() { $data['feedapi_node_item']['table']['group'] = t('FeedAPI Item'); - $data['feedapi_node_item_feed']['table']['group'] = t('FeedAPI Item'); - $data['feed_node']['table']['group'] = t('FeedAPI Parent Feed'); - $data['feedapi']['table']['group'] = t('FeedAPI Parent Feed'); - $data['feedapi_node_item']['table']['join']['node'] = array( 'left_table' => 'feedapi_node_item_feed', 'left_field' => 'feed_item_nid', 'field' => 'nid', ); - $data['feedapi_node_item_feed']['table']['join']['node'] = array( - 'left_field' => 'nid', - 'field' => 'feed_item_nid', - ); - $data['feedapi']['table']['join']['node'] = array( - 'left_table' => 'feedapi_node_item_feed', - 'left_field' => 'feed_nid', - 'field' => 'nid', - ); - $data['feed_node']['table']['join']['node'] = array( - 'table' => 'node', - 'left_table' => 'feedapi_node_item_feed', - 'left_field' => 'feed_nid', - 'field' => 'nid', - ); - // Item-related fields $data['feedapi_node_item']['url'] = array( 'title' => t('URL'), 'help' => t('The original URL of this feed item'), 'field' => array( - 'handler' => 'views_handler_field_url', + 'handler' => 'feedapi_handler_feedapi_url', ), 'filter' => array( 'handler' => 'views_handler_filter_string', @@ -56,76 +36,45 @@ 'handler' => 'views_handler_field_date', 'click sortable' => TRUE, ), - ); - $data['feedapi_node_item']['item_title_url'] = array( - 'field' => 'url', - 'title' => t('Title with link to original URL'), - 'help' => t('Feed item title with link to original URL'), - 'field' => array( - 'handler' => 'feedapi_node_handler_feedapi_item_title_url', - 'click sortable' => TRUE, + 'sort' => array( + 'handler' => 'views_handler_sort_date', ), - ); - - // Feed-related fields - $data['feed_node']['title'] = array( - 'title' => t('Title'), - 'help' => t('Title of the feed node where this item arrived'), - 'field' => array( - 'handler' => 'views_handler_field', + 'filter' => array( + 'handler' => 'views_handler_filter_date', ), ); - $data['feedapi']['checked'] = array( - 'title' => t('Last refresh'), - 'help' => t('The date when the parent feed was refreshed.'), + $data['feedapi_node_item']['arrived'] = array( + 'title' => t('Arrived'), + 'help' => t('The date the item was imported'), 'field' => array( 'handler' => 'views_handler_field_date', + 'click sortable' => TRUE, ), - ); - $data['feedapi']['feed_url'] = array( - 'real field' => 'url', - 'title' => t('URL'), - 'help' => t('The source RSS/Atom/RDF feed URL'), - 'field' => array( - 'handler' => 'views_handler_field_url', - ), - ); - $data['feedapi']['feed_link1'] = array( - 'real field' => 'link', - 'title' => t('Link'), - 'help' => t('The original site'), - 'field' => array( - 'handler' => 'views_handler_field_url', + 'sort' => array( + 'handler' => 'views_handler_sort_date', ), - ); - $data['feedapi']['guid'] = array( - 'real field' => 'title', - 'title' => t('Title with link to node'), - 'help' => t('Title of the feed node where this item arrived'), - 'field' => array( - 'handler' => 'feedapi_node_handler_feedapi_title_nid', - ), - ); - $data['feedapi']['url'] = array( - 'title' => t('Title with link to feed'), - 'help' => t('Title of the feed where this item arrived'), - 'field' => array( - 'handler' => 'feedapi_node_handler_feedapi_title_url', + 'filter' => array( + 'handler' => 'views_handler_filter_date', ), ); - $data['feedapi']['feed_link'] = array( - 'real field' => 'link', - 'title' => t('Title with link to site'), - 'help' => t('Title of the feed node where this item arrived'), - 'field' => array( - 'handler' => 'feedapi_node_handler_feedapi_title_link', + + + $data['feedapi_node_item_feed']['table']['group'] = t('FeedAPI Item'); + $data['feedapi_node_item_feed']['table']['join'] = array( + 'node' => array( + 'left_field' => 'nid', + 'field' => 'feed_item_nid', ), ); - // Argument for filtering a specific feed $data['feedapi_node_item_feed']['feed_nid'] = array( 'title' => t('Parent feed'), 'help' => t('The feed that generated this node'), + 'relationship' => array( + 'label' => t('Parent feed'), + 'base' => 'node', + 'base field' => 'nid', + ), 'filter' => array( 'handler' => 'views_handler_filter_numeric', ), @@ -134,31 +83,38 @@ ), ); + // Filter by parent feed title. + $data['node']['feed_title'] = array( + 'title' => t('Parent Feed Title'), + 'help' => t('The title of the parent feed.'), + 'group' => t('FeedAPI Item'), + 'real field' => 'title', + 'field' => array( + 'field' => 'title', + 'group' => t('FeedAPI Item'), + 'handler' => 'views_handler_field_node', + 'click sortable' => TRUE, + ), + 'sort' => array( + 'handler' => 'views_handler_sort', + ), + // Information for accepting a title as a filter + 'filter' => array( + 'handler' => 'feedapi_node_handler_filter_feed_title', + ), + ); + return $data; } -/** - * Implementation of hook_views_handlers(). - */ function feedapi_node_views_handlers() { return array( 'info' => array( 'path' => drupal_get_path('module', 'feedapi_node') . '/views/handlers', ), 'handlers' => array( - - // field handlers - 'feedapi_node_handler_feedapi_title_nid' => array( - 'parent' => 'views_handler_field', - ), - 'feedapi_node_handler_feedapi_title_url' => array( - 'parent' => 'views_handler_field', - ), - 'feedapi_node_handler_feedapi_title_link' => array( - 'parent' => 'views_handler_field', - ), - 'feedapi_node_handler_feedapi_item_title_url' => array( - 'parent' => 'views_handler_field', + 'feedapi_node_handler_filter_feed_title' => array( + 'parent' => 'views_handler_filter_string', ), ), ); Index: views/handlers/feedapi_handler_feedapi_title_nid.inc =================================================================== RCS file: views/handlers/feedapi_handler_feedapi_title_nid.inc diff -N views/handlers/feedapi_handler_feedapi_title_nid.inc --- views/handlers/feedapi_handler_feedapi_title_nid.inc 1 Oct 2008 19:14:13 -0000 1.1.2.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,22 +0,0 @@ -ensure_my_table(); - $this->query->add_field('node', 'title', 'feed_title'); - $this->query->add_field('node', 'nid', 'feed_nid'); - $this->add_additional_fields(); - } - - function render($values) { - return l(check_plain($values->feed_title), 'node/'. $values->feed_nid); - } - -} Index: views/handlers/feedapi_handler_feedapi_title_link.inc =================================================================== RCS file: views/handlers/feedapi_handler_feedapi_title_link.inc diff -N views/handlers/feedapi_handler_feedapi_title_link.inc --- views/handlers/feedapi_handler_feedapi_title_link.inc 24 Oct 2008 20:14:38 -0000 1.1.2.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,26 +0,0 @@ -ensure_my_table(); - $this->query->add_field('node', 'title', 'feed_title'); - $this->query->add_field('feedapi_standalone', 'link', 'feed_link'); - $this->query->add_field('feedapi_standalone', 'url', 'feed_url'); - } - - function render($values) { - if ($values->feed_link) { - return l(check_plain($values->feed_title), $values->feed_link, array('html' => TRUE)); - } - else { - return l(check_plain($values->feed_title), $values->feed_url, array('html' => TRUE)); - } - } -} Index: views/handlers/feedapi_handler_feedapi_title_url.inc =================================================================== RCS file: views/handlers/feedapi_handler_feedapi_title_url.inc diff -N views/handlers/feedapi_handler_feedapi_title_url.inc --- views/handlers/feedapi_handler_feedapi_title_url.inc 1 Oct 2008 19:14:13 -0000 1.1.2.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,22 +0,0 @@ -ensure_my_table(); - $this->query->add_field('node', 'title', 'feed_title'); - $this->query->add_field('feedapi_standalone', 'url', 'feed_url'); - $this->add_additional_fields(); - } - - function render($values) { - return l(check_plain($values->feed_title), $values->feed_url, array('html' => TRUE)); - } - -} Index: feedapi.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/feedapi/feedapi.module,v retrieving revision 1.23.2.119.2.33 diff -u -r1.23.2.119.2.33 feedapi.module --- feedapi.module 20 Dec 2008 11:12:53 -0000 1.23.2.119.2.33 +++ feedapi.module 29 Dec 2008 23:16:43 -0000 @@ -50,18 +50,6 @@ */ function feedapi_menu() { $items = array(); - $items['admin/content/feed'] = array( - 'title' => 'Feeds', - 'description' => 'Overview which content your site aggregates from other sites and see detailed statistics about the feeds.', - 'page callback' => 'feedapi_admin_overview', - 'access arguments' => array('administer feedapi'), - ); - $items['admin/content/feed/list'] = array( - 'title' => 'List', - 'type' => MENU_DEFAULT_LOCAL_TASK, - 'access arguments' => array('administer feedapi'), - 'weight' => -15, - ); $items['admin/content/feed/import_opml'] = array( 'title' => 'Import OPML', 'access arguments' => array('administer feedapi'), @@ -270,7 +258,7 @@ $output = confirm_form( array('nid' => array('#type' => 'hidden', '#value' => $node->nid)), t('Delete all the feed items from !name', array('!name' => $node->title)), - 'node/'. $node->nid, + isset($_GET['destination']) ? $_GET['destination'] : 'node/'. $node->nid, t("Are you sure you want to delete all the feed items from !name?", array('!name' => $node->title)), t('Yes'), t('No'), 'feedapi_purge_confirm' Index: views/handlers/feedapi_handler_field_node_link_purge.inc =================================================================== RCS file: views/handlers/feedapi_handler_field_node_link_purge.inc diff -N views/handlers/feedapi_handler_field_node_link_purge.inc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ views/handlers/feedapi_handler_field_node_link_purge.inc 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,29 @@ +additional_fields['nid'] = 'nid'; + $this->additional_fields['uid'] = array('table' => 'node', 'field' => 'uid'); + $this->additional_fields['type'] = array('table' => 'node', 'field' => 'type'); + } + + function render($values) { + // ensure user has access to edit this node. + $node = new stdClass(); + $node->nid = $values->{$this->aliases['nid']}; + $node->uid = $values->{$this->aliases['uid']}; + $node->type = $values->{$this->aliases['type']}; + $node->status = 1; // unpublished nodes ignore access control + if (!_feedapi_op_access($node)) { + return; + } + + $text = !empty($this->options['text']) ? $this->options['text'] : t('purge'); + return l($text, "node/$node->nid/purge", array('query' => drupal_get_destination())); + } +} + Index: views/feedapi.views_default.inc =================================================================== RCS file: views/feedapi.views_default.inc diff -N views/feedapi.views_default.inc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ views/feedapi.views_default.inc 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,184 @@ +name = 'feed_admin'; + $view->description = 'Administer feeds'; + $view->tag = ''; + $view->view_php = ''; + $view->base_table = 'node'; + $view->is_cacheable = FALSE; + $view->api_version = 2; + $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */ + $handler = $view->new_display('default', 'Defaults', 'default'); + $handler->override_option('fields', array( + 'title' => array( + 'label' => 'Title', + 'link_to_node' => 1, + 'exclude' => 0, + 'id' => 'title', + 'table' => 'node', + 'field' => 'title', + 'relationship' => 'none', + ), + 'checked' => array( + 'label' => 'Last refresh', + 'date_format' => 'time ago', + 'custom_date_format' => '', + 'exclude' => 0, + 'id' => 'checked', + 'table' => 'feedapi', + 'field' => 'checked', + 'relationship' => 'none', + ), + 'delete_node' => array( + 'label' => 'Commands', + 'text' => 'Delete', + 'exclude' => 0, + 'id' => 'delete_node', + 'table' => 'node', + 'field' => 'delete_node', + 'override' => array( + 'button' => 'Override', + ), + 'relationship' => 'none', + ), + 'purge_node' => array( + 'label' => 'Purge', + 'text' => 'Remove items', + 'exclude' => 0, + 'id' => 'purge_node', + 'table' => 'feedapi', + 'field' => 'purge_node', + 'relationship' => 'none', + ), + 'refresh_node' => array( + 'label' => 'Refresh', + 'text' => 'Refresh', + 'exclude' => 0, + 'id' => 'refresh_node', + 'table' => 'feedapi', + 'field' => 'refresh_node', + 'relationship' => 'none', + ), + 'edit_node' => array( + 'label' => 'Edit link', + 'text' => 'Edit', + 'exclude' => 0, + 'id' => 'edit_node', + 'table' => 'node', + 'field' => 'edit_node', + 'override' => array( + 'button' => 'Override', + ), + 'relationship' => 'none', + ), + )); + $handler->override_option('sorts', array( + 'checked' => array( + 'order' => 'DESC', + 'granularity' => 'second', + 'id' => 'checked', + 'table' => 'feedapi', + 'field' => 'checked', + 'relationship' => 'none', + ), + )); + $handler->override_option('filters', array( + 'type' => array( + 'operator' => 'in', + 'value' => array( + 'feed' => 'feed', + ), + 'group' => '0', + 'exposed' => FALSE, + 'expose' => array( + 'operator' => FALSE, + 'label' => '', + ), + 'id' => 'type', + 'table' => 'node', + 'field' => 'type', + 'relationship' => 'none', + ), + )); + $handler->override_option('access', array( + 'type' => 'perm', + 'perm' => 'administer feedapi', + )); + $handler->override_option('title', 'Feeds'); + $handler->override_option('header_format', '1'); + $handler->override_option('header_empty', 0); + $handler->override_option('style_plugin', 'table'); + $handler->override_option('style_options', array( + 'grouping' => '', + 'override' => 1, + 'sticky' => 0, + 'order' => 'asc', + 'columns' => array( + 'title' => 'title', + 'feed_type' => 'feed_type', + 'checked' => 'checked', + 'delete_node' => 'delete_node', + 'purge_node' => 'delete_node', + 'refresh_node' => 'delete_node', + 'edit_node' => 'delete_node', + ), + 'info' => array( + 'title' => array( + 'sortable' => 0, + 'separator' => '', + ), + 'feed_type' => array( + 'sortable' => 0, + 'separator' => '', + ), + 'checked' => array( + 'sortable' => 0, + 'separator' => '', + ), + 'delete_node' => array( + 'separator' => ' ', + ), + 'purge_node' => array( + 'separator' => '', + ), + 'refresh_node' => array( + 'separator' => '', + ), + 'edit_node' => array( + 'separator' => '', + ), + ), + 'default' => '-1', + )); + $handler = $view->new_display('page', 'Page', 'page_1'); + $handler->override_option('path', 'admin/content/feed'); + $handler->override_option('menu', array( + 'type' => 'normal', + 'title' => 'Feeds', + 'weight' => '0', + 'name' => 'navigation', + )); + $handler->override_option('tab_options', array( + 'type' => 'none', + 'title' => '', + 'weight' => 0, + )); + $views[$view->name] = $view; + + + return $views; +} + + Index: views/handlers/feedapi_handler_field_node_link_refresh.inc =================================================================== RCS file: views/handlers/feedapi_handler_field_node_link_refresh.inc diff -N views/handlers/feedapi_handler_field_node_link_refresh.inc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ views/handlers/feedapi_handler_field_node_link_refresh.inc 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,30 @@ +additional_fields['nid'] = 'nid'; + $this->additional_fields['uid'] = array('table' => 'node', 'field' => 'uid'); + $this->additional_fields['type'] = array('table' => 'node', 'field' => 'type'); + } + + function render($values) { + // ensure user has access to edit this node. + $node = new stdClass(); + $node->nid = $values->{$this->aliases['nid']}; + $node->uid = $values->{$this->aliases['uid']}; + $node->type = $values->{$this->aliases['type']}; + $node->status = 1; // unpublished nodes ignore access control + if (!_feedapi_op_access($node)) { + return; + } + + $text = !empty($this->options['text']) ? $this->options['text'] : t('refresh'); + return l($text, "node/$node->nid/refresh", array('query' => drupal_get_destination())); + } +} + + Index: views/handlers/feedapi_handler_field_url.inc =================================================================== RCS file: views/handlers/feedapi_handler_field_url.inc diff -N views/handlers/feedapi_handler_field_url.inc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ views/handlers/feedapi_handler_field_url.inc 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,51 @@ + 'url'); + return $options; + } + + function query() { + if ($this->options['display_url'] == 'title') { + $this->additional_fields['title'] = array('table' => 'node', 'field' => 'title'); + } + parent::query(); + } + + /** + * Provide link to the page being visited. + */ + function options_form(&$form, &$form_state) { + parent::options_form($form, $form_state); + $form['display_url'] = array( + '#title' => t('Display'), + '#type' => 'select', + '#options' => array( + 'title' => t("Node title as link"), + 'url' => t('URL as link'), + 'text' => t('URL as plain text'), + ), + '#default_value' => $this->options['display_url'], + ); + } + + function render($values) { + $value = $values->{$this->field_alias}; + + if ($this->options['display_url'] == 'title') { + return l($values->{$this->aliases['title']}, $value); + } + if ($this->options['display_url'] == 'url') { + return l($value, $value); + } + return $value; + } +} Index: feedapi_node/views/handlers/feedapi_node_handler_filter_feed_title.inc =================================================================== RCS file: feedapi_node/views/handlers/feedapi_node_handler_filter_feed_title.inc diff -N feedapi_node/views/handlers/feedapi_node_handler_filter_feed_title.inc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ feedapi_node/views/handlers/feedapi_node_handler_filter_feed_title.inc 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,69 @@ +options['expose']['identifier']; + + if (empty($this->options['expose']['use_operator']) || empty($this->options['expose']['operator'])) { + // exposed and locked. + $which = in_array($this->operator, $this->operator_values(1)) ? 'value' : 'none'; + } + else { + $source = 'edit-' . form_clean_id($this->options['expose']['operator']); + } + } + + if ($which == 'all' || $which == 'value') { + $form['value'] = array( + '#type' => 'select', + '#title' => t('Value'), + '#default_value' => $this->value, + '#options' => feedapi_node_views_handler_get_feed_titles(), + ); + if (!empty($form_state['exposed']) && !isset($form_state['input'][$identifier])) { + $form_state['input'][$identifier] = $this->value; + } + + if ($which == 'all') { + $form['value'] += array( + '#process' => array('views_process_dependency'), + '#dependency' => array($source => $this->operator_values(1)), + ); + } + } + + if (!isset($form['value'])) { + // Ensure there is something in the 'value'. + $form['value'] = array( + '#type' => 'value', + '#value' => NULL + ); + } + } +} + +/** + * Help function for filtering by parent feed title. Lists available parent feeds. + */ +function feedapi_node_views_handler_get_feed_titles() { + $result = db_query("SELECT * FROM {node} n INNER JOIN {feedapi} f ON n.nid = f.nid"); + $nodes = array(); + while ($node = db_fetch_object($result)) { + $nodes[$node->title] = $node->title; + } + return $nodes; +}