I grossly, grandly, and greatly underestimated the development of a WordPress theme for a customizable version of the ds106 assignment bank — I want it to be very flexible, and am finding the creation of the admin screens for configuring it to be more complex than I expected.
Jim and I had planned a session today to let him see it in action; originally I hoped it would be in a place where he could install it on a new site, but alas…. we did a screen sharing demo on Google hangout, and talked a bit larger about building out the other parts of the machine for people to use to their own purposes.
The demo version is running and often completely broken at http://bank.ds106.us/
You can find previous posts on this project at http://cogdogblog.com/tag/building106. A key is that what you have in the bank need not be called “Assignments” – it could be “lessons” “Activities” “Recipes” “Boogers” – internally each of the equivalent of a ds106 Assignment is a “Thing” (and referenced as THINGNAME)
The name is dynamically generated everywhere on the siter, so it can be changed. The front of the site is a static page, which means you can write whatever intro, title you like — the numbers are generated by a shortcode- here is the content of the page:
There’s nothing like the smell of WordPress in the morning. In the bank are <strong>[thingcount]</strong> and within them <strong>[examplecount]</strong>.
As a page, you can set it in WordPress settings to be the front of the site, or you could have a normal blog, where this index is an interior page.
The part I have been slugging through is building out a Theme Options area of the dashboard, where I am building all the parts you can customize. This means diving into the WordPress Settings API which is frankly convoluted… I worked through 2 tutorials and flailed until I found Aliso The Geek’s Extended WordPress Settings API Tutorial.
I have been able to add a link to these options from inside the dashboard and hung it from the admin navbar as well
The area I am creating has a tabbed interface, two of the items are settings, a third a place for documentation, and a nifty feature to revert the settings to default.
So Like I said you can change the “Thing Name” = these also show up internally as custom taxonomy tags for the “things”
The current “thing name” is “Challenge”, as we see on the front of the site too
But in my theme options, we can change it to say, “Lesson”.
When I save it, the front page (and many others) reflect this change of “thing name”
but I am also able to have it update all of the taxonomy names (compare to the earlier screenshot)
This fix took a lot of syntax checking, vardump(), and some amount of cussing.
And a lot of coffee.
The next part of the general settings allow you to customize the sizes of the item thumbnails n both index, archive pages, and single display pages.
There is also a place to set a default thumbnail… on my list is to figure out how to integrate the media uploader, so you can just drop it in like adding media to a post. I am close…
The last part of the general settings lets you indicate how examples will be added, an option to use Feed WordPress (like we do for ds106), and another option to enable a form where examples can be added directly. It also checks to see if Feed WordPress is installed.
At the bottom is a status indicating if the WP-PostRatings plugin is activated, this indicates a rating is used. There will be some documentation written to explain the extra settings you might configure for these plugins.
The next tab, will be the place you can define the “types” of things, the categories of items in the bank. I have it working to display what is there now (they have been manually entered by me for testing), but with a few more bits I should have it so you can edit the names and descriptions.
This needs a fair bit of work- each type will need a controller to upload an icon, and a field to list a FeedURL if the syndication is enabled.
It’s exciting to see it this far, I really want to get it ready for testing, but I need some more solid code time, which wont happen til I return from my travels November 9. I would like to think I can have it ready by December.
Jim and I brainstormed some other worthy ideas, ways a stand alone reader could be used (a google reader like aggregator, but also as Jim suggested, a more graphic one like the tumblr dashboard). I outlined what I thought could be done to make the Daily Create into a general template, and we also talked about some improvements for the inSPIRE site.
Having a set of these tools that could be used together or alone seems to be powerful. I’m keen to hear ways you might use any of these. I am hoping I can write a Shuttleworth Foundation application to fund some full time effort on both the development of these tools (and more ones) plus strategies for integrating into practice.
While this is taking me longer, I am pleased with the way it is turning out, and also with what I am learning the
hard only way about programming in WordPress.