I’m pretty sure which trail I am… My progress on finishing the beta ds106 Assignment Bank as a WordPress Theme proceeds in slow lurches, no need to reach for the glacial metaphor. But it should be nearing a more public ready beta test at some indeterminate epoch in the future.
The work yesterday was to redesign the options for setting up syndication to bring examples for an assignment into the site. My thinking was originally to closely tied to the way we have set it up on ds106. And that way was tied to the original approach for building it, which of course, was Martha Brilliant. In that set up, we used FeedWordPress on FeedWordPress, or as described before, syndication of syndication.
- All participant blogs fed to FWP in ds106.us the grand master aggregator
- The Assignment Bank then subscribes to category feeds from ds106.us (one feed for each kind of assignment, e.g. the tag for DesignAssignments).
- The assignment specific tag could then map it to the right assignment.
It works, though the need for (2) above was driven by the way tags were created for an assignment, an incremental counter tacked to the assignment type. I found it easier (and more definitely unique) to just tie the assignment specific tag to the databased/post ID.
Anyhow, it dawned on me way too late (the difficult trail of my own making), that most use cases would not have an external aggregating site, that it could be easier to install that locally into the site.
I have it working now, with three ways to set up the site:
(the options in the red box only apply to the third case, and when I get fancy will be toggled off if either of the other 2 options are selected
1. No syndication. Not everyone wants to run things this way. You can still enable a way for people to enter their examples via a web form. Or not at all; in this ultumater mode, the site owner can enter them directly into the Wp admin.
2. Local FeedWordPress The assignment bank itself runs as a FWP aggregator. In this mode, blog writers need only use the assignment specific tag.
3. External FeedWordPress The ds106 type set up, where an aggregator is used maybe for more than just this purpose. For this setup, we no longer need the assignment type tag; but there is a single general tag writers would use to “tag” it as a post that should go to the assignment bank.
So the “bankds106” tag (or whatever tag you desire) flags it to be grabbed by the Assignment Bank, so the FeedWordpress install need only subscribe to one feed, say http://ds106.us/tag/bankds106/feed — in a super idealized world, I would make that another theme option and have it register with FWP. but that can be later. Adding a single feed is not too terrible, is it Martin?
The main setting for FWP in either case is to map the incoming posts to be the custom post type I have setup for examples. There might be 3 or 4 other settings the site owner would need to do.
I ran some simple tests subscribing locally to my cogdoglab.wordpress.com blog, and adding some tags for post assignments / post tutorials
and both of these came in and connected to the appropriate assignment.
I then set the option to use ds106.us as an external syndicator. I took the liberty of adding the tags to a few ds106.us aggregated posts by friends, and connected the tag feed to my test site.
The one on the left is from a photo post by Stephen Downes, and the right from Marian Funes.
This was of course a super simple test, but it’s a step. There is no reason why you could not switch from one mode to the other, once aggregated, the content is all the same.
The next big step is to work on a plugin that will allow a local aggregating site make it easy for participants to add their blog to the mix. On ds106 we use the one Martha made, and requires Gravity Forms. A problem with it is that people who add their feed URLs cannot ever edit them. My idea has been to lift some code that Martin Hawksey did that adds a feed url to a wordpress user profile, so people make accounts on their site. Whenever they change that feed url, it triggers an action to add/update the feed in the hokey list notes data structure used by FWP (yes Tim, it is kludgy).
What I would like to add are some category checkmark options a site admin could set up, so a person adding their feed can indicate an affiliation (course? project? mooc?) for their feed content- these would be the extra tags that FWP can add to all syndicated content.
What is left includes:
- forms to add the examples/tutorials directly (a small extension of the form that works now to add an assignment)
- All of these forms sadly need a captcha, I get regular spam now (I have options so all submissions are in draft mode)
- the plugin described above to feed enrollment (done as a plugin because it will be useful elsewhere)
- plugin to add a shortcode to list the blogs the sute subscribes to (this works already on ds106.us, just need to turn it into plugin, or maybe just add to the functions of the theme)
- For my own interest, a function to map the unique assignment tag to th assignment itself, ot assignment type. It sounds easy, but its a two step process.
And there is a wad of documentation to be added.
I know FeedWordPress is quirky and the support seemingly spotty to absent. But it just works (mostly). The way it tracks feed information on the note fields of links is klunky. But keep in mind that in principle RSS is “really simple” as a concept, under the hood, the variations and variations of published feeds is mind boggling, something I wrestled with since 2002 with running Feed2JS (itself using a really old parser that just works).
Feeds are really really really messy. Trust me.
If a better approach emerges, it should be able to be added with a bit more trail work.
I have a few more ideas that can come later, this list already gives me a headache. I might be done by 2019.
No sooner. I want this trail to be ready for other people
The post "DS106 Assignment Bank Theme: Now With Syndication Options" was originally pulled like taffy through a needle's eye at CogDogBlog (http://cogdogblog.com/2014/02/ds106-assignment-bank-theme-now-with-syndication-options/) on February 27, 2014.