Website Sekolah CodeIgniter IV : Membuat Admin Modul Pages (Halaman)

Website Sekolah CodeIgniter IV : Membuat Admin Modul Pages (Halaman)

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]

<?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);
}

}

?>

[/php]

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]

<?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’);
}

}

?>
[/php]

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:

struktur folder view

struktur folder view

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’ :

[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>

[/php]

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’

[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>

[/php]

‘add.php’

[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(); ?>

[/php]

‘edit.php’

[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(); ?>

[/php]

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

Modul Pages List

Modul Pages List

Tampilan Form Input Pages

Input Pages

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. 🙂

About the author

gieart administrator

12 Comments so far

Mulai Bangkit Motor IritPosted on1:58 am - Feb 9, 2012

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 ??

KurniawanPosted on9:50 am - Feb 21, 2012

success mengisi pages, tapi tidak muncul di index
ternya di database kq user_id nya selalu 0 y?

khairuPosted on10:01 am - Feb 27, 2012

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

    gieartPosted on11:03 am - Feb 27, 2012

    Eh ada mas Khairu… *sungkem* :), iya mas aku kenal framework pertama jg CI 1.7.2, mudah dipelajari.. komunitas jg rame bgt.. yng jelas dng framework aku merasa produktifitas lebih meningkat. Cuma aku ngeblank bgt mslah security mas.. mohon bimbingannya. hehe

Lutfie AchmadPosted on5:23 pm - Dec 24, 2012

yang ane bikin udah sama…
tapi pas dijalanin ga keluar data yang di addnya..
tapi tetep masuk kedatabase…
mohon pencerahan gan

    Topa DistaPosted on6:20 am - Apr 13, 2013

    sama saya juga begitu….

      gieartPosted on11:48 am - Apr 14, 2013

      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

        Topa DistaPosted on3:55 am - Apr 18, 2013

        oK mas gie…

        Topa DistaPosted on5:37 am - Apr 18, 2013

        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…??

        Topa DistaPosted on6:55 am - Apr 18, 2013

        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
        );

S V LPosted on3:13 pm - Jun 10, 2013

#kira2 apa ya solusinya ?

A PHP Error was encountered
Severity: Notice
Message: Undefined property: Pages::$general
Filename: admin/pages.php
Line Number: 19

Leave a Reply