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

Video Tutorial Membuat Aplikasi Google Map dengan CodeIgniter 2.0.2 episode 1-5

Hey semua…

Dari pada ni video basi di hardisk, aku iseng2 aja upload semua ke file hosting ..#mumpung speed uploadnya 300kb/second….hihihi.  Sapa tau aja bermanfaat bagi temen2 smua.  Yng minat langsung sedot aja deh link di bawah:

Peringatan !!!

Video ini tanpa sensor, tanpa editing, dan tanpa rekayasa.  Semua seperti kenyataan yang terjadi. Harap digunakan sebagaimana mestinya…#halah

 

Ziddu

Instalasi CodeIgniter 2.0.2

CRUD di CodeIgniter

Membuat Login Administrasi

Menggunakan Library Google Map di COdeIgniter

Integrasi Google Map dengan Database Buatan Sendiri

 

File Factory

Instalasi CodeIgniter 2.0.2

CRUD di CodeIgniter

Membuat Login Administrasi

Menggunakan Library Google Map di COdeIgniter

Integrasi Google Map dengan Database Buatan Sendiri

 

4shared

Instalasi CodeIgniter 2.0.2

CRUD di CodeIgniter

Membuat Login Administrasi

Menggunakan Library Google Map di COdeIgniter

Integrasi Google Map dengan Database Buatan Sendiri

 

Website Sekolah CodeIgniter Bagian II: Membuat Login Authentikasi User (Admin, Guru, Siswa, Alumni)

Update :  Kode Programnya udah di migrasi ke CI 2.0.2, biar lebih fresh… :-) , selengkapnya di => Website Sekolah dengan CodeIgniter : Migrasi ke CodeIgniter 2.0.2

Heii semua….

Alhmdulillah.. kali ini ak  masih diberi kesempatan utk melanjutkan tulisan ku tentang membuat website sekolah dengan CodeIgniter. Pada bagian II ini aku akan Login Authentikasi User untuk Admin, Guru, Siswa, dan Alumni. Tentu dng algorithm yg sederhana.. Krn aku baru bisa yang sederhana2 gt…:)

Download Full Source Code  | Demo Online

Baiklah kita mulai saja… dan langkahnya adalh sebagai berikut:

1.  Download master CodeIgniter versi terbaru di CodeIgniter.com

2.  Install CodeIgniter di webserver. Pada kesempatan kali aku pake WampServer. Temen2 bisa baca di CodeIgniter 1 # Instalasi dan Konfigurasi untuk langkah instalasinya.

3. Ektrak master CodeIgniter di wamp\www\ ,  rename menjadi sekolahku ,

4.  Ubah base_url pada file config.php dalam folder application/config menjadi seperti ini:


$config['base_url']    = "http://localhost/sekolahku/";

5. Ubah konfigurasi database.php menjadi seperti berikut (sesuikan dengan konfigurasi database server temen2):


$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";
$db['default']['database'] = "sekolahkudb";

6.  Buat database dengan nama dbsekolah sesuai dengan rancangan database pada bagian pertama dari tutorial ini. Atau temen2 bisa copy dan run SQL berikut ini:

-- --------------------------------------------------------

--
-- Table structure for table `alumni`
--

