Kamis, 28 November 2013

jquery $.ajax php side POST serialized form

$.ajax({
        type: 'POST',
        url: 'entry.php',
        cache: false,
        data: $(".contact_form").serializeArray(),
        success: function (data) {
            if (data == "error") {
                $('.success_box').hide();
                $('.error_box').show();
            }
            else {
                $('#sname').val('');
                $('#email').val('');
                $('#title').val('');
                $('#message').val('');
                $('#photo1').val('');
                $('#photo2').val('');
                $('.error_box').hide();
                $('.success_box').show();
            }
        }
    });

CSS Input Type Selectors - Possible to have an “or” or “not” syntax?

If i have a HTML form with the following inputs:
 type="text" />
 type="password" />
 type="checkbox" />
I want to apply a style to all input's that are either type="text" or type="password".
Alternatively i would settle for all input's where type != "checkbox".
Seems i like to have to do this:
input[type='text'], input[type='password']
{
   // my css
}
Isn't there a way to do:
input[type='text',type='password']
{
   // my css
}
or
input[type!='checkbox']
{
   // my css
}
Had a look around, and it doesn't seem like there is a way to do this with a single CSS selector.
Not a big deal of course, but im just a curious cat.
Any ideas?

Rabu, 27 November 2013

Deleting a File using php/codeigniter


you can use the "file helper" in codeigniter.
http://codeigniter.com/user_guide/helpers/file_helper.html
and like this :
$this->load->helper("file");
delete_files($path);
Late Edit: delete_filesmethod uses a path to wipe out all of its contents via unlink() and same you can do within CI. Like this:
unlink($path); 
a valid path.

example :
$path_file = './riskv2-assets/captcha/';
delete_files($path_file);

Jumat, 22 November 2013

Tutorial CodeIgniter : Penerapan Rekursif Untuk Membuat Menu Bertingkat di CodeIgniter

1. Kita siapkan dulu sebuah tabel menu dengan struktur parent child, artinya ada sebuah field yang dijadikan sebagai acuan parent-nya. Desain tabelnya hampir sama dengan postingan saya beberapa waktu lalu yang juga membahas tentang tree menu di CodeIgniter.

