Index: feedapi.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feedapi/feedapi.module,v
retrieving revision 1.23.2.119.2.32
diff -u -p -r1.23.2.119.2.32 feedapi.module
--- feedapi.module	4 Dec 2008 21:35:20 -0000	1.23.2.119.2.32
+++ feedapi.module	20 Dec 2008 10:10:45 -0000
@@ -50,18 +50,6 @@ function feedapi_theme() {
  */
 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 @@ function feedapi_purge_confirm($form_sta
   $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: 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 -p -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	20 Dec 2008 10:10:45 -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 @@ function feedapi_node_views_data() {
       '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',
-    ),
-  );
-  $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',
+    'sort' => array(
+      'handler' => 'views_handler_sort_date',
     ),
-  );
-  $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',
     ),
@@ -133,33 +82,6 @@ function feedapi_node_views_data() {
       'handler' => 'views_handler_argument_numeric',
     ),
   );
-  
-  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',
-      ),
-    ),
-  );
+  return $data;
 }
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 -p -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	20 Dec 2008 10:10:45 -0000
@@ -13,177 +13,116 @@ function feedapi_node_views_default_view
   $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/handlers/feedapi_node_handler_feedapi_item_title_url.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feedapi/feedapi_node/views/handlers/Attic/feedapi_node_handler_feedapi_item_title_url.inc,v
