بِسْمِ اللَّهِ Mudah-mudahan tutorial Codeigniter 4 – Menampilkan Data Berita ini bermanfaat
Tutorial ini bisa dikatakan bagian ke 4 dari CRUD yaitu menampilkan data yang kebetulan data yang diolah disini adalah data berita. Data berita ini biasanya sering ditampilkan pada website company profile, pendidikan dan website-website yang lainnya.
Sebagai informasi berikut ini kolom-kolom yang saya gunakan id, username, title, slug, body, publish_date, image. Mungkin kolom-kolom disini bisa ditambah dan dikurangi disesuaikan dengan kebutuhan Anda.
Persiapan Codeigniter 4 – Menampilkan Data Berita
Untuk melanjutkan tutorial pastikan sudah:
Minimal sudah mengerjakan CRUD Bagian 1 pada tutorial sebelumnya
Pertama
Mengupdate fungsi getLatestNews yang ada di NewsModel dengan script berikut. Fungsi untuk menghasilkan 3 (tiga) data berita yang di publis terakhir.
public function getLatestNews()
{
return $this->asObject()
->orderBy('publish_date', 'desc')
->findAll(3);
}
Kedua
Mengupdate fungsi index pada controller \app\Controllers\Home.php dengan menambah data berita terakhir. Yang paling atas setelah namespace tambahkan script berikut
use App\Models\NewsModel;
Selanjutnya tambahkan script sebagai berikut
public function index()
{
$model = new NewsModel();
$data['news'] = $model->getLatestNews();
foreach ($data['news'] as $key => $row) {
$dataIsiNews["row"] = $row;
$data["row".$row->id] = view('news/row_last_news', $dataIsiNews);
}
$data['title'] = 'Halaman Utama';
return view('index', $data);
}
Ketiga
Tambah file view row_last_news.php dengan lokasi \app\Views\news\. File ini bisa dikatakan sebagai template untuk tiap data berita. Disini hanya menampilkan data berita per barisnya berdasarkan kriteria yang ada yaitu 3 berita terakhir di publis.
Seperti biasa berita yang tampil, tidak mungkin akan tampil semua isi berita. Disini saya membatasinya hanya 30 kata per berita. Nah disini saya menggunakan fungsi explode yang mungkin sudah sering Anda gunakan. Tapi untuk yang berita kurang dari 30, ditampilkan semua apa adanya.
explode berfungsi memecah string menjadi array berdasarkan karakter tertentu
Contoh : $enews = explode(” “, $row->body);
Artinya isi dari $row->body dipecah menjadi $enews[0], $enews[1] dan seterusnya
$enews = explode(” “, “explode berfungsi memecah string menjadi array”);
$enews[0]=”explode”, $enews[1]=”berfungsi”, $enews[2]=”memecah”, $enews[3]=”string”, $enews[4]=”menjadi”, $enews[5]=”array”
Scriptnya sebagai berikut
<div class="col-lg-4 mb-4">
<!-- Illustrations -->
<div class="card shadow mb-4">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary"><?= $row->title; ?></h6>
</div>
<div class="card-body">
<div class="text-center">
<img class="img-fluid px-3 px-sm-4 mt-3 mb-4" style="width: 25rem;"
src="<?= base_url() ?>/images/news/<?= $row->image; ?>" alt="...">
</div>
<?php
$enews = explode(" ", $row->body);
if (count($enews) > 30) {
for ($i=0; $i < 30; $i++) {
echo $enews[$i]." ";
}
} else {
echo $row->body;
}
?>
<a href="<?= base_url() ?>/news/<?= $row->slug; ?>" class="btn btn-primary btn-icon-split">
<span class="icon text-white-50">
<i class="fas fa-flag"></i>
</span>
<span class="text">Lihat Berita</span>
</a>
</div>
</div>
</div>
Update view \app\Views\index.php dengan script berikut
<?= $this->extend('template/index') ?>
<?= $this->section('page-content') ?>
<div class="row">
<?php
foreach($news as $row):
$rowNews = "row".$row->id;
echo $$rowNews;
endforeach;
?>
</div>
<div class="row">
<a href="<?= base_url() ?>/news/index_all" class="btn btn-primary btn-icon-split btn-block">
<span class="icon text-white-50">
<i class="fas fa-flag"></i>
</span>
<span class="text">Lihat Semua Berita</span>
</a>
</div>
<?= $this->endSection() ?>
Akhirnya
Mudah-mudahan tidak ada error. Kurang lebih tampilannya akan seperti ini
Demikian tutorial Codeigniter 4 – Menampilkan Data Berita di Halaman Utama. Silakan dilanjutkan dan dikembangkan lagi.
Untuk contohnya bisa dilihat di https://demo.belajardisiniaja.com/
Mudah-mudahan tutorial ini bermanfaat.
mohon dibuatkan tutor log aktifitas create delete update waktu(time) by user/admin login misal ambil log aktifitas dari tabel barang terimakasih sebelumnya pakai ci4
dan tutor last login pakai library myth/auth hehe maaf banyak permintaan saya kebingungan di metode 2 ini
Baik saya coba buatkan untuk log aktifitas.
Cuma untuk last login itu gimana ya maksudnya? kok saya agak bingung… hehehe…
Untuk yang last login, silakan cek tabel auth_logins, filter saja yang success=1 kemudian link user_id ke tabel users.
Mudah-mudahan bisa membantu.