Custom Form Action URL's

344 views
Skip to first unread message

Greg Moser

unread,
Nov 12, 2015, 8:30:58 PM11/12/15
to Mura CMS
Hi All,

I have a landing page:

As you will notice, there are two forms on that landing page, one in the top right, and another in the bottom for the case study download.

Now, this is all basic "out-of-the-box" mura form functionality.  So the form submits to itself and emails me the stuff (with a couple other custom handlers, etc), and then the user ends up on one of two pages:

Request Quote: /lp/coldfusion-ecommerce/?nocache=1#frm12D7DE9050569000034A6A53B5091829
Case Study DL: /lp/coldfusion-ecommerce/?nocache=1#frm12DE34915056900003E357BBCAE024B6

Now, here is my problem / question.  I'm setting up google analytics and optimizely to track as goals each of these separately using the destination page.  However google analytics and optimizely can't read the hash part of the url.  So for those two tools they see both the forms as:

Request Quote: /lp/coldfusion-ecommerce/?nocache=1
Case Study DL: /lp/coldfusion-ecommerce/?nocache=1

Now, I was trying to change my form in mura to be

<form action="?fc=lp_requestdemo">
and
<form action="?fc=lp_casedowload">

With the hope that mura would render as:

Request Quote: /lp/coldfusion-ecommerce/?fc=lp_requestdemo&nocache=1#frm12D7DE9050569000034A6A53B5091829
Case Study DL: /lp/coldfusion-ecommerce/?fc=lp_casedowload&nocache=1#frm12DE34915056900003E357BBCAE024B6

but unfortunately that is not the case, it just blows away the 'action' attribute and replaces it without my custom stuff.  Is there some secret hack to get additional URL variables into the "Action" parameter?

When thinking of solutions I have a couple of conditions:
1) I do not want to change the form action to "GET" because i don't want all of my other hidden stuff up in the URL
2) I don't really want to write code, or do custom forms.
3) I'm already pushing these as events to google analytics on submit which does work for google goals, but I don't really want to also push another set of events to optimizely... I'd prefur different final URL's

-Greg

Matt Levine

unread,
Nov 13, 2015, 12:13:34 AM11/13/15
to mura-cms-...@googlegroups.com
I'll look into this tomorrow and put in that flexibility.

-Matt

--
You received this message because you are subscribed to the Google Groups "Mura CMS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mura-cms-develo...@googlegroups.com.
To post to this group, send email to mura-cms-...@googlegroups.com.
Visit this group at http://groups.google.com/group/mura-cms-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/mura-cms-developers/128ea78d-787c-42d0-a7e1-8ac69735e318%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Greg Moser

unread,
Nov 13, 2015, 10:13:30 AM11/13/15
to mura-cms-...@googlegroups.com
Wow, thanks Matt!  Didn't expect such immediate attention, but much appreciated :)

Let me know if there is anything I can help with on my end.

--
You received this message because you are subscribed to a topic in the Google Groups "Mura CMS" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/mura-cms-developers/fEc0-CZsybg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to mura-cms-develo...@googlegroups.com.

To post to this group, send email to mura-cms-...@googlegroups.com.
Visit this group at http://groups.google.com/group/mura-cms-developers.

Matt Levine

unread,
Nov 13, 2015, 12:27:53 PM11/13/15
to mura-cms-...@googlegroups.com
Please update and retest and it should work now as long as you are using a form built with ckeditor.

Here's the commit:

Unfortunatly, this won't work with forms built with the form builder sync those are now submitted via ajax.  I'm not sure what to do about that right now except put tracking js into the form's response message.  If anyone has any ideas please let me know.

You know I'm here for you Greg ;)

-Matt

John Sieber

unread,
Nov 13, 2015, 1:53:38 PM11/13/15
to Mura CMS
One other option would be to use the regular expression option when setting up your goals in Google Analytics. Not sure if optimizely has that ability, but that is the path I took recently when working with Google Analytics Goals with some of our FW/1 plugin forms.

Looks like Matt already added additional functionality to make this work out of the box. Another reason why Mura CMS is so great!

