Arantor

  • As powerful as possible, as complex as necessary.
  • Posts: 14,278
The calendar
« on October 4th, 2011, 12:17 PM »
Been thinking about this quite a bit today, not entirely sure why.

On the list of plugins I'd made, recurring events and event registration/RSVP came up fairly high on the list for calendar plugins.

But what I'm wondering is about unbundling the calendar. Our stance on it has always really been that if we give the calendar a real use, it can stay - and I know it can have plenty more uses than it currently has, but I'm wary of putting all that into the core. I don't know why I'm so reticent about it, there's really no reason for it.

Now that the plugin manager is basically functional, though, there's no real reason why I can't bundle the calendar into a plugin and have that developed separately. I guess there is a part of me that's enthusiastic about segregating functionality, especially since the calendar is not the fastest thing in the world (I'd leave birthdays in the core, though!)

It would, interestingly, also ensure that several hooks exist and are proven to work (notably integrating stuff into the post dialogue, validating it on reception and throwing it back for an error)

Thoughts?
When we unite against a common enemy that attacks our ethos, it nurtures group solidarity. Trolls are sensational, yes, but we keep everyone honest. | Game Memorial

Dismal Shadow

  • Madman in a Box
  • Me: Who is Arantor? Cleverbot: It stands for time and relative dimensions in space.
  • Posts: 1,185
Re: The calendar
« Reply #1, on October 4th, 2011, 02:47 PM »
Make it a plugin, sync with Google calendar maybe?
“I will stand on my ground as an atheist until your god shows up...If my irreligious bothers you much, and if you think everything I do is heresy to your god I don't care. Heresy is for those who believe, I don't. So, it isn't heresy at all!


   Jack in, Wedge,
   EXECUTE!

billy2

  • Trying to earn brownie points for a lads trip to the Red Sea. Minus 1 already - just for asking!!
  • Posts: 350
<br /><br />cough, cough.

Nao

  • Dadman with a boy
  • Posts: 16,079
Re: The calendar
« Reply #3, on October 4th, 2011, 05:01 PM »
I could care less about whether the calendar is core or not. However, if we make it a plugin, it could be interesting to implement 'dependencies' in the plugin system (if not already done...), where one plugin would only be enablable (technobabble?) if another one (specified by ID) is there.

(Oh, and official plugins should have the 'Wedge' ID, BTW. Calendar would be <Wedge:Calendar> for instance. Or <wedge:calendar>. (I'm all for lowercase everywhere. (And parenthesis.)))

Farjo

  • "a valuable asset to the community"
  • Posts: 492
Re: The calendar
« Reply #4, on October 4th, 2011, 05:58 PM »
My lot use the calendar - it's one of the pluses of SMF. From forum owner perspective my only reservation about it being a plugin is that it may not be kept updated for new Wedge versions and stop working, whereas if it's core and it stopped working it would be a priority bug.

Nao

  • Dadman with a boy
  • Posts: 16,079
Re: The calendar
« Reply #5, on October 4th, 2011, 06:15 PM »
If it's still core it doesn't guarantee it'll work better. We may simply not test it...

Arantor

  • As powerful as possible, as complex as necessary.
  • Posts: 14,278
Re: The calendar
« Reply #6, on October 4th, 2011, 07:24 PM »
The plugin architecture is designed to support plugin dependencies, though its implementation is rather incomplete. It isn't done by id, however, it's done by hook presence; if a plugin demands one or more hooks, they don't have to be all core hooks - and it's designed so that another plugin can indicate the hooks it provides.

Being core doesn't guarantee it will be well supported, it just guarantees that you'll get it with the core.

There is a distinct part of me that feels putting it into a plugin means support gets better - because the code is localised, we can narrow down changes better.

Plus the whole point of the plugin system is that, frankly, it's supposed to resist changes in Wedge-core and be more resilient as time goes on.

Lastly, the name being <wedge:calendar>, I'm good either way, though I tend to reflect its proper case. A plugin's id is really just an internal identifier, it isn't used for anything other than internal coherence and loading.[1][2]
Posted: October 4th, 2011, 06:55 PM

There is a secondary benefit for doing this: we get the ability to offer a bundle, where users who want the calendar can download it as part of the package if they so choose, with it fairly easy to enable (just a click)
 1. If a plugin wants to load its own template, source, language files etc., it has to supply its id.
 2. I suspect in time I'll extend that to also deal with duplicate detection but I don't know yet.

Nao

  • Dadman with a boy
  • Posts: 16,079
Re: The calendar
« Reply #7, on October 4th, 2011, 09:03 PM »
You seem to have an answer to everything when it comes to plugins. That's refreshing :)

Arantor

  • As powerful as possible, as complex as necessary.
  • Posts: 14,278
Re: The calendar
« Reply #8, on October 4th, 2011, 09:14 PM »
I deliberately tried to accommodate not only current but future ones, and also to accommodate the crazy sort of things I always wished I could do in SMF.

Plugins that have dependencies was something I always wanted to support after I did it in SimpleDesk, and it makes sense to provide the general facility of plugins being able to indicate their needs and own skills - because it's the only way that I could come up with of automating the dependency management.
Re: The calendar
« Reply #9, on October 5th, 2011, 12:52 AM »
Getting back on topic, I'm definitely getting the feeling about it being plugin, but the more I think about the other stuff, the more I think I wouldn't make them plugins of a plugin, but just enhance the plugin itself if that makes sense.

Doing a search for 'calendar' on the core reveals a lot of hits but they're pretty much all the ones I can actually think of that are relevant to the calendar itself anyway; it's pretty heavily integrated in some bits, but not so heavily integrated that it can't be unbundled that quickly.

I may have to investigate this tomorrow if I get time, I have other things to do like working some more on handling file permissions in the plugin manager as well...

* Arantor also magically makes the topic public to gather any more feedback, but it's pretty clear where the direction lies.

PantsManUK

  • [me=PantsManUK]would dearly love to dump SMF 1.X at this juncture...[/me]
  • Posts: 174
Re: The calendar
« Reply #10, on October 5th, 2011, 12:54 PM »
We use the calendar, but I see the benefits of it shifting out of core, so consider that a +1 for becoming a plugin.
« What is this thing you hoomans call "Facebook"? »

Arantor

  • As powerful as possible, as complex as necessary.
  • Posts: 14,278
Re: The calendar
« Reply #11, on October 6th, 2011, 01:38 PM »
Anyone else want to add anything before I break out my big wire-cutters?

toolbox

  • Posts: 3
Re: The calendar
« Reply #12, on October 6th, 2011, 02:43 PM »
Our club would be lost without the calendar system.

Dismal Shadow

  • Madman in a Box
  • Me: Who is Arantor? Cleverbot: It stands for time and relative dimensions in space.
  • Posts: 1,185

spoogs

  • Posts: 417
Re: The calendar
« Reply #14, on October 6th, 2011, 02:56 PM »
As much as I make use of the calendar I wouldn't be bothered either way. Having it in the core just means it's already right there in the software, as a plugin just means a few extra clicks to get my hands on it... as long as it works I'm happy :)
Stick a fork in it SMF