Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Arantor
5776
Other software / Re: Once upon a time...
« on October 21st, 2011, 12:06 PM »
The textarea is not part of the template, it calls the richtext editor component elsewhere, so the actual textarea is only supplied when template_control_richedit() is called.

For setting the body, look for control_create_richedit(). There should even be an example of grabbing the body of a PM and injecting it when quoting a message ($_GET['quote'] will be checked for, and $_GET['pmsg'] will be set in that case)

For setting the subject, that'll be a regular <input> not a textarea control.
5777
Plugins / Plugin manager, phoning home and privacy
« on October 21st, 2011, 12:03 PM »
One of the things I've been talking a lot about is the way the plugin manager calls the different plugin servers in order to check for updates.

I'm not quite at the stage of implementing this yet so it's not like I can't change it but something occurred to me that I would like some feedback on.


Imagine a large repository, of a couple of thousand plugins - like sm.org has. It's realistic to expect that Wedge will get to that point sooner or later (preferably sooner!), and at that point it starts to be unviable to be requesting a list of everything the server has - it's not good for the server, it's not great for the client either.

So I conceived of the notion of having the request actually include a list of plugins that it has available, and the server responds with a list of what it has in it that matches by id, so you know whether to update or not. This idea is not unknown, WordPress does it, for example.

The difference is that WordPress only supports its own repository, not third party repos, in the core code - we expressly support third parties.

Here's the problem. While I can guarantee that my own server(s) won't log requests[1], I can't guarantee other servers won't do the same, so that if a list of plugins is sent, it would be possible to log what plugins you have.

And, naturally, there is a privacy concern here as a result.

I should note what I'm planning on logging as a core feature of the plugin server system (the actual server facility itself) - it should be able to log downloads (total and per day downloads), and if a plugin is secured by group access, i.e. it's not open to guests or regular members, I think it should also log the name and time of download as well as the user who downloaded it.

I think the above logging should be provided because it's useful to see how many people are downloading plugins, whether they're still being downloaded currently (or just historically), and if it's secured behind some kind of authorisation, it should be able to log who's downloading for the simple reason that you're offering a product behind some kind of restriction and you should be able to identify an account or accounts that are using that facility.


Thoughts?
 1. This should include wedge.org, though there is a valid logic behind doing it here too, which if done anonymously allows us to see which plugins are popular, not just downloaded but what is downloaded *and still being used*.
5778
Off-topic / Re: Adding Value to the project
« on October 21st, 2011, 11:52 AM »
Quote
I agree with what you are saying and this is why if you had to make a few great mods for VB and have the support to go with it you would have people breaking down the door to get them
That would require me buying a vB licence and learning to code for vB, neither of which is going to happen any time soon. There is more chance of my learning to code for xenForo than that - but I have Wedge instead ;)
Quote
Well I must admit up until now I have only really found the one paid mod I had to get and that was photopost. Overall being a paid platform I was expecting a higher quality of mods available and was prepared to pay for them. I was surprised to see this was in fact not the case here.
I want to be surprised by that, but I'm not. Given how poor some of the paid mods for SMF are, it doesn't surprise me to see that people are trying to make a quick buck with some trash on vB.
Quote
A lot of the mods are very manual when it comes to installing them as in having to actually edit your templates and insert the code.
To a point that's unavoidable. If you're modifying something inside a template with a mod, it's almost certainly going to have to modify the template to make it work. But that's only for very specific changes, for a lot of things the modular approach that Wedge has will remove that need.
5779
Other software / Re: Once upon a time...
« on October 21st, 2011, 11:43 AM »
I tried my best, didn't always work out so well though :/

In answer to the question posted, if it's something simple, you can usually expect an answer inside 10 minutes these days if a certain team member is around. Less than that if you bump within 24 hours, to be told not to bump. Said person is VERY good at that, as well as telling people that it will be replied to if and when someone knows the answer, which seems to be very infrequent.

Oh, you posted in the coding board? Hmm, answers are not prompt there, and are reasonably seldom as to their accuracy too.

The PM form itself is in PersonalMessage.template.php, however it's a beast of a file (so is PersonalMessage.php in the Sources folder), so unless you're looking at something pretty specific, you may have a bit of trouble sifting out what it is you want to do.
5780
Off-topic / Re: Adding Value to the project
« on October 21st, 2011, 11:16 AM »
Quote
Well taking about a free forum software no I think you will not make much as most people take the free forum software and then want everything free and support by yesterday
Yup, never mind that people are volunteers doing stuff in their free time, and that folks have sunk thousands of hours of their free time into making this, I WANT MY FREE SHIT, DAMMIT. :niark: It actually really pisses me off. I don't mind particularly that I made dozens of mods for SMF, I don't even mind that I didn't get much in the way of thanks, but I did mind the amount of people who seemed to be under the impression that they had any right to do anything other than ask me if I'd add things or change things, as opposed to expect, demand or in one hilarious case, threaten me with a DDOS in order to make him what he wanted.

