2

I'm wanting to use a Freeform across multiple MSM sites, using a low variable to change the admin notifier for each site.

Currently the code is as follows:-

{exp:freeform:composer inline_errors="yes" admin_notify="{var_email}" form_name="contact" composer_template_name="acme" return="{page_uri}/thanks"}

However the template isn't parsing {var_email} in time on either "Early Parsing" or Normal.

Does anybody know if this is possible?

Cheers!

  • Are you sure it doesn't work with early parsing enabled on that variable? It most definitely should. – Derek Hogue Jan 31 '13 at 13:30
  • Is the var_email variable coming from the same site or a different site? If it's not from the same site, you can't use the variable syntax, but you need the exp:low_variables:single tag to get to it. If it's from the same site, it should work with Early Parsing enabled. Check the template debugger to see what the actual tag is when it's about to be parsed. – Low Feb 1 '13 at 8:51
  • Thanks for the responses so far. They're on the same site, and Early Parsing is definitely enabled. I checked that one a good few times. – Mutual Feb 1 '13 at 15:43
  • 1
    it's definitely possible, I'm doing the exact same thing on techatwork.event-fulreg.co.uk/registration that uses gist.github.com/8a5d2acf348d3215986c - what does the template debugger say? – Steven Grant Feb 4 '13 at 17:17
1

First, try to enable Early Parsing on the Low Variable in question.

If that doesn't work, then it's because by the time Freeform gets it the value will still be {var_email}.

On a related note, I actually requested the use of {webmaster_email} as a feature to SolSpace a while back: http://www.solspace.com/forums/viewthread/966/

Not sure if they have fixed this or not but this is how I hacked it to work back then: http://www.solspace.com/forums/viewthread/966/#41796

Something similar will work for you if you don't have an issue with hacking the core. Instead of fetching {webmaster_email} from the config you need to fetch the global variable named "var_email". This may or may not have been loaded at the time, so add this function to fetch it:

private function get_gv($variable_name) { if(!isset($this->EE->config->_global_vars[$variable_name])) { $q = $this->EE->db->get_where('global_variables', array('variable_name' => $variable_name)); if($q->num_rows() > 0) { return $q->row('variable_data'); } } else { return $this->EE->config->_global_vars[$variable_name]; } }

So (in that version of Freeform) this would be:

if($this->params['ee_notify'] == '{var_email}') { $this->params['ee_notify'] = $this->get_gv('var_email'); } 

Good luck :-)

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.