CREATE TABLE IF NOT EXISTS `tbl_menu` (
  `id_menu` int(11) NOT NULL AUTO_INCREMENT,
  `id_parent` varchar(11) DEFAULT NULL,
  `menu` varchar(50) NOT NULL,
  PRIMARY KEY (`id_menu`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=16 ;

INSERT INTO `tbl_menu` (`id_menu`, `id_parent`, `menu`) VALUES
(1, '0', 'Beranda'),
(2, '0', 'Profil'),
(3, '0', 'Galeri'),
(4, '0', 'Hubungi Kami'),
(5, '2', 'Visi'),
(6, '2', 'Misi'),
(7, '2', 'Struktur Organisasi'),
(8, '2', 'Sejarah Singkat'),
(9, '3', 'Kemahasiswaan'),
(10, '3', 'Lembaga'),
(11, '3', 'Kegiatan Tahunan'),
(12, '10', 'Lala Lele'),
(13, '10', 'Lala Karet'),
(14, '10', 'Lala Gabus'),
(15, '10', 'Lala Gosong');

<?php
class model_Menu extends CI_Model
{
    function __construct()
    {
        parent::__construct();
    }
   
    function getMenu($parent,$hasil){

        $w = $this->db->query("SELECT * from tbl_menu where id_parent='".$parent."'");
        if(($w->num_rows())>0)
        {
            $hasil .= "<ul class='easyui-tree' animate='true'>";
        }
        foreach($w->result() as $h)
        {
            $hasil .= "<li><span>".$h->menu."</span>";
            $hasil = $this->getMenu($h->id_menu,$hasil);
            $hasil .= "</li>";
        }
        if(($w->num_rows)>0)
        {
            $hasil .= "</ul>";
        }
        return $hasil;
    }
   
}

3. _Controller nya


<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Dashboard extends CI_Controller {
    public function index()
    {
       $this->load->model('model_Menu');
      
       $data['menu'] = $this->model_Menu->getMenu(0,"");
       $this->template->load('frontend','view_dashboard',$data);
    }

Minggu, 17 November 2013

[CodeIgniter] Upload dan Resize Gambar Secara Otomatis

Saya sering mondar-mandir membaca pertanyaan-pertanyaan member di group CodeIgniter Indonesia dan tak jarang ada yang bertanya atau mempertanyakan bagaimana cara mengupload gambar dan meresize gamber tersebut secara otomatis. Nah, maka dari itu kali ini saya akan memberikan sedikit bahkan secuil contoh penggunaannya.

Buat project baru dengan codeigniter, kemudian buka controller welcome.php, kemudian isi seperti berikut.


<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 
class Welcome extends CI_Controller {
 
    public function __construct()
    {
        parent::__construct();
        $this->load->helper(array('form', 'url', 'html'));
        $this->load->library(array('upload','image_lib'));
    }
    
    public function index()
    {
        $data = array();
        $data['error'] = '';
        $data['output'] = '';
         
        if(isset($_FILES['userfile']))
        {
            $this->upload->initialize(array(
                'upload_path' => './assets/',
                'allowed_types' => 'png|jpg|gif',
                'max_size' => '5000',
                'max_width' => '3000',
                'max_height' => '3000'
            ));
         
            if($this->upload->do_upload())
            {
                $data_upload = $this->upload->data();
                $this->image_lib->initialize(array(
                    'image_library' => 'gd2',
                    'source_image' => './assets/'. $data_upload['file_name'],
                    'maintain_ratio' => false,
                    'create_thumb' => true,
                    'quality' => '20%',
                    'width' => 240,
                    'height' => 172
                ));
                 
                if($this->image_lib->resize())
                {
                    $output = '<h4>Thumb - hasil Resize</h4>';
                    $output .= img('./assets/'.$data_upload['raw_name'].'_thumb'.$data_upload['file_ext']);
                    $output .= '<h4 style="margin-top: 30px">Gambar Original</h4>';
                    $output .= img('./assets/'.$data_upload['file_name']);
                     
                    $data['output'] = $output;
                }
                else
                {
                    $data['error'] = $this->image_lib->display_errors();
                }
                 
            }
            else
            {
                $data['error'] = $this->upload->display_errors();
            }
        }
         
        $this->load->view('welcome_message', $data);
    }
}
 
/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */
 
Kemudian buka folder views/welcome_message.php dan isi seperti berikut.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Welcome to CodeIgniter</title>
 
    <style type="text/css">
 
    ::selection{ background-color: #E13300; color: white; }
    ::moz-selection{ background-color: #E13300; color: white; }
    ::webkit-selection{ background-color: #E13300; color: white; }
 
    body {
        background-color: #fff;
        margin: 40px;
        font: 13px/20px normal Helvetica, Arial, sans-serif;
        color: #4F5155;
    }
 
    a {
        color: #003399;
        background-color: transparent;
        font-weight: normal;
    }
 
    h1 {
        color: #444;
        background-color: transparent;
        border-bottom: 1px solid #D0D0D0;
        font-size: 19px;
        font-weight: normal;
        margin: 0 0 14px 0;
        padding: 14px 15px 10px 15px;
    }
 
    code {
        font-family: Consolas, Monaco, Courier New, Courier, monospace;
        font-size: 12px;
        background-color: #f9f9f9;
        border: 1px solid #D0D0D0;
        color: #002166;
        display: block;
        margin: 14px 0 14px 0;
        padding: 12px 10px 12px 10px;
    }
 
    #body{
        margin: 0 15px 0 15px;
    }
     
    p.footer{
        text-align: right;
        font-size: 11px;
        border-top: 1px solid #D0D0D0;
        line-height: 32px;
        padding: 0 10px 0 10px;
        margin: 20px 0 0 0;
    }
     
    #container{
        margin: 10px;
        border: 1px solid #D0D0D0;
        -webkit-box-shadow: 0 0 8px #D0D0D0;
    }
    </style>
</head>
<body>
 
<div id="container">
    <h1>Upload dan Resize Gambar Otomatis <span style="float: right">Dida Nurwanda</span></h1>
 
    <div id="body">
        <form method="post" enctype="multipart/form-data">       
             
            <?php echo $error; ?>
             
            <div>
                <label for="userfile">Pilih gambar yang akan di upload : </label>
                <br />
                <input type="file" name="userfile" />
            </div>
             
            <div style="margin-top:20px">
                <input type="submit" value="Upload" />
            </div>
         
        </form>
         
        <div>
            <?php echo $output; ?>
        </div>
    </div>
 
    <p class="footer">Page rendered in <strong>{elapsed_time}</strong> seconds</p>
</div>
 
</body>
</html>
 


Selesai deh, kodenya berantakan tapi mudah di pahami. Kalo bingung mau nambah-nambahin silahkan bertanya :D
 
Berikut penampakannya.
Download
Password : didanurwanda.blogspot.com 
 
 

Rabu, 10 Juli 2013

Tutorial CodeIgniter : Penerapan Rekursif Untuk Membuat Menu Bertingkat di CodeIgniter

fungsi rekursif untuk menampilkan tree menu bertingkat bisa cepat selesai. Nah, pada postingan kali ini saya akan mencoba untuk menerapkannya di CodeIgniter. Cekidot gan…
Kita siapkan dulu sebuah tabel menu dengan struktur parent child, artinya ada sebuah field yang dijadikan sebagai acuan parent-nya. Desain tabelnya hampir sama dengan postingan saya beberapa waktu lalu yang juga membahas tentang tree menu di CodeIgniter.
1CREATE TABLE IF NOT EXISTS `tbl_menu` (
2  `id_menu` int(11) NOT NULL AUTO_INCREMENT,
3  `id_parent` varchar(11) DEFAULT NULL,
4  `menu` varchar(50) NOT NULL,
5  PRIMARY KEY (`id_menu`)
6) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=16 ;
7
8INSERT INTO `tbl_menu` (`id_menu`, `id_parent`, `menu`) VALUES
9(1, '0', 'Beranda'),
10(2, '0', 'Profil'),
11(3, '0', 'Galeri'),
12(4, '0', 'Hubungi Kami'),
13(5, '2', 'Visi'),
14(6, '2', 'Misi'),
15(7, '2', 'Struktur Organisasi'),
16(8, '2', 'Sejarah Singkat'),
17(9, '3', 'Kemahasiswaan'),
18(10, '3', 'Lembaga'),
19(11, '3', 'Kegiatan Tahunan'),
20(12, '10', 'Lala Lele'),
21(13, '10', 'Lala Karet'),
22(14, '10', 'Lala Gabus'),
23(15, '10', 'Lala Gosong');
2. Biar lebih cepat, saya disini tidak menggunakan model :) . Query-nya langsung saya tulis di Controller saja. Buat sebuah controller dengan nama rekursif_menu.php dan ketikkan kode di bawah ini :
1class Rekursif_Menu extends CI_Controller {
2
3    function __construct()
4    {
5        parent::__construct();
6        $this->load->database();
7    }
8
9    function index()
10    {
11        echo $this->menu(0,$h="");
12    }
13
14    private function menu($parent=0,$hasil){
15
16        $w = $this->db->query("SELECT * from tbl_menu where id_parent='".$parent."'");
17        if(($w->num_rows())>0)
18        {
19            $hasil .= "<ul>";
20        }
21        foreach($w->result() as $h)
22        {
23
24            $hasil .= "<li>".$h->menu;
25            $hasil = $this->menu($h->id_menu,$hasil);
26            $hasil .= "</li>";
27        }
28        if(($w->num_rows)>0)
29        {
30            $hasil .= "</ul>";
31        }
32        return $hasil;
33    }
34}
3. Pada kode di atas, function menu dibuat private agar tidak bisa diakses dari url. Function menu dipanggil lagi saat perulangan untuk mengambil data dari database. Dengan begitu, kode rekursif di atas akan menghasilkan sebuah tree menu bertingkat tanpa batas.
Gampangkan cara menerapkan rekursif untuk membuat tree menu bertingkat di CodeIgniter…??? Kalau masih ada yang binggung dengan bagaimana alurnya sehingga bisa dihasilkan sebuah menu yang berulang-ulang dengan aturan yang sama, silahkan digambarkan terlebih dahulu, kemudian dipahami lagi :D . Saya biasanya menerapkan problem solving seperti itu, walaupun waktunya kurang efisien. OK deh, sekian dulu postingan saya kali ini. Semoga bermanfaat untuk kita semua.
Happy Blogging and Keep Coding

sumber : http://gedelumbung.com/tutorial-codeigniter-penerapan-rekursif-untuk-membuat-menu-bertingkat-di-codeigniter/

Kamis, 23 Mei 2013

Seleksi rambut dengan teknik masking menggunakan Photoshop

Seperti yang tertera pada judul di atas kita akan belajar menyeleksi dengan menggunakan teknik masking pada photoshop. teknik ini biasanya dipakai pada saat kita mau memotong objek rambut, percikan air dan objek2 laen yg detail.. hmm.. Kadang buat sebagian orang objek² seperti ini merupakan objek yang sangat sulit untuk dipotong.. Apa lagi klo motongnya pake seleksi manual, Kebayangkan.. Ribet gila.. =)) tapi yg udah pada tau caranya ya kaga usah dibaca gan.. ini buat mereka yang belum tau aja.. dan buat bahan referensi dari ane :D
Ok, kaga usah panjang lebar lagi dah.. klo mau download file gambarnya latihannya Download Disini
setelah di download buka filenya di photoshop pertama² pilih channel pallete dan pilih salah satu layer RGB yang paling kontras antar objek dan background, sebagai contoh ane pilih layer blue.
Kemudian drag&drop ke tombol new layer,
agar menduplikat layer blue tersebut, dan membuat layer baru bernama Blue copy

javascript:void(0)
Nah, layer Blue copy ini lah yang akan kita edit menjadi hitam putih solid,
Pilih tombol brush dengan mode overlay dan opacity 100%
kuaskan pada pinggir objek dengan konstan,
dan buat sehingga objek menjadi hitam solid dan bgr menjadi putih solid, seperti pada gambar dibawah ini
setelah itu pindah ke layer palete dan buka kunci yang ada dikanan layer dengan mengklik ganda pada layar tersebut
selanjutnya pilih select >load selection…
pada windows yang muncul pilih channel Blue copy
dan tekan ok, maka area putih(Background) akan terseleksi..
Tekan ctrl+shift+I (Invert) untuk seleksi kebaikannya (objek/area hitam)
untuk menghilangkan backgroundnya tekan tombol masking yang ada dibagian bawah layer palet

Selanjutnya buatlah background sesuai selera, untuk membuat background klik tombol new layer dibawah layer palete dan letakan layer baru dibawah layer objek
kemudian beri warna sesuai selera ex. pada gambar ini ane coba buat dengan warna ijo
tapi tunggu dulu.. apa sudah selesai??? blom… dipinggir rambut masih ada garis putih yang tipis.. bagai mana menghilangkannya??
oke.. sebelumnya klik kanan pada layer mask thumbnail (gambar hitam putih pada layer) kemudian pilih Apply Layer Mask
Setelah itu pada tab pilih layer >matting >Remove white Matting
garis putih semakin berkurang kan.. betul tapi masih ada sedikit.. kita bisa menghilangkannya dengan bantuan burn tool dengan setting range Highlights dan exposure 30%
kemudian usapkan pada ujung² rambut yang masih terlihat garis putihnya..
tada… mudah bukan.. :D Selamat mencoba!
Tutorial By:  yo2d
Sumber : http://learning.banjart.com/photoshop/seleksi-rambut-dengan-teknik-masking-menggunakan-photoshop

Selasa, 07 Mei 2013

Session pada Code Igniter

Autentikasi adalah suatu mekanisme untuk mengatur hak akses suatu halaman web, biasanya diawali dengan adanya proses login. Dimana user diminta menginput user id dan password. Jika berhasil login kamu berhak masuk ke suatu halaman, jika tidak..anda tidak akan bisa masuk ke halaman tersebut
Session adalah sebuah varibel sementara yang diletakkan di server. Di mana PHP bisa mengambil nilai yang tersimpan di server walaupun kita membuka halaman baru. Biasanya session akan hilang jika kamu menutup browser.
Sebelum kamu menggunakan fungsi – fungsi tentang session di CI kamu hrus memanggil library session terlebih dahulu dengan cara :
$this->load->library('session');
Selanjutnya cara kita membuat atau memasukan nilai ke variabel sementara atau session :
$this->session->set_userdata('some_name', 'some_value');
Atau bisa juga dengan menggunakan arra :
$newdata = array(
                   'username'  => 'johndoe',
                   'email'     => 'johndoe@some-site.com',
                   'logged_in' => TRUE
               );

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

Setelah itu jika anda ingin mengambil atau memakai nilai dari session maka cara memanggilnya seperti ini :
$session_id = $this->session->userdata('session_id');
Dan terakhir perintah untuk menghapus atau mengosongkan session :
$this->session->unset_userdata('some_name'); 

Setelah kamu paham dengan ini pasti untuk pembuatan Login dan autentifikasinya sudah tidak akan kesulitan, tinggal pahami alurnya. :-)

