Archive for April, 2006

From MySQL Date Fields To HTML

MySQL date format is like YYYY-MM-DD HH:mm:ss, it is a very time-consuming and annoying task to create piece of code that edit datetime column, so I’ve crafted two pair of functions that dump the datetime value into sets of HTML forms for editing date and times.

This function dumps the datetime value into a simple HTML forms consists of a textbox for editing day, a single selectbox for month entry and year textbox. If there’s time found in datetime value, it will popup the hour, minutes and seconds textbox.


/**
 * Dump the $datetime value into HTML forms
 * $datetime => the value to be dumped, the format should be:
 *   yyyy-MM-dd HH:ii:ss, as MySQL date format
 * $name => the HTML form name prefix
 */
function date_view_form($datetime, $name)
{
	$o = array();

	@list($date, $time) = explode(" ", $datetime);
	if (FALSE !== strpos($date, ":")) {
		// date is time
		$time = $date;
		$date = "";
	}

	// dump the date part
	if ($date) {
		list($year, $month, $day) = explode("-", $date);
		$dateform[] = '<input id="'.$name.'_year" name="'.
			$name.'_year" type="text" size="4" value="'.
			str_pad($year, "0", 4, STR_PAD_LEFT).'" />';
		$dateform[] = select_month($name . "_month", $month);
		$dateform[] = '<input id="'.$name.'_day" name="'.
			$name.'_day" type="text" size="2" value="'.
			str_pad($day, "0", 2, STR_PAD_LEFT).'" />';
		$o[] = implode("-", $dateform) . "\n";
	}

	// if has time part, create the time part aswell
	if ($time) {
		list($hour, $min, $sec) = explode(":", $time);
		$timeform[] = '<input id="'.$name.'_hour" name="'.$name.
			'_hour" type="text" size="2" value="'.
			str_pad($hour, "0", 2, STR_PAD_LEFT).'" />';
		$timeform[] = '<input id="'.$name.'_min" name="'.
			$name.'_min" type="text" size="2" value="'.
			str_pad($min, "0", 2, STR_PAD_LEFT).'" />';
		$timeform[] = '<input id="'.$name.'_sec" name="'.
			$name.'_sec" type="text" size="2" value="'.
			str_pad($sec, "0", 2, STR_PAD_LEFT).'" />';
		$o[] = implode(":", $timeform) . "\n";
	}

	return implode("\n", $o);
}

/**
 * Get the dumped HTML forms, and returns the result as a valid
 * MySQL date format, if not valid, return a default value, predefined as
 * FALSE
 * $name => the HTML form name prefix we put
 * $var => where we going to get the value, try using $_GET or $_POST
 * $default => default value
 */
function date_get_value($name, $var, $default=FALSE)
{
	if (FALSE === $default)
		$default = date("Y-m-d");

	$fields = explode(",", "year,month,day,hour,min,sec");
	foreach($fields as $field) {
		$key = "{$name}_{$field}";
		$$field = isset($var[$key]) ? intval($var[$key]) : 0;
	}

	$stamp = mktime($hour, $min, $sec, $month, $day, $year);
	if ($stamp <= 0) return $default;

	if ($hour == 0 &amp;&amp; $min == 0 &amp;&amp; $sec == 0) return date("Y-m-d", $stamp);
	else return date("Y-m-d H:i:s", $stamp);
}

/**
 * Dump a SelectBox of monthnames, please replace the month_names value, since
 * its in Indonesian.
 *
 * $name => The HTML form name
 * $value => the Selected Value
 */
function select_month($name, $value="")
{
	if ("" == $value) $value = date("m");

	$month_names = explode(",", ",Januari,Februari,Maret,April,Mei,Juni,".
		"Juli,Agustus,September,Oktober,November,Desember");
	unset($month_names[0]);

	$o = array();
	foreach($month_names as $key=>$text) {
		$s = $value == $key ? ' selected="selected"' : '';
		$o[] = '<option value="'.$key.'"'.$s.'>'.$text.'</option>';
	}
	return '<select name="'.$name.'">'.implode("\n", $o).'</select>';
}

There are many JavaScript library that perform a date-form with a nice calendar input, but why the Hell am I using only textbox and SelectBox? The answer is simplicity. I want a dead-simple-fast date-form that operator like and can be operated using only arrow keys and tabs to manage, and JavaScript calendar widget are overkill.

Please try the demo page,
just to feel the form, or you can download the source code.

Sunday, April 30th, 2006 | Tags: Articles, PHP | 5 Comments

Langganan Berita Elektronik

Aku bikin skrip kecil untuk nge-fetch RSS dari beberapa situs yang aku punya, terus di-integrasikan dengan Textpattern dan aku taruh di halaman depan, kanan bawah.

Apa urusannya? Cuman pamer aja kok, ngga ada apa2. Udah ah, mo siap2 WEEKEND!

