RSS on your websiteUsing Drupal Views and Aggregator/Feeds (or Yahoo Pipes)
Why RSS? – Start the Brainstorm Community News Portal – Consolidate school or local media feedsReframe content from your catalog – RSS provided by your OPACPresent your own twitter or Facebook posts, without a widget, or as a mashupCreate a ready-to-blog feed listLegacy site import
Drupal & RSSDrupal is fine at producing RSS Not as good at data mining from RSS import Two basic import options: Use Feeds module to create nodes (content)Import via Aggregator (sources)In both cases: organize using Views	Both are CRON intensive, and imports need to expire
Feeds ProcessSelect a content type to populatefrom our feedCreate one if necessary using CCKCreate a feed importer usingthe feed importer UI and our RSS sourceMap the feed onto the content typeImportStyle and display
Create a new content type with CCKAdds function to the default content types management pagehttp://www.example.com/admin/content/typesEdit: Name and describe your new content typeManage: Use Link submodule to add link content fieldCan use one universal link field but will need to create unique label for each content type and use display fields to render label as linkDon’t forget to set user permissions for each new content type
CCK adds the “Add Content Type” function to the Content Types Page http://www.example.com/admin/content/types
Inside the Calendar Item content type – Link Submodule provides “link” option in field types
Unique label can be reset in manage fields
Down the page in global settings we turn off the title
Finally, use display fields to hide the label as a plain text field and instead use the label as the link
Feeds – Create Nodes from StuffModule creates “Feed importers” UI http://www.example.com/admin/build/feedsClone (or override) an importer and editChoose attach to nothing (attach to node alters the content type itself) and time to refreshUsing default templates, shouldn’t have to change fetcher, parser or processorUse Node Processor to select content type, input format and settings to expire nodesUse Mapping to assign fields to the chosen content type
Inside a feed importer: You will need to adjust  Basic Settings, Node Processor and Mapping. Note the link for Import Page, we’ll get back to that.
Basic Settings lets you set name and description and refresh time – don’t choose content type here, choose standalone form (and import from the import page -- http://www.example.com/import)
Node Processor Settings is where you pick the content type to map the feed to, also set node expiration and the option to update or replace nodes – updates maintain comments, but are more server intensive. Import format lets you choose full html, which will show images in feeds if they exist.
Finally, use Mapping to specify what you want to go where, including that Link submodule back to the source.
The Import page for feeds. Click on a feed to import and then you finally get to add the URL.
And here is a view of the finished calendar content type on the left, next to a differently styled view of an aggregator feed on the right
Aggregator – Ockham’s RazorWhy use many tools when one will do?Part of Drupal 6 coreSimple to useCreates Feed Aggregator UI http://www.example.com/admin/content/aggregator/Feeds are “sources,” not content, doesn’t allow commentsStyle and filter through Views into blocks or pagesIn settings, include <img> in allowed tags to have images included with feeds
Aggregator: add feed, add category (here: news) and merge feeds by tagging them with the same category.
Simple and all-in-one :Create a new feed with title, URL,  update and  category
Unstyled Aggregator blockThe “b” is available to any user with blog permission. It opens their blog and inserts a copy of the node and a link to the feed.
Views – Essential Drupal ModuleCan format data how you like to see itAll views can be multi-use: block, page, even multi-pageCan use keyword filteringCan use with aggregator feeds – choose aggregator when selecting information style at creationOr node content (including imported via feeds module) – choose nodes at creation*//Whichever you choose cannot be undone//*
The main Views screen http://www.example.com/admin/build/views
Inside an advanced View: multiple pages and blocks, each using different keyword filters. In this view: exposed filters, selected fields,  page path, menu, and a header.
What that view looks like on a finished, themed page
A Word on Keyword FilteringYahoo Pipes is very useful for catching errors of input – can have redundant filtersDrupal logic is more exactCan filter node title AND node body, but cannot filter node title OR node bodyEach filter builds on previous (exclusionary)Can assign taxonomy but cannot mine from content – couple of modules may exist ‘somewhere out there,’ or maybe you can write custom php codeCan Use Yahoo Pipes with Drupal, but third party reliance
Exposed Filtering in DrupalBy exposing a filter, you can let your users searchCan set up more than one exposed filter: search by keyword and locationVery useful with content created and associated with taxonomies, users – can filter by categories and give restricted optionsNot as useful if information is not associated
Views – Style MattersUnformatted gives unstyled listHTML List – good for sidebarsTable gives attractive zebra striping (if your theme allows)Grid gives raw blocksUse fields to cherry pick elements you want: title, teaser, other data, leave out elements you don’t want (author, created date)
A final word about CRONRSS processes are server intensive and require consistent updatesIf you don’t have the ability to set CRON on your server, add the Poormanscron moduleTry to set your updates for meaningful but not server-taxing cycles.If you don’t need your news to update more than once a day – don’t.
Yahoo PipesExtremely powerful – can mashupimages, locations and create maps, use complex logic, more than just a text filterEasy to use – visual, interactive, drag and dropOnce set up can easily be cloned and keywords just replacedVery user friendly for keyword logic – allows multiple filters on multiple parts of same content: title and bodyDownside is the pipes breaking and reliance on a third party
Embedding Pipes in HTMLPipes is a feature of any Yahoo accountBuild your pipe and save it – don’t need to publish to useChoose “Get this as a Badge” and “Embed”Copy & Paste the code in your HTML pageScript will inherit most CSS of the pageSet up extra CSS to create zebra striping, blend frame background  (badge customizing)
An embedded Pipes Badge at http://www.myjcpl.org
LinksWorking with PipesYahoo Pipes:  http://pipes.yahoo.comPipes Help Forum: http://discuss.pipes.yahoo.comCustomizing Badges: http://pipes.yahoo.com/pipes/badgedocsMy Pipes:  http://pipes.yahoo.com/mwidnerWorking with DrupalDrupal.org: http://www.drupal.orgLullabot: http://www.lullabot.comLearn By the Drop: http://learnbythedrop.comMy Drupal Site: http://www.peacekaat.com(link to JCPL Test Site)
Modules we usedFeeds: http://drupal.org/project/feedsCCK: http://drupal.org/project/cckLink (CCK):  http://drupal.org/project/linkViews: http://drupal.org/project/viewsAggregator (core): http://drupal.org/documentation/modules/aggregatorDependent Modules Ctools: http://drupal.org/project/ctoolsJob Scheduler: http://drupal.org/project/job_schedulerExtraPoormanscron: http://drupal.org/project/poormanscron

Rss on your_library_site

  • 1.
    RSS on yourwebsiteUsing Drupal Views and Aggregator/Feeds (or Yahoo Pipes)
  • 2.
    Why RSS? –Start the Brainstorm Community News Portal – Consolidate school or local media feedsReframe content from your catalog – RSS provided by your OPACPresent your own twitter or Facebook posts, without a widget, or as a mashupCreate a ready-to-blog feed listLegacy site import
  • 3.
    Drupal & RSSDrupalis fine at producing RSS Not as good at data mining from RSS import Two basic import options: Use Feeds module to create nodes (content)Import via Aggregator (sources)In both cases: organize using Views Both are CRON intensive, and imports need to expire
  • 4.
    Feeds ProcessSelect acontent type to populatefrom our feedCreate one if necessary using CCKCreate a feed importer usingthe feed importer UI and our RSS sourceMap the feed onto the content typeImportStyle and display
  • 5.
    Create a newcontent type with CCKAdds function to the default content types management pagehttp://www.example.com/admin/content/typesEdit: Name and describe your new content typeManage: Use Link submodule to add link content fieldCan use one universal link field but will need to create unique label for each content type and use display fields to render label as linkDon’t forget to set user permissions for each new content type
  • 6.
    CCK adds the“Add Content Type” function to the Content Types Page http://www.example.com/admin/content/types
  • 7.
    Inside the CalendarItem content type – Link Submodule provides “link” option in field types
  • 8.
    Unique label canbe reset in manage fields
  • 9.
    Down the pagein global settings we turn off the title
  • 10.
    Finally, use displayfields to hide the label as a plain text field and instead use the label as the link
  • 11.
    Feeds – CreateNodes from StuffModule creates “Feed importers” UI http://www.example.com/admin/build/feedsClone (or override) an importer and editChoose attach to nothing (attach to node alters the content type itself) and time to refreshUsing default templates, shouldn’t have to change fetcher, parser or processorUse Node Processor to select content type, input format and settings to expire nodesUse Mapping to assign fields to the chosen content type
  • 12.
    Inside a feedimporter: You will need to adjust Basic Settings, Node Processor and Mapping. Note the link for Import Page, we’ll get back to that.
  • 13.
    Basic Settings letsyou set name and description and refresh time – don’t choose content type here, choose standalone form (and import from the import page -- http://www.example.com/import)
  • 14.
    Node Processor Settingsis where you pick the content type to map the feed to, also set node expiration and the option to update or replace nodes – updates maintain comments, but are more server intensive. Import format lets you choose full html, which will show images in feeds if they exist.
  • 15.
    Finally, use Mappingto specify what you want to go where, including that Link submodule back to the source.
  • 16.
    The Import pagefor feeds. Click on a feed to import and then you finally get to add the URL.
  • 17.
    And here isa view of the finished calendar content type on the left, next to a differently styled view of an aggregator feed on the right
  • 18.
    Aggregator – Ockham’sRazorWhy use many tools when one will do?Part of Drupal 6 coreSimple to useCreates Feed Aggregator UI http://www.example.com/admin/content/aggregator/Feeds are “sources,” not content, doesn’t allow commentsStyle and filter through Views into blocks or pagesIn settings, include <img> in allowed tags to have images included with feeds
  • 19.
    Aggregator: add feed,add category (here: news) and merge feeds by tagging them with the same category.
  • 20.
    Simple and all-in-one:Create a new feed with title, URL, update and category
  • 21.
    Unstyled Aggregator blockThe“b” is available to any user with blog permission. It opens their blog and inserts a copy of the node and a link to the feed.
  • 22.
    Views – EssentialDrupal ModuleCan format data how you like to see itAll views can be multi-use: block, page, even multi-pageCan use keyword filteringCan use with aggregator feeds – choose aggregator when selecting information style at creationOr node content (including imported via feeds module) – choose nodes at creation*//Whichever you choose cannot be undone//*
  • 23.
    The main Viewsscreen http://www.example.com/admin/build/views
  • 24.
    Inside an advancedView: multiple pages and blocks, each using different keyword filters. In this view: exposed filters, selected fields, page path, menu, and a header.
  • 25.
    What that viewlooks like on a finished, themed page
  • 26.
    A Word onKeyword FilteringYahoo Pipes is very useful for catching errors of input – can have redundant filtersDrupal logic is more exactCan filter node title AND node body, but cannot filter node title OR node bodyEach filter builds on previous (exclusionary)Can assign taxonomy but cannot mine from content – couple of modules may exist ‘somewhere out there,’ or maybe you can write custom php codeCan Use Yahoo Pipes with Drupal, but third party reliance
  • 27.
    Exposed Filtering inDrupalBy exposing a filter, you can let your users searchCan set up more than one exposed filter: search by keyword and locationVery useful with content created and associated with taxonomies, users – can filter by categories and give restricted optionsNot as useful if information is not associated
  • 28.
    Views – StyleMattersUnformatted gives unstyled listHTML List – good for sidebarsTable gives attractive zebra striping (if your theme allows)Grid gives raw blocksUse fields to cherry pick elements you want: title, teaser, other data, leave out elements you don’t want (author, created date)
  • 29.
    A final wordabout CRONRSS processes are server intensive and require consistent updatesIf you don’t have the ability to set CRON on your server, add the Poormanscron moduleTry to set your updates for meaningful but not server-taxing cycles.If you don’t need your news to update more than once a day – don’t.
  • 30.
    Yahoo PipesExtremely powerful– can mashupimages, locations and create maps, use complex logic, more than just a text filterEasy to use – visual, interactive, drag and dropOnce set up can easily be cloned and keywords just replacedVery user friendly for keyword logic – allows multiple filters on multiple parts of same content: title and bodyDownside is the pipes breaking and reliance on a third party
  • 31.
    Embedding Pipes inHTMLPipes is a feature of any Yahoo accountBuild your pipe and save it – don’t need to publish to useChoose “Get this as a Badge” and “Embed”Copy & Paste the code in your HTML pageScript will inherit most CSS of the pageSet up extra CSS to create zebra striping, blend frame background (badge customizing)
  • 32.
    An embedded PipesBadge at http://www.myjcpl.org
  • 33.
    LinksWorking with PipesYahooPipes: http://pipes.yahoo.comPipes Help Forum: http://discuss.pipes.yahoo.comCustomizing Badges: http://pipes.yahoo.com/pipes/badgedocsMy Pipes: http://pipes.yahoo.com/mwidnerWorking with DrupalDrupal.org: http://www.drupal.orgLullabot: http://www.lullabot.comLearn By the Drop: http://learnbythedrop.comMy Drupal Site: http://www.peacekaat.com(link to JCPL Test Site)
  • 34.
    Modules we usedFeeds:http://drupal.org/project/feedsCCK: http://drupal.org/project/cckLink (CCK): http://drupal.org/project/linkViews: http://drupal.org/project/viewsAggregator (core): http://drupal.org/documentation/modules/aggregatorDependent Modules Ctools: http://drupal.org/project/ctoolsJob Scheduler: http://drupal.org/project/job_schedulerExtraPoormanscron: http://drupal.org/project/poormanscron