web-mooc/upload/update_1.6/sources/app/Http/Controllers/ContactController.php
2025-10-30 10:32:19 +07:00

72 lines
2.6 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Mail\Mailer;
use App\Models\Contact;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Session;
class ContactController extends Controller
{
public function index(Request $request)
{
Contact::where('has_read', null)->update(['has_read' => 1]);
if($request->search){
$contact = Contact::where('email', 'like', "%$request->search%")
->orWhere('address', 'like', "%$request->search%")
->orWhere('phone', 'like', "%$request->search%")
->orWhere('message', 'like', "%$request->search%")
->orWhere('name', 'like', "%$request->search%")->paginate(20);
}else{
$contact = Contact::paginate(20);
}
$page_data['contacts'] = $contact;
return view('admin.contact.index', $page_data);
}
public function contact_delete($id)
{
Contact::where('id', $id)->delete();
Session::flash('success', get_phrase('Contact delete successfully'));
return redirect()->back();
}
public function reply(Request $request)
{
$email = Contact::where('id', $request->send_to)->first();
//$this->send_mail($email->email, $request->subject, $request->reply_message);
Mail::raw($request->reply_message, function ($message) use ($email, $request){
$message->to($email->email)
->subject(get_settings('system_title'));
});
$data['replied'] = 1;
$email = Contact::where('id', $request->send_to)->update($data);
Session::flash('success', get_phrase('Email sent successfully'));
return redirect()->route('admin.contacts');
}
public function send_mail($user_email, $subject, $description)
{
config([
'mail.mailers.smtp.transport' => get_settings('protocol'),
'mail.mailers.smtp.host' => get_settings('smtp_host'),
'mail.mailers.smtp.port' => get_settings('smtp_port'),
'mail.mailers.smtp.encryption' => get_settings('smtp_crypto'),
'mail.mailers.smtp.username' => get_settings('smtp_from_email'),
'mail.mailers.smtp.password' => get_settings('smtp_pass'),
'mail.from.address' => get_settings('smtp_from_email'),
'mail.from.name' => get_settings('smtp_user'),
]);
$mail_data['subject'] = $subject;
$mail_data['description'] = $description;
$send = Mail::to($user_email)->send(new Mailer($mail_data));
return $send;
}
}