It doesn't help that while there are three (AFAIK) paid theme sites for SMF, each with a decent amount of reputation that they've legitimately earned, there are three paid mod sites, of which only one could justifiably claim to have good standing, the other two are clearly out for whatever they can get, including buying up other mods and taking over other mods just so they can promote the crap out of their own paid stuff.[1]

I will say, though, I had an interesting discussion with vbgamer once on the subject, in particular reference to the ad management mod after he'd bought it. The mod's free (branding notwithstanding) and because it wasn't using template layers and so on, it did a number of core template edits. Needless to say: support nightmare. So he started offering a paid service to install it, $15 a time.

I don't have a problem with that. The thing is free, and if you aren't using the default theme, you can install it yourself with fairly minimal effort. But if you want someone to do it for you, it's only fair that you should pay them the time to do it.[2]

And yet, he was annoyed - and I agreed with him about it - at the number of people who didn't want to pay the $15 for him to do, but also didn't want to do it themselves.


One other little anecdote. I once talked about doing the vBookie mod for SMF. It's a simple enough project, really, but it would have required template edits to do properly, and would be big even if it was pretty simple. So I talked about the fact that I didn't want to do it for free, and that I thought $25 was a reasonable fee for it plus a year's support, or an extra $15 on top for me doing the installation for you. Cue a surprising amount of nasty feedback - I was genuinely surprised at the volume and ferocity of some of the messages, even though I thought it was quite reasonable.

So, I then said, fine, I'll look at doing it for free, but for 2.0 only to make *my* life easier, and look at maybe charging for support because of the complexity of it. Even that triggered a surprising amount of crap, though not nearly as much as before. People just do not want to pay for stuff, generally speaking, for a free platform.[3]

What it comes down to is investment in the platform. We have a rather irrational take on sunk costs, that we'll often spend over the odds not to have wasted the initial sunk costs, such that when you spend upwards of $200 to get into the platform in the first place, you're prepared to spend a bit more on add-ons for it, even if you could actually achieve everything you wanted with another platform.[4]
 1. Exactly who I'm referring to will be an exercise for the reader.
 2. For most themes, $10 would be enough in my book, but that's another story. The principle of paying someone to do it is entirely fair game, after which you're just haggling over the details.
 3. I wouldn't mind so much if those people contributed back in other ways, e.g. support, but very often not even that happens.
 4. It is much like the iOS vs Android situation. People who buy into the Apple ecosystem are invariably prepared to pay for apps, not just because they're presumably able to do so, but because they have also the sunk costs mindset behind them.
5781
Off-topic / Re: Adding Value to the project
« on October 21st, 2011, 10:46 AM »
Quote
BTW programmes like yourselves could make some serious money out of doing a few good paid mods for it.
I don't think there's a great deal of money to be made out of paid add-ons to free software, because the whole "it must be free" crap gets in the way.

That said, I want to believe, which is why I'm putting in support in the core for third party plugin repos that can be account locked for just that reason.

I am curious, what would be 'good paid plugins'? WedgeDesk is going to be paid but only because it's sufficiently niche that I can get away with it - it's large and scary enough, and with me as the only dev, I need to have some reason to prioritise it above, say, core Wedge dev.
5782
Bridging Wedge to WordPress will be strongly discouraged for a lot of reasons, not least the fact that Wedge has blog support built in, and that SSI is simply not designed for that kind of integration.

