I remember in the early days of Symphony there were tutorials on how to create events, I found this very useful. What would be nice would be a tutorial into how we can develop Extensions.

Personally I would prefer to be able to write my own Extensions and not bring other people in, keeps things moving quicker my end and I am not relying on other people to donate their time, regardless if it is a paid commission or not.

Would anybody find that useful?

By the way, is this still valid?

Yes totally.Even if it’s the basics. Stuff I could really use knowledgeable info about:

  1. Tour of an extension driver
  2. Just what is a delegate anyway? And where are they?
  3. What are the data objects & what are their methods
  4. Example of an event-based extension vs a field-based extension

If someone somewhat familiar with the API could tackle any of these, if you could just annotate existing extensions, it would be very useful.

Be nice to just have a simple Hello World extension that displays that message on the page. Something nice and simple for those unfortunate ones who are not well versed in php or extensions.

Personally I would prefer to learn PHP the same way I learn XSLT and that is in the environment like Symphony.

First question would be: is Mark working on this for the Docs? If so, we might as well see what he’s got first and then comment on that.

If not, then anyone who’s developed extensions and who can spare a few minutes here and there should just start posting what they know. I’d be more than happy to share what little I’ve learned in the past few months, but I don’t think it’ll be much (and a lot of it will likely need to be expanded/corrected). Nevertheless, if we don’t hear anything to the contrary I’ll start putting something together.

I think something simple like a tutorial, I always find that I learn more when I am putting things in practice, seeing it work.

Step one: Take a look at any extension (really, any!). The Skeleton is always the same.

Step two: Now you have to find the right values for the delegate. Take an extension that does roughly the same as you wan’t to achieve (or might have a bit you’d like) and take that bit out.

You’ll recognise them as their name really speaks for itself.

Mark working on this for the Docs?

Nope, go for it! “Hello World” is a good idea.

Hello World is always a good idea. :)

When I was learning to write extensions, the thing I was looking for was a list of delegates, what they do, and what parameters they take, AND their limitations. You can figure all this out by searching for the delegate in the /lib directory, but it’d be nice to be all laid out.

After you understand basically how to setup extensions, all you basically need to know is which delegates to use like phoque suggested to make an extension.

Creating a page is as simple as making a, creating a set of pages that store things in preferences is fairly simple, etc.

I guess it’d be useful to know how to deal with the XMLElement class to add content to a page too, which is fairly straightforward as well.

Is this the best way to document delegates?

Yes Lewis, I think that’s good. And if you include the parameter list, and a super short description of what’s in each one (if it’s not obvious), I think that would be helpful!

Doing a few each day and as I have time.

Great! Thanks, Mark.

Yes, this is what we need. My only other suggestion might be to include what class/.php file its located in, in case we want to look at the context, but that’s not critical (and I guess might change over time?). Thanks!

My only other suggestion might be to include what class/.php file its located in, in case we want to look at the context

I think it might just be easier to search for the delegate name since the file itself could be very long.

I think I got all of the delegates. I am pooped. I’m taking a banana break :-)

Awesome, thanks a lot!

This is great Lewis.

I have noticed a typo though:

public function callbackFunctionName($cotext) {


Well done, Mark!

Hi All, I am really keen to learn more about extensions and custom events but am struggling to find documentation. I have looked at the article above on which is great but would love to have more resources available.

Can anyone point me in the direction of more recent documentation?



Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details