Archive

Posts Tagged ‘PHP’

Integrate Xinha WYSIWYG Editor into CodeIgniter

January 2nd, 2009

ci_logo_flameSelama 2 hari nonstop aku googling sana sini karena penasaran bagaimana cara mengintegrasikan WYSIWYG(What You See Is What You Get) HTML Editor kedalam CodeIgniter. Hasil googling ternyata aku punya 3 kandidat yaitu TinyMCE, FCKEditor dan Xinha.
Untuk TinyMCE bisa direview di http://tinymce.moxiecode.com/, FCKEditor di http://www.fckeditor.net/ dan Xinha di http://trac.xinha.org/ .

Setelah aku unduh dan aku oprek ketiga editor tadi aku punya kesimpulan, untuk TiyMCE merupakan WYSIWYG Editor yang sangat elegan dan mudah sekali untuk digunakan dan diintegrasikan pada CodeIgniter namun sayangnya fitur Image Manager (MCImage Manager) dan File Manager(MCFile Manager) kita harus merogoh kocek lagi (maklumlah anak kost dompetnya tipis hehehe… :cry: ), karena tidak bisa diunduh secara bebas :roll:  akhirnya aku mengurungkan niat untuk menggunakan editor yang satu ini, walaupun sebenarnya ada yang telah menyediakan Ibrowser plugin dan Imanager plugin untuk TinyMCE (bisa direview disini)namun ukurannya sangat besar (Ibrowser 652KB dan Imanager 4MB(zipped), weleh weleh gede banget yach.. 8O ), lagipula aku juga males melakukan konfigurasi ini dan itu buat integrasikan plugin tersebut :P . Sedangkan FCKEditor sudah menyertakan Image Manager namun masih minim fitur dan untuk tampilan tidak seelegan TinyMCE, Image Manager untuk FCKEditor juga belum diperkuat dengan fitur editing gambar dan thumbnail.

Dan yang terakhir Xinha mempunyai fitur yang lumayan lengkap dan customizable, Xinha juga telah menyertakan plugin Image Manager dengan fitur editing gambar dan thumbnail yang sudah terintegrasi dengan baik, namun untuk plugin File Manager belum disertakan sehingga kita tidak bisa mengunggah file-file selain gambar ke dalam server walaupun begitu aku akhirnya memilih editor ini (karena aku suka ama Image Manager dan jenis-jenis emoticonnya banyak). Namun untuk proses integrasi ke dalam CodeIgniter agak rumit (hehehe gak sebegitunya kaleee.. :mrgreen: ).

Baiklah aku akan berikan langkah-langkah cara mengintegrasikan Xinha WYSIWYG Editor kedalam CodeIgniter. Sebenarnya langkah-langkah ini bersumber dari url http://codeigniter.com/wiki/WYSIWYG/ namun pada langkah yang akan aku berikan ini ada sedikit modifikasi kode.

Screenshot dari Xinha WYSIWYG Editor

xinha1

xinha2

Read more…

CodeIgniter, PHP , ,

File Inclusion untuk Javascript pada CodeIgniter

December 26th, 2008

ci_logo_flameLagi asik utak-atik CodeIgniter 1.7.0 yang merupakan salah satu framework PHP yang lagi populer saat ini, pada saat aku ingin mencoba melakukan file inclusion untuk file berisikan scripting javascript (file dengan ekstensi .js) tanpa panjang lebar aku langsung baca user guide CodeIgniter pada bagian HTML Helper. Anehnya koq function untuk inclusion file .js tidak ada, yang ada cuma function link_tag() untuk file inclusion  css, favicon dan rss feed.