Ronnie Duke

unread,
Nov 13, 2015, 2:26:33 PM11/13/15
to Mura CMS
Another way we've addressed this is to put a Mura redirect in the form response to go to a custom "Thank You" page.

[m]$.redirect('/lp/coldfusion-ecommerce/thank-you')[/m]

Then you would use that page to track your conversions in GA.

You may even be able to pass in a query as well:

[m]$.redirect('/lp/coldfusion-ecommerce/thank-you?fc=lp_requestdemo')[/m]

and use the same thank you page for multiple forms.

-Ronnie

Ronnie Duke

unread,
Nov 13, 2015, 2:29:49 PM11/13/15
to Mura CMS
Even another way – use the GA event API to send a custom event when the form is submitted:

//Request Demo form
$('#your-form-id input[type="submit"]').on("click", function(){
ga('send', 'event', { eventCategory: 'submit', eventAction: 'form', eventLabel: 'request-demo'});
});


- Ronnie


On Thursday, November 12, 2015 at 5:30:58 PM UTC-8, Greg Moser wrote:

Greg Moser

unread,
Nov 13, 2015, 6:18:14 PM11/13/15
to mura-cms-...@googlegroups.com
John, while that is a good suggestion... I actually am using the regular expression, however it doesn't work for anything after the hash (#) symbol.  This is because using hash navigation actually isn't by HTML standards a different page so google doesn't register it.

Ronnie, the redirect is certainly something that I had considered, however that would mean creating a special "thank you" page, and I really only had a template for a 1 page landing page by theme forest.  Plus, I also wanted to to potentially explore the other content once submitted, and didn't want to mange 2 pages.  In addition we are setting up LOTS of landing pages so any extra management gets exponentially more difficult... but my head was there as well, but it was a backup plan

With regards to the event tracking recommendation, I'm actually already doing that for the google side which is great.  However just the google conversion isn't the only thing I needed to trigger... I need to trigger actually 3 systems

1) Google Analytics - Standard Conversion Tracking

2) Google AdWords - Conversions for CPA, although I've got this linked with analytics so nothing extra needed here

3) AdRoll Retargeting - Segments get defined by page someone has seen, so I want different re-targeting ads for those who have already engaged in this way with Slatwall

4) Optimizely - Need the reporting so that the winners of my A/B tests can easily be identified

With all 4 of those systems in place the 1 method that they can all use is page url... hence the change I was looking for.

THE GOOD NEWS!!!

Matt already implemented the change because he is a ROCK STAR!!!! Thank you again sooooo much!

--
You received this message because you are subscribed to a topic in the Google Groups "Mura CMS" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/mura-cms-developers/fEc0-CZsybg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to mura-cms-develo...@googlegroups.com.
To post to this group, send email to mura-cms-...@googlegroups.com.
Visit this group at http://groups.google.com/group/mura-cms-developers.

John Sieber

unread,
Nov 13, 2015, 6:27:10 PM11/13/15
to Mura CMS
Hi Greg,
Awesome write up of all the pieces involved, it will definitely help someone else down the road. I did not realize that Google would ignore the values after the hash with the regular expressions, maybe something they will improve down the road. I would think it would be an issue for certain single page applications. Super cool to see Matt jump on this right away! Go Mura.
-John
To unsubscribe from this group and all its topics, send an email to mura-cms-developers+unsub...@googlegroups.com.

To post to this group, send email to mura-cms-...@googlegroups.com.
Visit this group at http://groups.google.com/group/mura-cms-developers.

Greg Moser

unread,
Nov 13, 2015, 6:35:51 PM11/13/15
to mura-cms-...@googlegroups.com
The hash thing surprised me as well, but if you think about it their policy it makes sense as one clicks on different anchor tags to navigate up and down a page, you wouldn't want to track different page views.  In fact there are TONS of docs online to add something like this to your 1-page app:

onHashChange() {
  ga.send(['trackPageview', window.location.hash]);
}

This is because in 1-page apps you are basically using the native hash functionality to produce routes and navigate to different 'pages'.

