我正在编写自定义联系表单,此表单是标准的POST表单。 表单看起来像这样:
<form action="/path/to/my/phpfile.php" method="post" id="form">
<input type="email" id="email" name="email"/>
<input type="text" id="name" name="name"/>
<input type="submit" value="submit"/>
</form>
现在,我的PHP文件看起来像这样:
<?php
$email_from = $_POST['email'];
$fromname = $_POST['name'];
$email_to = 'test@email.com';
$email_subject = 'Subject text....';
$email_message = 'Email message.....';
//Send the email
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);
header('location: http://www.mywebsite.com/destination/');
?>
所以,我想要做的是将成功通知/消息显示为标准的Joomla系统消息。
我注意到Joomla消息前端包含在我的模板中的这个容器中:
<div id="system-message-container">
<div id="system-message">
<div class="alert alert-notice"><a class="close" data-dismiss="alert">×</a>
<h4 class="alert-heading">Header text...</h4>
<div>
<p>Message....</p>
</div>
</div>
</div>
</div>
问题是,如何在PHP文件中创建一个代码,将系统消息传输到Joomla中的目标页面? 我正在使用Joomla v.3.2.1
答案 0 :(得分:2)
此外,如果您要将用户发送到仍在您的Joomla中的位置!网站,你可以显示一个Joomla!系统消息仍然可以使用Joomla的内置重定向功能进行重定向,即在用户到达目标页面时显示消息。像这样:
// give joomla the message to display...
$app = JFactory::getApplication();
$app->enqueueMessage('A message for the user');
// ...and still do a redirect
$app->redirect('http://www.myJoomlaSite.com/index.php?option=com_whatever');
因此,只要页面在您的Joomla中,您的用户即使在进行重定向之后仍会在目标页面上收到您的消息!站点
答案 1 :(得分:0)
默认情况下,用户在提交表单joomla后单击提交底部转到'/path/to/my/phpfile.php'方向。当你在这个方向回应一些文字时,这个文字向用户显示。
答案 2 :(得分:0)
您可以使用第三方扩展程序,将您的php代码显示为文章中的模块。这样你就可以编写自己的成功通知。
以下是为您完成工作的扩展程序列表:http://extensions.joomla.org/extensions/core-enhancements/coding-a-scripts-integration/custom-code-in-content
我会尝试不使用Jumi,它可以工作,但在我的情况下,它创造了一些错误。
答案 3 :(得分:0)
我终于找到了如何利用Joomla通知消息系统中的构建。事实证明这很简单。
要显示系统消息,您只需使用以下其中一行:
//Standard message
JFactory::getApplication()->enqueueMessage($mymessage);
//Notice message
JError::raiseNotice(100, $mymessage);
//Warning message
JError::raiseWarning( 100, $mymessage );
所以我在我的情况下做的是发送一个URL变量,例如?消息=成功 在我的模板文件中,我只是做了一个这样的if语句:
if($_GET["message"] == "success") {
$displaymsg = "My message text..";
JFactory::getApplication()->enqueueMessage($displaymsg);
}
我希望这能帮助处于同样情况的其他人。