As I've been setting up a new site in SS, I've encountered a couple of situations where I wanted to pass a string containing a comma in a template method call. Example: I'd like to have used "F, Y" as a date format string. However, if I did $Date.format(F, Y), the "Y" would be treated as a second argument. Something like $Date.format("F, Y") is not supported.
Do you know why it was decided to not allow quoted strings containing commas as parameters in template method calls?
My understanding is this: the template engine is designed to be used by non-programmers - or at least, designers with html knowledge but limited/no php background.
The date formatting is a classic example that highlights the point: "F, Y" means nothing to anyone who hasn't used the function before. The simplified templating forces you (the programmer) to create a meaningful function in the page model, like "MonthYear". This is something that a designer can look at and understand.
I've begun working on a patch to allow quoted parameters. As a precursor to this, some [url=http://open.silverstripe.com/ticket/3628]unit tests[/url] have been submitted which test the parsing of template method calls.
FYI, a proof-of-concept draft patch and a request for comments on it may be found at http://groups.google.com/group/silverstripe-dev/browse_thread/thread/7842ab97f687cd1e#. I'm waiting for some confirmation that my approach is a good approach before continuing developing the patch.
I [url=http://groups.google.com/group/silverstripe-dev/browse_thread/thread/7842ab97f687cd1e#]posted[/url] to the dev list about this a couple of weeks ago but have of yet received no responses. Maybe this functionality isn't of interest. Do you still think it is profitable for me to continue building this patch?