PDA

View Full Version : Make it easier to use local variables and defined values


neo314
06-03-2009, 06:42 PM
One thing I struggle with often is the difficulty in working with the GUI and adding expressions, local variables, and defined values.

I often have to add them to an array WA will recognize like POST or GET, but I have to worry about whether an extension will read that array and forward that information such as passing all of the get array as a query string when I don't want that.

I have taken to adding the values to the COOKIE array without actually setting the cookie, but I would really like to add local variables like $myredirect or defined values like SSL_SERVER [ from define("SSL_SERVER","http://my.ssl.server") so I can put that in a config file].

And a tutorial or flexibility to add expressions easily. I was just trying to make a change in the PayPal Express checkout behavior to go from:

<?php echo ("http://".(isset($_SERVER["SERVER_NAME"]))?$_SERVER["SERVER_NAME"]:"")."/test.php?txn=complete"; ?>to

<?php echo (!in_array($_SERVER['SERVER_ADDR'],$exempt_addr)?"https://":"http://").((isset($_SERVER["SERVER_NAME"]))?$_SERVER["SERVER_NAME"]:"")."/test.php?txn=complete"; ?>I think it didn't like $exempt_addr, so the GUI accepted my input, but the code came out:


"".((isset($_SERVER["SERVER_NAME"]))?$_SERVER["SERVER_NAME"]:"") .""

neo314
06-03-2009, 07:11 PM
I may have answered my own question/request here...

I just tried adding

<?php echo (USE_SERVER."/test.php?txn=complete"); ?> and

<?php echo ((!in_array($_SERVER['SERVER_ADDR'],$exempt_addr)?"https://":"http://").((isset($_SERVER["SERVER_NAME"]))?$_SERVER["SERVER_NAME"]:"")."/test.php?txn=cancel"); ?>

both of which preserved the code this time in the eCart Authentication for PayPal Express Checkout GUI and the code was preserved.

It seems that as long as the "echo" is completely enclosed in parenthesis the expression will be preserved.

I know I have encountered this often, and I am not sure this is true for every WA GUI. Will this work consistently?

Ray Borduin
06-04-2009, 08:14 AM
Yes, this will work consistantly.

<?php echo (USE_SERVER."/test.php?txn=complete"); ?>

or

<?php echo (USE_SERVER); ?>/test.php?txn=complete

would work in any WA interface that accepts dynamic values.

neo314
06-04-2009, 11:31 AM
Thanx Ray,

Consider this a feature request then to be able to use these values and that notation in triggers.

Ray Borduin
06-04-2009, 01:52 PM
In triggers? You mean in server side values? I'm not sure how that would work as a trigger.

neo314
06-04-2009, 03:39 PM
Use of local variables in triggers:

if ($IsValid) {

Defined Values:

if (USE_SERVER) {

Expressions:

if ($IsValid > 3) {

Even more complex expressions:

if ((isset($IsValid)) && ($NumTries < 3)) {

I was going to ask for a wish list for eCart that failed transactions redirect the same way that successful ones do instead of redirecting instantly and suggest that transaction status be added to the drop down for triggers.

Where this recently came up for me was using PayPal Direct Payment. After the transaction, I want to log the information/response so I can see what happened if there is a problem, so I had to set no redirect for success or failure and copy the redirect code to the bottom of the code block. Then my update for the order record is slightly different for success or failure, so I had to create a trigger value and add it to an array WA will recognize (GET or COOKIE for example) in order to trigger an update on success and a different update on failure.