Thanks again for your feedback, and hopefully this all does help someone else in the future.

-Greg


To unsubscribe from this group and all its topics, send an email to mura-cms-develo...@googlegroups.com.
To post to this group, send email to mura-cms-...@googlegroups.com.
Visit this group at http://groups.google.com/group/mura-cms-developers.

--
You received this message because you are subscribed to a topic in the Google Groups "Mura CMS" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/mura-cms-developers/fEc0-CZsybg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to mura-cms-develo...@googlegroups.com.

To post to this group, send email to mura-cms-...@googlegroups.com.
Visit this group at http://groups.google.com/group/mura-cms-developers.

John Sieber

unread,
Nov 13, 2015, 6:40:21 PM11/13/15
to Mura CMS
Your are right, the default behaviour does make total sense.
-John

David Panzarella

unread,
Nov 14, 2015, 12:32:45 AM11/14/15
to mura-cms-...@googlegroups.com
@Greg, this is completely off topic a bit for your direct question, but have you checked out https://segment.com/ at all? You could potentially be doing all of these conversion calls with a single one from them. I could be completely wrong though.  



--
You received this message because you are subscribed to the Google Groups "Mura CMS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mura-cms-developers+unsub...@googlegroups.com.
To post to this group, send email to mura-cms-developers@googlegroups.com.

Greg Moser

unread,
Nov 16, 2015, 12:03:47 PM11/16/15
to mura-cms-...@googlegroups.com
I had not yet seen that, but it looks pretty cool.  Thanks for sharing.

-G

On Fri, Nov 13, 2015 at 9:32 PM, David Panzarella <da...@deven.io> wrote:
@Greg, this is completely off topic a bit for your direct question, but have you checked out https://segment.com/ at all? You could potentially be doing all of these conversion calls with a single one from them. I could be completely wrong though.  

On Fri, Nov 13, 2015 at 3:40 PM John Sieber <jsi...@adventurecycling.org> wrote:
Your are right, the default behaviour does make total sense.
-John


On Friday, November 13, 2015 at 4:35:51 PM UTC-7, Greg Moser wrote:
The hash thing surprised me as well, but if you think about it their policy it makes sense as one clicks on different anchor tags to navigate up and down a page, you wouldn't want to track different page views.  In fact there are TONS of docs online to add something like this to your 1-page app:

onHashChange() {
  ga.send(['trackPageview', window.location.hash]);
}

This is because in 1-page apps you are basically using the native hash functionality to produce routes and navigate to different 'pages'.

Thanks again for your feedback, and hopefully this all does help someone else in the future.

-Greg


--
You received this message because you are subscribed to the Google Groups "Mura CMS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mura-cms-develo...@googlegroups.com.
To post to this group, send email to mura-cms-...@googlegroups.com.

--
You received this message because you are subscribed to a topic in the Google Groups "Mura CMS" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/mura-cms-developers/fEc0-CZsybg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to mura-cms-develo...@googlegroups.com.
To post to this group, send email to mura-cms-...@googlegroups.com.

Greg Moser

unread,
Nov 17, 2015, 12:34:35 PM11/17/15
to Mura CMS
Matt,

I updated the core files to which it was still blowing away the action="?xxx=yyy" attribute in the form.  I then updated the site files and now I get an error (seen below).

I dumped the $ in standardHTMLTranslator, and it is just an empty string.  In that object the $ is being set by this on line 53

<cfset var $=arguments.event.getValue("MuraScope")>


Which leads me to believe that for some reason on the frontend, the MuraScope isn't being set in the event.  The admin still works fine.


500 Error

The siteConfig method was not found.

Either there are no methods with the specified method name and argument types or the siteConfig method is overloaded with argument types that ColdFusion cannot decipher reliably. ColdFusion found 0 methods that match the provided arguments. If this is a Java object and you verified that the method exists, use the javacast function to reduce ambiguity.