Silahkan download tutorial Code Igniter Bahasa Indonesia Disini.  

Sumber : http://saefullohrifai.blogspot.com/2012/08/session-pada-code-igniter.html 

How to connect multiple databases in codeigniter


1. There are two ways to connect the database
  • Automatic connecting
The “automatic connection” feature will load and instantiate the database class with every page load. To enable “auto connecting”, add the word database to the library array, as indicated in the following file: application/config/autoload.php
$autoload['libraries'] = array('database');
  • Manually connecting
By using the below function for manual connection.
$this->load->database();
If you want to connect multiple databases then go to manual connection.

2. First configure two database details in database.php file under the application -> config folder like below
First database details
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'table1';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';

Second database details
$active_group = ‘forum’;
$active_record = TRUE;
$db['forum']['hostname'] = ‘localhost’;
$db['forum']['username'] = ‘root’;
$db['forum']['password'] = ”;
$db['forum']['database'] = ‘table2′;
$db['forum']['dbdriver'] = ‘mysql’;
$db['forum']['dbprefix'] = ”;
$db['forum']['pconnect'] = TRUE;
$db['forum']['db_debug'] = TRUE;
$db['forum']['cache_on'] = FALSE;
$db['forum']['cachedir'] = ”;
$db['forum']['char_set'] = ‘utf8′;
$db['forum']['dbcollat'] = ‘utf8_general_ci’;
$db['forum']['swap_pre'] = ”;

3. Below script for controller file
public function index(){
$this->load->model('Samplemodel');
//Load first database and call it’s related queries
$this->db_forum = $this->load->database('forum', TRUE);
$data[‘first_reg’] = $this->Samplemodel->get_details_one();
//Load second database and call it’s related queries
$this->db = $this->load->database('default', TRUE);
$data[‘second_reg’] = $this->Samplemodel->get_details_two();
$this->load->view('welcome_message',$data);
}


4. Below script for model file
class Samplemodel extends CI_Model {
function __construct(){
parent::__construct();
}
function get_details_one(){
$query = $this->db_forum->get('jos_users');
return $query->result();
}
function get_details_two(){
$query = $this->db->get('engine4_user_logins', 10);
return $query->result();
}
}


5. Display output in view page
print_r($first_reg);
echo '<br> <br>';
print_r($second_reg);


Sumber : http://blog.4frienz.com/how-to-connect-multiple-databases-in-codeigniter.html