07-26-2023, 11:39 PM
I need help fixing a small problem with my php script to work on php7.2, the code below works on php7.0 but doesn't work on php7.1 or 7.2 :(
Error showing on debug:
ArgumentCountError: Too few arguments to function smarty_function_gravatar(), 1 passed and exactly 2 expected in public_html/includes/hooks/custom-function.php: Line 91
Stack trace:
#0 /public_html/includes/hookfunctions.php(0): smarty_function_gravatar(Array)
#1 /public_html/includes/clientareafunctions.php(0): run_hook('ClientAreaPage', Array)
#2 /public_html/login.php(0): outputClientArea('login', false, Array)
#3 /public_html/member/viewticket.php(0): unknown()
#4 {main}
My original code on line 91:
function smarty_function_gravatar($params, &$smarty) {
$email = (isset($params['email']) ? trim(strtolower($params['email'])) : '');
$rating = (isset($params['rating']) ? $params['rating'] : 'R');
$url = "https://www.gravatar.com/avatar/".md5($email) . "?r=".$rating;
if(isset($params['default']))
$url .= "&d=".urlencode($params['default']);
if(isset($params['size']))
$url .= "&s=".$params['size'];
if(isset($params['assign'])) {
$smarty->assign($params['assign'], $url);
return;
}
return $url;
}
---
On template .tpl
<img src="{gravatar email="{if $reply.name eq 'Admin 1'}[email protected]{elseif $reply.name eq 'Admin 2'}[email protected]{elseif $reply.name eq 'Admin 3'}[email protected]{elseif $reply.name eq 'Admin 4'}[email protected]{/if}" size="140"}" height="60" width="60">
{elseif $reply.contactid} <img src="{gravatar email="$replyemail" size="140"}" height="60" width="60">
{elseif $reply.userid}
<img src="{gravatar email="$replyemail" size="140" default="/default-avatar.png"}" height="60" width="60">
{else}
<img src="{gravatar email="$replyemail" size="140" default="/default-avatar.png"}" height="60" width="60">
Error showing on debug:
ArgumentCountError: Too few arguments to function smarty_function_gravatar(), 1 passed and exactly 2 expected in public_html/includes/hooks/custom-function.php: Line 91
Stack trace:
#0 /public_html/includes/hookfunctions.php(0): smarty_function_gravatar(Array)
#1 /public_html/includes/clientareafunctions.php(0): run_hook('ClientAreaPage', Array)
#2 /public_html/login.php(0): outputClientArea('login', false, Array)
#3 /public_html/member/viewticket.php(0): unknown()
#4 {main}
My original code on line 91:
function smarty_function_gravatar($params, &$smarty) {
$email = (isset($params['email']) ? trim(strtolower($params['email'])) : '');
$rating = (isset($params['rating']) ? $params['rating'] : 'R');
$url = "https://www.gravatar.com/avatar/".md5($email) . "?r=".$rating;
if(isset($params['default']))
$url .= "&d=".urlencode($params['default']);
if(isset($params['size']))
$url .= "&s=".$params['size'];
if(isset($params['assign'])) {
$smarty->assign($params['assign'], $url);
return;
}
return $url;
}
---
On template .tpl
<img src="{gravatar email="{if $reply.name eq 'Admin 1'}[email protected]{elseif $reply.name eq 'Admin 2'}[email protected]{elseif $reply.name eq 'Admin 3'}[email protected]{elseif $reply.name eq 'Admin 4'}[email protected]{/if}" size="140"}" height="60" width="60">
{elseif $reply.contactid} <img src="{gravatar email="$replyemail" size="140"}" height="60" width="60">
{elseif $reply.userid}
<img src="{gravatar email="$replyemail" size="140" default="/default-avatar.png"}" height="60" width="60">
{else}
<img src="{gravatar email="$replyemail" size="140" default="/default-avatar.png"}" height="60" width="60">