Pikirku apa mungkin developer lupa tentang hal ini. Akhirnya setelah googling sana sini dapet juga solusinya. Untuk melakukan file inclusion untuk tipe file .js menggunakan function script_tag(). Namun sebelumnya kita harus modifikasi kode file html_helper.php terlebih dahulu pada direktori system/helpers/ dengan menambahkan kode berikut:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
if ( ! function_exists('script_tag'))
{
 function script_tag($src = '', $language = 'javascript', 
                    $type = 'text/javascript', $index_page = FALSE)
 {
    $CI =& get_instance();
 
    $script = '<script';
 
   if (is_array($src))
   {
	 foreach ($src as $k=>$v)
	 {
	  if ($k == 'src' AND strpos($v, '://') === FALSE)
	  {
		if ($index_page === TRUE)
		{
			$script .= ' src="'.
			$CI->config->site_url($v).'"';
		}
		else
		{
			$script .= ' src="'.
			$CI->config->slash_item('base_url').$v.'"';
		}
	   }
	   else
	   {
			$script .= "$k=\"$v\"";
	   }
	 }
 
	$script .= "></script>\n";
   }
   else
   {
	if ( strpos($src, '://') !== FALSE)
	{
		$script .= ' src="'.$src.'" ';
	}
	elseif ($index_page === TRUE)
	{
		$script .= ' src="'.$CI->config->site_url($src).'" ';
	}
	else
	{
		$script .= ' src="'.
		        $CI->config->slash_item('base_url').$src.'" ';
	}
 
	$script .= 'language="'.$language.'" type="'.$type.'"';
 
	$script .= '></script>'."\n";
  }
 
  return $script;
 }
}

Apabila Anda menerapkan URL Friendly maka jangan lupa pada file .htaccess lakukan modifikasi sehingga menjadi:

RewriteEngine on
RewriteCond $1 !^(index\.php|<strong>js</strong>|images|robots\.txt)
RewriteRule ^(.*)$ /<strong>directory_base</strong>/index.php/$1 [L]

Contoh penggunaan function script_tag() sebagai berikut:

<?=script_tag("js/md5.js")?>

Kode diatas akan menghasilkan output :

<script src="http://domain_anda/directory_base_anda/js/md5.js" language="javascript" type="text/javascript"></script>

Ref : here

CodeIgniter, PHP , ,

Mengubah IP address menjadi nama negara + benderanya

September 2nd, 2008

Beberapa hari yang lalu, aku iseng mencoba-coba bagaimana cara mengubah sebuah IP Address menjadi sebuah nama negara beserta benderanya. Hehehe… :wink: , akhirnya ketemu juga caranya.

Ternyata untuk mengubah IP address menjadi nama negara, IP address harus diubah menjadi IP number yang memang sudah terdaftar dan menjadi standar internasional, untuk memperoleh database IP number dapat diunduh disini (SQL format) atau disini (CSV format). Untuk gambar bendera negara dapat diunduh disini. Adapun rumusnya sebagai berikut :

IP Address (IPv4) terdiri dari 4 sub-blok (xxx.xxx.xxx.xxx) , disini kita asumsikan tiap sub-blok diwakilkan oleh variabel w, x, y dan z sehingga menjadi w.x.y.z

Maka rumusnya :

IP Number = (256^3)*w + (256^2)*x + 256*y + z
= 16777216*w + 65536*x + 256*y + z

Terlihat diatas bahwa tiap-tiap sub-blok merupakan hasil perkalian dengan perpangkatan bilangan 256. Sehingga jika memperoleh

kembali nilai dari w, x, y dan z sebagai berikut:

w = int ( IP Number / 16777216 ) % 256
x = int ( IP Number / 65536 ) % 256
y = int ( IP Number / 256 ) % 256
z = int ( IP Number ) % 256

Nilai dari IP Number yang telah didapat dari rumus diatas, dicocokkan dengan database ip number. Berikut contoh perintah SQL nya:

SELECT [kolom_nama_negara] FROM [tabel_ip_number] WHERE [ip_yang_dicari] BETWEEN [ip_number_awal] AND [ip_number_akhir]

Baiklah…,aku akan berikan implementasi dari rumus diatas, berikut ini sourcecodenya :

Read more…

PHP ,

Cara menggunakan PHPMailer

September 2nd, 2008

Beberapa hari yang lalu aku mencoba membuat laporan tentang visitor yang ingin mencoba masuk ke halaman login admin dikirim langsung ke emailku sebagai laporan penyusup.

Pertama kali aku menggunakan fungsi mail() pada PHP ternyata setelah laporan terkirim ke email ternyata sender(pengirim) tidak terdefinisi alias tidak dikenali dan alamat email pengirim berupa
Nobody <nobody@boar.unixbsd.info>.

