Yesterday I ran into an odd bug where I couldn’t get a function I defined in a controller to be run. The actions are how you can get various function be called from a controller and they area reasonably straightforward to use – when they work!

If you have a controller for /blah and you want /blah/foo to run a function then you simply add a function called foo to the controller. Rather than hardcode the url you use action(‘foo’)?> in the generated html and it will make sure the url is correct (taking into account your desire for pretty urls and so on). So far so good.

Of course if you are developing and get things out of sequence then your first call to /blah/foo results in a 404 error as the function doesn’t exist. This result is then cached and so when you do add the function it won’t be called. The cache is ON by default in Concrete 5.

If you’re developing, I’d suggest turning the cache Off in the dashboard (System & Settings / Optimisation / Cache & Speed Settings). Maybe you can avoid going round in the circles I’ve just eperienced trying to figure it out 🙂