邮件设置:config/mail.php;设置为smtp。
创建插件Contact
打开编辑器,在contact插件目录下创建components目录,并在目录下创建表单文件:ContactForm.php
定义组件
File:plugins\raiseinfo\contact\components\ContactForm.php
<?php
namespace Raiseinfo\Contact\Components;
use Cms\Classes\ComponentBase;
class ContactForm extends ComponentBase
{
public function componentDetails()
{
// TODO: Implement componentDetails() method.
return [
'name' => 'Contact Form',
'description' => 'Simple contact form'
];
}
}
File:pluginsraiseinfocontactPlugin.php
<?php namespace Raiseinfo\Contact;
use System\Classes\PluginBase;
class Plugin extends PluginBase
{
public function registerComponents()
{
return [
'Raiseinfo\Contact\Components\ContactForm' => 'contactform',
];
}
public function registerSettings()
{
}
}
增加新页面:
查看页面前端,确认已经生效,只是插件没有定义htm,所以没有内容可以显示。
下面编辑表单内容:
File:plugins\raiseinfo\contact\components\contactform\default.htm
<form action="" class="form-group">
<label for="">姓名:</label>
<input type="text" name="name" class="form-control">
<label for="">邮件地址:</label>
<input type="text" name="email" class="form-control">
<label for="">信息:</label>
<textarea name="content" id="" cols="30" rows="10" class="form-control"></textarea>
<button type="submit" class="btn btn-success form-control">发送</button>
</form>
实现功能:
上面的表单没有功能,甚至都没有设置表单提交的目标是什么,现在首先实现表单提交的方法:
File:plugins\raiseinfo\contact\components\ContactForm.php
<?php
namespace Raiseinfo\Contact\Components;
use Cms\Classes\ComponentBase;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Mail;
class ContactForm extends ComponentBase
{
public function componentDetails()
{
return [
'name' => 'Contact Form',
'description' => 'Simple contact form'
];
}
public function onSend()
{
$vars = [
'name' => Input::get('name'),
'email' => Input::get('email'),
'content' => Input::get('content')
];
// views/mail/message/htm
Mail::send('raiseinfo.contact::mail.message', $vars, function($message) {
$message->to('tian5258@gmail.com', 'Admin Person');
$message->subject('从联系人表单提交的邮件');
});
}
}
其中'raiseinfo.contact::mail.message'是邮件模板,我们需要创建邮件模板目录及文件,结构如下:
plugins\raiseinfo\contact\views
plugins\raiseinfo\contact\views\mail
plugins\raiseinfo\contact\views\mail\message.htm
编辑模板:
File:plugins\raiseinfo\contact\views\mail\message.htm
<p>
You got a new message from {{ name }} at {{ email }}
</p>
<strong> Message </strong>
<p>
{{ content }}
</p>
最后修改form的action,这里我们采用data方法
File: plugins\raiseinfo\contact\components\contactform\default.htm
<form data-request="onSend">
<label>姓名:</label>
<input type="text" name="name" class="form-control">
<label>邮件地址:</label>
<input type="email" name="email" class="form-control">
<label>信息:</label>
<textarea name="content" class="form-control"></textarea>
<button type="submit" class="btn btn-success form-control">发送</button>
</form>
测试
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。