有谁知道如何在prestashop的.tpl
文件中添加php代码..我尝试了很多但找不到任何解决方案..我想在我的.tpl
文件中添加邮件功能
这是功能
<?php
$name=$_REQUEST["name"];
$email=$_REQUEST["email"];
$matter=$_REQUEST["matter"];
$subject=$name."has shared a weblink";
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$contactMsg = '
<html>
<head>
<title>Tell A Friend</title>
</head>
<body>
<table>
<tr>
<td>E-mail: '.$email.' </td>
</tr>
<tr>
<td>Comment: '.$matter.' </td>
</tr>
</table>
</body>
</html>
';
$headers .= "from:abcd" . "\r\n";
$headers .= "To: Info <info@abcd.in";
$headers .= "reply-to:".$email."\r\n";
$headers .= "Cc:".$email."\r\n";
$headers .= 'Bcc: ' . "\r\n";
if(mail($email, $subject, $contactMsg, $headers))
{
$_REQUEST = array();
$error.="Mail Sent Successfully";
}
else
{
$error.="Error Mail Sent Fail!";
//
}
?>
我尝试在{php}
{/php}
块中编写代码但是无法帮助
以及如何查看error log
prestashop
答案 0 :(得分:1)
您可以编辑控制器文件,例如。如果你想在cms页面中添加表单,你必须编辑这个 /controller/CMSController.php
编辑此
public function displayContent()
{
parent::displayContent();
self::$smarty->display(_PS_THEME_DIR_.'cms.tpl');
}
用这个
public function displayContent()
{
IF ($_POST['submit_form']==1){
// here submit action mail() for example
}
parent::displayContent();
self::$smarty->display(_PS_THEME_DIR_.'cms.tpl');
}
答案 1 :(得分:0)
最好在模块控制器中添加php
函数类等,
{php}
因某种原因而被折旧,因为它允许不良做法。 Smarty建议将包含的脚本放入PHP逻辑(controllers,classes,functions)
答案 2 :(得分:0)
在Prestashop的somme版本中关闭.tpl文件中{php} {/ php}标签的使用
使用Prestashop 1.5.4.1我遇到了同样的问题 要打开它,请在文件config / smarty.config.inc.php中进行更改:
找到这些行(第27行到第33行)
...
define('_PS_SMARTY_DIR_', _PS_TOOL_DIR_.'smarty/');
require_once(_PS_SMARTY_DIR_.'Smarty.class.php');
global $smarty;
$smarty = new Smarty();
$smarty->setCompileDir(_PS_CACHE_DIR_.'smarty/compile');
...
将其更改为
...
define('_PS_SMARTY_DIR_', _PS_TOOL_DIR_.'smarty/');
require_once(_PS_SMARTY_DIR_.'SmartyBC.class.php');
global $smarty;
$smarty = new SmartyBC();
$smarty->setCompileDir(_PS_CACHE_DIR_.'smarty/compile');
...
......很快,使用SmartyBC.class.php而不是Smarty.class.php
(警告:在模板文件中使用{php} {/ php}标签在Prestashop中已弃用!)