0

Ok i have finally worked out the issue about running php functions in smarty. But now how can i call that function with a smarty variable as a parameter? Here's the code.

This is in the plugins folder.

function smarty_function_getcommission( $params, &$smarty )
{
    include 'getcommission.php';
    getcommission({$affiliate.id});
}

?>

And the php is the following one

<?php
function getCommission({$affiliate.id})
{
    $database="XXXXXXXXXXX";
    mysql_connect ("XXXXXXXXXXXXX");
    @mysql_select_db($database) or die( "Unable to select database");

 $data = mysql_query("SELECT * FROM hb_aff WHERE id = {$affiliate.id}") 
 or die(mysql_error()); 
 while($info = mysql_fetch_array( $data )) 
 { 
 Print $info['total_commissions'];
 } 
}
 ?> 

I call the function using {getcommission}. However when i try to add the {$affiliate.id} as a parameter for the function i get an error. Any ideas what im doing wrong?

Need to call it in here

value="{    }" 

Tried {getcommission({$affiliate.id})} but nothing

3
  • 1
    how do you call it inside your template? Inside your tpl, you should be using something like this: {getcommision id = $affiliate.id}. Then, this id will be inside $params, in your smarty_function_getcommision Commented Aug 13, 2013 at 13:23
  • Nope error "syntax error: unrecognized tag: {getcommision id = $affiliate.id" :/ anything that has to do with the $params? Should that change maybe? Commented Aug 13, 2013 at 13:26
  • please add in your question the exact code you are using inside the template file Commented Aug 13, 2013 at 13:28

1 Answer 1

1

Figured it out eventually. Had to use

value="{getcommission id=$affiliate.id}"

Like periklis suggested but somehow the $affiliate.id in the php function side was conflicting.

Changed it to $idinput and worked fine.

ALSO had to change the function to this

function smarty_function_getcommission( $params, &$smarty )
{
    include 'getcommission.php';
    getcommission($params['id']);
}

Thanks for your help everyone

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.