(NOTE) Silahkan gunakan teknologi yang paling nyaman digunakan dengan hasil **pengerjaan yang cepat** dan **secure**. Tidak harus dikonversi ke codeigniter. Native PHP pun nggak masalah. Tapi harap diinformasikan ke saya apa yang akan dilakukan. === API * base-url api dan api key dimasukkan ke config utk memudahkan perubahan, misal: `config/portal.php` * gunakan api key tes: `61495f8a6c3ba61495f8a6c3bd` * base-url api: `https://app3.mcreasindo.com/bmkg-sijafung2021-api` * contoh php code utk akses endpoint `berita`: ``` <?php $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'app3.mcreasindo.com/bmkg-sijafung2021-api/berita', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_FAILONERROR => true, CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_HTTPHEADER => array( 'x-api-key: 61495f8a6c3ba61495f8a6c3bd', 'Content-Type: application/json', ), )); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); $response = curl_exec($curl); curl_close($curl); $result = json_decode($response); echo "<pre>"; print_r ($result); echo "</pre>"; ``` === Berita 1. endpoint api: `app3.mcreasindo.com/bmkg-sijafung2021-api/berita` 2. Page Home ![](https://i.imgur.com/TdUMJQC.png) * Tampilkan 3 data terbaru * Tampilkan tanggal update * Tampilkan yang is_published = 1 * On click `Berita Terkini`, open `Page Index Berita` * On click judul berita, open `Page Detail Berita` 3. Page Index Berita ![](https://i.imgur.com/MQNabCI.png) * Kolom Pertama * 3 berita per page * default image: `BMKG-1.jpg` * If no image, use default image. * Tampilan tanggal update * On click Judul berita atau tombol read more, open `Page Detail Berita` * Kolom Kedua * Pencarian * Lakukan pencarian berdasar konten berita * Tambahkan key parameter `konten` pada api endpoint utk pencarian berdasar konten, contoh: mencari berita dengan konten "badan akreditasi" => `app3.mcreasindo.com/bmkg-sijafung2021-api/berita?konten=badan%20akreditasi` * Berita Lainnya * Random 3 berita * Kategori * ambil dari endpoint kategori+parameternya: `app3.mcreasindo.com/bmkg-sijafung2021-api/refkategori?tipe=1` (parameter `tipe` = 1 adalah kategori utk Berita) * Jika tidak ada kategori, maka semua di hide saja. 4. Page Detail Berita * Kolom pertama * Kategori * Hide if not available * Comments di hide saja * Tanggal: ambil dari tanggal update * Konten Berita, cukup jelas * Tags * Hide if not available * Comments di hide saja * Kolom kedua * Search Here, Popular Post, dan Categories disamakan dengan `Page Index Berita` * Tags * di rename jadi `Tag` * ambil dari endpoint tag+parameternya: `app3.mcreasindo.com/bmkg-sijafung2021-api/reftags?tipe=1` (parameter `tipe` = 1 adalah tag utk Berita) * Jika tidak ada tag, maka semua di hide saja. * Time Schedule di hide saja === Pengumuman * Idem Berita, tapi tanpa menampilkan image, baik untuk `Page Index Pengumuman`, maupun `Page Detail Pengumuman` * endpoint pengumuman: `app3.mcreasindo.com/bmkg-sijafung2021-api/pengumuman` * endpoint kategori: idem berita, namun ganti `tipe` = 2 (kategori utk Pengumuman) * Tidak memiliki endpoint tag === Peraturan * Idem Pengumuman, baik untuk `Page Index Peraturan`, maupun `Page Detail Peraturan` * Endpoint peraturan: `app3.mcreasindo.com/bmkg-sijafung2021-api/peraturan` * endpoint kategori: idem berita, namun ganti `tipe` = 4 (kategori utk Peraturan) * Tidak memiliki endpoint tag * Tambahkan link download file (jika ada data `file`) pada `Page Detail Peraturan`) dengan teks "unduh dokumen", Posisi di sebelah kanan Tanggal Update. On click, suggest unduh original filename.