Friday, April 28th, 2006 | Tags: Weblog | 1 Comment

ExplorerDestroyer

Coba buka Ferdianto.com pake Internet Explorer.

Friday, April 28th, 2006 | Tags: Weblog | 3 Comments

Upgrading to Strict

Waktu senggang di kantor, sekitar jam 4.39 sore, ngga belum ada kerjaan, flu terus menyerang, aku iseng2 ngecek validasi XHTML blog ini. Eh ternyata nemu 1 warning, atribut language="JavaScript" busuk di validasi XHTML strict. Aku update, aku ilangin, akhirnya aku upgrade doctypes dari Transitional ke Strict. Dan sekarang, ferdianto.com jalan di XHTML 1.0 Strict!

Berikut Doctypes nya:

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

Silahkan validasi Ferdianto.com di: W3C

Tuesday, April 25th, 2006 | Tags: Weblog | 7 Comments

Another Glitch!

Dapet dari Milis… cuman pengen komentar aja!

RUU ITE Pasal 26 Bab VII yang berbunyi

“Setiap orang dilarang menyebarkan informasi elektronik yang memiliki muatan pornografi dan atau pornoaksi melalui komputer atau sistem elektronik.” RUU ITE hingga kini masih dalam pembahasan di DPR….

Bila RUU Informasi dan Trasaksi Elektronik (ITE) sudah disahkan menjadi undang-undang, maka setiap orang yang menyebarkan informasi elektronik berbau porno melalui komputer atau sistem elektronik akan diancam 2 tahun penjara, kata si Ahmad Ramli, Staff Ahli Bidang Hukum Menteri Komunikasi dan Informatika.

Hmm, bener2 kurang kerjaan…, anyway aku ada 1 pertanyaan: Implementasinya? Bisa ngga yah? Mengingat koneksi Gmail yang udah SSL, hampir ngga mungkin di sniff, IP juga banyak yang pake proxy, UNLESS, si pelaku kelewat bego nyebarin identitas nya di Milis2–kecuali kalo pemerintah pasang intel ngikut milis2 adult, ngga etis. Tambahan lagi, mau nekat nangkepin orang di Internet, modal apa? Bikin situs presiden aja udah begging ke milis2 utk ngga di DDOS(Distributed Denial Of Service), melas banget!

Pentingnya UU ITE:
Ramli sendiri merasa RUU ITE perlu segera disahkan menjadi UU karena hal itu dianggap penting untuk membangun kepercayaan setiap pihak dalam transaksi elektronik dan sebagai payung hukum bila terjadi masalah dalam transaksi itu.

Unjung2 nya duwit, KAPITALIS LO!!!

Friday, April 21st, 2006 | Tags: Weblog | 3 Comments

Cut Tari - KU

Cut Tari

Cut Tari selingkuh, denger dari berita2 di infotainment—yah aku bilang berita, bukan gosip, soalnya mostly bener sih, ngga ngaco, Cut Tari selingkuh, heran, padahal kalo di liat, apa kurang nya suami si artis cakep ini. Udah ganteng, kaya, keren lagi

Yang paling disayangkan, Selingkuhannya jelek bener!! Apa karena dia seorang sutradara? Apa sih hebatnya sutradara dibandingin programmer, napa ngga milih selingkuh dengan programmer Java/PHP aja?

Tuesday, April 18th, 2006 | Tags: Weblog | 7 Comments

Kontroversi Playboy Indonesia

Hebat, edisi perdana Playboy Indonesia udah habis terjual, belum sampe ke daerah2, cuman di Jakarta aja, bahkan ada yang nekat minta beli-in temen di Jakarta terus dipaket in ke Malang. Bisa dibayangin girang dan sorak-sorai para petinggi Playboy Indonesia, marketting nya jago banget. Sukses-nya launching perdana majalah amrik ini tidak lepas dari beberapa kejadian SERU yang menyertai nya.

Playboy Indonesia 1st Edition

Kita semua udah tau Kontroversi RUU APP, terus gimana reaksi masyarakat menentang atau pro dengan masalah itu. Saya kemudian ber-spekulasi, bisa jad ANGGOTA DPR INDONESIA DIBAYAR OLEH PLAYBOY UNTUK BIKIN RUU APP—sengaja saya caps, biar jelas bacanya, no offense. Jadi emang sengaja di bikin kontroversi oleh marketting Playboy, biar orang penasaran dan tambah ngebet untuk beli majalahnya. Bisa aja, wong DPR kita mata-duitan, dan orang2 Indonesia kan gampang banget disetir. Soalnya, yg saya liat, isi dari Playboy Indonesia ngga seru2 amat, sama ama majalah macem Popular, FHM, dll. So… It’s just a game, Don’t get caught on it - Peace!

Wednesday, April 12th, 2006 | Tags: Weblog | 7 Comments