Project information
Project page on drupal.org:
- http://drupal.org/project/views_php_array
- http://drupal.org/project/feeds_view_parser
- http://drupal.org/project/yql_views_query
Screencasts:
- Screencast on initial Feeds and Views integration (importing Tweets into Drupal)
- Screencast on querying YQL using Views
Student: Aditya Kristanto Goenawan (adityakg on d.o, adityakg on g.d.o)
Mentor: Daniel Wehner (dereine)
Co-mentor: Alex Barth (alex_b)
Local mentor(s):
Current status:Relaxing :)
Description
This project intends to enable Drupal importing data from various existing WebAPIs (e.g. Twitter, Facebook, XML, RDF, etc) and further save it into Drupal's objects (e.g. nodes, users, database, etc)
This is achieved by utilizing and integrating both Views and Feeds module in Drupal.
The process of importing external data from WebAPIs will be:
external WebAPIs -> Views -> Feeds -> Drupal (nodes, users, comments, database, etc)
The full proposal can be seen here: http://bit.ly/9RrVZR
Implementation/Design
Views and Feeds integration will be achieved by implementing two separate modules:
- Views Display Plugin that enable a view to output into PHP array.
- Feeds Importer Plugin (Fetcher, Parser and Processor -- not all are needed) that enable Feeds to take in the view output from the PHP array outputted by the Views Display Plugin for further processing
more will come on the details of the implementation/design
Project Timeline
May 23: Community Bonding Period
Admin
-
Submit Foreign Certification Form and Proof of Enrollment
Drupal
-
Create CVS account in d.o. -
Setting up initial project page and playing around with CVS -
Creating Project Page and First Commit :) -
Read about basic Drupal Hooks -
Learn more on Drupal Coding Standard -
Learn more on Testing
Views
-
Read about basic Views API from Advanced Help -
Learn on how to create basic Views Display Plugin from embed_views module
Feeds
-
Read about CTools plugin implementation from Advanced Help -
Read Developer's guide to Feeds -
Understand the SimplePie example provided in Developer's guide to Feeds
June 6: Finishing the Views Display Plugin
-
Creating PHP Array Display Plugin -
Creating PHP Array Style Plugin for the Display Plugin -
Adding Documentation in Advanced Help -
Writing Test
Deliverables: Outputting the result of a view into PHP Array that can be viewed in the 'Live Preview' at Views Admin UI and can make use of the advanced rendering features in fields (e.g. replacing text)
July 4: Finishing Feeds Parser - Views Integration Part
-
Creating dummy Feeds Fetcher -
Creating Feeds Parser - Unit Test (postponed until Feeds Batching and Feeds Mapping on Import patch go through)
-
Documentation/Help
Deliverables: Enabling Feeds to import from the View output while specifying which View and which Display to be used.
July 11: Finishing Mapping on Import to improve Feeds View Parser UI
- Improving the Mapping configuration in Feeds (Feeds issue: #651478: Mapping on Import)
Deliverables: Enable Feeds Processor to define mapping based on the items imported. From Feeds View Parser context, the View Fields mapping need not to be specified manually (i.e. typed in the textfield) but instead selected from dropdown box.
Status: Completed, but patch pending review.
July 25: Finishing Feeds Batching Support
- Patch to Feeds (Feeds Issue: #815728: Extending Batching to Fetcher/Parser)
Deliverables: Enabling importing in batch for Feeds and only requires reasonable memory space allocation for a huge amount of data imports
Status: Deferred because there is other people working on the issue already.
Aug 16: Finishing YQL Views Query Backend
Basic YQL querying with the ability to specify fields and filtersEnabling multi-level fields querying (e.g. Rating.AverageRating)Implement sort handlersEnable specifying custom data tablesEnable pager functionality and custom total items limitCreate documentation in Advanced Help pageRecord screencast
Deliverables: Enabling dynamic yql querying using View with the ability to specify multi-level fields, filters, sort handlers and non-default data tables. Also, the ability to use pager and to specify the number of items to be fetched from YQL endpoint.