Showing posts with label Tutorial Codeigniter. Show all posts
Showing posts with label Tutorial Codeigniter. Show all posts

Saturday, March 26, 2016

Implementasi MultiLanguage di CodeIgniter

Dalam tutorial kali ini saya akan menjelaskan bagaimana membuat multilanguage di projek kita menggunakan Framework CodeIgniter. Jadi ceritanya kemarin saya disuruh belajar CodeIgniter untuk membuat multilanguage di projek yang sudah dibuat sebelumnya. Sudah lama banget nggak ngoding pakai PHP, jadi rada canggung juga kalau disuruh ngoding pakai PHP. Hehe

Beruntung CodeIgniter sudah menyediakan fitur untuk multilanguage, jadi kita bisa dengan mudah membuat fitur tersebut, Tinggal setting dan koding sedikit, selesai deh. Caranya bagaimana? Simak tutorial berikut sampai selesai:

1. Berikut struktur folder dari Projek CodeIgniter, jadi untuk membuat multilanguage kita cuman men-setting 4 folder penting di dalam folder application:

Struktur folder di CodeIgniter

2. Klik di folder application, nanti akan keluar semua folder seperti dibawah ini (yang akan kita setting adalah folder yang di highlight merah):


3. Pertama: Folder application/config/ (untuk meng-enable Hooks)
Buka folder config dan cari config.php dan cari $config['enable_hooks'] dan ganti FALSE menjadi TRUE

4. Kedua: Masih di dalam folder application/config/
Cari hooks.php selanjutnya copy-paste kodingan dibawah ini (untuk mendefinisikan Hook-nya):

$hook['post_controller_constructor'] = array(
    'class'    => 'LanguageLoader',
    'function' => 'initialize',
    'filename' => 'LanguageLoader.php',
    'filepath' => 'hooks'
);

5. Selanjutnya buat file LanguageLoader.php dan buat kelas LanguageLoader di application/hooks/ kodingannya seperti dibawah:

<?php
class LanguageLoader
{
    function initialize() {
        $ci =& get_instance();
        $ci->load->helper('language');
        $siteLang = $ci->session->userdata('site_lang');
        if ($siteLang) {
            $ci->lang->load('message',$siteLang);
        } else {
            $ci->lang->load('message','english');
        }
    }
}


6. Sebelum membuat kodingan untuk switch bahasanya, kita harus pastikan kalau settingan application/config/autoload.php seperti dibawah: (Untuk men-load session library dan URL helper)

$autoload['libraries'] = array('session');
$autoload['helper'] = array('url');

7. Selanjutnya buat file LanguageSwitcher.php di application/controllers/ dan copy-paste kodingan dibawah ini:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class LanguageSwitcher extends CI_Controller
{
    public function __construct() {
        parent::__construct();    
    }

    function switchLang($language = "") {
       
        $language = ($language != "") ? $language : "english";
        $this->session->set_userdata('site_lang', $language);
       
        redirect($_SERVER['HTTP_REFERER']);
       
    }
}

8. Nah, terakhir di folder application/language/ buat folder bahasa yang mau kita buat. Misal disini saya membuat multilanguage hanya untuk 2 bahasa saja, yaitu bahasa Indonesia dan Inggris (bisa dibuat banyak).

Di dalam folder language

Masing-masing di dalam folder tersebut (english dan indo), buat file message_lang.php dan isinya contohnya seperti dibawah:

- Di application/language/english/message_lang.php

<?php
$lang["menu_test"] = "Test";

- Di application/language/indo/message_lang.php

<?php
$lang["menu_test"] = "Testing";

Poin pentingnya adalah kita harus membuat ID contoh "menu_test" yang sama antara bahasa Inggris dan Indo supaya aplikasi bisa tahu kalau kita pilih bahasa inggris maka akan ditampilkan itu, dan kalau Indonesia akan ditampilkan satunya lagi.

9. Terakhir, di Folder application/view/ tambahkan dropdown berikut untuk mengubah bahasanya:

<select onchange="javascript:window.location.href='<?php echo base_url(); ?>LanguageSwitcher/switchLang/'+this.value;">
<option value="english" <?php if($this->session->userdata('site_lang') == 'english') echo 'selected="selected"'; ?>>English</option>
<option value="indo" <?php if($this->session->userdata('site_lang') == 'indo') echo 'selected="selected"'; ?>>Indonesia</option>
</select>
<p><?php echo $this->lang->line('menu_test'); ?></p>

NB: Sengaja saya selipkan <p><?php echo $this->lang->line('menu_test'); ?></p> diatas untuk mengetes apakah yang kita buat sudah benar atau belum.

Untuk multilanguage-nya:

Kalau ingin membuat multilanguage di View:
<p><?php echo $this->lang->line('menu_test'); ?></p>

Kalau ingin membuat multilanguage di Controller:
$this->lang->line('menu_test')

Sekian dan Terima gaji.

Source: http://www.codexworld.com/


Monday, August 13, 2012

Disable Back Button pada Browser using Javascript

Hmmm... Dapet ilmu lagi nih, kali ini saya akan bagi-bagi cara men-Disable Back Button pada Browser using Javascript. Nahh pada projek yang dibuat saya gak mau ada action pada button back pada browser (Misal : Mozilla, Chrome, IE n etc). Jadi kalau kita klik button back pada browser tidak akan menghasilkan apa-apa dan tidak akan pergi kemana-mana (#apa coba?).

Caranya cukup gampang, tinggal copy-paste kodingan berikut :

<SCRIPT type="text/javascript">
    window.history.forward();
    function noBack() { window.history.forward(); }
</SCRIPT>
</HEAD>
<BODY onload="noBack();"onpageshow="if (event.persisted) noBack();" onunload="">

Dan.... Eng ing eng, button back pada browser gak akan berfungsi lagi.
Selamat mencoba XD


Tuesday, July 31, 2012

Cara ampuh menghilangkan semua tag HTML dan PHP

Setelah membuat postingan tentang cara menghilangkan atau mengganti string tertentu pada PHP | Regular Expressions karena masih belum puas dengan fungsi tersebut, soalnya boros definisiin tag-tag HTML dan PHP yang mau dihapus nantinya.

Nahh ternyata eh ternyata ada cara ampuh buat ngilangin semua tag HTML dan PHP dengan satu baris code. Caranya?? Dengan menggunakan fungsi strip_tags();


Misal nih kita punya string '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>' nahh tag-tag HTML dan PHP-nya mau kita hapus. Caranya seperti dibawah ini :

<?php$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';echo strip_tags($text);
?>

Outputnya : Test paragraph. Other text


Tapi gimana kalau tag <p> sama <a> gak mau kita hapus?? Caranya gampang gan!! Tinggal seperti ini aja :


<?php$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
// Allow <p> and <a>echo strip_tags($text, '<p><a>');?>

Outputnya : <p>Test paragraph.</p> <a href="#fragment">Other text</a>


Gimana?? Simple bukan?? :)

Sumber : php.net

Cara menghilangkan atau mengganti string tertentu | PHP | Regular Expressions

Hmm... Tadi di tempat PKL sempat nyari-nyari fungsi Regular Expressions untuk menghilangkan tag-tag HTML dan PHP yang dikirim pada email lewat body-nya gmail. Maunya sieh pas masuk database nanti langsung jadi string dengan menghilangkan tag-tag yang gak penting. Seperti <body>, <title>, <!DOCTYPE HTML>, <div> dan segala macam itu. Nah pas nyari-nyari ketemulah sama kodingan ini, dengan menggunakan Regex (Regular Expression). Dengan menggunakan preg_replace(); 

