Website Sekolah CodeIgntier IX: Menampilkan Posts di halaman depan (front page)

Heii bro n sista,

Emm.. mau ngucapin selamat menjalankan ibadah puasa ramadhan dulu ah.. bagi yng menjalankan. Smoga lancar dn semua ibadah kita di terima Allah. amiin :D

Okey.. kali ini aku akan lanjutin tutorial web sekolahnya tentang bagaimana menampilkan ‘Posts’ di halaman depan (front page).

Let’s Go !!

Sebelumnya kita telah mempunya controller ‘Pages’  utk bagian front yg tersimpan pada controllers/pages.php dan di dalamnya terdapat fungsi home(), nah kita akan memodifikasi fungsi ini agar bisa menampilkan ‘Posts’ di halaman depan. Okey, ubah controller ‘Pages’ (controller/pages.php) menjadi seperti berikut (di replace aja code seblumnya):

<?php


class Pages extends CI_Controller {

var $template = 'template';

function __construct() {
parent::__construct();
$this->load->model('Posts_model');
}

function home() {
$data['posts'] = $this->Posts_model->findActive(5);
$data['page'] = 'pages/home';
$this->load->view($this->template, $data);
}

}

?>


Selanjutnya modifikasi juga view ‘home’ yang ada di views/pages/home.php menjadi seperti berikut:


<div><img src="<?php echo base_url(); ?>public/images/img06.jpg" alt="" width="510" height="250" /></div>
<?php if (!empty($posts)): ?>
<?php foreach ($posts as $post): ?>
<div>
<h1><a href="<?php echo site_url('posts/detail/' . $post['permalink']); ?>"><?php echo $post['title'] ?></a></h1>
<p><small><?php echo $post['created']; ?> by <a href="#"><?php echo $post['username']; ?></a></small></p>
<div>
<?php if (!empty($post['image'])): ?>
<img src="<?php echo base_url() . $post['image'] ?>" width="510" height="250"/>
<?php endif; ?>
<?php echo word_limiter($post['body'], 30); ?><br/>
<?php echo anchor('posts/detail/' . $post['permalink'], 'baca selengkapnya..'); ?>
</div>
</div>
<?php endforeach; ?>
<?php endif; ?>

Oh iya.. di view di atas dipanggil fungsi word_limiter yang ada pada helper “text” utk membatasi jumlah kata. Utk menggunakan itu kita harus mengaktifkan helpernya, bisa di panggil di autoload (config/autoload.php) dgn baris berikut:


$autoload['helper'] = array('url','form','tinymce','text');

Sampe di sini klo skrg kita akses localhost/sekolahku maka akan ditampilkan ‘Posts’ di halaman depan.

Selanjutnya adalah kita akan membuat tampilan detail dari artikel / posts tersebut kita di klik linknya. Maka pertama kita akan membuat controller Posts  dan simpen padacontrollers/posts.php kemudian ketikan kode berikut ini:


<?php

class Posts extends CI_Controller {

var $template = 'template';

function __construct() {
parent::__construct();
$this->load->model('Posts_model');
}

function detail($permalink = null) {
if ($permalink == null) {
redirect('pages/home');
}
$data['post'] = $this->Posts_model->findByPermalink($permalink);

$data['page'] = 'posts/detail';
$this->load->view($this->template, $data);
}

}

?>


Kemudian terakhir kita buat view ‘detail’ dan simpan pada views/posts/detail.php dan ketikan kode program seperti berikut:

<?php if (!empty($post)): ?>

<div>
<h1><?php echo $post['title'] ?></h1>
<p><small><?php echo $post['created']; ?></small></p>
<div>
<?php if (!empty($post['image'])): ?>
<img src="<?php echo base_url() . $post['image'] ?>" width="510" height="250"/>
<?php endif; ?>
<?php echo $post['body'] ?><br/>

</div>
</div>

<?php endif; ?>

Selesaaiiii… selamat mencoba :D

DOWNLOAD FULL SOURCE CODE | ONLINE DEMO

Website Sekolah CodeIgniter VIII: Membuat Admin Modul Posts (with upload Image)

Hey mas bro.. and mbak sist

Aku lagi lumayan semangat nulis nih.. utk melanjutkan tutorial Membuat Website Sekolah dengan CodeIgniter.. haha. Postingan seblumya kita udah bahas tentang Modul Categories, utk kali ini aku akan menulis tentang membuat Admin Modul Posts. Modul ini terkait (berelasi) dengan modul Categories, karena setiap ‘Post’ akan masuk dalam ‘Category’ tertentu. Pada prinsipnya tetep sama menggunakan konsep CRUD, cuma ada tambahan untuk Upload Image / Foto yang nantinya akan ditampilkan dalam artikel tersebut.

Okey.. Let’s Go!!

Buat tabel ‘posts’ dengan SQL berikut (klo blum buat):


CREATE TABLE IF NOT EXISTS `posts` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`permalink` varchar(255) NOT NULL,
`body` text NOT NULL,
`image` varchar(255) NOT NULL,
`status` tinyint(4) NOT NULL,
`categories_id` int(11) NOT NULL,
`users_id` int(11) NOT NULL,
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

Buat Model  “Posts_model” dan simpan pada application/models/posts_model.php , kemudian ketikan kode berikut (note: jika sudah ad model post model, kodenya di replace semua aja) :


<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

class Posts_model extends CI_Model {

var $table = 'posts';
 var $status = array(
 0 => 'draft',
 1 => 'published'
 );

function __construct() {
 parent::__construct();
 }

function findAll($limit = null, $offset = null, $q = null) {
 $this->db->select('posts.*,categories.name, users.username');
 $this->db->join('categories', 'categories.id = posts.categories_id');
 $this->db->join('users', 'users.id = posts.users_id');
 if ($q != null) {
 $this->db->like('title', $q);
 }
 $this->db->limit($limit, $offset);
 $this->db->order_by('id', 'desc');
 $query = $this->db->get($this->table);

if ($query->num_rows() > 0) {
 return $query->result_array();
 }
 }

function findActive($limit = null, $offset = null, $q = null) {
 $this->db->select('posts.*,categories.name, users.username');
 $this->db->join('categories', 'categories.id = posts.categories_id');
 $this->db->join('users', 'users.id = posts.users_id');
 if ($q != null) {
 $this->db->like('posts.title', $q);
 $this->db->or_like('posts.body', $q);
 }
 $this->db->limit($limit, $offset);
 $this->db->where('posts.status', 1);
 $this->db->order_by('id', 'desc');
 $query = $this->db->get($this->table);

if ($query->num_rows() > 0) {
 return $query->result_array();
 }
 }

function findByCategoryId($categories_id, $limit = null, $offset = null) {
 $this->db->select('posts.*,categories.name, users.username');
 $this->db->join('categories', 'categories.id = posts.categories_id');
 $this->db->join('users', 'users.id = posts.users_id');
 $this->db->limit($limit, $offset);
 $this->db->where('posts.status', 1);
 $this->db->where('posts.categories_id', $categories_id);
 $this->db->order_by('id', 'desc');
 $query = $this->db->get($this->table);

if ($query->num_rows() > 0) {
 return $query->result_array();
 }
 }

function findOthersInCategory($categories_id, $article_id, $limit = null, $offset = null) {
 $this->db->select('posts.*,categories.name, users.username');
 $this->db->join('categories', 'categories.id = posts.categories_id');
 $this->db->join('users', 'users.id = posts.users_id');
 $this->db->where('posts.categories_id', $categories_id);
 $this->db->where('posts.id !=', $article_id);
 $this->db->limit($limit, $offset);
 $this->db->where('posts.status', 1);
 $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->select('posts.*');
 $this->db->where('id', $id);
 $query = $this->db->get($this->table, 1);

if ($query->num_rows() == 1) {
 return $query->row_array();
 }
 }

function findByPermalink($permalink) {
 $this->db->select('posts.*');
 $this->db->where('permalink', $permalink);
 $query = $this->db->get($this->table, 1);

if ($query->num_rows() == 1) {
 return $query->row_array();
 }
 }

function countAll() {
 $query = $this->db->get($this->table);
 return $query->num_rows();
 }

function create($params = array()) {
 if (empty($params)) {
 $data = array(
 'title' => $this->input->post('title'),
 'permalink' => url_title($this->input->post('title')),
 'body' => $this->input->post('body'),
 'categories_id' => $this->input->post('categories_id'),
 'status' => $this->input->post('status'),
 'users_id' => $this->session->userdata('id'),
 'created' => date("Y-m-d H:i:s")
 );
 $this->db->insert($this->table, $data);
 } else {
 $this->db->insert($this->table, $params);
 }
 }

function update($id, $params) {
 if (empty($params)) {
 $data = array(
 'title' => $this->input->post('title'),
 'permalink' => url_title($this->input->post('title')),
 'body' => $this->input->post('body'),
 'categories_id' => $this->input->post('categories_id'),
 'status' => $this->input->post('status'),
 'users_id' => $this->session->userdata('id'),
 'modified' => date("Y-m-d H:i:s")
 );

$this->db->where('id', $id);
 $this->db->update($this->table, $data);
 } else {
 $this->db->where('id', $id);
 $this->db->update($this->table, $params);
 }
 }

function destroy($id) {
 $this->db->where('id', $id);
 $this->db->delete($this->table);
 }

}