coldfusion.runtime.java.MethodSelectionException: The siteConfig method was not found.
	at coldfusion.runtime.java.ObjectHandler.findMethodUsingCFMLRules(ObjectHandler.java:383)
	at coldfusion.runtime.StructBean.invoke(StructBean.java:524)
	at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2461)
	at cfstandardHTMLTranslator2ecfc1737589986$funcTRANSLATE.runFunction(/Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/Translator/standardHTMLTranslator.cfc:92)
	at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
	at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
	at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:405)
	at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
	at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55)
	at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
	at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:518)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:660)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:469)
	at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2369)
	at cfpluginStandardEventWrapper2ecfc922388112$funcTRANSLATE.runFunction(/Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/plugin/pluginStandardEventWrapper.cfc:133)
	at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
	at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
	at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
	at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55)
	at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
	at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:655)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:444)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:414)
	at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2428)
	at cfstandardEventsHandler2ecfc694493306$funcSTANDARDTRANSLATIONHANDLER.runFunction(/Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/Handler/standardEventsHandler.cfc:87)
	at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
	at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
	at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:405)
	at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
	at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55)
	at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
	at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:518)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:660)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:469)
	at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2369)
	at coldfusion.tagext.lang.InvokeTag.doEndTag(InvokeTag.java:402)
	at cfpluginStandardEventWrapper2ecfc922388112$funcHANDLE.runFunction(/Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/plugin/pluginStandardEventWrapper.cfc:88)
	at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
	at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
	at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
	at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55)
	at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
	at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:655)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:444)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:414)
	at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2428)
	at cfstandardEventsHandler2ecfc694493306$funcSTANDARDDORESPONSEHANDLER.runFunction(/Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/Handler/standardEventsHandler.cfc:413)
	at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
	at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
	at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:405)
	at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
	at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55)
	at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
	at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:518)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:660)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:469)
	at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2369)
	at coldfusion.tagext.lang.InvokeTag.doEndTag(InvokeTag.java:402)
	at cfpluginStandardEventWrapper2ecfc922388112$funcHANDLE.runFunction(/Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/plugin/pluginStandardEventWrapper.cfc:88)
	at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
	at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
	at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
	at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55)
	at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
	at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:655)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:444)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:414)
	at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2428)
	at cfcontentServer2ecfc1997795596$funcDOREQUEST.runFunction(/Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/content/contentServer.cfc:785)
	at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
	at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
	at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:405)
	at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
	at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55)
	at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
	at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220)
	at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2655)
	at cfcontentServer2ecfc1997795596$funcPARSEURL.runFunction(/Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/content/contentServer.cfc:260)
	at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
	at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
	at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:405)
	at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
	at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55)
	at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
	at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220)
	at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2655)
	at cfcontentServer2ecfc1997795596$funcPARSEURLROOT.runFunction(/Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/content/contentServer.cfc:310)
	at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
	at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
	at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:405)
	at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
	at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55)
	at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
	at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:655)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:444)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:414)
	at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2428)
	at cfcontentServer2ecfc1997795596$funcHANDLEROOTREQUEST.runFunction(/Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/content/contentServer.cfc:653)
	at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
	at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
	at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
	at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55)
	at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
	at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:655)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:444)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:414)
	at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2428)
	at cfindex2ecfm1758190527.runPage(/Users/gregmoser/Projects/SlatwallCommerce/index.cfm:46)
	at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:244)
	at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:446)
	at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
	at coldfusion.filter.IpFilter.invoke(IpFilter.java:64)
	at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:430)
	at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48)
	at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
	at coldfusion.filter.PathFilter.invoke(PathFilter.java:112)
	at coldfusion.filter.LicenseFilter.invoke(LicenseFilter.java:30)
	at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:94)
	at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
	at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
	at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:58)
	at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
	at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
	at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62)
	at coldfusion.CfmServlet.service(CfmServlet.java:219)
	at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
	at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:422)
	at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:199)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:695)


Column: 0
ID: CF_STRUCTBEAN
Line: 92
Raw Trace: at cfstandardHTMLTranslator2ecfc1737589986$funcTRANSLATE.runFunction(/Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/Translator/standardHTMLTranslator.cfc:92)
Template: /Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/Translator/standardHTMLTranslator.cfc
Type: CFML