retrieving revision 1.1.2.2
diff -u -p -r1.1.2.2 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
+++ feedapi_node/views/handlers/feedapi_node_handler_feedapi_item_title_url.inc	20 Dec 2008 10:10:45 -0000
@@ -1,22 +0,0 @@
-<?php
-// $Id: feedapi_node_handler_feedapi_item_title_url.inc,v 1.1.2.2 2008/10/09 06:43:31 aronnovak Exp $
-
-/**
- * Field handler to provide title links to drupal nodes
- *
- * @ingroup views_field_handlers
- */
-class feedapi_node_handler_feedapi_item_title_url extends views_handler_field {
-  
-  function query() {
-    $this->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: /cvs/drupal-contrib/contributions/modules/feedapi/feedapi_node/views/handlers/Attic/feedapi_node_handler_feedapi_title_link.inc,v
retrieving revision 1.1.2.1
diff -u -p -r1.1.2.1 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
+++ feedapi_node/views/handlers/feedapi_node_handler_feedapi_title_link.inc	20 Dec 2008 10:10:45 -0000
@@ -1,21 +0,0 @@
-<?php
-// $Id: feedapi_node_handler_feedapi_title_link.inc,v 1.1.2.1 2008/10/01 08:55:47 aronnovak Exp $
-
-/**
- * Field handler to provide title links to drupal nodes
- *
- * @ingroup views_field_handlers
- */
-class feedapi_node_handler_feedapi_title_link extends views_handler_field {
-  
-  function query() {
-    $this->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_nid.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feedapi/feedapi_node/views/handlers/Attic/feedapi_node_handler_feedapi_title_nid.inc,v
retrieving revision 1.1.2.1
diff -u -p -r1.1.2.1 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
+++ feedapi_node/views/handlers/feedapi_node_handler_feedapi_title_nid.inc	20 Dec 2008 10:10:45 -0000
@@ -1,22 +0,0 @@
-<?php
-// $Id: feedapi_node_handler_feedapi_title_nid.inc,v 1.1.2.1 2008/10/01 08:55:47 aronnovak Exp $
-
-/**
- * Field handler to provide title links
- *
- * @ingroup views_field_handlers
- */
-class feedapi_node_handler_feedapi_title_nid extends views_handler_field {
-  
-  function query() {
-    $this->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: feedapi_node/views/handlers/feedapi_node_handler_feedapi_title_url.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feedapi/feedapi_node/views/handlers/Attic/feedapi_node_handler_feedapi_title_url.inc,v
retrieving revision 1.1.2.1
diff -u -p -r1.1.2.1 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
+++ feedapi_node/views/handlers/feedapi_node_handler_feedapi_title_url.inc	20 Dec 2008 10:10:45 -0000
@@ -1,22 +0,0 @@
-<?php
-// $Id: feedapi_node_handler_feedapi_title_url.inc,v 1.1.2.1 2008/10/01 08:55:47 aronnovak Exp $
-
-/**
- * Field handler to provide title links to drupal nodes
- *
- * @ingroup views_field_handlers
- */
-class feedapi_node_handler_feedapi_title_url extends views_handler_field {
-  
-  function query() {
-    $this->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: parser_common_syndication/parser_common_syndication.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feedapi/parser_common_syndication/parser_common_syndication.module,v
retrieving revision 1.6.2.23.2.28
diff -u -p -r1.6.2.23.2.28 parser_common_syndication.module
--- parser_common_syndication/parser_common_syndication.module	4 Dec 2008 21:35:21 -0000	1.6.2.23.2.28
+++ parser_common_syndication/parser_common_syndication.module	20 Dec 2008 10:10:45 -0000
@@ -40,7 +40,7 @@ function parser_common_syndication_feeda
         @ $xml = simplexml_load_string($downloaded_string, NULL);
       }
       else {
-        @ $xml = simplexml_load_string($downloaded_string, NULL, LIBXML_NOERROR | LIBXML_NOWARNING);
+        @ $xml = simplexml_load_string($downloaded_string, 'SimpleXMLElement', LIBXML_NOERROR | LIBXML_NOWARNING | LIBXML_NOCDATA);
       }
       if (_parser_common_syndication_feed_format_detect($xml) != FALSE) {
         // The parser is compatible. Then has to parse the feed and cache it. Because in the download
@@ -85,7 +85,7 @@ function _parser_common_syndication_feed
       @ $xml = simplexml_load_string($downloaded_string, NULL);
     }
     else {
-      @ $xml = simplexml_load_string($downloaded_string, NULL, LIBXML_NOERROR | LIBXML_NOWARNING);
+      @ $xml = simplexml_load_string($downloaded_string, NULL, LIBXML_NOERROR | LIBXML_NOWARNING | LIBXML_NOCDATA);
     }
 
     // Got a malformed XML.
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 -p -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	20 Dec 2008 10:10:46 -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 @@ function feedapi_views_data() {
       '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 @@ function feedapi_views_handlers() {
       '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: 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	20 Dec 2008 10:10:46 -0000
@@ -0,0 +1,184 @@
+<?php
+// $Id$
+/**
+ * @file
+ * FeedAPI Views - Default Views
+ */
+
+/**
+ * Implementation of hook_views_default_views().
+ */
+function feedapi_views_default_views() {
+  // feeds admin overview
+
+  $view = new view;
+  $view->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_feedapi_title_link.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feedapi/views/handlers/Attic/feedapi_handler_feedapi_title_link.inc,v
retrieving revision 1.1.2.2
diff -u -p -r1.1.2.2 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
+++ views/handlers/feedapi_handler_feedapi_title_link.inc	20 Dec 2008 10:10:46 -0000
@@ -1,26 +0,0 @@
-<?php
-// $Id: feedapi_handler_feedapi_title_link.inc,v 1.1.2.2 2008/10/24 20:14:38 alexb Exp $
-
-/**
- * Field handler to provide title links to drupal nodes
- *
- * @ingroup views_field_handlers
- */
-class feedapi_handler_feedapi_title_link extends views_handler_field {
-  
-  function query() {
-    $this->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_nid.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feedapi/views/handlers/Attic/feedapi_handler_feedapi_title_nid.inc,v
retrieving revision 1.1.2.1
diff -u -p -r1.1.2.1 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
+++ views/handlers/feedapi_handler_feedapi_title_nid.inc	20 Dec 2008 10:10:46 -0000
@@ -1,22 +0,0 @@
-<?php
-// $Id: feedapi_handler_feedapi_title_nid.inc,v 1.1.2.1 2008/10/01 19:14:13 aronnovak Exp $
-
-/**
- * Field handler to provide title links
- *
- * @ingroup views_field_handlers
- */
-class feedapi_handler_feedapi_title_nid extends views_handler_field {
-  
-  function query() {
-    $this->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_url.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feedapi/views/handlers/Attic/feedapi_handler_feedapi_title_url.inc,v
retrieving revision 1.1.2.1
diff -u -p -r1.1.2.1 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
+++ views/handlers/feedapi_handler_feedapi_title_url.inc	20 Dec 2008 10:10:46 -0000
@@ -1,22 +0,0 @@
-<?php
-// $Id: feedapi_handler_feedapi_title_url.inc,v 1.1.2.1 2008/10/01 19:14:13 aronnovak Exp $
-
-/**
- * Field handler to provide title links to drupal nodes
- *
- * @ingroup views_field_handlers
- */
-class feedapi_handler_feedapi_title_url extends views_handler_field {
-  
-  function query() {
-    $this->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: 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	20 Dec 2008 10:10:46 -0000
@@ -0,0 +1,29 @@
+<?php
+// $Id$
+/**
+ * Field handler to present a purge node link.
+ */
+class feedapi_handler_field_node_link_purge extends views_handler_field_node_link {
+  function construct() {
+    parent::construct();
+    $this->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/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	20 Dec 2008 10:10:46 -0000
@@ -0,0 +1,30 @@
+<?php
+// $Id$
+/**
+ * Field handler to present a refresh node link.
+ */
+class feedapi_handler_field_node_link_refresh extends views_handler_field_node_link {
+  function construct() {
+    parent::construct();
+    $this->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	20 Dec 2008 10:10:46 -0000
@@ -0,0 +1,51 @@
+<?php
+// $Id: feedapi_node_handler_feedapi_item_title_url.inc,v 1.1.2.2 2008/10/09 06:43:31 aronnovak Exp $
+
+/**
+ * Field handler to provide title links to drupal nodes
+ *
+ * @ingroup views_field_handlers
+ */
+class feedapi_handler_feedapi_url extends views_handler_field {
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['display_url'] = array('default' => '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;
+  }
+}