?>

Buat Controller “Posts” dan simpan pada application/controllers/posts.php :


<?php

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

class Posts extends CI_Controller {

var $template = 'admin/template';
var $imagePath = 'public/media/posts/';
var $status = array(
0 => 'draft',
1 => 'published'
);

function __construct() {
parent::__construct();
$this->general->checkAdmin();
$this->load->model('Posts_model');
$this->load->model('Categories_model');
}

function index($page = null) {

$this->load->library('pagination');
$config['uri_segment'] = 4;
$config['total_rows'] = $this->Posts_model->countAll();
$config['per_page'] = 10;
$config['base_url'] = base_url() . 'admin/posts/index/';

if ($this->input->get('q')):
$q = $this->input->get('q');
$data['posts'] = $this->Posts_model->findAll($config['per_page'], $this->uri->segment(4), $q);
if (empty($data['posts'])) {
$this->session->set_flashdata('error', 'Data tidak ditemukan');
redirect('admin/posts/index');
}
$config['total_rows'] = count($data['posts']);
else:
$data['posts'] = $this->Posts_model->findAll($config['per_page'], $this->uri->segment(4));
endif;
$this->pagination->initialize($config);
$data['status'] = $this->status;
$data['pagination'] = $this->pagination->create_links();
$data['content'] = 'admin/posts/index';
$this->load->view($this->template, $data);
}

function add() {

$this->form_validation->set_rules('title', 'title', 'required|xss_clean');
$this->form_validation->set_rules('body', 'body', 'required|xss_clean');
$this->form_validation->set_rules('categories_id', 'category', 'required|xss_clean');
$this->form_validation->set_rules('status', 'status', 'required|xss_clean');
$this->form_validation->set_error_delimiters('', '<br/>');
if ($this->form_validation->run() == TRUE) {

$params = array(
'title' => $this->input->post('title'),
'permalink' => url_title($this->input->post('title')),
'body' => $this->input->post('body'),
'categories_id' => $this->input->post('categories_id'),
'status' => $this->input->post('status'),
'users_id' => $this->session->userdata('id'),
'created' => date("Y-m-d H:i:s")
);
if ($_FILES['image']['error'] != 4) {
$config['upload_path'] = $this->imagePath;
$config['allowed_types'] = 'jpg|png|jpeg|gif';
$config['max_size'] = '200000';
$this->load->library('upload', $config);

if ($this->upload->do_upload("image")) {
$image = $this->upload->data();
$params['image'] = $this->imagePath . $image['file_name'];
}
}

$this->Posts_model->create($params);
$this->session->set_flashdata('success', 'Post created');
redirect('admin/posts');
}
$data['categories'] = $this->Categories_model->findList();
$data['status'] = $this->Posts_model->status;
$data['content'] = 'admin/posts/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|xss_clean');
$this->form_validation->set_rules('body', 'body', 'required|xss_clean');
$this->form_validation->set_rules('categories_id', 'category', 'required|xss_clean');
$this->form_validation->set_rules('status', 'status', 'required|xss_clean');
$this->form_validation->set_error_delimiters('', '<br/>');
if ($this->form_validation->run() == TRUE) {

$params = array(
'title' => $this->input->post('title'),
'permalink' => url_title($this->input->post('title')),
'body' => $this->input->post('body'),
'categories_id' => $this->input->post('categories_id'),
'status' => $this->input->post('status'),
'users_id' => $this->session->userdata('id'),
'created' => date("Y-m-d H:i:s")
);
if ($_FILES['image']['error'] != 4) {
$config['upload_path'] = $this->imagePath;
$config['allowed_types'] = 'jpg|png|jpeg|gif';
$config['max_size'] = '200000';
$this->load->library('upload', $config);

if ($this->upload->do_upload("image")) {
$image = $this->upload->data();
$params['image'] = $this->imagePath . $image['file_name'];
}
}

$this->Posts_model->update($id, $params);
$this->session->set_flashdata('success', 'Post edited');
redirect('admin/posts');
}

$data['post'] = $this->Posts_model->findById($id);
$data['categories'] = $this->Categories_model->findList();
$data['status'] = $this->status;
$data['content'] = 'admin/posts/edit';
$this->load->view($this->template, $data);
}

function delete($id = null) {
if ($id == null) {
$this->session->set_flashdata('error', 'Invalid post');
redirect('admin/posts');
} else {
$post = $this->Posts_model->findById($id);
if (file_exists($post['image'])) {
unlink($post['image']);
}
$this->Posts_model->destroy($id);
$this->session->set_flashdata('success', 'Post deleted');
redirect('admin/posts');
}
}

}

?>

Pada controller di atas terdapat kode program untuk upload image/foto. Image ato foto tersebut akan disimpan pada folder sesuai yang didefinisikan -> var $imagePath = ‘public/media/posts/’; Sehingga kita perlu buat folder media  dalam folder public, kemudian buat folder posts di dalam folder media. Serta jangan lupa permissionnya di set 777 (chmod 777).

Next, buat view index.php dan simpan pada application/views/admin/posts/index.php :