Padahal pengirim sudah aku definisikan namaku <alamat_emailku> pada bagian parameter header pada fungsi mail() tersebut. Akhirnya aku tanyakan masalah ini ke bagian support hosting dan mereka memberikan solusi agar menggunakan phpmailer.

Setelah aku searching bersama mbah google, akhirnya ketemu juga script phpmailer yang bisa diunduh disini(untuk PHP4) dan disini(untuk PHP5/6). PHPMailer menyediakan fitur yang cukup lengkap untuk menangani pengiriman data via email. Tanpa panjang lebar lagi berikut contoh sederhananya:

<?php
require('class.phpmailer.php');
$mail = new PHPMailer();
 
$mail->From = 'info@domainku.com'; //email pengirim
$mail->FromName = 'domainku'; //nama pengirim
$mail->Subject = 'Laporan'; //subjek email
$mail->Host = 'smtp.site.com'; //jika ingin menggunakan domain sendiri, masukkan nilai 'localhost'
$mail->Mailer = 'smtp'; //Protokol email yang digunakan
 
$tujuan = 'emailku@domain.com'; //email tujuan
$nama = 'namaku'; //nama tujuan
 
$data = '<strong>Ini merupakan percobaan pengiriman email menggunakan phpmailer</strong><br>';
$data .= 'Terima kasih<br>';
$data .= 'Dari domainku.com';
 
$mail->IsHTML(true); //Set bagian ini jika ingin mengirim HTML email
 
$mail->Body = $data;
$mail->AddAddress($tujuan, $nama);
 
if(!$mail->Send()){
	echo 'Email gagal terkirim';
	exit();
}
 
echo '<strong>Email terkirim</strong>';
?>

Untuk contoh lain yang bisa menjadi referensi bisa kunjungi : http://phpmailer.codeworxtech.com/index.php?pg=examples

Selamat mencoba :wink:

PHP ,

Import CSV File Into MySQL Database Using PHP

August 18th, 2008

Akhirnya aku punya waktu luang juga untuk nge-blog lagi, Hmm…, bagi Anda yang pernah entry data sampai ribuan data mungkin sangat melelahkan jika diinput satu persatu melalui sebuah form inputan. Apalagi data yang telah diinput pada dokumen excel atau sejenisnya diinput lagi ke form inputan tersebut, wew… kerja dua kali yach.., cape dech…!!!.

Kurang lebih 3 minggu yang lalu aku menemukan cara agar data pada dokumen spreadsheet yang diubah terlebih dahulu menjadi format file CSV (Comma Separated Value) kemudian dapat diimport langsung ke database mysql. Mungkin diinternet sudah banyak sourcecode bertebaran untuk proses import file CSV (Yang sudah tau jangan protes, hehehe…). Namun disini aku akan memberikan contoh kode dengan pendekatan konsep dari aku sendiri. Karena sourcecode nya banyak jadi bisa diunduh di http://www.edogeek.com/wp-posting/csv/csv.zip

Setelah Anda unduh ekstrak file tersebut ke webserver Anda dan pastikan strukutur direktori dan file dari file kompresi csv.zip tersebut sbb:

csv

   |__ images
   |__tmp
   |__style.css
   |__class.csv.php
   |__config.php
   |__hasil.php
   |__index.php
   |__mhs.csv
   |__mahasiswa.sql

Pada contoh kali ini aku menggunakan pendekatan OOP, jika webserver Anda masih belum mendukung untuk pendekatan ini, silahkan diubah saja ke bentuk prosedural.

Pertama-tama import terlebih dahulu file mahasiswa.sql ke database MySQL Anda, kemudian pastikan nilai variabel pada file config.php sudah sesuai dengan konfigurasi database Anda, baik berupa nama host, username, password dan nama database. File mhs.csv merupakan file sampel yang akan Anda upload. Setelah diupload maka akan muncul report seperti output dibawah ini :

outputcsv

Selamat mencoba… :)

Silahkan berikan komentar bagi Anda yang telah mencoba atau yang menemukan cara yang lebih efisien dan efektif.

PHP ,