diff --git a/app/Http/Controllers/ClientController.php b/app/Http/Controllers/ClientController.php
index 11127a6..eb41d96 100644
--- a/app/Http/Controllers/ClientController.php
+++ b/app/Http/Controllers/ClientController.php
@@ -2,7 +2,10 @@
namespace App\Http\Controllers;
+use App\Models\Comment;
+use App\Models\Customer;
use App\Models\Post;
+use App\Models\User;
use Illuminate\Http\Request;
use Spatie\Tags\Tag;
@@ -29,4 +32,44 @@ class ClientController extends Controller
$tag = Tag::where('slug->'.config('app.locale'),'like',$slug)->first();
return $tag;
}
+
+
+ public function submitComment(Request $request){
+ $request->validate([
+ 'commentable_type' => ['required','string','min:5'],
+ 'commentable_id' => ['required','integer'],
+ 'message' => ['required','string','min:5'],
+ 'parent_id' => ['nullable','integer'],
+ ]);
+
+ $comment = new Comment();
+ if (!auth()->check() && !auth('customer')->check()){
+ $request->validate([
+ 'name' => ['required','string','min:2'],
+ 'email' => ['required','email'],
+ ]);
+ $comment->name = $request->name;
+ $comment->email = $request->email;
+ $comment->status = 0;
+ }else{
+ if (auth()->check() ){
+ $comment->commentator_type = User::class;
+ $comment->commentator_id = auth()->id();
+ $comment->status = 1;
+ }else{
+ $comment->commentator_type = Customer::class;
+ $comment->commentator_id = auth('customer')->id();
+ $comment->status = 0;
+ }
+ }
+
+ $comment->parent_id = $request->input('parent_id',null);
+ $comment->body = $request->input('message');
+ $comment->commentable_type = $request->input('commentable_type');
+ $comment->commentable_id = $request->input('commentable_id');
+ $comment->ip = request()->ip();
+ $comment->save();
+
+ return redirect()->back()->with(['message' => __('Your comment has been submitted')]);
+ }
}
diff --git a/app/Models/Comment.php b/app/Models/Comment.php
index 1714242..bada68d 100644
--- a/app/Models/Comment.php
+++ b/app/Models/Comment.php
@@ -16,7 +16,7 @@ class Comment extends Model
public function children()
{
- return $this->hasMany(Comment::class, 'sub_comment_id');
+ return $this->hasMany(Comment::class, 'parent_id');
}
public function parent()
diff --git a/app/Models/Part.php b/app/Models/Part.php
index 9419a48..4e46bc5 100644
--- a/app/Models/Part.php
+++ b/app/Models/Part.php
@@ -10,19 +10,23 @@ class Part extends Model
use HasFactory;
- public function getBlade(){
- $className= ucfirst($this->part);
+ public function getBlade()
+ {
+ $className = ucfirst($this->part);
$handle = "\\Resources\\Views\\Segments\\$className";
$handle::onMount($this);
- return 'segments.'.$this->segment.'.'.$this->part.'.'.$this->part;
+ return 'segments.' . $this->segment . '.' . $this->part . '.' . $this->part;
}
- public function getBladeWithData(){
- $className= ucfirst($this->part);
+
+ public function getBladeWithData($item = null)
+ {
+ $className = ucfirst($this->part);
$handle = "\\Resources\\Views\\Segments\\$className";
- return ['blade' => 'segments.'.$this->segment.'.'.$this->part.'.'.$this->part, 'data' => $handle::onMount($this)];
+ return ['blade' => 'segments.' . $this->segment . '.' . $this->part . '.' . $this->part, 'data' => $handle::onMount($this, $item)];
}
- public function area(){
+ public function area()
+ {
return $this->belongsTo(Area::class);
}
}
diff --git a/config/auth.php b/config/auth.php
index 0ba5d5d..78a2dda 100644
--- a/config/auth.php
+++ b/config/auth.php
@@ -40,6 +40,10 @@ return [
'driver' => 'session',
'provider' => 'users',
],
+ 'customer' => [
+ 'driver' => 'session',
+ 'provider' => 'customers',
+ ],
],
/*
@@ -65,6 +69,11 @@ return [
'model' => env('AUTH_MODEL', App\Models\User::class),
],
+ 'customers' => [
+ 'driver' => 'eloquent',
+ 'model' => App\Models\Customer::class,
+ ],
+
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',
@@ -97,6 +106,12 @@ return [
'expire' => 60,
'throttle' => 60,
],
+ 'customers' => [
+ 'provider' => 'customers',
+ 'table' => 'password_resets',
+ 'expire' => 999999,
+ 'throttle' => 60,
+ ],
],
/*
diff --git a/resources/js/client-custom/safeForm.js b/resources/js/client-custom/safeForm.js
new file mode 100644
index 0000000..194a691
--- /dev/null
+++ b/resources/js/client-custom/safeForm.js
@@ -0,0 +1,8 @@
+window.addEventListener('load',function () {
+ setTimeout(()=>{
+ document.querySelectorAll('.safe-from')?.forEach(function (el) {
+ const url = el.querySelector('.safe-url').getAttribute('data-url');
+ el.setAttribute('action',url);
+ })
+ },1220);
+})
diff --git a/resources/views/client/post.blade.php b/resources/views/client/post.blade.php
index 130547c..b531131 100644
--- a/resources/views/client/post.blade.php
+++ b/resources/views/client/post.blade.php
@@ -6,7 +6,7 @@
@section('content')
+ {{__("Comments")}}
+
+ @foreach($data['comments'] as $comment)
+ @include('segments.post.SimplePost.inc.comment-detail',$comment)
+ @endforeach
+
+ {{__("Post your comment")}}
+
+ @include('components.err')
+
+
+ {{$comment->body}} +
+