<h3>List Posts</h3>
<?php echo anchor('admin/posts/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>Image</td>
<td>Title</td>
<td>Category</td>
<td>Status</td>
<td>User</td>
<td>Action</td>
</tr>
<?php if (!empty($posts)): ?>
<?php $no = 1; ?>
<?php foreach ($posts as $post): ?>
<tr>
<td><?php echo $no; ?></td>
<td><img src="<?php echo base_url().$post['image']; ?>" width="100" height="100"/></td>
<td><?php echo $post['title']; ?></td>
<td><?php echo $post['name']; ?></td>
<td><?php echo $status[$post['status']]; ?></td>
<td><?php echo $post['username']; ?></td>
<td>
<a href="<?php echo site_url('admin/posts/edit/' . $post['id']); ?>">Edit</a> |
<a href="<?php echo site_url('admin/posts/delete/' . $post['id']); ?>" onclick=" return confirm('Are you sure?')">Delete</a>
</td>
</tr>
<?php $no++; ?>
<?php endforeach; ?>
<?php endif; ?>

</table>

Next, buat view add.php dan simpan pada application/views/admin/posts/add.php :


<?php
echo initialize_tinymce();
?>
<h3>Add Post</h3><br/>
<?php echo validation_errors(); ?>
<?php echo form_open_multipart('admin/posts/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/>
Category:<br/>
<?php echo form_dropdown('categories_id',$categories);?><br/>
Image : <br/>
<?php echo form_upload('image');?><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(); ?>

Next, buat view edit.php dan simpan pada application/views/admin/posts/edit.php:


<h3>Edit Page</h3><br/>
<?php echo initialize_tinymce(); ?>
<?php echo validation_errors(); ?>
<?php echo form_open_multipart('admin/posts/edit'); ?>

<?php echo form_hidden('id', $post['id']); ?>
Title :<br/>
<?php echo form_input(array('name' => 'title', 'value' => set_value('title', isset($post['title']) ? $post['title'] : ''))); ?><br/>
Body :<br/>
<?php echo form_textarea(array('name' => 'body', 'value' => set_value('title', isset($post['body']) ? $post['body'] : ''))); ?><br/>
Category:<br/>
<?php echo form_dropdown('categories_id', $categories,$post['categories_id']); ?><br/>
Current Image : <br/>
<img src="<?php echo base_url().$post['image'];?>" width="150" height="150"/><br/>
Image : <br/>
<?php echo form_upload('image'); ?><br/>
Status:<br/>
<?php echo form_dropdown('status', $status, isset($post['status']) ? $post['status'] : ''); ?><br/>
<?php echo form_submit('submit', 'Save'); ?>

<?php echo form_close(); ?>

Okey… saatnya uji coba.. dan taraaaaaaaaaaa hasilnya sperti gambar berikut:

Modul Posts

Modul Posts

DOWNLOAD FULL SOURCE CODE | ONLINE DEMO

Eh tapi sorry ya guys.. nulis tutorialnya maen next2 aja.. habis klo mo dijelasin detailnya pegel juga.haha , ntar klo butuh penjelasan kita interaktif aja via Komentar dibawah :D , okey. Semoga bermanfaat :)

Website Sekolah CodeIgniter VII : Membuat Admin Modul Categories

Hei guys..

Postingan ini merupakan lanjutan dari tutorial membuat website sekolah dengan CodeIgniter. Pada postingan sebelumnya telah dibahas tentang Menambahkan Editor TinyMce . Kali ini kita akan membuat admin modul Categories. Pada prinsipnya modul ini cuma menerapkan prinsip insert,update,delete seperti biasa dan mirip dengan Admin Modul Pages yang telah kita buat sebelumnya. Sehingga tidak perlu dibahas lebih detail lagi.

Okey.. pertama buat tabel di MySQL dengan nama ‘categories’ yang memiliki field (id,name,permalink,description). Anda bisa membuat tabelnya dengan SQL berikut ini:


CREATE TABLE IF NOT EXISTS `categories` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`permalink` varchar(255) NOT NULL,
`description` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

Kedua, Buat model dengan nama ‘Categories_model’ dan simpan pada application/models/categories_model.php dan ketikan kode program seperti berikut ini:


<?php

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

class Categories_model extends CI_Model {

var $table = 'categories';

function __construct() {
parent::__construct();
}

function findAll($limit =null, $offset = null) {
$this->db->select('*');
$this->db->limit($limit, $offset);
$this->db->order_by('name','ASC');
$query = $this->db->get($this->table);

if ($query->num_rows() > 0) {
return $query->result_array();
}
}

function findList() {

$query = $this->db->get($this->table);
$data = array();
if ($query->num_rows() > 0) {
foreach ($query->result_array() as $row) {
$data[$row['id']] = $row['name'];
}
}
return $data;
}

function findById($id) {
$this->db->select('*');
$this->db->where('id', $id);
$query = $this->db->get($this->table, 1);

if ($query->num_rows() == 1) {
return $query->row_array();
}
}

function findByPermalink($permalink) {
$this->db->select('*');
$this->db->where('permalink', $permalink);
$query = $this->db->get($this->table, 1);

if ($query->num_rows() == 1) {
return $query->row_array();
}
}

function create() {
$data = array(
'name' => $this->input->post('name'),
'permalink' => url_title($this->input->post('name')),
'description' => $this->input->post('description')
);

$this->db->insert($this->table, $data);
}

function update($id) {

$data = array(
'name' => $this->input->post('name'),
'permalink' => url_title($this->input->post('name')),
'description' => $this->input->post('description')
);

$this->db->where('id', $id);
$this->db->update($this->table, $data);
}

function destroy($id) {
$this->db->where('id', $id);
$this->db->delete($this->table);
}

}

?>

Karena categories ini nantinya akan mempunya relasi dengan posts, maka kita akan buat sekalian tabel dan model utk posts. Berikut ini SQL utk membuat tabel ‘posts’:


CREATE TABLE IF NOT EXISTS `posts` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`permalink` varchar(255) NOT NULL,
`body` text NOT NULL,
`image` varchar(255) NOT NULL,
`status` tinyint(4) NOT NULL,
`categories_id` int(11) NOT NULL,
`users_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Kemudian buat model ‘Post_model’ dan simpan pada application/models/posts_model.php kemudian ketikan kode berikut:


<?php

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

class Posts_model extends CI_Model {

var $table = 'posts';
var $status = array(
0 => 'draft',
1 => 'published'
);

function __construct() {
parent::__construct();
}

function findAll($limit = null, $offset = null, $q = null) {
$this->db->select('posts.*,categories.name, users.username');
$this->db->join('categories', 'categories.id = posts.categories_id');
$this->db->join('users', 'users.id = posts.users_id');
if ($q != null) {
$this->db->like('title', $q);
}
$this->db->limit($limit, $offset);
$this->db->order_by('id', 'desc');
$query = $this->db->get($this->table);

if ($query->num_rows() > 0) {
return $query->result_array();
}
}

function findActive($limit = null, $offset = null, $q = null) {
$this->db->select('posts.*,categories.name, users.username');
$this->db->join('categories', 'categories.id = posts.categories_id');
$this->db->join('users', 'users.id = posts.users_id');
if ($q != null) {
$this->db->like('posts.title', $q);
$this->db->or_like('posts.body', $q);

}
$this->db->limit($limit, $offset);
$this->db->where('posts.status', 1);
$this->db->order_by('id', 'desc');
$query = $this->db->get($this->table);

if ($query->num_rows() > 0) {
return $query->result_array();
}
}

function findByCategoryId($categories_id, $limit = null, $offset = null) {
$this->db->select('posts.*,categories.name, users.username');
$this->db->join('categories', 'categories.id = posts.categories_id');
$this->db->join('users', 'users.id = posts.users_id');
$this->db->limit($limit, $offset);
$this->db->where('posts.status', 1);
$this->db->where('posts.categories_id', $categories_id);
$this->db->order_by('id', 'desc');
$query = $this->db->get($this->table);

if ($query->num_rows() > 0) {
return $query->result_array();
}
}

function findPreviousposts($limit = null, $offset = null, $postsIds = null) {
$this->db->select('posts.*,categories.name, users.username');
$this->db->join('categories', 'categories.id = posts.categories_id');
$this->db->join('users', 'users.id = posts.users_id');
$this->db->where_not_in('posts.id', $postsIds);
$this->db->limit($limit, $offset);
$this->db->where('posts.status', 1);
$this->db->order_by('id', 'desc');
$query = $this->db->get($this->table);

if ($query->num_rows() > 0) {
return $query->result_array();
}
}

function findOthersInCategory($categories_id, $article_id, $limit = null, $offset = null) {
$this->db->select('posts.*,categories.name, users.username');
$this->db->join('categories', 'categories.id = posts.categories_id');
$this->db->join('users', 'users.id = posts.users_id');
$this->db->where('posts.categories_id', $categories_id);
$this->db->where('posts.id !=', $article_id);
$this->db->limit($limit, $offset);
$this->db->where('posts.status', 1);
$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->select('posts.*');
$this->db->where('id', $id);
$query = $this->db->get($this->table, 1);

if ($query->num_rows() == 1) {
return $query->row_array();
}
}

function findByPermalink($permalink) {
$this->db->select('posts.*');
$this->db->where('permalink', $permalink);
$query = $this->db->get($this->table, 1);

if ($query->num_rows() == 1) {
return $query->row_array();
}
}

function countAll() {
$query = $this->db->get($this->table);
return $query->num_rows();
}

function create() {
$data = array(
'title' => $this->input->post('title'),
'permalink' => url_title($this->input->post('title')),
'body' => $this->input->post('body'),
'categories_id' => $this->input->post('categories_id'),
'status' => $this->input->post('status'),
'users_id' => $this->session->userdata('id'),
'created' => date("Y-m-d H:i:s")
);

$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'),
'categories_id' => $this->input->post('categories_id'),
'status' => $this->input->post('status'),
'users_id' => $this->session->userdata('id'),
'modified' => date("Y-m-d H:i:s")
);

$this->db->where('id', $id);
$this->db->update($this->table, $data);
}

function destroy($id) {
$this->db->where('id', $id);
$this->db->delete($this->table);
}

}

?>

Membuat controller categories (application/controlles/admin/categories.php):


<?php

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

class Categories extends CI_Controller {

var $template = 'admin/template';

function __construct() {
parent::__construct();
$this->general->checkAdmin();
$this->load->model('Categories_model');
$this->load->model('Posts_model');

}

function index() {
$data['categories'] = $this->Categories_model->findAll();
$data['content'] = 'admin/categories/index';
$this->load->view($this->template, $data);
}

function add() {
$this->form_validation->set_rules('name', 'name', 'required');
$this->form_validation->set_error_delimiters('', '<br/>');

if ($this->form_validation->run() == TRUE) {
$this->Categories_model->create();
$this->session->set_flashdata('success', 'Category created');
redirect('admin/categories');
}
$data['content'] = 'admin/categories/add';
$this->load->view($this->template, $data);
}

function edit($id = null) {
if ($id == null) {
$id = $this->input->post('id');
}

$this->form_validation->set_rules('name', 'name', 'required');
$this->form_validation->set_error_delimiters('', '<br/>');

if ($this->form_validation->run() == TRUE) {
$this->Categories_model->update($id);
$this->session->set_flashdata('success', 'Category edited');
redirect('admin/categories');
}
$data['category'] = $this->Categories_model->findById($id);
$data['content'] = 'admin/categories/edit';
$this->load->view($this->template, $data);
}

function delete($id = null) {
if ($id == null) {
$this->session->set_flashdata('error', 'Invalid category');
redirect('admin/categories');
} else {
$articles = $this->Posts_model->findByCategoryId($id);
if (!empty($articles)) {
$this->session->set_flashdata('error', 'This category could not deleted cause have some articles');
} else {
$this->Categories_model->destroy($id);
$this->session->set_flashdata('success', 'Category deleted');
}
redirect('admin/categories');
}
}

}

?>

Membuat view index  (application/views/admin/categories/index.php):


<h3>Categories</h3>
<?php echo anchor('admin/categories/add', 'Add'); ?><br/>

<?php if ($this->session->flashdata('success')): ?>

<?php echo $this->session->flashdata('success'); ?>
<?php endif; ?>
<?php if ($this->session->flashdata('error')): ?>

<?php echo $this->session->flashdata('error'); ?>
<?php endif; ?>

<table cellpadding="0" cellspacing="0" border="1">
<tr>
<th>Name</th>
<th>Description</th>
<th>Action</th>
</tr>
<?php if ($categories): ?>
<?php foreach ($categories as $category): ?>
<tr>
<td><?php echo $category['name']; ?></td>
<td><?php echo $category['description']; ?></td>
<td>
<a href="<?php echo site_url('admin/categories/edit/' . $category['id']) ?>">Edit</a> |
<a href="<?php echo site_url('admin/categories/delete/' . $category['id']) ?>" onclick="return confirm('Anda yakin akan menghapus ini?');">Hapus</a>
</td>
</tr>
<?php endforeach; ?>
<?php endif; ?>
</table>

Membuat view add (application/views/admin/categories/add.php):


<h3>Add Category</h3><br/>
<?php echo validation_errors(); ?>
<?php echo form_open_multipart('admin/categories/add'); ?>
Name : <br/>
<?php echo form_input(array('name' => 'name', 'value' => set_value('name'))); ?><br/>
Description: <br/>
<?php echo form_textarea(array('name' => 'description', 'value' => set_value('description'))); ?>
<br/>
<input type="submit" value="Submit"/>
<?php echo form_close(); ?>

<!--end #article-->

Membuat view edit (application/views/admin/categories/edit.php):


<h3>Edit Category</h3><br/>
<?php echo validation_errors();?><br/>
<?php echo form_open_multipart('admin/categories/edit'); ?>
<?php echo form_hidden('id', $category['id']) ?>
Name : <br/>
<?php echo form_input(array('name' => 'name', 'value' => set_value('name', isset($category['name']) ? $category['name'] : ''))); ?><br/>
Description : <br/>
<?php echo form_textarea(array('name' => 'description', 'value' => set_value('description', isset($category['description']) ? $category['description'] : ''))); ?><br/>

<input type="submit" value="Submit"/>
<?php echo form_close(); ?>

Sekarang tambahkan menu pada header yang terletak pada file application/views/admin/template.php, sehingga file template.php menjadi seperti berikut:


<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') ?> |
<?php echo anchor('admin/categories', 'Categories') ?> |
<?php echo anchor('users/logout', 'Logout') ?>
<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>

Okey.. skrg saatnya melakukan uji coba. silahkan login dengan akun admin kemudian klik menu ‘Categories’ atau ketika url http://localhost/sekolahku/admin/categories/ , jika tidak ada kesalahan maka akan tampil seperti berikut:

modul admin categories

modul admin categories

DOWNLOAD FULL SOURCE CODE | ONLINE DEMO

UPDATE – CodeIgniter 3# Contoh Aplikasi Manipulasi Database (insert,update,delete)

Sepertiny membuat program sederhana untuk memanipulasi database ( insert,update,delete,select) merupakan aplikasi yng sangat penting dan fundamental.  Pada postingan sebelumnya CodeIgniter 3# Contoh Aplikasi Manipulasi Database (insert,update,delete) aku sudah membahas ini, tpi waktu itu masih CodeIgniter versi 1.7, jdi banyak pembaca yang bingung/ mendapatkan error ketika di coba pada CodeIgniter versi 2.x. Oleh karena itu pada kesempatan kali ini aku mencoba update dari postingan sebelumnya di atas. Semoga bisa bermanfaat bagi rekan2 semua.. hehe.. Langsung aja yak !

Source Code Manipulasi Database CodeIgniter (815)

Note : Disini langsung ditampilkan source code masing2 file, tidak akan diberikan penjelasan ulang, karena pada prinsipnya sama dengan postingan sebelumnya.

Model MPegawai

application/models/mpegawai.php


<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class MPegawai extends CI_Model{
var $table = 'pegawai';
function _construct(){
parent::_construct();
}

//fungsi untuk mendapatkan pegawai berdasarkan id
function getPegawai($id){
$data = array();
$this->db->where('id',$id);
$this->db->limit(1);
$query = $this->db->get($this->table);

if($query->num_rows() > 0)
{
$data = $query->row_array();
}
return $data;
}

//fungsi untuk mendapatkan semua data pegawai
function getAllPegawai(){
$this->db->order_by('nama','asc');
$query = $this->db->get($this->table);
if($query->num_rows() > 0)
{
return $query->result_array();
}

}

//fungsi untuk menambah data pegawai ke alam tabel dari form isian
function addPegawai(){
$data = array(
'nip' => $this->input->post('nip'),
'nama' => $this->input->post('nama'),
'pekerjaan' => $this->input->post('pekerjaan'),
'alamat' => $this->input->post('alamat')
);
$this->db->insert($this->table,$data);
}

//fungsi untuk mengedit data pegawai berdasarkan id
function editPegawai($id){
$data = array(
'nip' => $this->input->post('nip'),
'nama' => $this->input->post('nama'),
'pekerjaan' => $this->input->post('pekerjaan'),
'alamat' => $this->input->post('alamat')
);
$this->db->where('id',$id);
$this->db->update($this->table,$data);
}

//fungsi untuk menghapus data pegawai berdasarkan id pegawai
function deletePegawai($id){
$this->db->where('id',$id);
$this->db->delete($this->table);
}
}

Controller pegawai

application/controllers/pegawai.php


<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Pegawai extends CI_Controller{

function __construct(){
parent::__construct();
$this->load->model('MPegawai');
}

public function index(){
$data['title'] = "Data Pegawai";
$data['pegawai']=$this->MPegawai->getAllPegawai();
$this->load->view('pegawai_home',$data);
}

function add(){
$this->form_validation->set_rules('nip','NIP','required');
$this->form_validation->set_rules('nama','nama','required');
if($this->form_validation->run() == TRUE){
$this->MPegawai->addPegawai();
$this->session->set_flashdata('message','Berhasil menambah data pegawai');
redirect('pegawai','refresh');
}

$data['title'] = "Tambah Pegawai Data";
$this->load->view('pegawai_add', $data);

}

function edit($id = null){
if($id == null){
$id = $this->input->post('id');
}
$this->form_validation->set_rules('nip','NIP','required');
$this->form_validation->set_rules('nama','nama','required');
if($this->form_validation->run() == TRUE){
$this->MPegawai->editPegawai($id);
$this->session->set_flashdata('message','Data pegawai berhasil diedit');
redirect('pegawai','refresh');
}

$data['title'] = "Edit Data";
$data['pegawai'] = $this->MPegawai->getPegawai($id);

$this->load->view('pegawai_edit',$data);

}

function delete($id){
if(!empty($id)){
$this->MPegawai->deletePegawai($id);
$this->session->set_flashdata('message','Pegawai Data has been DELETE !');
redirect('pegawai/index','refresh');
}
}

}

View

application/views/pegawai_home.php


<h2><?php echo $title;?></h2>
<p><a href="<?php echo base_url()?>index.php/pegawai/add"> Add</a></p>

<?php
if($this->session->flashdata('message')){
echo "<p><i>".$this->session->flashdata('message')."</i></p>";
}
?>
<table width="450" border="1">
<tr>
<td width="27">NIP</td>
<td width="99">Nama</td>
<td width="101">Pekerajaan</td>
<td width="91">Alamat</td>
<td width="200">Aksi</td>
</tr>
<?php
if(!empty($pegawai)){
foreach($pegawai as $peg){
?>
<tr>
<td><?php echo $peg['nip'];?></td>
<td><?php echo $peg['nama'];?></td>
<td><?php echo $peg['pekerjaan'];?></td>
<td><?php echo $peg['alamat'];?></td>
<td>
<a href="<?=base_url()?>index.php/pegawai/edit/<?php echo $peg['id'];?>">Edit</a> |
<a href="<?=base_url()?>index.php/pegawai/delete/<?php echo $peg['id'];?>"  onclick="return confirm('Anda yakin akan menghapus data?')">Delete</a>
</td>
</tr>
<?php
}
}
?>
<tr>
<td colspan="4">Total</td>
<td><?php echo count($pegawai);?></td>
</tr>
</table>
<p>&nbsp;</p>

application/views/pegawai_add.php


<h2><?php echo $title;?></h2>

<form name="form1" id="form1" action="<?=base_url()?>index.php/pegawai/add" method="post">
<?php
if($this->session->flashdata('message')){
echo "<i>".$this->session->flashdata('message')."</i>";
}

echo validation_errors();
?>
<table width="400" border="1">
<tr>
<td colspan="2"><div align="center"><strong>Tambah data Pegawai</strong></div></td>
</tr>
<tr>
<td>NIP</td>
<td><input name="nip" type="text" id="nip" value="<?php echo set_value('nip');?>"></td>
</tr>
<tr>
<td>Name</td>
<td><input name="nama" type="text" id="nama" value="<?php echo set_value('nama');?>"></td>
</tr>
<tr>
<td>Pekerajaan</td>
<td><input name="pekerjaan" type="text" id="pekerjaan" value="<?php echo set_value('pekerjaan');?>"></td>
</tr>
<tr>
<td>Alamat</td>
<td><input name="alamat" type="text" id="alamat" value="<?php echo set_value('alamat');?>"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input name="Add" type="submit" id="add" value="Submit"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><a href="<?php echo base_url()?>index.php/pegawai">Home>> </a></td>
</tr>
</table>
</form>

application/views/pegawai_edit.php


<h2><?php echo $title;?></h2>
<form id="form1" action="<?=base_url()?>index.php/pegawai/edit" method="post" name="form1">
<?php
if($this->session->flashdata('message')){
echo "<i>".$this->session->flashdata('message')."</i>";
}

echo validation_errors();
?>
<?php echo form_hidden('id',$pegawai['id']);?>
<table width="400" border="1">
<tr>
<td colspan="2"><div align="center"><strong>Edit Data Pegawai</strong></div></td>
</tr>
<tr>
<td>NIP</td>
<td><input name="nip" type="text" id="nip" value="<?php echo set_value('nip',isset($pegawai['nip'])?$pegawai['nip'] :'');?>"></td>
</tr>
<tr>
<td>Name</td>
<td><input name="nama" type="text" id="nama" value="<?php echo set_value('nama',isset($pegawai['nama'])?$pegawai['nama'] :'');?>"></td>
</tr>
<tr>
<td>Pekerajaan</td>
<td><input name="pekerjaan" type="text" id="pekerjaan" value="<?php echo set_value('pekerjaan',isset($pegawai['pekerjaan'])?$pegawai['pekerjaan'] :'');?>"></td>
</tr>
<tr>
<td>Alamat</td>
<td><input name="alamat" type="text" id="alamat" value="<?php echo set_value('alamat',isset($pegawai['alamat'])?$pegawai['alamat'] :'');?>"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input name="Add" type="submit" id="add" value="Submit"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><a href="<?php echo base_url()?>index.php/pegawai">Home>> </a></td>
</tr>
</table>

</form>


Source Code Manipulasi Database CodeIgniter (815)

Website Sekolah CodeIgniter VI : Menambahkan Editor TinyMce pada Admin

Hello CodeIgniter Mania.. :D

Kali ini aku akan menuliskan tutorial sederhana untuk menambahkan Editor TinyMce pada CodeIgniter. Editor ini akan memudahkan bagi pengelola (admin) website untuk mengupdate konten website  karena bisa dikatakan Editor ini sebagai “Office” dalam website.  Pada kesempatan kali ini kita akan menambahkan Editor ini pada modul Admin Pages yang pembuatannya telah dibahas pada postingan terdahulu. Berikut ini adalah langkah-langkah untuk menambahkan Editor TinyMce pada CodeIgniter 2.0.2 :

1. Download master TinyMce pada websitenya => http://www.tinymce.com/download/download.php

2. Ekstrak file zip dari hasil download tersebut

3. Kopikan folder tiny_mce yang terletak pada  tinymce/jscripts ke dalam  public/js pada folder project CodeIgniter Anda. Sehingga struktur foldernya menjadi seperti berikut:

Struktur Folder Editor TinyMce

Struktur Folder Editor TinyMce

4. Membuat helper dengan nama tinymce_helper.php dan disimpan pada folder application/helpers dan tuliskan kode program berikut pada file/ helper tersebut:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
function initialize_tinymce() {
$tinymce = '<script type="text/javascript" src="' . base_url() . 'public/js/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
tinyMCE.init({
theme : "advanced",
mode : "textareas",
theme_advanced_toolbar_location : "top",
convert_urls : false,
height: 300,
width:700
});
</script>';
return $tinymce;

}

5.  Panggil helper tersebut melalui autoload pada file application/config/autoload.php sehingga pada pemanggilan helper menjadi seperti berikut:


$autoload['helper'] = array('url','form','tinymce');

6. Kita akan mencoba menambahkan editor ini ada modul Add Pages yang telah kita buat sebelumnya. Oleh karena itu sekarang buka file application/views/admin/pages/add.php kemudian tambahkan kode program (pemanggilan TinyMce)  berikut pada baris paling atas:


<?php
echo initialize_tinymce();
?>

 

7. Uji  Coba. Jika berjalan dengan baik , ketika kita akan menambah Page maka tampilan form isian utk body akan tampil editor TinyMce sperti berikut:

Tampilan Editor TinyMce Pada Modul Pages

Tampilan Editor TinyMce Pada Modul Pages

Sekian dan selamat mencoba. Terima kasih :)

DOWNLOAD FULL SOURCE CODE | ONLINE DEMO

username : admin

password : admin


Website Sekolah CodeIgniter V : Membuat Library Pengecekan Hak Akses User

Heii..

Pada postingan sebelumnya kita telah membahas tentang membuat Admin Modul Pages untuk kemudahan Admin dalam membuat konten website. Tetapi fitur2 modul tersebut masih bisa di akses dengan mengetikan url nya langsung, misal => http://localhost/sekolahku/index.php/admin/pages   tanpa melakukan proses login terlebih dahulu. Nah.. pada kesempatan kali ini dibuat lah Library untuk pengecekan hak akses user untuk mencegah hal2 seperti itu. Pengecekan hak akses ini meliputi tipe2 user yng telah didefinisikan sebelumnya, yaitu Admin, Teachers, Students,  Alumni. Berikut ini adalah langkah-langkah pembuatan Library Hak Akses User:

1. Buat file General.php pada folder application/libraries

2. Ketik kode program berikut pada file General.php tersebut:


<?php

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/**
* Description of General
*
* @author gieart
*/
class General {

//put your code here
var $ci;

function __construct() {
$this->ci = &get_instance();
}

function isLogin() {
if ($this->ci->session->userdata('is_login') == TRUE) {
return TRUE;
} else {
return FALSE;
}
}

function isAdmin() {
if ($this->ci->session->userdata('type') == 'admin') {
return TRUE;
} else {
return FALSE;
}
}

function isTeacher() {
if ($this->ci->session->userdata('type') == 'teachers') {
return TRUE;
} else {
return FALSE;
}
}

function isStudent() {
if ($this->ci->session->userdata('type') == 'students') {
return TRUE;
} else {
return FALSE;
}
}

function isAlumni() {
if ($this->ci->session->userdata('type') == 'alumni') {
return TRUE;
} else {
return FALSE;
}
}

function checkAdmin() {
if (($this->isLogin() && $this->isAdmin()) != TRUE) {
$this->ci->session->set_flashdata('error', 'Maaf, Anda tidak memiliki hak akses sebagai admin');
redirect('users/login');
}
}

function checkTeacher() {
if (($this->isLogin() && $this->isTeacher()) != TRUE) {
$this->ci->session->set_flashdata('error', 'Maaf, Anda tidak memiliki hak akses sebagai guru');
redirect('users/login');
}
}

function checkStudent() {
if (($this->isLogin() && $this->isStudent()) != TRUE) {
$this->ci->session->set_flashdata('error', 'Maaf, Anda tidak memiliki hak akses sebagai siswa');
redirect('users/login');
}
}

function checkAlumni() {
if (($this->isLogin() && $this->isAlumni()) != TRUE) {
$this->ci->session->set_flashdata('error', 'Maaf, Anda tidak memiliki hak akses sebagai alumni');
redirect('users/login');
}
}

}

?>

3. Buka file autoload.php pada folder application/config kemudian pada bagian pemanggilan libraries tambahkan pemanggilan library General  yang kita buat saat ini. Sehingga menjadi seperti ini :


$autoload['libraries'] = array('database','session','form_validation','General');

4. Lakukan pemanggilan library pada tempat2 yang dibutuhkan. Misal untuk memproteksi Admin Modul Pages, maka kita tambahkan pada constructor pada  file application/controllers/admin/pages , sehingga pada fungsi constructor menjadi seperti berikut:


function __construct() {
parent::__construct();

$this->general->checkAdmin(); // Pengecekan Hak Akses Admin, jika bukan Admin maka akan diredirect ke form Login

$this->load->model('Pages_model');
}

5. Selesaii.. :) , coba lakukan pengecekan dengan mengakses http://localhost/sekolahku/index.php/admin/pages  tanpa melakukan proses login. Jika Library ini berjalan dengan baik maka saat pengaksesan tersebut akan diredirect ke form login ada peringatan yng menyatakan bahwa anda tidak memiliki hak akses.

Terima kasih… :)

DOWNLOAD FULL SOURCE CODE | ONLINE DEMO

username : admin

password : admin

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

/*
* 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:

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


<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

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. :)

Tutorial CodeIgniter : Upload File ke Amazon S3

Beberapa hari ini aku sedang ngerjain project yng menggunakan service  Amazon S3. Seperti kita tau Amazon S3 (Simple Storage Service) adalah layanan penyimpanan online yang diberikan oleh Amazon kepada public yang dapat digunakan dengan memanfaatkan beberapa teknologi web service sperti REST, SOAP, Bit  Torent. Lebih lengkapnya baca di http://en.wikipedia.org/wiki/Amazon_S3 yak!! :-)

Okey.. tuk kesempatan kali ini aku akan tulis langkah-langkah upload file ke Amazon S3 di CodeIgnter 2.0.2. Library dan referensi yang aku gunakan bisa dibuka di http://getsparks.org/packages/amazon-s3/versions/HEAD/show. Berikut step2 singkatnya:

1. Buat folder project baru (misal: amazon) , dan install codeigniter dalam folder project itu. Instalasi bisa di baca di tulisan terdahulu => http://gie-art.com/2009/07/codeigniter-1-instalasi-konfigurasi/

2. Download Libary Amazone S3 di http://github.com/phused/CodeIgniter-S3. Ada 2 file utama yaitu s3.php yang merupakan file konfigurasi. Sehingga file ini kita kopikan ke dalam application/config. File yng kedua yaitu S3.php. Ini adalah librarynya, dan ini kita kopikan ke dalam application/libraries.

3. Setting Access Key dan Secret Key pada config/s3.php

Ganti sesuai dengan Access Key  dan Secret Key yang Anda miliki pada baris program berikut:


$config['access_key'] = 'Your Access Key';
$config['secret_key'] = 'Your Secret Key';

3. Buat Controller untuk proses upload dan View untuk form uploadnya. Berikut ini adalah controller dan view yang aku buat.

Controller amazon.php


&lt;?php

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

class Amazon extends CI_Controller {

var $bucket = 'mybucket';

function __construct() {
parent::__construct();
$this-&gt;load-&gt;library('s3');
}

function upload_file() {

if (!empty($_FILES) &amp;&amp; $_FILES['file']['error'] != 4) {

$fileName = $_FILES['file']['name'];
$tmpName = $_FILES['file']['tmp_name'];

if ($this-&gt;s3-&gt;putObjectFile($tmpName, $this-&gt;bucket, $fileName, S3::ACL_PUBLIC_READ)) {
$this-&gt;session-&gt;set_flashdata('success', 'Berhasil upload file');
redirect('amazon/lihat_file');
} else {
$this-&gt;session-&gt;set_flashdata('error', 'Gagal upload file');
redirect('amazon/upload_file');
}
}

$this-&gt;load-&gt;view('upload_file');
}

function lihat_file() {

$data['files'] = $this-&gt;s3-&gt;getBucket($this-&gt;bucket);
$this-&gt;load-&gt;view('lihat_file', $data);
}

}

?&gt;

 

View upload_file.php


&lt;h1&gt;Upload file ke Amazon S3&lt;/h1&gt;&lt;br/&gt;
&lt;?php echo form_open_multipart('amazon/upload_file') ?&gt;
File :&lt;?php echo form_upload('file'); ?&gt; &lt;?php echo form_submit('Submit', 'Upload'); ?&gt;
&lt;?php echo form_close(); ?&gt;

 

View lihat_file.php


&lt;h1&gt;Daftar File&lt;/h1&gt;
&lt;table border="1"&gt;
&lt;thead&gt;

&lt;th&gt;File Name&lt;/th&gt;
&lt;th&gt;URL&lt;/th&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;?php if ($files): ?&gt;
&lt;?php foreach ($files as $file): ?&gt;
&lt;tr&gt;
&lt;td&gt;&lt;?php echo $file['name'] ?&gt;&lt;/td&gt;
&lt;td&gt;&lt;?php echo 'http://mybucket.s3.amazonaws.com/', $file['name'] ?&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;?php endforeach; ?&gt;
&lt;?php endif; ?&gt;

&lt;/tbody&gt;

&lt;/table&gt;

 

Okey.. #sekian dulu ak share ttg Amazon S3 di CodeIgniter. Semoga bermanfaat. :-)

Website Sekolah CodeIgniter III: Memasang Template (Free CSS Theme)

Hey semua…

Melanjutkan postingan aku tentang membuat website sekolah dengan CodeIgniter. Kali ini aku akan menguraikan langkah2 dalam memasang template HTML+CSS. Mungkin ada cara2 yng lebih canggih dalam sistem templating ini (sperti : pake SMARTY, dll), tapi di sini aku hanya akan menuliskan membuat template sistem yang sngat sederhana aja. (karena itu yng aku bisa…hahaha). Oke langsung aja ke langkah2 konkritnya :-)

DOWNLOAD FULL SOURCE CODE  | ONLINE DEMO

1.  Download Free CSS+HTML template yang kamu suka

Pada tutorial ini aku pake PREMIUM SERIES yang bisa anda download di sini. Perlu kalian tau, aku punya hobi unik, yaitu mengoleksi free css template semacam ini…hehe, maklum gak bisa desain. Programmer Tulen gitu loh…:D

2. Siapkan Folder2 untuk menyimpan file2 pendukung yang ada dalam tempate itu

Secara umum file2 pendukung  ada dalam template terdiri dari : images, css, javascript. Jadi kita akan membuat folder utk menampung file2 itu. Oh iya, utk COdeIgniter versi 2.0 ke atas,  secara default kita hanya di ijin kan meletakkan file2 itu di root folder. Jadi kita akan membuat folder2 nya jg di root folder. Folder yng di buat yang pertama kita diberi nama public, kemudian di dalam folder tersebut, kita buat 3 buah folder baru yaitu css, images, js. Sehingga struturnya menjadi seperti berikut:

Struktur Folder File Asset

Struktur Folder File Asset

kemudian dari template yang telah di download tadi, masukkan file2 nya sesuai dengan folder masing2. Klo file css ya ke folder css, image ya ke folder images. dst.

3. Memecah Template (file index.html) ke dalam beberapa bagian

Pada template yang di download tadi ada file yang bernama index.html. Itu adalah file html yg akan kita pake untuk template di halaman2 web kita. Agar kita lebih efisien, dan lebih rapi koding nya, Maka file index.html tersebut akan kita pecah2 ke dalam beberapa bagian yaitu : template.php, header.php, footer.php, left.php, dan right.php. Semua file ini kita simpan di folder VIEWS. Adapun isi dari masing file dalah sebagai berikut:

template.php


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
Design by Free CSS Templates

http://www.freecsstemplates.org

Released for free under a Creative Commons Attribution 2.5 License

Name       : Premium Series
Description: A three-column, fixed-width blog design.
Version    : 1.0
Released   : 20090303

-->
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <title>Premium Series by Free CSS Templates</title>
        <meta name="keywords" content="" />
        <meta name="Premium Series" content="" />
        <link href="<?php echo base_url() ?>public/css/default.css" rel="stylesheet" type="text/css" media="screen" />
    </head>
    <body>
        <!-- start header -->
        <?php $this->load->view('header') ?>
        <!-- end header -->
        <div id="wrapper">
            <!-- start page -->

            <div id="page">
                <?php $this->load->view('left') ?>
                <!-- start content -->
                <div id="content">
                    <?php if (!empty($page)): ?>
                    <?php $this->load->view($page); ?>
                    <?php else: ?>
                    <?php $this->load->view('error_page'); ?>
                    <?php endif; ?>
                        </div>
                        <!-- end content -->
                        <!-- start sidebars -->
                <?php $this->load->view('right') ?>
                            <!-- end sidebars -->
                            <div style="clear: both;">&nbsp;</div>
                        </div>
                        <!-- end page -->
                    </div>
        <?php $this->load->view('footer') ?>
    </body>
</html>

Pada bagian ini yang perlu di perhatikan adalah pemanggilan file css, harus benar path/  alamatnya. Contoh disini : <?php ?>/public/css/default.css.  Selain itu pada template.php ada beberapa baris program yang akan membuat content dari template (bagian tengah) akan dinamis. Yaitu pada bagian if(!empty($page)): dstt…

header.php

<div id="header">
    <div id="logo">
        <h1><a href="#"><span>Premium</span>Series</a></h1>
        <p>Designed By Free CSS Templates</p>
    </div>
    <div id="menu">
        <ul id="main">
            <li class="current_page_item"><a href="<?php echo site_url('/')?>">Home</a></li>
            <li><a href="<?php echo site_url('pages/read/profil')?>">Profil</a></li>
            <li><a href="<?php echo site_url('pages/read/sejarah-singkat')?>">Sejarah Singkat</a></li>
            <li><a href="<?php echo site_url('pages/read/visi-misi')?>">Visi Misi</a></li>
            <li><a href="<?php echo site_url('pages/contact')?>">Kontak</a></li>
            <li><a href="<?php echo site_url('users/login')?>">Login</a></li>
        </ul>

    </div>

</div>

footer.php


<div id="footer">
    <p class="copyright">&copy;&nbsp;&nbsp;2009 All Rights Reserved &nbsp;&bull;&nbsp; Design by <a href="http://www.freecsstemplates.org/">Free CSS Templates</a>.</p>
    <p class="link"><a href="#">Privacy Policy</a>&nbsp;&#8226;&nbsp;<a href="#">Terms of Use</a></p>
</div>

left.php

<div id="sidebar1" class="sidebar">
    <ul>
        <li>
            <h2>Recent Posts</h2>
            <ul>
                <li><a href="#">Aliquam libero</a></li>
                <li><a href="#">Consectetuer adipiscing elit</a></li>
                <li><a href="#">Metus aliquam pellentesque</a></li>
                <li><a href="#">Suspendisse iaculis mauris</a></li>
                <li><a href="#">Proin gravida orci porttitor</a></li>
                <li><a href="#">Aliquam libero</a></li>
                <li><a href="#">Consectetuer adipiscing elit</a></li>
                <li><a href="#">Metus aliquam pellentesque</a></li>
                <li><a href="#">Suspendisse iaculis mauris</a></li>
                <li><a href="#">Proin gravida orci porttitor</a></li>
            </ul>
        </li>
        <li>
            <h2>Categories</h2>
            <ul>
                <li><a href="#">Aliquam libero</a></li>
                <li><a href="#">Consectetuer adipiscing elit</a></li>
                <li><a href="#">Metus aliquam pellentesque</a></li>
                <li><a href="#">Suspendisse iaculis mauris</a></li>
                <li><a href="#">Urnanet non molestie semper</a></li>
                <li><a href="#">Proin gravida orci porttitor</a></li>
            </ul>
        </li>
        <li>
            <h2>Archives</h2>
            <ul>
                <li><a href="#">September</a> (23)</li>
                <li><a href="#">August</a> (31)</li>
                <li><a href="#">July</a> (31)</li>
                <li><a href="#">June</a> (30)</li>
                <li><a href="#">May</a> (31)</li>
            </ul>
        </li>
    </ul>
</div>

right.php


<div id="sidebar2" class="sidebar">
    <ul>
        <li>
            <form id="searchform" method="get" action="#">
                <div>
                    <h2>Site Search</h2>
                    <input type="text" name="s" id="s" size="15" value="" />
                </div>
            </form>
        </li>

    </ul>
</div>

4. Membuat Controller Utama (default controller)

Sebenarnya langkah ini bisa di skip aja, karena di master ci sudah ada defaut controller yng bernama welcome. Tetapi di sini aku akan membuat controler baru yng sama beri nama ‘pages‘ dan di dalamnya ada fungsi ‘home‘. Ini akan aku jadikan default controller di website sekolah ini. Yaa.. sebenarnya biar lebih rapi aja sih… jadi kalian boleh skip langkah ini. Oke controller pages yang aku buat isi kode programnya seperti ini:


<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

class Pages extends CI_Controller {

    var $template = 'template';

    function __construct() {
        parent::__construct();
    }

    function home() {
        $data['page'] = 'pages/home';
        $this->load->view($this->template, $data);
    }

}

?>

5. Membuat View dari fungsi ‘home’  dalam controller ‘pages’ tsb.

Sebenarnya isi dari view home ini adalah bagian tengah dari index.html template yang kita download tadi.  View ini kita beri nama home.php dan kita simpan pada folder pages (buat folder) dalam folder views. Isinya adalah sebagai berikut:


<div class="flower"><img src="images/img06.jpg" alt="" width="510" height="250" /></div>
<div class="post">
    <h1 class="title"><a href="#">Selamat Datang di Website Sekolahku!</a></h1>
    <p class="byline"><small>Posted on October 1st, 2009 by <a href="#">Free CSS Templates</a></small></p>
    <div class="entry">
        <p><strong>Premium Series</strong> is a free, fully standards-compliant CSS template designed by <a href="http://www.freecsstemplates.org/">Free CSS Templates</a>. This free template is released under a <a href="http://creativecommons.org/licenses/by/2.5/">Creative Commons Attributions 2.5</a> license, so you're pretty much free to do whatever you want with it  (even use it commercially) provided you keep the links in the footer intact. Have fun with it :) </p>
        <p class="links"><a href="#" class="more">&laquo;&laquo;&nbsp;&nbsp;Read More&nbsp;&nbsp;&raquo;&raquo;</a></p>
    </div>
</div>

6. Membuat View Error Page

Ini adalah view yang akan ditampilkan ketika halaman/ layout yang di akses tidak ada. Isinya adalah sebagai berikut:


<div class="post">
    <h1 class="title">Mohon Maaf, Halaman tidak ditemukan</h1>
</div>

Jika langkah2 di atas dapat dilalui dengan lancar, maka hasilnya adalah seperti berikut:

Homepage Website Sekolahku

Homepage Website Sekolahku

Ok..  Smp  disini tutorial memasang template kali ini … #Sekian

DOWNLOAD FULL SOURCE CODE  | ONLINE DEMO

<?php/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/class Pages extends CI_Controller {

function __construct() {
parent::__construct();
}

function home() {
$data['page'] = ‘pages/home’;
$this->load->view(‘template’, $data);
}

}

?>

Website Sekolah dengan CodeIgniter : Migrasi ke CodeIgniter 2.0.2

Hey Geeks…

Beberapa waktu lalu aku poting membuat login authentikasi user yang merupakan lanjutan dari tutorial membuat website sekolah dengan codeigniter. Waktu itu masih pake CI 1.7.2, ehh… selang beberapa minggu udh release CI 2.0.2.

Download Full Source Code  | Demo Online

Jadi ya… sebelum aku lanjut koding, mending aku upgrade sekalian ke CI versi 2.0.2, biar lebih fresh…hehehe

Oke.. Geeks.. yng lgi mulai belajar CI segera aja download source codeny di GitHub.com.

Sebenarnya perubahanya cuma dikit kok.. cuma di model n controller aja.

klo versi 2.0.2 ketika membuat model ato contrloller itu pas  extends ‘CI_Model’ ato ‘CI_Controller’.  Ini source code model n controllernya:

Users_model


<?php

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

class Users_model extends CI_Model {

var $tabel_name = 'users';

function  __construct() {
parent::__construct();
}

function cek_user_login($username, $password) {
$this->db->select('*');
$this->db->where('username', $username);
$this->db->where('password', md5($password));

$query = $this->db->get($this->tabel_name, 1);

if ($query->num_rows() == 1) {
return $query->row_array();
}
}

}
?>



sedang untuk controller Users adalah:


<?php

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

class Users extends CI_Controller {

function  __construct() {
parent::__construct();
$this->load->model('Users_model');
}

function login() {

$this->form_validation->set_rules('username', 'username', 'required|xss_clean');
$this->form_validation->set_rules('password', 'password', 'required|xss_clean');

$this->form_validation->set_error_delimiters('', '<br/>');

if ($this->form_validation->run() == TRUE) {
$username = $this->input->post('username');
$password = $this->input->post('password');

$login_data = $this->Users_model->cek_user_login($username, $password);
if($login_data){
$session_data = array(
'user_id' => $login_data['id'],
'username' => $login_data['username'],
'type' => $login_data['type'],
'is_login' => TRUE
);


$this->session->set_userdata($session_data);

redirect('users/dashboard');

}else{
$this->session->set_flashdata('message','Login Gagal, Kombinasi username dan password salah.');
redirect('users/login');
}
}
$this->load->view('users/login');
}

function dashboard() {
$this->check_logged_in();
$this->load->view('users/dashboard');
}

function logout() {

$data = array
(
'user_id' => 0,
'username' => 0,
'type' => 0,
'is_login' => FALSE
);

$this->session->sess_destroy();
$this->session->unset_userdata($data);

redirect('users/login');
}

public function check_logged_in() {
if ($this->session->userdata('is_login') != TRUE) {
redirect('users/login', 'refresh');
exit();
}
}

public function is_logged_in() {
if ($this->session->userdata('logged_in') == TRUE) {
return TRUE;
} else {
return FALSE;
}
}

}
?>


Download Full Source Code  | Demo Online

Ok Geeks... sampe jumpa di postingan2 berikutnya...#sekian

Plugin from the creators of Brindes :: More at Plulz Wordpress Plugins