Implement Filtering and Commenting Features in Blog: Enhanced BlogController to support filtering posts by author, category, and tags. Added a storeComment method to handle comment submissions, including validation and success/error messaging. Updated blog views to display comments and improved layout for better user engagement.
This commit is contained in:
@@ -13,15 +13,35 @@ use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class BlogController extends Controller
|
||||
{
|
||||
public function index()
|
||||
public function index(Request $request)
|
||||
{
|
||||
$settings = class_exists(Setting::class) ? (Setting::query()->first()) : null;
|
||||
$posts = class_exists(Blog::class)
|
||||
|
||||
$query = class_exists(Blog::class)
|
||||
? Blog::with(['category', 'author'])
|
||||
->withCount('comments')
|
||||
->published()
|
||||
->latest('published_at')
|
||||
->paginate(12)
|
||||
: null;
|
||||
|
||||
// Author filtresi
|
||||
if ($query && $request->has('author') && $request->author) {
|
||||
$query = $query->where('author_id', $request->author);
|
||||
}
|
||||
|
||||
// Category filtresi
|
||||
if ($query && $request->has('category') && $request->category) {
|
||||
$query = $query->whereHas('category', function($q) use ($request) {
|
||||
$q->where('slug', $request->category);
|
||||
});
|
||||
}
|
||||
|
||||
// Tag filtresi
|
||||
if ($query && $request->has('tag') && $request->tag) {
|
||||
$query = $query->whereJsonContains('tags', $request->tag);
|
||||
}
|
||||
|
||||
$posts = $query
|
||||
? $query->latest('published_at')->paginate(12)
|
||||
: collect();
|
||||
|
||||
// Render Header Template - En son aktif olan header template'i kullan
|
||||
@@ -156,6 +176,49 @@ class BlogController extends Controller
|
||||
],
|
||||
]);
|
||||
}
|
||||
|
||||
public function storeComment(Request $request, string $slug)
|
||||
{
|
||||
if (!class_exists(Blog::class) || !class_exists(BlogComment::class)) {
|
||||
abort(404);
|
||||
}
|
||||
|
||||
$post = Blog::published()
|
||||
->where('slug', $slug)
|
||||
->firstOrFail();
|
||||
|
||||
if (!$post->allow_comments) {
|
||||
return redirect()->route('blog.show', $slug)
|
||||
->with('error', __('blog.comments_disabled'));
|
||||
}
|
||||
|
||||
$validator = Validator::make($request->all(), [
|
||||
'name' => 'required|string|max:255',
|
||||
'email' => 'required|email|max:255',
|
||||
'content' => 'required|string|min:10',
|
||||
'parent_id' => 'nullable|exists:blog_comments,id',
|
||||
]);
|
||||
|
||||
if ($validator->fails()) {
|
||||
return redirect()->route('blog.show', $slug)
|
||||
->withErrors($validator)
|
||||
->withInput();
|
||||
}
|
||||
|
||||
$comment = BlogComment::create([
|
||||
'blog_id' => $post->id,
|
||||
'name' => $request->name,
|
||||
'email' => $request->email,
|
||||
'content' => $request->content,
|
||||
'parent_id' => $request->parent_id,
|
||||
'status' => 'pending', // Yorumlar onay bekliyor olarak kaydedilir
|
||||
'ip_address' => $request->ip(),
|
||||
'user_agent' => $request->userAgent(),
|
||||
]);
|
||||
|
||||
return redirect()->route('blog.show', $slug)
|
||||
->with('success', __('blog.comment_submitted'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -85,4 +85,23 @@ return [
|
||||
'slug_unique' => 'This URL slug is already in use.',
|
||||
'content_required' => 'Content field is required.',
|
||||
'author_required' => 'Author field is required.',
|
||||
|
||||
// Blog post page
|
||||
'by' => 'By',
|
||||
'comments' => 'Comments',
|
||||
'share' => 'Share',
|
||||
'author' => 'Author',
|
||||
'all_posts' => 'All Posts',
|
||||
'you_might_also_like' => 'You Might Also Like',
|
||||
'read_more' => 'Read More',
|
||||
'reply' => 'Reply',
|
||||
'share_thoughts' => 'Would you like to share your thoughts?',
|
||||
'comment_form_description' => 'Your email address will not be published. Required fields are marked *',
|
||||
'name' => 'Name',
|
||||
'email' => 'Email',
|
||||
'website' => 'Website',
|
||||
'comment' => 'Comment',
|
||||
'submit' => 'Submit',
|
||||
'comment_submitted' => 'Your comment has been submitted. It will be published after approval.',
|
||||
'comments_disabled' => 'Comments are disabled for this blog post.',
|
||||
];
|
||||
|
||||
@@ -85,4 +85,23 @@ return [
|
||||
'slug_unique' => 'Bu URL yolu zaten kullanılıyor.',
|
||||
'content_required' => 'İçerik alanı zorunludur.',
|
||||
'author_required' => 'Yazar alanı zorunludur.',
|
||||
|
||||
// Blog post page
|
||||
'by' => 'Yazar',
|
||||
'comments' => 'Yorum',
|
||||
'share' => 'Paylaş',
|
||||
'author' => 'Yazar',
|
||||
'all_posts' => 'Tüm Yazılar',
|
||||
'you_might_also_like' => 'Bunları da Beğenebilirsiniz',
|
||||
'read_more' => 'Devamını Oku',
|
||||
'reply' => 'Yanıtla',
|
||||
'share_thoughts' => 'Düşüncelerinizi paylaşır mısınız?',
|
||||
'comment_form_description' => 'E-posta adresiniz yayınlanmayacaktır. Zorunlu alanlar * ile işaretlenmiştir.',
|
||||
'name' => 'Ad',
|
||||
'email' => 'E-posta',
|
||||
'website' => 'Web Sitesi',
|
||||
'comment' => 'Yorum',
|
||||
'submit' => 'Gönder',
|
||||
'comment_submitted' => 'Yorumunuz gönderildi. Onaylandıktan sonra yayınlanacaktır.',
|
||||
'comments_disabled' => 'Bu blog yazısında yorumlar devre dışı bırakılmıştır.',
|
||||
];
|
||||
|
||||
@@ -1,31 +1,196 @@
|
||||
@extends('layouts.site')
|
||||
|
||||
@section('content')
|
||||
<section class="blog-list">
|
||||
<div class="container">
|
||||
<div class="grid">
|
||||
@forelse($posts as $post)
|
||||
<article class="card">
|
||||
@if(!empty($post->featured_image_url))
|
||||
<a href="{{ route('blog.show', $post->slug) }}">
|
||||
<img src="{{ $post->featured_image_url }}" alt="{{ method_exists($post, 'translate') ? $post->translate('title') : $post->title }}">
|
||||
<section class="wrapper !bg-[#edf2fc]">
|
||||
<div class="container !pt-10 !pb-36 xl:!pt-[4.5rem] lg:!pt-[4.5rem] md:!pt-[4.5rem] xl:!pb-40 lg:!pb-40 md:!pb-40 !text-center">
|
||||
<div class="flex flex-wrap mx-[-15px]">
|
||||
<div class="md:w-7/12 lg:w-6/12 xl:w-5/12 w-full flex-[0_0_auto] !px-[15px] max-w-full !mx-auto">
|
||||
<h1 class="!text-[calc(1.365rem_+_1.38vw)] font-bold !leading-[1.2] xl:!text-[2.4rem] !mb-3">{{ __('blog.meta-index-title') }}</h1>
|
||||
<p class="lead lg:!px-[1.25rem] xl:!px-[1.25rem] xxl:!px-[2rem] !leading-[1.65] text-[0.9rem] font-medium">{{ __('blog.meta-index-description') }}</p>
|
||||
</div>
|
||||
<!-- /column -->
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
</div>
|
||||
<!-- /.container -->
|
||||
</section>
|
||||
<!-- /section -->
|
||||
|
||||
<div class="wrapper !bg-[#ffffff]">
|
||||
<div class="container !pb-[4.5rem] xl:!pb-24 lg:!pb-24 md:!pb-24">
|
||||
<div class="flex flex-wrap mx-[-15px]">
|
||||
<div class="xl:w-10/12 lg:w-10/12 w-full flex-[0_0_auto] !px-[15px] max-w-full !mx-auto">
|
||||
<div class="blog classic-view !mt-[-7rem]">
|
||||
@forelse($posts as $index => $post)
|
||||
@php
|
||||
$title = method_exists($post, 'translate') ? $post->translate('title') : $post->title;
|
||||
$excerpt = method_exists($post, 'translate') ? $post->translate('excerpt') : ($post->excerpt ?? '');
|
||||
$categoryName = $post->category ? $post->category->name : '';
|
||||
$categorySlug = $post->category ? $post->category->slug : '';
|
||||
$publishedDate = $post->published_at ? $post->published_at->format('d M Y') : $post->created_at->format('d M Y');
|
||||
$imageUrl = $post->featured_image ? asset('storage/' . $post->featured_image) : asset('assets/img/photos/b1.jpg');
|
||||
$blogUrl = route('blog.show', $post->slug);
|
||||
$commentCount = $post->comments_count ?? 0;
|
||||
$authorName = $post->author ? $post->author->name : '';
|
||||
@endphp
|
||||
|
||||
@if($index < 3)
|
||||
{{-- İlk 3 blog yazısı classic-view formatında --}}
|
||||
<article class="post !mb-8">
|
||||
<div class="card">
|
||||
@if($post->featured_image_url)
|
||||
<figure class="card-img-top overlay overlay-1 hover-scale group">
|
||||
<a class="!text-[#343f52] hover:!text-[#3f78e0]" href="{{ $blogUrl }}">
|
||||
<img class="!transition-all !duration-[0.35s] !ease-in-out group-hover:scale-105" src="{{ $imageUrl }}" alt="{{ $title }}">
|
||||
</a>
|
||||
<figcaption class="group-hover:opacity-100 absolute w-full h-full opacity-0 text-center px-4 py-3 inset-0 z-[5] pointer-events-none p-2">
|
||||
<h5 class="from-top !mb-0 absolute w-full translate-y-[-80%] p-[.75rem_1rem] left-0 top-2/4">{{ __('blog.read_more') }}</h5>
|
||||
</figcaption>
|
||||
</figure>
|
||||
@endif
|
||||
<h3>
|
||||
<a href="{{ route('blog.show', $post->slug) }}">{{ method_exists($post, 'translate') ? $post->translate('title') : $post->title }}</a>
|
||||
</h3>
|
||||
<p>{{ method_exists($post, 'translate') ? $post->translate('excerpt') : ($post->excerpt ?? '') }}</p>
|
||||
<div class="card-body flex-[1_1_auto] p-[40px] xl:!p-[2rem_2.5rem_1.25rem] lg:!p-[2rem_2.5rem_1.25rem] md:!p-[2rem_2.5rem_1.25rem] max-md:pb-4">
|
||||
<div class="post-header !mb-[.9rem]">
|
||||
@if($categoryName)
|
||||
<div class="inline-flex !mb-[.4rem] uppercase !tracking-[0.02rem] text-[0.7rem] font-bold !text-[#aab0bc] relative align-top !pl-[1.4rem] before:content-[''] before:absolute before:inline-block before:translate-y-[-60%] before:w-3 before:h-[0.05rem] before:left-0 before:top-2/4 before:bg-[#3f78e0]">
|
||||
<a href="{{ route('blog.index', ['category' => $categorySlug]) }}" class="hover" rel="category">{{ $categoryName }}</a>
|
||||
</div>
|
||||
@endif
|
||||
<!-- /.post-category -->
|
||||
<h2 class="post-title !mt-1 !leading-[1.35] !mb-0">
|
||||
<a class="!text-[#343f52] hover:!text-[#3f78e0]" href="{{ $blogUrl }}">{{ $title }}</a>
|
||||
</h2>
|
||||
</div>
|
||||
<!-- /.post-header -->
|
||||
<div class="!relative">
|
||||
<p>{{ $excerpt }}</p>
|
||||
</div>
|
||||
<!-- /.post-content -->
|
||||
</div>
|
||||
<!--/.card-body -->
|
||||
<div class="card-footer xl:!p-[1.25rem_2.5rem_1.25rem] lg:!p-[1.25rem_2.5rem_1.25rem] md:!p-[1.25rem_2.5rem_1.25rem] p-[18px_40px]">
|
||||
<ul class="!text-[0.7rem] !text-[#aab0bc] m-0 p-0 list-none flex !mb-0">
|
||||
<li class="post-date inline-block">
|
||||
<i class="uil uil-calendar-alt pr-[0.2rem] align-[-.05rem] before:content-['\e9ba']"></i>
|
||||
<span>{{ $publishedDate }}</span>
|
||||
</li>
|
||||
@if($authorName)
|
||||
<li class="post-author inline-block before:content-[''] before:inline-block before:w-[0.2rem] before:h-[0.2rem] before:opacity-50 before:m-[0_.6rem_0] before:rounded-[100%] before:align-[.15rem] before:bg-[#aab0bc]">
|
||||
<a class="!text-[#aab0bc] hover:!text-[#3f78e0] hover:!border-[#3f78e0]" href="{{ route('blog.index', ['author' => $post->author_id]) }}">
|
||||
<i class="uil uil-user pr-[0.2rem] align-[-.05rem] before:content-['\ed6f']"></i>
|
||||
<span>{{ __('blog.by') }} {{ $authorName }}</span>
|
||||
</a>
|
||||
</li>
|
||||
@endif
|
||||
@if($post->allow_comments)
|
||||
<li class="post-comments inline-block before:content-[''] before:inline-block before:w-[0.2rem] before:h-[0.2rem] before:opacity-50 before:m-[0_.6rem_0] before:rounded-[100%] before:align-[.15rem] before:bg-[#aab0bc]">
|
||||
<a class="!text-[#aab0bc] hover:!text-[#3f78e0] hover:!border-[#3f78e0]" href="{{ $blogUrl }}#comments">
|
||||
<i class="uil uil-comment pr-[0.2rem] align-[-.05rem] before:content-['\ea54']"></i>
|
||||
<span>{{ $commentCount }} {{ __('blog.comments') }}</span>
|
||||
</a>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
<!-- /.post-meta -->
|
||||
</div>
|
||||
<!-- /.card-footer -->
|
||||
</div>
|
||||
<!-- /.card -->
|
||||
</article>
|
||||
<!-- /.post -->
|
||||
@endif
|
||||
@empty
|
||||
<p>{{ __('blog.empty') }}</p>
|
||||
<div class="text-center py-12">
|
||||
<p class="text-[#aab0bc]">{{ __('blog.empty') }}</p>
|
||||
</div>
|
||||
@endforelse
|
||||
</div>
|
||||
<!-- /.blog -->
|
||||
|
||||
@if(method_exists($posts, 'links'))
|
||||
@if($posts->count() > 3)
|
||||
<div class="blog itemgrid grid-view">
|
||||
<div class="flex flex-wrap mx-[-15px] isotope xl:mx-[-20px] lg:mx-[-20px] md:mx-[-20px] !mt-[-40px] !mb-8">
|
||||
@foreach($posts as $index => $post)
|
||||
@if($index >= 3)
|
||||
@php
|
||||
$title = method_exists($post, 'translate') ? $post->translate('title') : $post->title;
|
||||
$excerpt = method_exists($post, 'translate') ? $post->translate('excerpt') : ($post->excerpt ?? '');
|
||||
$categoryName = $post->category ? $post->category->name : '';
|
||||
$categorySlug = $post->category ? $post->category->slug : '';
|
||||
$publishedDate = $post->published_at ? $post->published_at->format('d M Y') : $post->created_at->format('d M Y');
|
||||
$imageUrl = $post->featured_image ? asset('storage/' . $post->featured_image) : asset('assets/img/photos/b4.jpg');
|
||||
$blogUrl = route('blog.show', $post->slug);
|
||||
$commentCount = $post->comments_count ?? 0;
|
||||
@endphp
|
||||
|
||||
<article class="item post xl:w-6/12 lg:w-6/12 md:w-6/12 w-full flex-[0_0_auto] xl:!px-[20px] lg:!px-[20px] md:!px-[20px] !mt-[40px] !px-[15px] max-w-full">
|
||||
<div class="card">
|
||||
<figure class="card-img-top overlay overlay-1 hover-scale group">
|
||||
<a href="{{ $blogUrl }}">
|
||||
<img class="!transition-all !duration-[0.35s] !ease-in-out group-hover:scale-105" src="{{ $imageUrl }}" alt="{{ $title }}">
|
||||
</a>
|
||||
<figcaption class="group-hover:opacity-100 absolute w-full h-full opacity-0 text-center px-4 py-3 inset-0 z-[5] pointer-events-none p-2">
|
||||
<h5 class="from-top !mb-0 absolute w-full translate-y-[-80%] p-[.75rem_1rem] left-0 top-2/4">{{ __('blog.read_more') }}</h5>
|
||||
</figcaption>
|
||||
</figure>
|
||||
<div class="card-body flex-[1_1_auto] p-[40px] xl:!p-[1.75rem_1.75rem_1rem_1.75rem] lg:!p-[1.75rem_1.75rem_1rem_1.75rem] md:!p-[1.75rem_1.75rem_1rem_1.75rem] max-md:pb-4">
|
||||
<div class="post-header !mb-[.9rem]">
|
||||
@if($categoryName)
|
||||
<div class="inline-flex !mb-[.4rem] uppercase !tracking-[0.02rem] text-[0.7rem] font-bold !text-[#aab0bc] relative align-top !pl-[1.4rem] before:content-[''] before:absolute before:inline-block before:translate-y-[-60%] before:w-3 before:h-[0.05rem] before:left-0 before:top-2/4 before:bg-[#3f78e0]">
|
||||
<a href="{{ route('blog.index', ['category' => $categorySlug]) }}" class="hover" rel="category">{{ $categoryName }}</a>
|
||||
</div>
|
||||
@endif
|
||||
<!-- /.post-category -->
|
||||
<h2 class="post-title h3 !mt-1 !mb-3">
|
||||
<a class="!text-[#343f52] hover:!text-[#3f78e0]" href="{{ $blogUrl }}">{{ $title }}</a>
|
||||
</h2>
|
||||
</div>
|
||||
<!-- /.post-header -->
|
||||
<div class="!relative">
|
||||
<p>{{ \Illuminate\Support\Str::limit($excerpt, 120) }}</p>
|
||||
</div>
|
||||
<!-- /.post-content -->
|
||||
</div>
|
||||
<!--/.card-body -->
|
||||
<div class="card-footer xl:!p-[1.25rem_1.75rem_1.25rem] lg:!p-[1.25rem_1.75rem_1.25rem] md:!p-[1.25rem_1.75rem_1.25rem] p-[18px_40px]">
|
||||
<ul class="!text-[0.7rem] !text-[#aab0bc] m-0 p-0 list-none flex !mb-0">
|
||||
<li class="post-date inline-block">
|
||||
<i class="uil uil-calendar-alt pr-[0.2rem] align-[-.05rem] before:content-['\e9ba']"></i>
|
||||
<span>{{ $publishedDate }}</span>
|
||||
</li>
|
||||
@if($post->allow_comments)
|
||||
<li class="post-comments inline-block before:content-[''] before:inline-block before:w-[0.2rem] before:h-[0.2rem] before:opacity-50 before:m-[0_.6rem_0] before:rounded-[100%] before:align-[.15rem] before:bg-[#aab0bc]">
|
||||
<a class="!text-[#aab0bc] hover:!text-[#3f78e0] hover:!border-[#3f78e0]" href="{{ $blogUrl }}#comments">
|
||||
<i class="uil uil-comment pr-[0.2rem] align-[-.05rem] before:content-['\ea54']"></i>{{ $commentCount }}
|
||||
</a>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
<!-- /.post-meta -->
|
||||
</div>
|
||||
<!-- /.card-footer -->
|
||||
</div>
|
||||
<!-- /.card -->
|
||||
</article>
|
||||
<!-- /.post -->
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
<!-- /.isotope -->
|
||||
</div>
|
||||
<!-- /.blog itemgrid -->
|
||||
@endif
|
||||
|
||||
{{-- Pagination --}}
|
||||
@if(method_exists($posts, 'links') && $posts->hasPages())
|
||||
<div class="mt-8">
|
||||
{{ $posts->links() }}
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</section>
|
||||
<!-- /column -->
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
</div>
|
||||
<!-- /.container -->
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
|
||||
|
||||
@@ -352,6 +352,16 @@
|
||||
<hr>
|
||||
<h3 class="!mb-3">{{ __('blog.share_thoughts') }}</h3>
|
||||
<p class="!mb-7">{{ __('blog.comment_form_description') }}</p>
|
||||
@if(session('success'))
|
||||
<div class="alert alert-success !mb-4">
|
||||
{{ session('success') }}
|
||||
</div>
|
||||
@endif
|
||||
@if(session('error'))
|
||||
<div class="alert alert-danger !mb-4">
|
||||
{{ session('error') }}
|
||||
</div>
|
||||
@endif
|
||||
<form class="comment-form" id="comment-form" method="POST" action="{{ route('blog.comment.store', $post->slug) }}">
|
||||
@csrf
|
||||
<input type="hidden" name="parent_id" id="parent_id" value="">
|
||||
@@ -363,10 +373,6 @@
|
||||
<input type="email" class="form-control relative block w-full text-[.75rem] font-medium !text-[#60697b] bg-[#fefefe] bg-clip-padding border shadow-[0_0_1.25rem_rgba(30,34,40,0.04)] rounded-[0.4rem] border-solid border-[rgba(8,60,130,0.07)] transition-[border-color] duration-[0.15s] ease-in-out focus:shadow-[0_0_1.25rem_rgba(30,34,40,0.04),unset] focus-visible:!border-[rgba(63,120,224,0.5)] placeholder:!text-[#959ca9] placeholder:opacity-100 m-0 !pr-9 p-[.6rem_1rem] h-[calc(2.5rem_+_2px)] min-h-[calc(2.5rem_+_2px)] !leading-[1.25]" placeholder="" id="c-email" name="email" value="{{ old('email') }}" required>
|
||||
<label class="inline-block !text-[#959ca9] text-[.75rem] absolute z-[2] h-full overflow-hidden text-start text-ellipsis whitespace-nowrap pointer-events-none border origin-[0_0] px-4 py-[0.6rem] border-solid border-transparent left-0 top-0 font-Manrope" for="c-email">{{ __('blog.email') }} *</label>
|
||||
</div>
|
||||
<div class="form-floating relative !mb-4">
|
||||
<input type="text" class="form-control relative block w-full text-[.75rem] font-medium !text-[#60697b] bg-[#fefefe] bg-clip-padding border shadow-[0_0_1.25rem_rgba(30,34,40,0.04)] rounded-[0.4rem] border-solid border-[rgba(8,60,130,0.07)] transition-[border-color] duration-[0.15s] ease-in-out focus:shadow-[0_0_1.25rem_rgba(30,34,40,0.04),unset] focus-visible:!border-[rgba(63,120,224,0.5)] placeholder:!text-[#959ca9] placeholder:opacity-100 m-0 !pr-9 p-[.6rem_1rem] h-[calc(2.5rem_+_2px)] min-h-[calc(2.5rem_+_2px)] !leading-[1.25]" placeholder="" id="c-web" name="website" value="{{ old('website') }}">
|
||||
<label class="inline-block !text-[#959ca9] text-[.75rem] absolute z-[2] h-full overflow-hidden text-start text-ellipsis whitespace-nowrap pointer-events-none border origin-[0_0] px-4 py-[0.6rem] border-solid border-transparent left-0 top-0 font-Manrope" for="c-web">{{ __('blog.website') }}</label>
|
||||
</div>
|
||||
<div class="form-floating relative !mb-4">
|
||||
<textarea name="content" class="form-control relative block w-full text-[.75rem] font-medium !text-[#60697b] bg-[#fefefe] bg-clip-padding border shadow-[0_0_1.25rem_rgba(30,34,40,0.04)] rounded-[0.4rem] border-solid border-[rgba(8,60,130,0.07)] transition-[border-color] duration-[0.15s] ease-in-out focus:shadow-[0_0_1.25rem_rgba(30,34,40,0.04),unset] focus-visible:!border-[rgba(63,120,224,0.5)] placeholder:!text-[#959ca9] placeholder:opacity-100 m-0 !pr-9 p-[.6rem_1rem] h-[calc(2.5rem_+_2px)] min-h-[calc(2.5rem_+_2px)] !leading-[1.25]" placeholder="" style="height: 150px" required>{{ old('content') }}</textarea>
|
||||
<label class="inline-block !text-[#959ca9] text-[.75rem] absolute z-[2] h-full overflow-hidden text-start text-ellipsis whitespace-nowrap pointer-events-none border origin-[0_0] px-4 py-[0.6rem] border-solid border-transparent left-0 top-0 font-Manrope">{{ __('blog.comment') }} *</label>
|
||||
|
||||
Reference in New Issue
Block a user