stevewithington / MuraFW1

Base Mura CMS plugin using FW/1 as its application framework.
Apache License 2.0
27 stars 23 forks source link

Error request._fw1.controllers doesn't exist when called from EventHandler.cfc #16

Closed grahamford closed 10 years ago

grahamford commented 11 years ago

I've got a specific Mura page type that I'm trying to render out with my FW/1 plugin. I've done this by adding a function called onPageMytypeBodyRender() to plugins/myplugin/includes/eventhandler.cfc

The code is simply:

public any function onPageMytypeBodyRender(required struct $) {
        $.event('productid',$.getContentBean().getValue('productId'));
        getApplication().doAction('public:lead.product');
}

This gets as far as fw1.cfc and within the controller() function throws an error that request._fw1.controllers doesn't exist. Looking at the FW/1 trace the correct action is called and the view rendered, and then it does it all again with the action generated from the magic variables.

I don't know the lifecycle of a FW/1 request well enough to fully understand what's going on. It all works fine if I add call the FW/1 app through display objects but not via the event handler.

Could this be a problem with the plugin or am I using it in the wrong way?

stevewithington commented 11 years ago

I'm unable to reproduce the error on my end. For example, I added a class extension called "Page/Book" then added the following to my MuraFW1's eventHandler.cfc:

public any function onPageBookBodyRender(required struct $) {
    return getApplication().doAction('public:main.default');
}

Then I reloaded my app, and it just worked. Unless I'm able to reproduce the issue, it's impossible for me to troubleshoot.

grahamford commented 11 years ago

Thanks for looking at this Steve. I think I'm going to have to investigate this further with a stripped down test case and then see how this compares to the call to the existing plugin.

stevewithington commented 11 years ago

If you discover the cause of your issue, please share here in case someone else stumbles across the same thing. Thanks!

amyers735 commented 10 years ago

I'm seeing this issue on a plugin I wrote recently. I am not sure if it's relevant, but while developing it on ACF11 on my local PC I didn't see the issue, but when I deployed it to our test server (ACF 9.0.1 behind Apache) the issue has appeared.

I'll do some more testing to see if I can reproduce it on ACF 9.0.1 on my local machine.

Update - Yes - I can reproduce this on my ACF 9.0.1 install.

grahamford commented 10 years ago

I'm also running 9.0.1 with Apache but development on the project I was involved in ceased, so I don't know if I ever found a fix. Sounds like I didn't.

amyers735 commented 10 years ago

Thanks for confirming that.

I've discovered that if I pass through as Url parameters the action that is failing, that it'll then work. I'm guessing Cf 9's request lifecycle is different to 11, and probably railo's too.

I'm a little tempted to bypass FW/1 completely for one of the two display objects I want to display (it's a menu block). But moving forward I'm potentially going to want a lot of display objects on any single page On 17/09/2014 6:04 pm, "GrahamFord" notifications@github.com wrote:

I'm also running 9.0.1 with Apache but development on the project I was involved in ceased, so I don't know if I ever found a fix. Sounds like I didn't.

— Reply to this email directly or view it on GitHub https://github.com/stevewithington/MuraFW1/issues/16#issuecomment-55861565 .

stevewithington commented 10 years ago

I was able to reproduce this issue myself on a Windows machine running CF9.0.1, and applied a fix in the latest version.

Thanks, Steve