In any case, calendar support is going to be removed from SSI and turned into part of a plugin, though SSI should still be able to make that usable... (that part's a WIP)
5783
Features / Re: Storing the modified-post user id
« on October 21st, 2011, 10:05 AM »
Sure it is. It's just a case of whether or not we do actually keep the name or not or just store the id until the name is needed.

Mind you, there is a part of me that thinks the name should be saved anyway to guard against idiots who manually delete stuff from tables because they're idiots and don't really know what they're doing...
5784
When I originally did it, I just hit up every place where call_hook was used, without being specific in terms of variables.
5785
Well, SSI.php loads a fair amount of SMF before you start, it is essentially loading almost everything you'd need to be able to run any page in SMF - before your custom code even starts.
5786
Plugins / More pictures of the plugin manager
« on October 21st, 2011, 03:10 AM »
The plugin manager is a very very big thing for me, I want to get it right.

Now, as I've mentioned before, the idea is that daily it's going to call into the different plugin servers listed and see if there are any updates to any of the plugins you have. (Yes, you can turn this off! But it makes sense to make it on by default, as it were.)

The other thing you'll be able to do is provide a username/password for private sites so that you'll be able to be notified automatically of updates - even on private mod sites.

Here's a demo of the screen as it stands right now - you'll notice the old 'download from a URL' option is gone, and that there's a revised upload and download area (with adding a repo / package server being on a new page)

On this particular case, I've set it to fake being 'error' (so that if it couldn't call a given site, it flags it as in error and won't call on it again until you reset it, to avoid repeatedly trying to hammer broken links etc), and I've manually put in a user name into the system so it displays the fact that there's a user account attached to that server.

(I also happen to think it's more consistently styled compared to the rest of the admin panel, but that's just my biased view :P)
5787
True, they are, but I'm fairly sure I dealt with them.

Though, call_hook('actions') was silently broken for a while recently, until I noticed and fixed it by renaming it to avoid a collision in the plugin loader.
5788
Right now it's a hook but yeah, that would have to change.

The easiest route I would imagine for it would be to have an array holding the possible paths that will be examined by the autoloader, and have it allow that to be extended.

I am trying to avoid cluttering up the plugin subcaches in the modSettings area so I'm not entirely sure how best to manage it but it is likely a centralised listing providing class name -> file path would be best, because it's cheap to search such a listing and load it directly in the autoloader rather than searching.
5789
Plugins / Re: Plugin servers / getting plugins to a system
« on October 21st, 2011, 12:48 AM »
Specifically on the last part, I'd appreciate feedback from people who might build paid repositories of plugins: would having 'allow guests to browse the forum' be a huge problem? I'd personally assume not, because of having an area outside the paywall, for pre-order questions and any freebies you offer too.

(This assumes that there will be external sites, pretty much needed for paid resources because there is no way I want wedge.org to have to cope with the legal liability issues that arise out of hosting the plugins like a store)

Reason I ask is that I can safely get round the above issues and avoid having to create a separate file etc, and just have it as a regular plugin through the actions facility.


(I am also interested in providing a similar framework for themes, and will likely base a lot of it off the core from the plugin manager but that's another day entirely.)
5790
SSI is a big beast of a file, and it ends up loading a couple of thousand lines of code, of which a lot of users won't even be using. If, for example, you just do authentication with it, you won't use most of the code there.

Then you have the functions themselves. My personal favourite is ssi_boardNews, which is:
Code: [Select]
ssi_boardNews($board = null, $limit = null, $start = null, $length = null, $output_method = 'echo')

There are some issues with this. For example if you want to get the information back you can't just use (the rather logical):
Code: [Select]
$var = ssi_boardNews($board = 1, $output_method = 'array');

It just doesn't work like that.

Then you have the facilities I built into http://custom.simplemachines.org/mods/index.php?mod=2280 for multiple boards and much more stuff. Which, you'll notice, doesn't one massive function call, you set all the options you want first.

So, I thought... how about we do something similar, but cleaner and able to be much more configurable?


Here's what I'm proposing.

Instead of ssi_boardNews(1); to get the news from board 1, I'm thinking about:

Code: [Select]
$var = new SSI_boardNews();
$var->setBoard(1);
$var->output();

It looks worse, but hear me out. There are a bunch of things that can be achieved with this.

Firstly, we can remove all the SSI functions out of the file and put them somewhere else, so that you only load what you need, and we achieve this with a thing called an autoloader. (Specifically, an SPL one, but don't worry about that.)

So you just request SSI_boardNews() as a class like above, it goes and makes sure the class is available and boom, you can output the board news with it.

But having it set up like that means it's trivial to add different options at will - instead of having a massive function call to set the number of items, the start/length/whatever, you can set all those with separate calls, e.g. to get items 11 to 20 (page 2), the first 500 characters, you would do:

Code: [Select]
$var = new SSI_boardNews();
$var->setBoard(1);
$var->setStart(10); // skipping 10 items, to start at 11, normally you start with the first 1 by skipping 0 items
$var->setLimit(10);
$var->setLength(500);
$var->output();

And there's no set order, no requirement to list all parameters, just the ones you want to change compared to the default. (I could even put the board number into the SSI_boardNews call itself for keeping it small's sake)


Thoughts?


:edit: Interesting side benefit, it would allow you to be able to load individual SSI components as needed without having to load the entire file.