Проблема в том, что вы не можете использовать вызов метода, например, ваш $this->lang->line('link_sendactivation')
внутри объявления строки.
Вам необходимо либо получить возвращаемое значение этого метода заранее и хранить его во временной переменной:
$tmp = $this->lang->line('link_sendactivation');
$returnValue = "<a onclick='demosuccess(".chunk_split(base64_encode($details['clientid'])).",".chunk_split(base64_encode($details['email'])).",1)' >$tmp</a>";
Или вы конкатенации, что возвращаемое значение с другими частями (так же, как вы делали это с chunk_split
):
$returnValue = "<a onclick='demosuccess(".chunk_split(base64_encode($details['clientid'])).",".chunk_split(base64_encode($details['email'])).",1)' >".$this->lang->line('link_sendactivation')."</a>";
Или вы используете sprintf
как Гордон предложил:
$returnValue = sprintf("<a onclick='demosuccess(%s,%s,1)' >%s</a>",
chunk_split(base64_encode($details['clientid'])),
chunk_split(base64_encode($details['email'])),
$this->lang->line('link_sendactivation'));
Более того, вы, вероятно, забыли процитировать выделенные значения Base-64 в JavaScript. Вы можете использовать json_encode
для этого:
$returnValue = sprintf("<a onclick='demosuccess(%s,%s,1)' >%s</a>",
json_encode(chunk_split(base64_encode($details['clientid']))),
json_encode(chunk_split(base64_encode($details['email']))),
$this->lang->line('link_sendactivation'));
Какая ошибка вы получаете? –
* (tipp) * [sprintf возвращает форматированную строку] (http://uk2.php.net/manual/en/function.sprintf.php) – Gordon
Почему вы разделяете значение Base-64 на куски? – Gumbo