Sen, Tema'nın kısmi dizin ya da sadece herhangi bir sayfa/düzeni doğrudan eklemek için bileşen Partials dizinde form'ın HTML ya ekleyebilir ... sonuçta gibi nasıl olduğunu. Gerçekten önemli değil.
Partials
{% partial "contact-form.htm" %}
Ya
{% partial __SELF__ ~ "::contact-form.htm" %} // reference to component's partial
Ekim ayı AJAX çerçeve
dahil hakkında daha fazlasını okuyun JavaScript API kullanımını gerektirir veya veri bağlıyor. Örnekte yapıyor ama daha önce komponente Adı eklemeyi unuttuğu nasıl gayet onSend Handler
formu bileşeni en kısmi ise
SendEmails
= Bileşen Adı veya takma sayfa verilen
data-request="SendEmails::onSend"
sadece ,
veya JavaScript API ile {{ __SELF__ }}::onSend
kullanmak sadece yapın:
:
$.request('onSend', {
data:{email:email, message:message, name:name},
success: function (data) {
//
},
error:function(e){
//
}
});
sonra isteğini ele bileşeninde bir işlev onSend
oluşturmak
<?php namespace AuthorName\PluginName\Components;
use Cms\Classes\ComponentBase;
use Mail;
use Url;
use Input;
use Request;
use Response;
use ApplicationException;
use Validator;
use ValidationException;
class SendEmails extends ComponentBase
{
public function onSend()
{
if (Request::ajax()) {
try {
$data = post();
// Quick Validation rules for E-mail, Name & Message
if (!array_key_exists('email', $data)) {
$data['email'] = post('email');
}
if (!array_key_exists('norad', $data)) {
$data['message'] = post('message');
}
if (!array_key_exists('name', $data)) {
$data['name'] = post('name');
}
$rules = [
'email' => 'required|email|between:6,255',
'name' => 'required|between:4,255'
//..
];
$validation = Validator::make($data, $rules);
if ($validation->fails()) {
throw new ValidationException($validation);
}
// Check if E-mail Template Exists @ "author.plugin::mail.templatename"
if (View::exists("author.plugin::mail.templatename")) {
Mail::send("author.plugin::mail.templatename", $data, function ($message) {
$message->from('[email protected]', 'Site Name');
$message->to($data['email'], $data['name']);
$message->subject('Subject here..');
});
// Handle Erros
if (count(Mail::failures()) > 0) {
echo "Failed to send Mail "; // Handle Failure
} else {
// Mail sent
echo "Mail Sent!"; // Handle Success
}
}
} catch (Exception $ex) {
throw $ex;
}
}
}
}
Sadece form göndermek için eklenti yapmak iyi bir fikir değil bence. Bu çok önemsiz bir görevdir, böylece Ekim arka uç CMS bölümünü kod eklemek için kullanabilirsiniz .. –