Good work, looks really neat!
I'm just thinking about the "routable date" issue. There were some discussions elsewhere about a problem with the "published date" in that it gets changed every time you edit something and there's no way to set it to a specified value. Obviously you don't
want the actual Url of an item changing after you've published it (broken links etc.) So for this reason alone it's good to not rely on the published date (although it'd be nice if you could populate from that or even just DateTime.Now if no date is
I'm wondering if something can be done server-side to maintain a flexible way of sourcing the date to be used; so for instance you could provide an IDateAspect interface; the RoutableByDatePart will look for any parts with IDateAspect and get the date from
them (or use DateTime.Now otherwise). So this would let you grab a date from EventPart, and actually factor the current date input out to a "DisplayDate" part. So the routing and the date input can be used independently.
I should let you know about one potential gotcha with the way RoutePart usually generates slugs. When I wrote the ContentNotifications module I noticed that slug generation actually triggers a Publish event for a "fake" item and all its content parts; the
problem is this "fake" publish event is indistinguishable from a real one! So ContentNotifications ends up sending out two emails for everything that gets published. I don't know the best way around this as it seems to be a necessary part of generating the
slug (but I'm hoping this gets changed in Orchard at some point)
Just one further suggestion with the instructions you wrote for adding to blog module. I'd avoid recommending changes to any Orchard modules (it could leave someone in problems much much later on if Orchard gets updated and any migrations are added to that
You could actually include an extra migration with your module as a separate feature. All it would do is modify the BlogPost content type to add the RouteByDatePart and remove the RoutePart. It'd probably be a good idea to copy all titles and slugs over
from RoutePart at the same time tho ;)