Column: 0
ID: CF_TEMPLATEPROXY
Line: 133
Raw Trace: at cfpluginStandardEventWrapper2ecfc922388112$funcTRANSLATE.runFunction(/Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/plugin/pluginStandardEventWrapper.cfc:133)
Template: /Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/plugin/pluginStandardEventWrapper.cfc
Type: CFML


Column: 0
ID: CF_TEMPLATEPROXY
Line: 87
Raw Trace: at cfstandardEventsHandler2ecfc694493306$funcSTANDARDTRANSLATIONHANDLER.runFunction(/Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/Handler/standardEventsHandler.cfc:87)
Template: /Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/Handler/standardEventsHandler.cfc
Type: CFML


Column: 0
ID: CFINVOKE
Line: 88
Raw Trace: at cfpluginStandardEventWrapper2ecfc922388112$funcHANDLE.runFunction(/Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/plugin/pluginStandardEventWrapper.cfc:88)
Template: /Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/plugin/pluginStandardEventWrapper.cfc
Type: CFML


Column: 0
ID: CF_TEMPLATEPROXY
Line: 413
Raw Trace: at cfstandardEventsHandler2ecfc694493306$funcSTANDARDDORESPONSEHANDLER.runFunction(/Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/Handler/standardEventsHandler.cfc:413)
Template: /Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/Handler/standardEventsHandler.cfc
Type: CFML


Column: 0
ID: CFINVOKE
Line: 88
Raw Trace: at cfpluginStandardEventWrapper2ecfc922388112$funcHANDLE.runFunction(/Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/plugin/pluginStandardEventWrapper.cfc:88)
Template: /Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/plugin/pluginStandardEventWrapper.cfc
Type: CFML


Column: 0
ID: CF_TEMPLATEPROXY
Line: 785
Raw Trace: at cfcontentServer2ecfc1997795596$funcDOREQUEST.runFunction(/Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/content/contentServer.cfc:785)
Template: /Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/content/contentServer.cfc
Type: CFML


Column: 0
ID: CF_UDFMETHOD
Line: 260
Raw Trace: at cfcontentServer2ecfc1997795596$funcPARSEURL.runFunction(/Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/content/contentServer.cfc:260)
Template: /Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/content/contentServer.cfc
Type: CFML


Column: 0
ID: CF_UDFMETHOD
Line: 310
Raw Trace: at cfcontentServer2ecfc1997795596$funcPARSEURLROOT.runFunction(/Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/content/contentServer.cfc:310)
Template: /Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/content/contentServer.cfc
Type: CFML


Column: 0
ID: CF_TEMPLATEPROXY
Line: 653
Raw Trace: at cfcontentServer2ecfc1997795596$funcHANDLEROOTREQUEST.runFunction(/Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/content/contentServer.cfc:653)
Template: /Users/gregmoser/Projects/SlatwallCommerce/requirements/mura/content/contentServer.cfc
Type: CFML


Column: 0
ID: CF_TEMPLATEPROXY
Line: 46
Raw Trace: at cfindex2ecfm1758190527.runPage(/Users/gregmoser/Projects/SlatwallCommerce/index.cfm:46)
Template: /Users/gregmoser/Projects/SlatwallCommerce/index.cfm
Type: CFML


On Monday, November 16, 2015 at 9:03:47 AM UTC-8, Greg Moser wrote:
I had not yet seen that, but it looks pretty cool.  Thanks for sharing.

-G
On Fri, Nov 13, 2015 at 9:32 PM, David Panzarella <da...@deven.io> wrote:
@Greg, this is completely off topic a bit for your direct question, but have you checked out https://segment.com/ at all? You could potentially be doing all of these conversion calls with a single one from them. I could be completely wrong though.  

On Fri, Nov 13, 2015 at 3:40 PM John Sieber <jsi...@adventurecycling.org> wrote:
Your are right, the default behaviour does make total sense.
-John


On Friday, November 13, 2015 at 4:35:51 PM UTC-7, Greg Moser wrote:
The hash thing surprised me as well, but if you think about it their policy it makes sense as one clicks on different anchor tags to navigate up and down a page, you wouldn't want to track different page views.  In fact there are TONS of docs online to add something like this to your 1-page app:

onHashChange() {
  ga.send(['trackPageview', window.location.hash]);
}

This is because in 1-page apps you are basically using the native hash functionality to produce routes and navigate to different 'pages'.

Thanks again for your feedback, and hopefully this all does help someone else in the future.

-Greg


--
You received this message because you are subscribed to the Google Groups "Mura CMS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mura-cms-developers+unsub...@googlegroups.com.
To post to this group, send email to mura-cms-developers@googlegroups.com.

--
You received this message because you are subscribed to a topic in the Google Groups "Mura CMS" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/mura-cms-developers/fEc0-CZsybg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to mura-cms-developers+unsub...@googlegroups.com.
To post to this group, send email to mura-cms-developers@googlegroups.com.

Greg Moser

unread,
Nov 17, 2015, 1:29:18 PM11/17/15
to Mura CMS
Matt,

I've dug a lot deeper into the error, and it would appear that it has to do with the splitContexts() function in the pluginStandardEventWrapper.cfc

Right now the code reads as this:

<cfif getMetaData(arguments.context).name eq "mura.MuraScope">

  <cfset contexts.muraScope=arguments.context>

  <cfset contexts.event=arguments.context.event()>

<cfelse>

  <cfset contexts.muraScope=arguments.context.getValue("muraScope")>

  <cfset contexts.event=arguments.context>

</cfif>

However, in my testing (CF10 on my local).  the value of getMetaData(arguments.context).name was actually "savaWRM.requirements.mura.MuraScope"

As you can imagine this means that it is going into the "else" case when it should be handled by the first half.

My fix which was tested and fixed the problem for me... was to change the conditional to be this:

<cfif listLast(getMetaData(arguments.context).name, '.') eq "MuraScope">


Let me know what you think.

-Greg

Matt Levine

unread,
Nov 17, 2015, 2:19:13 PM11/17/15
to Mura CMS
Wow, sorry you had to dig so deep.  Your fix seems perfectly appropriate.  I'll put it in the next build.

Thanks,
Matt

Greg Moser

unread,
Nov 17, 2015, 2:34:46 PM11/17/15
to mura-cms-...@googlegroups.com
Cool, I sent over a pull request.

--
You received this message because you are subscribed to a topic in the Google Groups "Mura CMS" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/mura-cms-developers/fEc0-CZsybg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to mura-cms-develo...@googlegroups.com.
To post to this group, send email to mura-cms-...@googlegroups.com.

Greg Moser

unread,
Nov 18, 2015, 3:10:46 PM11/18/15
to Mura CMS
===URGENT===

Matt,

I believe that we introduced a new bug.  Now if your form doesn't have an action defined for it... it renders like this:

<form id="frm12DE34915056900003E357BBCAE024B6" class="the-subscribe-form" action="undefined#frm12DE34915056900003E357BBCAE024B6" method="post">

You will notice that where it should have nocache=1 it now says "undefined"

I fear that for all of the existing forms out there, unexpected behavior will happen if they aren't getting that nocache=1 added to the action.

-Greg


On Tuesday, November 17, 2015 at 11:34:46 AM UTC-8, Greg Moser wrote:
Cool, I sent over a pull request.
On Tue, Nov 17, 2015 at 11:19 AM, Matt Levine <matt....@blueriver.com> wrote:
Wow, sorry you had to dig so deep.  Your fix seems perfectly appropriate.  I'll put it in the next build.

Thanks,
Matt

--
You received this message because you are subscribed to a topic in the Google Groups "Mura CMS" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/mura-cms-developers/fEc0-CZsybg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to mura-cms-developers+unsub...@googlegroups.com.
To post to this group, send email to mura-cms-developers@googlegroups.com.

Matt Levine

unread,
Nov 19, 2015, 5:54:27 PM11/19/15
to Mura CMS
Please update your core files and retest. It should be fixed now.

-Matt
Reply all
Reply to author
Forward
0 new messages