diff -rNup \test\feedsupdate\feeds_ui\feeds_ui.admin.inc \test\feeds\feeds_ui\feeds_ui.admin.inc --- \test\feedsupdate\feeds_ui\feeds_ui.admin.inc Mon Dec 21 08:48:38 2009 +++ \test\feeds\feeds_ui\feeds_ui.admin.inc Tue Jan 12 21:39:07 2010 @@ -318,6 +318,12 @@ function feeds_ui_edit_page($importer, $ $active_container['title'] = t('Mapping for !processor', array('!processor' => $plugins[$config['processor']['plugin_key']]['name'])); $active_container['body'] = drupal_get_form('feeds_ui_mapping_form', $importer); break; + case 'parse_example': + $url = $_GET['url']; + if(!$url){echo 'No URL or Path entered';return;} + $example = feeds_ui_parse_example($importer,$url); + echo '
'.$example.'
'; + return; } // Build config info. @@ -477,6 +483,29 @@ function theme_feeds_ui_plugin_form($for return $output; } +function feeds_ui_parse_example($importer,$url=NULL) { + $source = feeds_source($importer->id); + + //add url as source in config, works for FeedsHTTPFetcher and FeedsFileFetcher + $conf = array(get_class($importer->fetcher) => array('source' => $url)); + $source->addConfig($conf); + + try { + $feed = $importer->fetcher->fetch($source); + $importer->parser->parse($feed, $source); + + $example=array(); + while($item = $feed->shiftItem()) { + $example = $example+$item;//_feeds_ui_parse_example_array_merge($example,$item); + } + unset($feed); + } + catch (Exception $e) { + return $e->getMessage(); + } + return print_r($example,true); +} + /** * Edit mapping. * @@ -583,6 +612,29 @@ function feeds_ui_mapping_form(&$form_st '#value' => t('Save'), '#attributes' => array('class' => 'feeds-ui-hidden-submit'), ); + + //PARSED EXAMPLE + $form['parsed_example'] = array( + '#type' => 'fieldset', + '#title' => t('Example Feed'), + '#collapsible' => TRUE, + '#collapsed' => FALSE, + '#tree' => TRUE, + ); + $form['parsed_example']['parse_feed'] = array( + '#type' => 'textfield', + '#title' => t('RSS Feed URL (HTTPFetcher) or Local File Path (FileFetcher)'), + '#size' => 60, + '#maxlength' => 256, + '#required' => FALSE, + '#attributes' => array('class' => 'feeds-ui-parse-feed'), + ); + $form['parsed_example']['parse_button'] = array( + '#value' => '', + ); + $form['parsed_example']['parse_result'] = array( + '#value' => '
example shown here
', + ); return $form; } diff -rNup \test\feedsupdate\feeds_ui\feeds_ui.js \test\feeds\feeds_ui\feeds_ui.js --- \test\feedsupdate\feeds_ui\feeds_ui.js Wed Oct 21 06:01:36 2009 +++ \test\feeds\feeds_ui\feeds_ui.js Tue Jan 12 19:43:32 2010 @@ -87,4 +87,18 @@ Drupal.behaviors.feeds = function() { $('#' + $(this).attr('id')).attr('checked', 1); $('input.form-submit.feeds-ui-hidden-submit').click(); }); + + // Dynamic Parsing for giving examples + $('.feeds-ui-parse-button').click(function() + { + var feed = $('.feeds-ui-parse-feed').val(); + $.ajax({ + type: "GET", + url: "parse_example", + data: "url=" + encodeURI(feed), + success: function(msg){ + $('.feeds-ui-parse-result').html(msg); + } + }); + }); };