I'm hitting the wall on this one and was wondering if someone could point me in the right direction. The site I'm developing needs a pageable calendar that will allow visitors to flip through month-to-month. They should be able to do this on any page that the calendar block is available, and the state of the calendar should be maintained as they navigate the site.
I've installed the event module and, unless I'm missing something, it seems very limited in this regard. I've made a hacked version of my own, that borrows the event_views_get_calendar function and makes minor modifications. It's fine - it'll generate a monthly calendar based on the array of nodes I load into it - but trying to find a way to maintain its state has been vexing.
At first, I thought I'd go front-end, having the events module pump out ID'ed DIV tags that could be hidden and shown via javascript. This would have been ideal, in the sense that it would be very responsive and not require page reloads. Sadly, it seems that it would require a major rewrite of the Event Views API, given that it creates a single table that isn't amenable to wrapping individual months in DIV tags.
Now, I'm in a bit of a jam. Ideally, I'd like to be able to simulate old fashioned GET data (i.e. &year=2006&month=10) and have the block respond to it. I could do it via dynamically generated drupal ARGs (i'd put next and previous buttons in the block with the arguments in the URLs), but would need to ensure that the URL wouldn't generate a Page Not Found error (so, say, node/50/calendar/2006/10 would display node 50 with the calendar set to october 2006, and node/51/calendar/2006/10 would do likewise with node 51). To put it another way: how to you get a drupal block to react to arguments that may or may not be there without generating 404s?