berita user
This commit is contained in:
parent
d59c9faaf0
commit
bf7b9392f3
|
|
@ -0,0 +1,49 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Berita;
|
||||
use Carbon\Carbon;
|
||||
|
||||
class BeritaController extends Controller
|
||||
{
|
||||
/**
|
||||
* Tampilkan semua berita.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
// Ambil semua berita terbaru, urut dari tanggal terbaru
|
||||
$berita = Berita::orderBy('tanggal_berita', 'desc')->paginate(6); // Pagination 6 per halaman
|
||||
|
||||
return view('user.berita', compact('berita'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Tampilkan detail berita.
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
// Ambil berita berdasarkan ID
|
||||
$berita = Berita::findOrFail($id);
|
||||
|
||||
// Ambil 5 berita terbaru selain yang sedang dibuka
|
||||
$recentBerita = Berita::where('id_berita', '!=', $id)
|
||||
->orderBy('tanggal_berita', 'desc')
|
||||
->limit(5)
|
||||
->get();
|
||||
|
||||
return view('user.detail-berita', compact('berita', 'recentBerita'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Ambil 3 berita terbaru untuk slider di hero section
|
||||
*/
|
||||
public function hero()
|
||||
{
|
||||
$beritaHero = Berita::orderBy('tanggal_berita', 'desc')->take(3)->get();
|
||||
|
||||
return view('user.index', compact('beritaHero'));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class PengumumanController extends Controller
|
||||
{
|
||||
//
|
||||
}
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
@extends('user.template')
|
||||
|
||||
@section('title', 'Berita')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="page-title">
|
||||
<div class="container d-lg-flex justify-content-between align-items-center">
|
||||
<h1 class="mb-2 mb-lg-0">Berita</h1>
|
||||
<nav class="breadcrumbs">
|
||||
<ol>
|
||||
<li><a href="{{ route('user.index') }}">Beranda</a></li>
|
||||
<li class="current">Berita</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
</div><!-- End Page Title -->
|
||||
|
||||
<!-- Blog Posts Section -->
|
||||
<section id="blog-posts" class="blog-posts section">
|
||||
<div class="container">
|
||||
<div class="row gy-4">
|
||||
|
||||
@forelse ($berita as $item)
|
||||
<div class="col-lg-4">
|
||||
<article>
|
||||
|
||||
<div class="post-img">
|
||||
@if ($item->gambar_berita)
|
||||
<img src="{{ asset('storage/' . $item->gambar_berita) }}"
|
||||
alt="{{ $item->judul_berita }}" class="img-fluid">
|
||||
@else
|
||||
<img src="assets/img/blog/default.jpg" alt="default" class="img-fluid">
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<p class="post-category">
|
||||
<time datetime="{{ $item->tanggal_berita }}">
|
||||
{{ $item->tanggal_berita ? \Carbon\Carbon::parse($item->tanggal_berita)->translatedFormat('d F Y') : '-' }}
|
||||
</time>
|
||||
</p>
|
||||
|
||||
<h2 class="title">
|
||||
<a href="{{ route('user.detail-berita', $item->id_berita) }}">
|
||||
{{ Str::limit($item->judul_berita, 30) }}
|
||||
</a>
|
||||
</h2>
|
||||
|
||||
<div class="d-flex align-items-start">
|
||||
<div class="post-meta ms-2">
|
||||
<p class="post-excerpt">
|
||||
{{ Str::limit(strip_tags($item->isi_berita), 120, '...') }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</article>
|
||||
</div><!-- End post list item -->
|
||||
@empty
|
||||
<p class="text-center">Belum ada berita tersedia.</p>
|
||||
@endforelse
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section><!-- /Blog Posts Section -->
|
||||
|
||||
@endsection
|
||||
|
|
@ -0,0 +1,108 @@
|
|||
@extends('user.template')
|
||||
|
||||
@section('title', $berita->judul_berita)
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="page-title">
|
||||
<div class="container d-lg-flex justify-content-between align-items-center">
|
||||
<h1 class="mb-2 mb-lg-0">Detail Berita</h1>
|
||||
<nav class="breadcrumbs">
|
||||
<ol>
|
||||
<li><a href="{{ route('user.index') }}">Beranda</a></li>
|
||||
<li><a href="{{ route('user.berita') }}">Berita</a></li>
|
||||
<li class="current">Detail Berita</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
</div><!-- End Page Title -->
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-lg-8">
|
||||
|
||||
<!-- Blog Details Section -->
|
||||
<section id="blog-details" class="blog-details section">
|
||||
<div class="container">
|
||||
|
||||
<article class="article">
|
||||
|
||||
<div class="post-img">
|
||||
@if ($berita->gambar_berita)
|
||||
<img src="{{ asset('storage/' . $berita->gambar_berita) }}"
|
||||
alt="{{ $berita->judul_berita }}" class="img-fluid">
|
||||
@else
|
||||
<img src="assets/img/blog/default.jpg" alt="default" class="img-fluid">
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<h2 class="title">{{ $berita->judul_berita }}</h2>
|
||||
|
||||
<div class="meta-top">
|
||||
<ul>
|
||||
<li class="d-flex align-items-center">
|
||||
<i class="bi bi-person"></i>
|
||||
{{ $berita->author ?? 'Admin' }}
|
||||
</li>
|
||||
<li class="d-flex align-items-center">
|
||||
<i class="bi bi-clock"></i>
|
||||
<time datetime="{{ $berita->tanggal_berita }}">
|
||||
{{ \Carbon\Carbon::parse($berita->tanggal_berita)->translatedFormat('d F Y') }}
|
||||
</time>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div><!-- End meta top -->
|
||||
|
||||
<div class="content">
|
||||
{!! $berita->isi_berita !!}
|
||||
</div><!-- End post content -->
|
||||
|
||||
</article>
|
||||
|
||||
</div>
|
||||
</section><!-- /Blog Details Section -->
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 sidebar">
|
||||
|
||||
<div class="widgets-container">
|
||||
|
||||
<!-- Recent Posts Widget -->
|
||||
<!-- Recent Posts Widget -->
|
||||
<div class="recent-posts-widget widget-item">
|
||||
<h3 class="widget-title">Berita Lainnya</h3>
|
||||
|
||||
@foreach ($recentBerita as $recent)
|
||||
<div class="post-item">
|
||||
@if ($recent->gambar_berita)
|
||||
<img src="{{ asset('storage/' . $recent->gambar_berita) }}"
|
||||
alt="{{ $recent->judul_berita }}" class="flex-shrink-0">
|
||||
@else
|
||||
<img src="assets/img/blog/default.jpg" alt="default" class="flex-shrink-0">
|
||||
@endif
|
||||
<div>
|
||||
<h4>
|
||||
<a href="{{ route('user.detail-berita', $recent->id_berita) }}">
|
||||
{{ Str::limit($recent->judul_berita, 50) }}
|
||||
</a>
|
||||
</h4>
|
||||
<time datetime="{{ $recent->tanggal_berita }}">
|
||||
{{ \Carbon\Carbon::parse($recent->tanggal_berita)->translatedFormat('d F Y') }}
|
||||
</time>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
</div><!--/Recent Posts Widget -->
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
|
@ -77,8 +77,8 @@ class="{{ Request::routeIs('user.aduan') ? 'active' : '' }}">
|
|||
</li>
|
||||
|
||||
<li>
|
||||
<a href="{{ route('user.sig-tps') }}"
|
||||
class="{{ Request::routeIs('user.sig-tps') ? 'active' : '' }}">
|
||||
<a href="{{ route('user.berita') }}"
|
||||
class="{{ Request::routeIs('user.berita') ? 'active' : '' }}">
|
||||
Berita
|
||||
</a>
|
||||
</li>
|
||||
|
|
|
|||
|
|
@ -6,6 +6,9 @@
|
|||
use App\Http\Controllers\IndexController;
|
||||
use App\Http\Controllers\AduanController;
|
||||
use App\Http\Controllers\KontakController;
|
||||
use App\Http\Controllers\BeritaController;
|
||||
use App\Http\Controllers\PengumumanController;
|
||||
|
||||
|
||||
// ADMIN
|
||||
use App\Http\Controllers\Admin\DashboardController;
|
||||
|
|
@ -13,8 +16,8 @@
|
|||
use App\Http\Controllers\Admin\KategoriTpsController;
|
||||
use App\Http\Controllers\Admin\SampahController;
|
||||
use App\Http\Controllers\Admin\AduanController as AdminAduanController;
|
||||
use App\Http\Controllers\Admin\BeritaController;
|
||||
use App\Http\Controllers\Admin\PengumumanController;
|
||||
use App\Http\Controllers\Admin\BeritaController as AdminBeritaController;
|
||||
use App\Http\Controllers\Admin\PengumumanController as AdminPengumumanController;
|
||||
use App\Http\Controllers\Admin\ProfilController;
|
||||
|
||||
/*
|
||||
|
|
@ -37,6 +40,9 @@
|
|||
Route::get('/aduan-tps', [AduanController::class, 'index'])->name('user.aduan');
|
||||
Route::post('/aduan-tps', [AduanController::class, 'store'])->name('user.aduan.store');
|
||||
|
||||
Route::get('/berita', [BeritaController::class, 'index'])->name('user.berita');
|
||||
Route::get('/berita/{id}', [BeritaController::class, 'show'])->name('user.detail-berita');
|
||||
|
||||
Route::get('/kontak', [KontakController::class, 'index'])->name('user.kontak');
|
||||
|
||||
require __DIR__.'/auth.php';
|
||||
|
|
@ -70,8 +76,8 @@
|
|||
Route::post('/aduan/{id}/tanggapi', [AdminAduanController::class, 'tanggapi'])->name('aduan.tanggapi');
|
||||
Route::delete('/aduan/{id}', [AdminAduanController::class, 'destroy'])->name('aduan.destroy');
|
||||
|
||||
Route::resource('berita', BeritaController::class)->except(['show']);
|
||||
Route::resource('pengumuman', PengumumanController::class)->except(['show']);
|
||||
Route::resource('berita', AdminBeritaController::class)->except(['show']);
|
||||
Route::resource('pengumuman', AdminPengumumanController::class)->except(['show']);
|
||||
|
||||
// PROFIL
|
||||
Route::get('/profil', [ProfilController::class, 'index'])->name('profil');
|
||||
|
|
|
|||
Loading…
Reference in New Issue