Development Blog

RSS Re-enabled

I have re-enabled RSS and hopefully it should be working nicely now. If this post works, I'll put more details in a comment!

Updated:

I'm glad I did do it as a comment, because the comment system was broken.

Note to self: pay more attention when making large changes to the backend database!

Comments (1) 1

RSS Disabled

Annoyingly, I realised that I didn't write the RSS Engine properly. Everything works fine as long as there is only ever 1 reader reading each feed! It's all down to my feeble human brain not using a sensible model of the real world :(

I've already worked out how to fix it and it will be done as soon as I get time.

Comments (0) 0

RSS

Every user now has an RSS Feed, it's fairly simple it just lists all the changes a user makes.

Eventually it might be possible to categorise feeds, perhaps it would be possible to have a feed per tag (when I add tagging in) or something like that.

RSS feeds make it easy to track student changes to their work - I use Google Reader to aggregate my feeds. It's an incredibly powerful way to stay completely on top of every student's work - they make a change to a part of their site, and almost immediately (the feeds have a time-to-live of 360 minutes) you have those changed listed in your aggregator. It also facilitates the monitoring of students comments and other output.

Comments (0) 0

Styles

I've added support for different styles on different pages. Currently there's no way to actually set these up other than diving into the database-proper, but the frontend support is in place and seems to be working fairly well.

I've limited (at the moment at least) the custom style to just the actual page and the comments page, the editor and other 'system' pages will take a little bit more effort to get working properly, but eventually I think I can integrate everything into the style.

Ultimately, users will be able to select from a wide range of styles and upload their own styles.

Comments (0) 0

Page Deletion

I've enabled the delete page button now, but with limited functionality.

Initially I intended it to be able to delete any page and it would go through and delete all the pages connected to that one, aside from being a real pain in the backside to actually implement (requiring some kind of recursive delete function, which anyone who's ever written one before knows have a horrible tendancy to go completely mad and delete everything from top to bottom) I also figured they would be dangerous - you'd be able to delete a page without actually thinking about the other pages that would be deleted along with it.

So instead, you have to manually delete the tree, so if you try and delete a page that still has other pages attached to it, it'll tell you that you can't do that and you'll have to delete all of those other pages first (and so on, up the page tree).

Hopefully this should make things a little safer.

Comments (0) 0

Bug Hunting

There's a weird bug that I just can't track down.

If you navigate to the comments page of any item without being logged in, then proceed to log in (which is pretty reasonable, you'd have to log in to post a comment), the breadcrumb vanishes leaving you stranded, unable to go back to the page you came from.

This is rather annoying :(

Update

I tracked it down! The login function didn't store the page it came from because for regular pages the Referrer data has all the page information in it already, but the comments page URL doesn't store the page it originated from because the breadcrumb lets you go back and posting comments doesn't require an originator page. Log story short, I've fixed it now.

Another Update

I've had a good go through and found a few other irritating bugs, it's all good fun!

Comments (0) 0

Comment Deletion

You should now be able to delete comments from any item on one of your pages. This gives teachers the power to delete unhelpful/spam comments from a sensible thread.

Unfortunately, it also means that students are able to delete comments left by teachers assessing their work.

I'm unsure what to do about this at this stage, I could introduce the idea of having different types of account, Teacher accounts and Student accounts, but I don't really like this idea very much as it requires an "Account Overlord", which would almost certainly end up being me, and to be quite honest, I've got better things to do.

I was toying with the idea of adding an "Overlord Account" (which is not quite the same thing as an "Account Overlord") anyway, which would force the system to check various levels of privilege and allow me (The Overlord) to delete and edit everything.

I suppose if accounts can delete comments from accounts with equal or lower privileges than their own, this might make for a workable solution.

Makes the whole bloody system a lot more complicated though!

Comments (1) 1

State of play

Stuff Done

Comments are in. Any content item can be commented on allowing students to write up work and teachers to comment on that work.

Blog style pages. When you create a new page, its type can be chosen - normal will show content items in the order they were added, first to last. Blog style will show 'posts' in reverse order, with the date posted displayed at the top. Blog type pages also have the 'add item' link at the top!

Deleting items. Individual content items can be deleted, pages cannot yet - this is due to it being a computationally intensive task to delete the entire 'tree' of pages and content items and I really can't be bothered to wrap my head around it yet.

Editor. The basic editor functionality has been added, it basically outlines the functionality that will be provided eventually, effectively providing HTML shortcuts.

Login Persistance. Checking the 'remember me' box on the login form will keep you logged in for a week.

Stuff Coming Soon

RSS is up next, currently it's looking like each user will have a single feed, encompassing every change made - feed-per-page is unlikely to work as adding a new page would generate a new feed requiring tracking and would get confusing fast - particularly with the ability to change the name of a page. Edit logic needs some thought - does 10 edits in a row generate 10 completely separate RSS items? not unreasonable that people will type a bit, save it, edit to type a bit more many times over and over... Maybe edits should be left out completely? Needs thought.

Upload system - this is going to be particularly complex as there needs to be an easy way to find files that have been uploaded for insertion into pages etc.

Web2.0ification - So far, I've been careful to only use Javascript to "progressively enhance" parts of the website - the editor is an example, it still works with no javascript, but loses the clever buttons etc. I want to add more of these things. For example, rather than loading into a new page, I want comments to 'slide in' digg-stylee on the same page, but I intend to get the core functionality correct and usable in non-javascript environments first (accessibility and all that jazz).

Comments (0) 0