DOWNLOAD FULL SOURCE CODE | ONLINE DEMO
username : admin
password : admin
Haloo temen2 semua.
Kali ini aku akan melanjutkan tutorialku membuat website sekolah dengan codeIgniter yaitu membuat Admin Modul Pages. Modul Pages ini digunakan utk menampilkan halaman2 statis sperti profil, sejarah singkat, visi misi, dan sebagainya. Tabel yng di gunakan utuk modul Pages ini adalah pages sesuai dengan rancangan database yng telah ada pada postingan sebelumnya. Di dalam modul Pages ini nantinya seorang admin dapat menambah, mengedit, melihat, dan menghapus halaman (pages) yang ada di website. Berikut ini step2 pembuatan Admin Modul Pages.
1. Membuat Model ‘pages_model’
Model ‘pages_model’ ini merupakan representasi dari tabel ‘pages’ yang ada di MySQL, yang mana di dalam model ini terdapat perintah-perintah untuk memanipulasi tabel ‘pages’ tersebut. Buatlah file ‘pages_model.php‘ dan simpan pada folder application/models/. Isi dari pages_model adalah sebagai berikut:
<?php /* * To change this template, choose Tools | Templates * and open the template in the editor. */ class Pages_model extends CI_Model { var $table = 'pages'; function __construct() { parent::__construct(); } function find($limit = null, $offset = null) { $this->db->select('pages.*,users.username'); $this->db->join('users', 'pages.users_id=users.id'); $this->db->order_by('id', 'DESC'); $query = $this->db->get($this->table); if ($query->num_rows() > 0) { return $query->result_array(); } } function findById($id) { $this->db->where('id', $id); $query = $this->db->get($this->table, 1); return $query->row_array(); } function create() { $data = array( 'title' => $this->input->post('title'), 'permalink' => url_title($this->input->post('title')), 'body' => $this->input->post('body'), 'status' => $this->input->post('status'), 'users_id' => $this->session->userdata('id') ); $this->db->insert($this->table, $data); } function update($id) { $data = array( 'title' => $this->input->post('title'), 'permalink' => url_title($this->input->post('title')), 'body' => $this->input->post('body'), 'status' => $this->input->post('status'), 'users_id' => $this->session->userdata('id') ); $this->db->where('id', $id); $this->db->update($this->table, $data); } function delete($id) { $this->db->where('id', $id); $this->db->delete($this->table); } } ?>
2. Membuat Controller ‘pages’ untuk admin
Langkah selanjutnya adalah membuat controllernya. Pertama buatlah folder dengan nama ‘admin’ di dalam folder ‘controllers’. Ini sekedar untuk mengelompokkan saja, agar controller untuk bagian admin di kelompokkan menjadi satu. Setelah itu buat file ‘pages.php’ di dalam folder ‘application/controllers/admin’ dan ketikkan kode-kode program seperti berikut ini:
<?php /* * To change this template, choose Tools | Templates * and open the template in the editor. */ class Pages extends CI_Controller { var $template = 'admin/template'; var $status = array( 0 => 'draft', 1 => 'published' ); function __construct() { parent::__construct(); $this->load->model('Pages_model'); } function index() { $data['pages'] = $this->Pages_model->find(); $data['content'] = 'admin/pages/index'; $data['status'] = $this->status; $this->load->view($this->template, $data); } function add() { $this->form_validation->set_rules('title', 'title', 'required'); $this->form_validation->set_rules('body', 'body', 'required'); $this->form_validation->set_error_delimiters('', '<br/>'); if ($this->form_validation->run() == TRUE) { $this->Pages_model->create(); $this->session->set_flashdata('success', 'Add success'); redirect('admin/pages/index'); } $data['status'] = $this->status; $data['content'] = 'admin/pages/add'; $this->load->view($this->template, $data); } function edit($id = null) { if ($id == null) { $id = $this->input->post('id'); } $this->form_validation->set_rules('title', 'title', 'required'); $this->form_validation->set_rules('body', 'body', 'required'); $this->form_validation->set_error_delimiters('', '<br/>'); if ($this->form_validation->run() == TRUE) { $this->Pages_model->update($id); $this->session->set_flashdata('success', 'Edit success'); redirect('admin/pages/index'); } $data['page'] = $this->Pages_model->findById($id); $data['status'] = $this->status; $data['content'] = 'admin/pages/edit'; $this->load->view($this->template, $data); } function delete($id = null) { if ($id == null) { $this->session->set_flashdata('error', 'Error delete'); } else { $this->Pages_model->delete($id); $this->session->set_flashdata('success', 'Delete success'); } redirect('admin/pages/index'); } } ?>
3. Membuat Template / Layout Admin
Selanjutkan kita menuju ke bagian View / Tampilan. Pertama buat folder ‘admin’ di dalam folder ‘application/views’. Kemudian buat file ‘template.php’ di dalam folder ‘application/views/admin’. Sehingga struktur folder untuk view menjadi seperti ini:
Template ini merupakan layout yng digunakan utk tampilan admin. Pada kesempatan kali ini tampilannya sangat terbatas, sehingga temen2 semua nantinya bisa memodifikasi sendiri utk tampilan yng lebih baik. Berikut ini adalah isi dari file ‘template.php’ :
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>Admin Panel Sekolahku</title> <meta name="keywords" content="" /> <meta name="Premium Series" content="" /> </head> <body> <table> <tr> <td> <h2>Admin Panel</h2> </td> </tr> <tr> <td> <?php echo anchor('admin/pages', 'Pages') ?> | <hr/> </td> </tr> <tr> <td> <?php if (!empty($content)): ?> <?php $this->load->view($content); ?> <?php endif; ?> </td> </tr> <tr> <td> <hr/> Admin Panel Sekolahku </td> </tr> </table> </body> </html>
4. Membuat View untuk Admin Modul Pages
Setelah template admin telah dibuat.. maka skrg adalah membuat view dari admin Modul Pages. View untuk modul ini terdiri dari 3 file yaitu ‘index.php‘, ‘add.php’, dan ‘edit.php’. Buatlah ketiga file tersebut dan simpan di folder application/views/admin/pages/.
Berikut ini adalah kode-kode program dari masing-masing file tersebut:
‘index.php’
<h3>List Pages</h3> <?php echo anchor('admin/pages/add', 'Add'); ?><br/> <?php if ($this->session->flashdata('success')): ?> <i><?php echo $this->session->flashdata('success'); ?><i/> <?php endif; ?> <?php if ($this->session->flashdata('error')): ?> <i><?php echo $this->session->flashdata('error'); ?><i/> <?php endif; ?> <table border="1"> <tr> <td>No</td> <td>Title</td> <td>Status</td> <td>User</td> <td>Action</td> </tr> <?php if (!empty($pages)): ?> <?php $no = 1; ?> <?php foreach ($pages as $page): ?> <tr> <td><?php echo $no; ?></td> <td><?php echo $page['title']; ?></td> <td><?php echo $status[$page['status']]; ?></td> <td><?php echo $page['username']; ?></td> <td> <a href="<?php echo site_url('admin/pages/edit/' . $page['id']); ?>">Edit</a> | <a href="<?php echo site_url('admin/pages/delete/' . $page['id']); ?>" onclick=" return confirm('Are you sure?')">Delete</a> </td> </tr> <?php $no++; ?> <?php endforeach; ?> <?php endif; ?> </table>
‘add.php’
<h3>Add Page</h3><br/> <?php echo validation_errors(); ?> <?php echo form_open('admin/pages/add'); ?> Title :<br/> <?php echo form_input(array('name' => 'title', 'value' => set_value('title', isset($page['title']) ? $page['title'] : ''))); ?><br/> Body :<br/> <?php echo form_textarea(array('name' => 'body', 'value' => set_value('title', isset($page['body']) ? $page['body'] : ''))); ?><br/> Status:<br/> <?php echo form_dropdown('status', $status, isset($page['status']) ? $page['status'] : ''); ?><br/> <?php echo form_submit('submit', 'Save'); ?> <?php echo form_close(); ?>
‘edit.php’
<h3>Edit Page</h3><br/> <?php echo validation_errors(); ?> <?php echo form_open('admin/pages/edit'); ?> <?php echo form_hidden('id', $page['id']); ?> Title :<br/> <?php echo form_input(array('name' => 'title', 'value' => set_value('title', isset($page['title']) ? $page['title'] : ''))); ?><br/> Body :<br/> <?php echo form_textarea(array('name' => 'body', 'value' => set_value('title', isset($page['body']) ? $page['body'] : ''))); ?><br/> Status:<br/> <?php echo form_dropdown('status', $status, isset($page['status']) ? $page['status'] : ''); ?><br/> <?php echo form_submit('submit', 'Save'); ?> <?php echo form_close(); ?>
5. Demo Admin Modul Pages
Tibalah saat nya kita untuk melihat / mencoba dari pembuatan admin Modul Pages ini. Berikut ini adalah screenshoot dari admin Modul Pages.
Tampilan List Pages /Halaman
Tampilan Form Input Pages
DOWNLOAD FULL SOURCE CODE | ONLINE DEMO
Baik.. sampai disini utk postingan membuat modul Pages pada kesempatan kali ini. Sampe jumpa di postingan2 berikutnya. 🙂
Dari dulu saya gag begitu suka dengan codeigniter, cos loadingnya agak lama. Saya pernah bandingkan kode igniter dengan coding sendiri.. ternyata masih cepat coding sendiri.. apa ada teknik tertentu biar code igniter bisa cepet loadnya yah ??
success mengisi pages, tapi tidak muncul di index
ternya di database kq user_id nya selalu 0 y?
saya make codeigniter sejak masih vesi 1.6, bila di bandingkan dengan coding secara prosedural ngoding pake codeigniter jauh lebih menghemat waktu dan loadingnya juga kebih cepat
yang ane bikin udah sama…
tapi pas dijalanin ga keluar data yang di addnya..
tapi tetep masuk kedatabase…
mohon pencerahan gan
hmm.. coba di bagian controller fungsi index sebelum this->load->view itu di debug dulu datanya gan pake var_dump($data) , amati data dari database udah tampil disitu ato belum.. klo blum tampil kemungkinan ada permasalahan di model. Untk versi terbaru spertinya ada perlakuan beda ketika kita mendefinisikan $limit = null di model | @facebook-100000270126449:disqus
oh ketemu masalahnya om…
jadi saat saya add pages, pada db pages disana kan ada users_id nah itu isinya 0, berarti saat nampilin pages/add users_id saya ga kbaca om
nah gimana caranya om agar users_id nya otomatis membaca jenis users saya om…??
cleare sudah permasalahannya
yang ada pada model dan controller
‘users_id’ => $this->session->userdata(‘id’),
itu harusnya
‘users_id’ => $this->session->userdata(‘user_id’),
ini bisa di lihat di controller users
if ($login_data){
$session_data = array(
‘user_id’ => $login_data[‘id’],
‘username’ => $login_data[‘username’],
‘type’ => $login_data[‘type’],
‘is_login’ =>TRUE
);
#kira2 apa ya solusinya ?
A PHP Error was encountered
Severity: Notice
Message: Undefined property: Pages::$general
Filename: admin/pages.php
Line Number: 19
About the author