Dari namanya aja kita udah tau (replace), berarti mengganti. Kira-kira kodingannya simpel-nya gini, misal kita ingin menghilangkan semua tanda petik dua (") pada string. Karena fungsinya replace, jadi tanda petik dua kita ganti dengan himpunan kosong :

preg_replace('"', ' ', $str);

Jadi Output-nya nanti semua tanda kutip (") pada sebuah string akan dihilangkan. Misal : "Aku ada dimana" -> Aku ada dimana

Tidak hanya itu saja, fungsi ini juga bisa kita manfaatin untuk mengganti array dari sebuah string. Contohnya seperti ini :


<?php$string = 'The quick brown fox jumped over the lazy dog.';$patterns = array();$patterns[0] = '/quick/';$patterns[1] = '/brown/';$patterns[2] = '/fox/';$replacements = array();$replacements[2] = 'bear';$replacements[1] = 'black';$replacements[0] = 'slow';echo preg_replace($patterns, $replacements, $string);?>

Output-nya :  The bear black slow jumped over the lazy dog.


Hmm... Sebenarnya masih banyak fungsi lainnya (kalau mau lebih jelasnya baca-baca lagi di php.net). Ehh.... Tapi kalau dipakai untuk menghilangkan semua tag pada HTML dan PHP apa gak boros tuh? Jadi kita harus mendefinisikan satu persatu tag-tag HTML dan PHP gitu? Ujug-ujug dapet juga cara yang ampuh dan jitu untuk menghapus semua tag HTML dan PHP dengan satu baris code. Gimana? Baca cara ampuh menghilangkan tag HTML dan PHP.


Sumber : php.net

Monday, July 16, 2012

Menampilkan IP Address dan Hostname dengan PHP

Iseng mosting lagi, kali ini saya akan sharing kodingan untuk Menampilkan IP Address dan Hostname dengan PHP. Caranya simple kok :


Kodingan menampilkan IP address:

<?
$ip=$_SERVER['REMOTE_ADDR'];
echo "IP Address= $ip";
?>

Kodingan menampilkan Hostname:

<?
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
echo "Nama Komputer: $hostname";
?>
Atau bisa juga seperti ini :


<?php
    if(!empty($_SERVER['HTTP_CLIENT_IP'])){
      $ip=$_SERVER['HTTP_CLIENT_IP'];
    }
    elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
      $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else{
      $ip=$_SERVER['REMOTE_ADDR'];
    }
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
?>
<?php echo  "Nama Komputer=".$hostname;?><br />
<?php echo  "IP Address=".$ip;?>


Nanti keluarannya (localhost) kira-kira seperti ini :

IP Address=127.0.0.1
Nama Komputer:DELL-PC

Hmm... Udah begitu aja XD

Catatan :
Kalau hasilnya ::1, itu bukan kodingannya yang salah. Tapi karena IP-nya versi 6....

Thursday, July 12, 2012

Cara memotong tampilan teks dengan CSS

Pernah lihat tampilan teks pada tabel di Gmail? Pada kotak masuk pesan pada Gmail, interface-nya keliatan tampil rapi dan rata (Justify) yang seolah-olah terpotong pada bagian kanannya. Kira-kira tampilannya seperti ini :

Interface Kotak Masuk Gmail
Nahh mungkin selama ini teman-teman sering menggunakan kodingan pada PHP untuk membatasi banyaknya kata/kalimat yang akan ditampilkan. Tapi ternyata dengan CSS juga bisa lohh. Kodingannya kira-kira seperti ini :

#tableID td.potong
{
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}

Yaa kira-kira seperti itulah caranya. Jadi sekarang teman-teman sudah memiliki class 'potong' yang siap dipakai untuk memotong tampilan tabel dengan rapi. Jangan lupa setelah CSS-nya dibuat, pada td yang ingin dipotong tambahkan :

<td class='potong'>
Untuk lebih jelasnya bisa baca disini.

Semoga bermanfaat :)



Sunday, July 1, 2012

Membuat Virtual Host dengan XAMPP


Lagi chat sama temen, intinya nanyain gimana cara gabungin SMARTY sama CODEIGNITER. Ehh dianya nyombong kalau di tempat PKL-nya make VIRTUAL HOST. Lantas saya yang masih "neubie" langsung bertanya-tanya apa itu VIRTUAL HOST? Setelah dijelasin panjang lebar, ohhh baru tau ternyata itu toh fungsinya. Hmm.... Menarik,,

Jadi gini, biasanya kan kita gunain webserver lokal seperti XAMPP untuk mengakses web yang ada pada folder htdocs. Nahh untuk mengakses web tersebut harus diawali dengan mengetik localhost terlebih dahulu diikuti dengan nama folder website yang kita buat, misal http://localhost/contohweb atau http://localhost/projekeren hal ini tentu saja kurang "keren". Untuk mengatasi hal tersebut kita bisa menggunakan fasilitas VIRTUAL HOST punya APACHE.

Misal, XAMPP ada di c:\webserver\xampp, kemudian projek web yang dibuat terletak di c:\webserver\xampp\htdocs\priawadi.com, kemudian kita mau mengakses web dengan alamat http://priawadi.com maka langkah yang harus ditempuh adalah sebagai berikut :

Edit file apache\conf\extra\httpd-vhost.conf dengan notepad++ atau sejenisnya, tambahkan item berikut pada bagian paling bawah :

NameVirtualHost 127.0.0.1:80
<VirtualHost 127.0.0.1:80>
DocumentRoot d:\webserver\xampp\htdocs
ServerName localhost
</VirtualHost>
<VirtualHost priawadi.com>
DocumentRoot d:\webserver\xampp\htdocs\priawadi.com
ServerName priawadi.com
<Directory d:\webserver\xampp\htdocs\priawadi.com>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

Kemudian edit file windows\system32\driver\etc\hosts menggunakan notepad++ tadi (untuk win vista caranya klik kanan program notepad -> Run as administrator) tambahkan baris berikut
127.0.0.1 priawadi.com

Restart Apache via "service" dengan cara mengetikkan services.msc pada RUN untuk winXp atau Search pada Vista kemudian ENTER.

Terakhir, coba akses projek web di localhost dengan alamat http://priawadi.com.

Selamat mencoba ^^