CREATE TABLE `alumni` (
`nama_lengkap` varchar(100) default NULL,
`tahun_lulus` int(11) default NULL,
`alamat` varchar(45) default NULL,
`pekerjaan` varchar(100) default NULL,
`users_id` int(11) NOT NULL,
PRIMARY KEY  (`users_id`),
KEY `fk_alumni_users1` (`users_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- --------------------------------------------------------

--
-- Table structure for table `categories`
--

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

-- --------------------------------------------------------

--
-- Table structure for table `comments`
--

CREATE TABLE `comments` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(100) default NULL,
`email` varchar(100) default NULL,
`address` varchar(100) default NULL,
`message` varchar(255) default NULL,
`status` tinyint(4) default NULL,
`posts_id` int(11) NOT NULL,
`users_id` int(11) NOT NULL,
PRIMARY KEY  (`id`),
KEY `fk_comments_posts1` (`posts_id`),
KEY `fk_comments_users1` (`users_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

-- --------------------------------------------------------

--
-- Table structure for table `pages`
--

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

-- --------------------------------------------------------

--
-- Table structure for table `posts`
--

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

-- --------------------------------------------------------

--
-- Table structure for table `students`
--

CREATE TABLE `students` (
`nis` varchar(45) NOT NULL,
`nama_lengkap` varchar(100) NOT NULL,
`kelas` varchar(45) NOT NULL,
`alamat` varchar(255) NOT NULL,
`users_id` int(11) NOT NULL,
PRIMARY KEY  (`users_id`),
KEY `fk_students_users` (`users_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- --------------------------------------------------------

--
-- Table structure for table `teachers`
--

CREATE TABLE `teachers` (
`nip` varchar(45) NOT NULL,
`nama_lengkap` varchar(100) NOT NULL,
`golongan` varchar(10) NOT NULL,
`alamat` varchar(255) NOT NULL,
`users_id` int(11) NOT NULL,
PRIMARY KEY  (`users_id`),
KEY `fk_teachers_users1` (`users_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- --------------------------------------------------------

--
-- Table structure for table `users`
--

CREATE TABLE `users` (
`id` int(11) NOT NULL auto_increment,
`username` varchar(100) NOT NULL,
`password` varchar(255) NOT NULL,
`email` varchar(100) NOT NULL,
`type` varchar(45) NOT NULL,
`status` tinyint(4) NOT NULL,
`registered` datetime default NULL,
`last_login` datetime default NULL,
PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

7.  Masukan beberapa sampel data pada tabel user. Masing2 satu data untuk admin, teachers,students, dan alumni. Temen2 bisa run SQL berikut ini:

INSERT INTO `users` (`id`, `username`, `password`, `email`, `type`, `status`, `registered`, `last_login`) VALUES
(1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'admin@gie-art.com', 'admin', 1, '2011-01-19 03:18:21', '2011-01-19 03:18:26'),
(2, 'students', '75d37c6cbf460947005c97e3f12906a9', 'students@gie-art.com', 'students', 1, '2011-01-19 03:18:03', '2011-01-19 03:18:08'),
(3, 'teachers', 'ad7d0e29419cc0843e35c6fe93b14d09', 'teachers@gie-art.com', 'teachers', 1, '2011-01-19 03:16:41', '2011-01-19 03:16:44'),
(4, 'alumni', '9855f5cdff0306ae33a49f89e087ccbc', 'alumni@gie-art.com', 'alumni', 1, '2011-01-19 03:19:10', '2011-01-19 03:19:12');

Naaah…. sekarang adalah saatnya coding di CodeIgniter. Aku terbiasa mulai dari pembuatan model terlebih dahulu, baru kemudian membuat Controller dan View.

Login user yang akan dibuat kali ini adalah untuk memfasilitasi 4 tipe user, yaitu admin,teachers, students, dan alumni. Jadi hasil akhir pada bagian ini adalah bahwa setiap user bisa login dengan akun yang telah ditentukan dan user tersebut akan di arahkan ke halamannya masing2. Ketika seorang admin login dan berhasil maka dia akan dibawa  ke halaman administrator, begitu pula untuk students,teachers, dan alumni.

Sebelum pembuatan model, ada beberapa library dan helper yang perlu di set autoload terlebih dahulu pada file autoload.php dalam folder application/config :


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

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

8. Membuat model users_model. Masuklah pada folder application/model kemudian buat file php dengan nama users_model.php. Kemudian ketik program seperti berikut:


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

}
?>

9.  Masuklah pada folder controllers kemudian buat file users.php dan ketikkan kode program berikut ini:


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

10. Masukklah pada folder views kemudian buat folder users dan di dalamnya buat dua file yaitu : login.php dan dashboard.php dengan kode program masing2 sperti berikut:

login.php


<h2>Login User</h2>
<hr/>
<?php if($this->session->flashdata('message')):?>
<?php echo $this->session->flashdata('message');?>
<?php endif;?>
<?php echo validation_errors();?>
<?php echo form_open('users/login') ?>
<br/>
Username : <?php echo form_input('username') ?><br/>
Password : <?php echo form_password('password'); ?><br/>
<?php echo form_submit('submit', 'Login') ?>
<?php echo form_close(); ?>

dashboard.php

<h2>Dashboard User</h2><br/>
Anda adalah :
<?php
if ($this->session->userdata('type') == 'admin'):
    echo 'Admin';
elseif ($this->session->userdata('type') == 'teachers'):
    echo 'Teachers';
elseif ($this->session->userdata('type') == 'students'):
    echo 'Students';
elseif ($this->session->userdata('type') == 'alumni'):
    echo 'Alumni';
endif;
?>
<br/>
<h3><strong><?php echo anchor('users/logout', 'Logout') ?></strong></h3>

Baiklaaah.. sampai disini kita sudah mengerjakan 1 buah modul untuk login user. Dan kita bisa melihat hasilnya dengan mengetikkan http://localhost/sekolahku/index.php/users/login . Apabila tidak ada kesalahan maka tampilanya akan seperti berikut ini:

Login User Website Sekolah

Login User Website Sekolah

Download Full Source Code  | Demo Online

Sekian… selamat mencoba dan kita jumpa lagi di episode berikutnya….:-)

CodeIgniter 1 # Instalasi dan Konfigurasi

Membuat Website Sekolah dengan CodeIgniter : Bagian I

Heii semua….

ini adalah postingan aku yang pertama kali di tahun 2011 (hmmm kesed bgt yo).. maklum akhir tahun kmrin sibuk bgt jew…ckckck

Nah,  kali ini aku mau nulis artikel tentang membuat website sekolah dengan CodeIgniter. Sekalian belajar, sekalian berbagi… Bagi yang pemula mungkin ini bisa dijadiin tambahan tutorial.,, emm.. bagi yang udah mahir CI.. klo ada salah tolong dikoreksi ya!!!….:D

Berikut ini adlah beberapa fitur sederhana yang akn dibuat:

Bagian Admin:

  • Manage User
  • Manage Pages
  • Manage Posts/ Articles
  • Manage Comments

Bagian Alumni:

  • Register sebagai Alumni
  • Edit Profile
  • Kirim Artikel

Bagian Siswa:

  • Register sebagai Siswa
  • Edit Profile
  • Kirim Artikel

Bagian Guru:

  • Register sebagai Guru
  • Edit Profil
  • Kirim Artikel

Rancangan Database

Untuk mengakomodasi beberapa fitur di atas maka dirancang sebuah database seperti berikut:

rancangan database

rancangan database

Baik lah kawan…. untuk bgian I dari tutorial Membuat Website Sekolah dengan CodeIgniter cukup sekian dulu.. Pada kesempatan berikutnya kita akan memulai implementasi rancangan ini dengan CodeIgniter… SEMANGAAT!!….:)

Konversi Mata Uang di CodeIgniter dengan kurs yang Up to Date

Emm… mungkin temen2 suatu saat butuh fitur konversi mata uang ini ketika develop Aplikasi dengan CodeIgniter. Misalnya saja ketika kita mau bikin  toko online yang mana harga product nya dapat ditampilkan dengan beberapa mata uang sebagai contoh IDR  (rupiah) dan USD (dolar).

Untuk fitur konversi mata uang ini aku mengunakan library yang  dibuat oleh Simon Jarvis yang bisa didapatkan source nya di http://www.white-hat-web-design.co.uk/articles/php-currency-conversion.php . Kurs mata uangnya up to date , dan tidak ribet implementasinya.  Oleh penulisnya emang dibuat untuk PHP secara umum…, tetapi kita juga bisa memakainya untuk aplikasi yang kita buat dengan framework CodeIgniter. Aku akan coba tuliskan bebrapa langkah untuk memakai library ini. Untuk yang belum pernah install framework CodeIgniter bisa baca artikel aku sebelumnya tentang Instalasi Framwork CodeIgniter.

Pertama kita buat file CurrencyConverter.php di dalam folder application/libraries.  Kemudian kita kopikan kode program yang dibuat oleh Simon Jarvis sperti dibawah.
[Read more...]

Mulai menggunakan Doctrine ORM (Object Relational Mapper) di Framework CodeIgniter

Heii….lama bgt gak nulis di blog ni…lg crowded bgt…:D .. (just openning statement..hehehe)

Sejak kenal framework CodeIgniter sampe skrg udah bebrapa project yang ku kerjain. Aku memang merasakan bekerja dengan Framework CI terasa lebih cepat dan menyenangkan dibanding dengan PHP scratch..(iih,,capek bgt mengenangnya).

Namun..yang kadang ak keluhkan adalah ketika dihadapkan dengan Query2 yang komplex…hmm..mulai gak nyaman deh… Kebayang jika bisa kyak di Framework Ruby on Rails yang OOP bgt…Kan jadi enak bgt tu ngurusi query yang komplex…

Beberapa hari kmarin lihat2 di forum n Wiki CodeIgniter…dan ternyata udah banyak bgt ORM tool di PHP yang support CI… , salah satu yang terkenal adalah Doctrine ORM,..wah jadi seneng bgt ni…

Segera saja aku menuju website resminya Doctrine…dan download sourcenya…hmm….bakal lebih nyaman lagi ni ngerjain projectnya…hehehe

Doctrine adalah salah satu plugin Object Relational Mapper untuk PHP. Sedikit bgt yang ku ketahui tentang apa itu ORM… Tapi menurutku dengan ORM tool kita bisa memetakan tabel2 dalam database ke dalam bentuk class-class / Object dalam aplikasi web yang kita buat., dan Object / Class itu merepresentasikan record2 tabel dalam database kita…

Jadi dengan menggunakan ORM akan membuat proses manipulasi (Create,Read,Upadte,Delete) database menjadi sangat mudah dan menyenangkan. Karena kita akan bisa berfikir lebih Object Oriented dan tidak perlu kontak langsung dengan yang namanya Query.  Dengan ORM maka permasalahan Query yang komplex akan terasa jadi lebih sederhana..dan kita tidak akan frustasi dibuatnya,,,,hehehe.

Ini adalah ilustrasi dari http://phpandstuff.com tentang penggunaan Doctrine ORM di codeigniter:

Okey… cukup untuk posting kali ini…berikutnya mungkin akan posting tentang studi kasusnya langsung,,,hehehe

See you all…

7 Top CMS Application Built on CodeIgniter Framework

Dear all..

Emm… ketika kita pengen membuat aplikasi web dengan cepat maka gunakanlah FRAMEWORK. Dan ketika kita pengen membuat aplikasi web dengan LEBIH cepat lagi maka gunakanlan CMS yang dibuat dengan FRAMEWORK…:D . Akhh,,,, ini cuma ungkapanku saja kok. Mungkin temen2 bisa mencari bukti kebenaranya…

Nah… beberapa bulan kemarin ketika aku searching CMS yang dibuat dengan CodeIgniter baru menemukan Open Blog sperti yang telah ku posting sebelumnya. Dan beberapa hari kemarin aku searching lagi. Wow….aku mendapatkan 6 lagi prend.  Aku sekarang sibuk compare dari 7 CMS (termasuk open blog) hasil searchingku ini. Yaa,,,sambil mikir mana yang lebih asyik  buat ngerjain orderan sich….hehehe

Dan bagi temen2 yang belum tau…. inilah 7 Top CMS Application Built on COdeigniter Framework….:D

Open Blog

Fitur : Friendly User Interface, Easy to Install, Multi language Support, Search Engine Friendly URL, Posts, Pages, Links, Feed Support, Admin Panel, WYSIWYG editor, Plugins, Check Update

open-blog.info

CodeFight

http://www.codefight.org

Expression Engine

Hmm… ini paling gila fiturnya.. , buka aja dech ke webnya. Males nulis… hehehe

http://expressionengine.com

PyroCMS

Fitur : Categories, Comments, Navigation, News,  Pages, Photos Product, Service, User Setting.

http://www.pyrocms.com/

Tarichi

Fitur : pages, banner, product, product category, gallery, file management, template, admin panel

Ini buatan anak Indonesia lho… tapi kyaknya banyak eror… hehehe

dotexe.unnes.ac.id/2009/03/20/tarichi-sebuah-cms-berbasis-ci/

Site Managr

Fitur : Events, News, Media, Links,  Pages, Photos, Email, Statistic, User Setting, dll

http://designelemental.net/sitemanagr

Ci-CMS

Fitur : Pages, News, Navigation,Search, User Permision Setting, Upload Images, language, dll

http://solaitra.tuxfamily.org/

Klo temuan temen2 belum kedaftar silahkan ditambahkan ya,,,, hehehe.

Semoga bermanfaat….