<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>Fusebox PHP Indonesia</title>
	<atom:link href="http://blog.fbxphpindonesia.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.fbxphpindonesia.com</link>
	<description>Blog Pengguna Fusebox PHP Indonesia</description>
	<pubDate>Sat, 31 Dec 2011 10:32:57 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Select And Unselect Multi Checkbox</title>
		<link>http://blog.fbxphpindonesia.com/2011/12/31/select-and-unselect-multi-checkbox/</link>
		<comments>http://blog.fbxphpindonesia.com/2011/12/31/select-and-unselect-multi-checkbox/#comments</comments>
		<pubDate>Sat, 31 Dec 2011 09:53:04 +0000</pubDate>
		<dc:creator>ninolooh</dc:creator>
		
		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[Klinik]]></category>

		<category><![CDATA[jquery]]></category>

		<category><![CDATA[multi checkbox]]></category>

		<guid isPermaLink="false">http://blog.fbxphpindonesia.com/?p=267</guid>
		<description><![CDATA[Oke, ini tutorial singkat menggunakan jQuery untuk melakukan select &#38; unselect checkbox.. biasanya ini digunakan untuk memilih data lebih dari satu.



&#60;script src=&#34;http://code.jquery.com/jquery-latest.js&#34;&#62;&#60;/script&#62;
&#60;script langauge=&#34;javaScript&#34;&#62;
function set_checked(bol){
$(&#039;#data input[type=checkbox]&#039;).attr(&#039;checked&#039;, bol);
}
&#60;/script&#62;

&#60;div id=&#34;data&#34;&#62;
&#60;form&#62;
&#60;table border=&#34;1&#34;&#62;
&#60;tr&#62;
&#60;td&#62;
&#60;input type=&#34;button&#34; onclick=&#34;set_checked(true)&#34; value=&#34;On&#34; /&#62;
&#60;input type=&#34;button&#34; onclick=&#34;set_checked(false)&#34; value=&#34;Off&#34; /&#62;
&#60;/td&#62;
&#60;td&#62;
DATA
&#60;/td&#62;
&#60;/tr&#62;
&#60;tr&#62;
&#60;td align=&#34;center&#34;&#62;
&#60;input type=&#34;checkbox&#34; value=&#34;1&#34; name=&#34;pilih[]&#34;&#62;
&#60;/td&#62;
&#60;td&#62;Data 1&#60;/td&#62;
&#60;/tr&#62;
&#60;tr&#62;
&#60;td align=&#34;center&#34;&#62;
&#60;input type=&#34;checkbox&#34; value=&#34;2&#34; name=&#34;pilih[]&#34;&#62;
&#60;/td&#62;
&#60;td&#62;Data 2&#60;/td&#62;
&#60;/tr&#62;
&#60;tr&#62;
&#60;td align=&#34;center&#34;&#62;
&#60;input type=&#34;checkbox&#34; value=&#34;3&#34; name=&#34;pilih[]&#34;&#62;
&#60;/td&#62;
&#60;td&#62;Data 3&#60;/td&#62;
&#60;/tr&#62;
&#60;/table&#62;
&#60;/form&#62;
&#60;/div&#62;


]]></description>
			<content:encoded><![CDATA[<p>Oke, ini tutorial singkat menggunakan <a href="http://jquery.com/" target="_blank">jQuery</a> untuk melakukan select &amp; unselect checkbox.. biasanya ini digunakan untuk memilih data lebih dari satu.</p>
<pre>
<pre name="code" class="html">

&lt;script src=&quot;http://code.jquery.com/jquery-latest.js&quot;&gt;&lt;/script&gt;
&lt;script langauge=&quot;javaScript&quot;&gt;
function set_checked(bol){
$(&#039;#data input[type=checkbox]&#039;).attr(&#039;checked&#039;, bol);
}
&lt;/script&gt;

&lt;div id=&quot;data&quot;&gt;
&lt;form&gt;
&lt;table border=&quot;1&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;input type=&quot;button&quot; onclick=&quot;set_checked(true)&quot; value=&quot;On&quot; /&gt;
&lt;input type=&quot;button&quot; onclick=&quot;set_checked(false)&quot; value=&quot;Off&quot; /&gt;
&lt;/td&gt;
&lt;td&gt;
DATA
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;
&lt;input type=&quot;checkbox&quot; value=&quot;1&quot; name=&quot;pilih[]&quot;&gt;
&lt;/td&gt;
&lt;td&gt;Data 1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;
&lt;input type=&quot;checkbox&quot; value=&quot;2&quot; name=&quot;pilih[]&quot;&gt;
&lt;/td&gt;
&lt;td&gt;Data 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;
&lt;input type=&quot;checkbox&quot; value=&quot;3&quot; name=&quot;pilih[]&quot;&gt;
&lt;/td&gt;
&lt;td&gt;Data 3&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/form&gt;
&lt;/div&gt;
</pre>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.fbxphpindonesia.com/2011/12/31/select-and-unselect-multi-checkbox/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Membuat URL yang Search-Engine Friendly pada Fusebox</title>
		<link>http://blog.fbxphpindonesia.com/2010/10/30/membuat-url-yang-search-engine-friendly-pada-fusebox/</link>
		<comments>http://blog.fbxphpindonesia.com/2010/10/30/membuat-url-yang-search-engine-friendly-pada-fusebox/#comments</comments>
		<pubDate>Sat, 30 Oct 2010 05:57:19 +0000</pubDate>
		<dc:creator>Yerie Piscesa</dc:creator>
		
		<category><![CDATA[Go-Fusebox]]></category>

		<category><![CDATA[Langkah-langkah]]></category>

		<category><![CDATA[search-engine-friendly]]></category>

		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://blog.fbxphpindonesia.com/?p=241</guid>
		<description><![CDATA[Kalau kita lihat website-website yang ada saat ini, kebanyakan dari mereka menggunakan konstruksi URL yang mudah dibaca oleh mesin pencari (search engine) khususnya pada website berita. Pada dasarnya semua web server yang menyediakan fasilitas URL Rewrite dapat menimpa konstruksi URL (yang search-engine friendly) dengan URL yang sebenarnya kemudian mengarahkan(me-redirect)nya. Kali ini kita akan mengaplikasikan ini [...]]]></description>
			<content:encoded><![CDATA[<p>Kalau kita lihat website-website yang ada saat ini, kebanyakan dari mereka menggunakan konstruksi URL yang mudah dibaca oleh mesin pencari (search engine) khususnya pada website berita. Pada dasarnya semua web server yang menyediakan fasilitas URL Rewrite dapat menimpa konstruksi URL (yang search-engine friendly) dengan URL yang sebenarnya kemudian mengarahkan(me-redirect)nya. Kali ini kita akan mengaplikasikan ini dalam template Go-Fusebox.<br />
<span id="more-241"></span><br />
Sebelum memulainya, pastikan host web server Anda mengizinkan penulisan ulang URL (URL Rewrite), jika Anda bekerja dalam localhost dan Apache, Anda dapat mengubah konfigurasi httpd.conf pada direktori conf/ Apache Anda.</p>
<p>Untuk mengubahnya, buka file httpd.conf, kemudian cari teks berikut:</p>
<pre name="code" class="php">
#LoadModule rewrite_module modules/mod_rewrite.so
</pre>
<p>hilangkan tanda &#8220;#&#8221; diawal baris menjadi:</p>
<pre name="code" class="php">
LoadModule rewrite_module modules/mod_rewrite.so
</pre>
<p>simpan perubahan kemudian jalankan ulang (restart) web server Anda.</p>
<p>Siapkan template <a href="http://fbxphpindonesia.com/projects/GoFusebox/GoFusebox.zip">Go-Fusebox</a> yang masih kosong pada root web server Anda. Buat file .htaccess pada root direktori sebagai berikut:</p>
<pre name="code" class="xml">
&lt;IfModule mod_rewrite.c&gt;
    RewriteEngine On

	RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([\w]+)/([\w]+)$ index.php?go=$1.$2 [L]

	RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
	RewriteRule ^([\w]+)/([\w]+)/(.+)$ index.php?go=$1.$2&amp;__qs__=$3 [L]
&lt;/IfModule&gt;
</pre>
<p>Selanjutnya kita buat fungsi untuk menangani peng-ubah-an url tersebut. Kita bisa tambahkan fuseaction pada circuit global sebagai berikut:</p>
<pre name="code" class="xml">
&lt;fuseaction name=&quot;fancyURL&quot;&gt;
	&lt;include template=&quot;act_fancyURL&quot; /&gt;
&lt;/fuseaction&gt;
</pre>
<p>siapkan juga fuse act_fancyURL, script dari act_fancyURL.php adalah sebagai berikut:</p>
<pre name="code" class="php">
&lt;?php
/*
@ XFA for fancy URL
@author: Yerie Piscesa &lt;yeriepiscesa@fbxphpindonesia.com&gt;
*/
$WebsiteURL = &quot;localhost/fancyurl&quot;;
function XFA($xfa,$params=null,$fancy=false,$info=array()) {
	$myself = $GLOBALS[&quot;myself&quot;];
	$_xfa = $GLOBALS[&#039;XFA&#039;][$xfa];
	if(is_null($_xfa)) $_xfa = $xfa;
	if ($fancy) {
		$ret = &quot;http://&quot;.$GLOBALS[&#039;WebsiteURL&#039;].&quot;/&quot;.str_replace(&quot;.&quot;,&quot;/&quot;,$_xfa);
		if (!is_null($params)) {
			foreach($params as $k=&gt;$v){
				$ret .= &quot;/$v&quot;;
			}
		}
		if (!is_null($info)) {
			for($i=0;$i&lt;count($info);$i++){
				$ret .= &quot;/&quot;.preg_replace(&quot;/\s+/&quot;,&quot;-&quot;,$info[$i]);
			}
		}
	} else {
		$ret = $myself . $_xfa;
		if (!is_null($params)){
			foreach($params as $k=&gt;$v){
				$ret .= &quot;&amp;&quot;.$k.&quot;=&quot;.$v;
			}
		}
	}
	return $ret;
}
function isFancyURL(){
	return (is_null($_GET[&quot;__qs__&quot;]) || $_GET[&quot;__qs__&quot;] == &quot;&quot;) ? false : true;
}
function XFA_get($paramNo){
	$qs = $_GET[&quot;__qs__&quot;];
	$arrQS = explode(&quot;/&quot;,$qs);
	return $arrQS[$paramNo-1];
}
?&gt;
</pre>
<p>Hal yang perlu diperhatikan adalah variabel $WebsiteURL, variabel tersebut berisi root domain website Anda. Jika Anda bekerja dalam domain publik, $WebsiteURL dapat berisi &#8220;www.fbxphpindonesia.com&#8221; atau &#8220;demo.fbxphpindonesia.com&#8221;</p>
<p>Selanjutnya adalah menambahkan tag &lt;base&gt; kedalam layout website. Buka fuse layout Anda, kemudian pada section &lt;head&gt; tambahkan kode berikut:</p>
<pre name="code" class="html">
&lt;base href=&quot;http://&lt;?php echo $WebsiteURL; ?&gt;/&quot;/&gt;
</pre>
<p>pastikan kode diatas ditambahkan diatas tag-tag &lt;link&gt;,&lt;script&gt; dan sejenisnya yang memiliki atribut href dan src.</p>
<p>Selanjutnya kita pasang pada fusebox.xml. Buka file fusebox.xml.php Anda pada direktori apps/index, kemudian tambahkan kode berikut pada tag &lt;preprocess&gt;</p>
<pre name="code" class="xml">
&lt;fuseaction action=&quot;global.fancyURL&quot;/&gt;
</pre>
<p>atau lebih lengkapnya:</p>
<pre name="code" class="xml">
&lt;preprocess&gt;
        &lt;fuseaction action=&quot;global.init&quot;/&gt;
        &lt;fuseaction action=&quot;db.open&quot;/&gt;
	&lt;fuseaction action=&quot;global.fancyURL&quot;/&gt;
&lt;/preprocess&gt;
</pre>
<p>Langkah persiapan telah kita lakukan semua, selanjutnya adalah membuat halaman uji coba. Untuk itu buatlah circuit page pada direktori index, sebelumnya tambahkn dulu pada fusebox.xml</p>
<pre name="code" class="php">
&lt;circuit alias=&quot;page&quot; path=&quot;circuits/page/&quot;/&gt;
</pre>
<p>Buat circuit.xml.php pada direktori circuit tersebut:</p>
<pre name="code" class="xml">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;circuit access=&quot;public&quot;&gt;
	&lt;fuseaction name=&quot;view&quot;&gt;
		&lt;include template=&quot;qry_view&quot;/&gt;
		&lt;include template=&quot;dsp_view&quot; contentvariable=&quot;fbx_maincontent&quot;/&gt;
	&lt;/fuseaction&gt;
&lt;/circuit&gt;
</pre>
<p>Buat juga fuse-fuse yang terlibat dalam fuseaction &#8220;view&#8221;:<br />
@qry_view.php</p>
<pre name="code" class="php">
&lt;?php
$fbx_pagetitle = &quot;Fancy URL Test&quot;;
if (isFancyURL()) {
	$pageID = XFA_get(1);
} else {
	$pageID = $_GET[&quot;id&quot;];
}

switch($pageID) {
	case &quot;1&quot;:
		$fbx_pagetitle = &quot;Halaman Satu&quot;;
		$content = &quot;Isi Halaman Page Satu&quot;;
		break;
	case &quot;2&quot;:
		$fbx_pagetitle = &quot;Halaman Dua&quot;;
		$content = &quot;Isi Halaman Page Dua&quot;;
		break;
	case &quot;3&quot;:
		$fbx_pagetitle = &quot;Halaman Tiga&quot;;
		$content = &quot;Isi Halaman Page Tiga&quot;;
		break;
	case &quot;4&quot;:
		$fbx_pagetitle = &quot;Halaman Empat&quot;;
		$content = &quot;Halaman ini URLnya biasa aja&quot;;
		break;
	default:
		$fbx_pagetitle = &quot;Halaman&quot;;
		$content = &quot;Pilih halaman disamping&quot;;
		break;
}
?&gt;
</pre>
<p>@dsp_view.php</p>
<pre name="code" class="html">
&lt;table width=&quot;100%&quot;&gt;
	&lt;tr&gt;
		&lt;td width=&quot;20%&quot; valign=&quot;top&quot;&gt;
		&lt;a href=&quot;&lt;?php echo XFA(&quot;page.view&quot;,array(&quot;id&quot;=&gt;1),true,array(&quot;Halaman Satu&quot;)); ?&gt;&quot;&gt;Halaman Satu&lt;/a&gt; &lt;br/&gt;
		&lt;a href=&quot;&lt;?php echo XFA(&quot;page.view&quot;,array(&quot;id&quot;=&gt;2),true,array(&quot;Halaman Dua&quot;)); ?&gt;&quot;&gt;Halaman Dua&lt;/a&gt; &lt;br/&gt;
		&lt;a href=&quot;&lt;?php echo XFA(&quot;page.view&quot;,array(&quot;id&quot;=&gt;3),true,array(&quot;Halaman Tiga&quot;,&quot;Tambahan Info&quot;)); ?&gt;&quot;&gt;Halaman Tiga&lt;/a&gt; &lt;br/&gt;
		&lt;a href=&quot;&lt;?php echo XFA(&quot;page.view&quot;,array(&quot;id&quot;=&gt;4),false); ?&gt;&quot;&gt;Halaman Empat&lt;/a&gt; &lt;br/&gt;
		&lt;/td&gt;
		&lt;td width=&quot;80%&quot; valign=&quot;top&quot;&gt;
		&lt;?php echo $content; ?&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;
</pre>
<p>Selanjutnya tinggal mencobanya pada browser, arahkan ke <a href="http://localhost/fancyurl/page/view" target="_blank">http://localhost/fancyurl/page/view</a><br />
atau dapat dilihat demonya disini: <a href="http://demo.fbxphpindonesia.com/page/view" target="_blank">http://demo.fbxphpindonesia.com/page/view</a></p>
<p>Download source nya disini: <a href="http://fbxphpindonesia.com/data/fancyurl.zip">http://fbxphpindonesia.com/data/fancyurl.zip</a></p>
<p>Happy Fuseboxing <img src='http://blog.fbxphpindonesia.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fbxphpindonesia.com/2010/10/30/membuat-url-yang-search-engine-friendly-pada-fusebox/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Dengan atau Tanpa Ajax Menjadi Lebih Mudah dengan Fusebox</title>
		<link>http://blog.fbxphpindonesia.com/2010/10/08/dengan-atau-tanpa-ajax-menjadi-lebih-mudah-dengan-fusebox/</link>
		<comments>http://blog.fbxphpindonesia.com/2010/10/08/dengan-atau-tanpa-ajax-menjadi-lebih-mudah-dengan-fusebox/#comments</comments>
		<pubDate>Fri, 08 Oct 2010 09:51:36 +0000</pubDate>
		<dc:creator>Yerie Piscesa</dc:creator>
		
		<category><![CDATA[Go-Fusebox]]></category>

		<category><![CDATA[Object Oriented Programming]]></category>

		<category><![CDATA[Tips Pengembangan]]></category>

		<guid isPermaLink="false">http://blog.fbxphpindonesia.com/?p=234</guid>
		<description><![CDATA[Pada ulasan sebelumnya tentang aplikasi database dengan form Ajax, dimana proses insert dan update menggunakan request ajax untuk mengirim data ke server. Lalu bagaimana jika proses itu tidak menggunakan request ajax ?

Karena Fusebox merupakan framework yang fleksibel, maka mudah saja untuk mengubahnya. Buka kembali contoh sebelumnya, ada beberapa file yang harus diubah yaitu:
1. apps/index/circuits/data/circuit.xml.php dan
2. [...]]]></description>
			<content:encoded><![CDATA[<p>Pada ulasan <a href="http://blog.fbxphpindonesia.com/2010/09/26/aplikasi-database-dengan-form-ajax/"><strong>sebelumnya</strong></a> tentang aplikasi database dengan form Ajax, dimana proses insert dan update menggunakan request ajax untuk mengirim data ke server. Lalu bagaimana jika proses itu tidak menggunakan request ajax ?<br />
<span id="more-234"></span><br />
Karena Fusebox merupakan framework yang fleksibel, maka mudah saja untuk mengubahnya. Buka kembali contoh <a href="http://blog.fbxphpindonesia.com/wp-content/uploads/2010/09/gofusebox-demo-ajax.zip">sebelumnya</a>, ada beberapa file yang harus diubah yaitu:<br />
1. apps/index/circuits/data/circuit.xml.php dan<br />
2. apps/index/circuits/data/dsp_form.php</p>
<p>Perubahan pada circuit.xml hanya pada fuseaction echo sebagai berikut:</p>
<pre name="code" class="xml">
&lt;fuseaction name=&quot;echo&quot; access=&quot;private&quot;&gt;
	&lt;if condition=&quot;$_GET[&#039;ajax&#039;] == &#039;1&#039;&quot;&gt;
		&lt;true&gt;
			&lt;php:include file=&quot;apps/vendors/FastJSON.class.php&quot;/&gt;
			&lt;set value=&quot;echo FastJSON::encode(\$ret);&quot; evaluate=&quot;true&quot;/&gt;
		&lt;/true&gt;
		&lt;false&gt;
			&lt;do action=&quot;global.setPostBack&quot;/&gt;
			&lt;if condition=&quot;$originalFuseaction == &#039;insert&#039;&quot;&gt;
				&lt;true&gt;&lt;do action=&quot;add&quot;/&gt;&lt;/true&gt;
			&lt;/if&gt;
			&lt;if condition=&quot;$originalFuseaction == &#039;update&#039;&quot;&gt;
				&lt;true&gt;&lt;do action=&quot;edit&quot;/&gt;&lt;/true&gt;
			&lt;/if&gt;
		&lt;/false&gt;
	&lt;/if&gt;
&lt;/fuseaction&gt;
</pre>
<p>Sedangkan pada fuse dsp_form adalah <strong>menghilangkan link ke script update.js</strong>, merubah <strong>attribut type</strong> pada tag button menjadi submit, serta menambahkan kode berikut sebelum tag form:</p>
<pre name="code" class="php">
&lt;?php
if ($isPostBack &amp;&amp;; !$ret[&quot;status&quot;]) $msg = &quot;Data Gagal Disimpan!&quot;;
if ($isPostBack &amp;&amp; $ret[&quot;status&quot;]) $msg = &quot;Data Telah Disimpan!&quot;;
if ($msg != &quot;&quot;) $msg = &#039;&lt;div style=&quot;background-color:#ffffcc; font-weight:bold; padding:4px;&quot;&gt;&#039;.$msg.&#039;&lt;/div&gt;&#039;;
echo $msg;
?&gt;
</pre>
<p>Disitu kita lihat ada variabel bernama $isPostBack, yang sebelumnya dipanggil melalui circuit.xml <do action="global.setPostBack"/>, variabel ini menandakan apakah halaman sudah melakukan request post ke server, nilai variabel ini antara true atau false.</p>
<p>Kode sumber lengkapnya untuk fuse dsp_form adalah : </p>
<pre name="code" class="html">
&lt;?php
$data = $anggota-&gt;byID($attributes[&quot;id&quot;]);
$dataProp = $adodb-&gt;GetAll(&quot;select * from provinces&quot;);
?&gt;

&lt;script src=&quot;assets/js/prototype.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;assets/js/my_common.js&quot;&gt;&lt;/script&gt;
&lt;script&gt;
var post_province_id  = &quot;&lt;?php echo $data[&quot;province_id&quot;] ?&gt;&quot;;
var post_kabupaten_id = &quot;&lt;?php echo $data[&quot;kabupaten_id&quot;] ?&gt;&quot;;
var post_kecamatan_id = &quot;&lt;?php echo $data[&quot;kecamatan_id&quot;] ?&gt;&quot;;
var post_kelurahan_id = &quot;&lt;?php echo $data[&quot;kelurahan_id&quot;] ?&gt;&quot;;
&lt;/script&gt;
&lt;script src=&quot;assets/js/bps.js&quot;&gt;&lt;/script&gt;

&lt;?php
if ($isPostBack &amp;&amp; !$ret[&quot;status&quot;]) $msg = &quot;Data Gagal Disimpan!&quot;;
if ($isPostBack &amp;&amp; $ret[&quot;status&quot;]) $msg = &quot;Data Telah Disimpan!&quot;;
if ($msg != &quot;&quot;) $msg = &#039;&lt;div style=&quot;background-color:#ffffcc; font-weight:bold; padding:4px;&quot;&gt;&#039;.$msg.&#039;&lt;/div&gt;&#039;;
echo $msg;
?&gt;

&lt;h2&gt;&lt;?php echo $fbx_pagetitle; ?&gt;&lt;/h2&gt;
&lt;form id=&quot;myForm&quot; action=&quot;&lt;?php echo $myself.$XFA[&quot;action&quot;]; ?&gt;&quot; method=&quot;post&quot;&gt;
	&lt;?php if ($data) : ?&gt;
	&lt;input type=&quot;hidden&quot; name=&quot;id&quot; value=&quot;&lt;?php echo $data[&quot;id&quot;] ?&gt;&quot;/&gt;
	&lt;?php endif; ?&gt;
	&lt;table&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;strong&gt;Nama&lt;/strong&gt;&lt;/td&gt;
			&lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;nama&quot; id=&quot;nama&quot; value=&quot;&lt;?php echo $data[&quot;nama&quot;] ?&gt;&quot; size=&quot;50&quot;/&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;strong&gt;Alamat&lt;/strong&gt;&lt;/td&gt;
			&lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;alamat&quot; id=&quot;alamat&quot; value=&quot;&lt;?php echo $data[&quot;alamat&quot;] ?&gt;&quot; size=&quot;70&quot;/&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;strong&gt;Propinsi&lt;/strong&gt;&lt;/td&gt;
			&lt;td&gt;
			&lt;?php
			echo &#039;&lt;select name=&quot;province_id&quot; id=&quot;province_id&quot;&gt;&#039;;
			echo &#039;&lt;option value=&quot;&quot;&gt;-- Pilih Propinsi --&lt;/option&gt;&#039;;
			foreach($dataProp as $prop) {
				$sel = &quot;&quot;;
				if ($data[&quot;province_id&quot;] == $prop[&quot;id&quot;]) $sel = &#039; selected=&quot;selected&quot;&#039;;
				echo &#039;&lt;option value=&quot;&#039;.$prop[&quot;id&quot;].&#039;&quot;&#039;.$sel.&#039;&gt;&#039;.$prop[&quot;name&quot;].&#039;&lt;/option&gt;&#039;;
			}
			echo &#039;&lt;/select&gt;&#039;;
			?&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;strong&gt;Kabupaten/Kota&lt;/strong&gt;&lt;/td&gt;
			&lt;td&gt;
			  &lt;select name=&quot;kabupaten_id&quot; id=&quot;kabupaten_id&quot;&gt;
			    &lt;option value=&quot;&quot;&gt;-- Pilih Kab/Kota --&lt;/option&gt;
			  &lt;/select&gt;&lt;span id=&quot;kabupaten_loader&quot;&gt;&lt;/span&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;strong&gt;Kecamatan&lt;/strong&gt;&lt;/td&gt;
			&lt;td&gt;
			  &lt;select name=&quot;kecamatan_id&quot; id=&quot;kecamatan_id&quot;&gt;
			    &lt;option value=&quot;&quot;&gt;-- Pilih Kecamatan --&lt;/option&gt;
			  &lt;/select&gt;&lt;span id=&quot;kecamatan_loader&quot;&gt;&lt;/span&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;strong&gt;Kelurahan&lt;/strong&gt;&lt;/td&gt;
			&lt;td&gt;
			  &lt;select name=&quot;kelurahan_id&quot; id=&quot;kelurahan_id&quot;&gt;
			    &lt;option value=&quot;&quot;&gt;-- Pilih Kelurahan --&lt;/option&gt;
			  &lt;/select&gt;&lt;span id=&quot;kelurahan_loader&quot;&gt;&lt;/span&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;&amp;nbsp;&lt;/td&gt;
			&lt;td&gt;
				&lt;button type=&quot;submit&quot; id=&quot;btnSave&quot;&gt;Simpan&lt;/button&gt;
				&lt;button type=&quot;reset&quot;&gt;Reset&lt;/button&gt; &lt;span id=&quot;save_loader&quot;&gt;&lt;/span&gt;
				| &lt;a href=&quot;&lt;?php echo $myself.$XFA[&quot;list&quot;] ?&gt;&quot;&gt;List Anggota&lt;/a&gt;
				| &lt;a href=&quot;&lt;?php echo $myself.$XFA[&quot;add&quot;] ?&gt;&quot;&gt;Data Baru&lt;/a&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/table&gt;
&lt;/form&gt;
</pre>
<p>Happy Fuseboxing <img src='http://blog.fbxphpindonesia.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fbxphpindonesia.com/2010/10/08/dengan-atau-tanpa-ajax-menjadi-lebih-mudah-dengan-fusebox/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Menggunakan DynamiCombo Untuk Membuat Combo Box Dinamis</title>
		<link>http://blog.fbxphpindonesia.com/2010/09/27/menggunakan-dynamicombo-untuk-membuat-combo-box-dinamis/</link>
		<comments>http://blog.fbxphpindonesia.com/2010/09/27/menggunakan-dynamicombo-untuk-membuat-combo-box-dinamis/#comments</comments>
		<pubDate>Sun, 26 Sep 2010 17:45:55 +0000</pubDate>
		<dc:creator>Yerie Piscesa</dc:creator>
		
		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[ajax]]></category>

		<category><![CDATA[combo box dinamis]]></category>

		<category><![CDATA[DynamiCombo]]></category>

		<category><![CDATA[prototype.js]]></category>

		<guid isPermaLink="false">http://blog.fbxphpindonesia.com/?p=211</guid>
		<description><![CDATA[Pada tulisan sebelumnya kita membuat form input dengan combo box yang dinamis, untuk lebih memudahkan pembuatan combo box dinamis seperti itu kita dapat menggunakan plugin DynamiCombo. Plugin ini memerlukan library prototype.js sebagai base-nya.
Pertama-tama download dahulu source code DynamiCombo, kemudian pindahkan file tersebut ke direktori assets/js/. Buka kembali fuse dsp_form pada circuit data, hapus kode berikut [...]]]></description>
			<content:encoded><![CDATA[<p>Pada tulisan <a href="http://blog.fbxphpindonesia.com/?p=193" target="_blank">sebelumnya</a> kita membuat form input dengan combo box yang dinamis, untuk lebih memudahkan pembuatan combo box dinamis seperti itu kita dapat menggunakan plugin DynamiCombo. Plugin ini memerlukan library prototype.js sebagai base-nya.</p>
<p><span id="more-211"></span>Pertama-tama download dahulu source code <a href="http://fbxphpindonesia.com/projects/DynamiCombo/dynamicombo.js" target="_blank">DynamiCombo</a>, kemudian pindahkan file tersebut ke direktori assets/js/. Buka kembali fuse dsp_form pada circuit data, hapus kode berikut :</p>
<pre name="code" class="html">
&lt;script src=&quot;assets/js/my_common.js&quot;&gt;&lt;/script&gt;
&lt;script&gt;
var post_province_id  = &quot;&lt;?php echo $data[&quot;province_id&quot;] ?&gt;&quot;;
var post_kabupaten_id = &quot;&lt;?php echo $data[&quot;kabupaten_id&quot;] ?&gt;&quot;;
var post_kecamatan_id = &quot;&lt;?php echo $data[&quot;kecamatan_id&quot;] ?&gt;&quot;;
var post_kelurahan_id = &quot;&lt;?php echo $data[&quot;kelurahan_id&quot;] ?&gt;&quot;;
&lt;/script&gt;
&lt;script src=&quot;assets/js/bps.js&quot;&gt;&lt;/script&gt;
</pre>
<p>kemudian ubah dengan kode berikut:</p>
<pre name="code" class="html">
&lt;script src=&quot;assets/js/dynamicombo.js&quot;&gt;&lt;/script&gt;
&lt;script&gt;
document.observe(&quot;dom:loaded&quot;,function(){
    new DynamiCombo(&quot;province_id&quot;, {
        &quot;elements&quot;:{
            &quot;kabupaten_id&quot;:{
                url:myself+&quot;bps.getKab&amp;ajax=1&quot;,
                value:&#039;id&#039;,label:&#039;name&#039;,
                init:&quot;&lt;?php echo $data[&quot;kabupaten_id&quot;] ?&gt;&quot;
            },
            &quot;kecamatan_id&quot;:{
                url:myself+&quot;bps.getKec&amp;ajax=1&quot;,
                value:&quot;id&quot;,label:&quot;name&quot;,
                init:&quot;&lt;?php echo $data[&quot;kecamatan_id&quot;] ?&gt;&quot;
            },
            &quot;kelurahan_id&quot;:{
                url:myself+&quot;bps.getKel&amp;ajax=1&quot;,
                value:&quot;id&quot;,label:&quot;name&quot;,
                init:&quot;&lt;?php echo $data[&quot;kelurahan_id&quot;] ?&gt;&quot;
            }
        },
        &quot;loadingImage&quot;:&quot;assets/images/loader1.gif&quot;,
        &quot;loadingText&quot;:&quot;Loading...&quot;
    });
});
&lt;/script&gt;
</pre>
<p>Sintaks dasar dari DynamiCombo adalah :</p>
<pre name="code" class="html">
new DynamiCombo ( root_id , options );
</pre>
<p>dimana root_id adalah id dari elemen induk, properti-properti options yaitu:</p>
<ul>
<li>elements, adalah elemen-elemen anak yang akan dihubungkan dengan elemen induk<br />
elements memiliki properti-properti:</p>
<ol>
<li>url, yaitu URL untuk Ajax Request</li>
<li>value, yaitu field yang akan dijadikan atribut value pada tag option (&lt;option value=&#8221;field_dari_server&#8221;&gt;)</li>
<li>label,  yaitu field yang akan dijadikan label pada tag option (&lt;option  value=&#8221;field_dari_server&#8221;&gt;field_dari_server&lt;/option&gt;)</li>
<li>init, yaitu nilai awal dari option (&lt;option value=&#8221;nilai_awal&#8221;&gt;)</li>
</ol>
</li>
<li>loadingImage, adalah path lokasi file gambar untuk pemrosesan</li>
<li>loadingText, adalah teks yang ditampilkan ketika request ke server</li>
</ul>
<p>Halaman pemrosesan harus mengembalikan data dengan format JSON sebagai berikut:</p>
<pre name="code" class="html">
[
{&#039;field11&#039;:&#039;value-11&#039;,&#039;field12&#039;:&#039;value-12&#039;,&#039;field13&#039;:&#039;value-13&#039;,...},
{&#039;field21&#039;:&#039;value-21&#039;,&#039;field22&#039;:&#039;value-22&#039;,&#039;field23&#039;:&#039;value-23&#039;,...},
...
]
</pre>
<p>Untuk hasilnya silahkan lihat halaman <strong><a href="http://demo.fbxphpindonesia.com/index.php?go=data2.add" target="_blank">Demo</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fbxphpindonesia.com/2010/09/27/menggunakan-dynamicombo-untuk-membuat-combo-box-dinamis/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Aplikasi Database dengan Form Ajax</title>
		<link>http://blog.fbxphpindonesia.com/2010/09/26/aplikasi-database-dengan-form-ajax/</link>
		<comments>http://blog.fbxphpindonesia.com/2010/09/26/aplikasi-database-dengan-form-ajax/#comments</comments>
		<pubDate>Sun, 26 Sep 2010 09:29:06 +0000</pubDate>
		<dc:creator>Yerie Piscesa</dc:creator>
		
		<category><![CDATA[Go-Fusebox]]></category>

		<category><![CDATA[Langkah-langkah]]></category>

		<category><![CDATA[Object Oriented Programming]]></category>

		<category><![CDATA[ajax]]></category>

		<category><![CDATA[combo box]]></category>

		<category><![CDATA[database]]></category>

		<category><![CDATA[form]]></category>

		<guid isPermaLink="false">http://blog.fbxphpindonesia.com/?p=193</guid>
		<description><![CDATA[Pada tulisan ini, saya akan memberikan contoh aplikasi database sederhana dengan menggunakan template Go-Fusebox. Ditambah penggunaan metode Ajax ketika proses tambah/ubah data. Sebelum kita lanjutkan ke pembahasan, ada baiknya Anda melihat demo dari contoh ini disini
Anggap kita mempunyai database yang mempunyai tabel-tabel: data_anggota, provinces, kabupaten,kecamatan dan kelurahan. Tabel data_anggota mempunyai field untuk menghubungkan ke tabel [...]]]></description>
			<content:encoded><![CDATA[<p>Pada tulisan ini, saya akan memberikan contoh aplikasi database sederhana dengan menggunakan template Go-Fusebox. Ditambah penggunaan metode Ajax ketika proses tambah/ubah data. Sebelum kita lanjutkan ke pembahasan, ada baiknya Anda melihat demo dari contoh ini <strong><a href="http://demo.fbxphpindonesia.com/index.php?go=data.list" target="_blank">disini</a></strong></p>
<p><span id="more-193"></span>Anggap kita mempunyai database yang mempunyai tabel-tabel: data_anggota, provinces, kabupaten,kecamatan dan kelurahan. Tabel data_anggota mempunyai field untuk menghubungkan ke tabel provinces,kabupaten,kecamatan dan kelurahan.</p>
<p>Sebelum memulainya, atur konfigurasi database Anda pada apps/common/config/db.php dengan benar.  Setelah itu buatlah definisi circuit dan class yang dibutuhkan pada fusebox.xml.php:</p>
<p>pada tag &lt;circuits&gt;</p>
<pre name="code" class="xml">
&lt;circuit alias=&quot;bps&quot; path=&quot;circuits/bps/&quot; /&gt;
&lt;circuit alias=&quot;data&quot; path=&quot;circuits/data/&quot; /&gt;
</pre>
<p>pada tag &lt;classes&gt;</p>
<pre name="code" class="xml">
&lt;class alias=&quot;Anggota&quot; classpath=&quot;classes/anggota.php&quot;/&gt;
&lt;class alias=&quot;BPS&quot; classpath=&quot;classes/bps.php&quot;/&gt;
</pre>
<p>Circuit bps adalah circuit untuk mengambil data-data propinsi,kabupaten,kecamatan dan kelurahan yang dapat dipilih ketika input data anggota pada circuit data.</p>
<p>Selanjutnya adalah membuat file class (Anggota dan BPS)</p>
<p>@filename: anggota.php</p>
<pre name="code" class="php">
&lt;?php
class Anggota {
    private $db;
    function __construct(&amp;$ADOdb) {
        $this-&gt;db = $ADOdb;
    }

    public function listAll(){
        $sql = &quot;select a.id,a.nama,a.alamat,&quot; .
        &quot;a.province_id,b.name as propinsi,&quot; .
        &quot;a.kabupaten_id,c.name as kabupaten,&quot; .
        &quot;a.kecamatan_id,d.name as kecamatan, &quot; .
        &quot;a.kelurahan_id,e.name as kelurahan &quot; .
        &quot;from data_anggota a &quot; .
        &quot;left join provinces b on a.province_id=b.id &quot; .
        &quot;left join kabupaten c on a.kabupaten_id=c.id &quot; .
        &quot;left join kecamatan d on a.kecamatan_id=d.id &quot; .
        &quot;left join kabupaten e on a.kabupaten_id=e.id&quot;;

        $rs = $this-&gt;db-&gt;Execute($sql);
        if ($rs-&gt;EOF) {
            $ret = false;
            $rs-&gt;Close();
        } else {
            $ret = $rs;
        }
        return $ret;
    }

    public function byID($id=null){
        if (!is_null($id) &amp;&amp; $id != &quot;&quot;) {
        return $this-&gt;db-&gt;GetRow(&quot;select * from data_anggota where id=?&quot;,array($id));
        } else {
        return false;
        }
    }

    private function setInput($inputs) {
        $colunms = array(&quot;nama&quot;,&quot;alamat&quot;,&quot;province_id&quot;,&quot;kabupaten_id&quot;,&quot;kecamatan_id&quot;,&quot;kelurahan_id&quot;);
        $ret = array();
        foreach($colunms as $in) {
            if (is_null($inputs[$in])) {
                array_push($ret,null);
            } else {
                array_push($ret,$inputs[$in]);
            }
        }
        return $ret;
    }

    public function insert($postData){
        $sql = &quot;insert into data_anggota (nama,alamat,province_id,kabupaten_id,kecamatan_id,kelurahan_id) values (?,?,?,?,?,?)&quot;;
        $inputs = $this-&gt;setInput($postData);
        $ret = $this-&gt;db-&gt;Execute($sql,$inputs);

        $status = false; $insert_id = 0;
        if ($ret) {
            $status = true;
            $insert_id = $this-&gt;db-&gt;Insert_ID();
        }

        return array(
            &quot;status&quot;=&gt;$status,
            &quot;insert_id&quot;=&gt;$insert_id
        );
    }

    public function update($postData){
        $sql = &quot;update data_anggota set nama=?,alamat=?,province_id=?,kabupaten_id=?,kecamatan_id=?,kelurahan_id=? where id=?&quot;;
        $inputs = $this-&gt;setInput($postData);
        array_push($inputs,$postData[&quot;id&quot;]);
        $ret = $this-&gt;db-&gt;Execute($sql,$inputs);

        $status = false; $affected = 0;
        if ($ret) {
            $status = true;
            $affected = $this-&gt;db-&gt;Affected_Rows( );
        }

        return array(
            &quot;status&quot;=&gt;$status,
            &quot;affected&quot;=&gt;$affected
        );
    }

    public function delete($id) {
        $sql = &quot;delete from data_anggota where id=?&quot;;
        $ret = $this-&gt;db-&gt;Execute($sql,array($id));

        $status = false; $affected = 0;
        if ($ret) {
            $status = true;
            $affected = $this-&gt;db-&gt;Affected_Rows( );
        }

        return array(
            &quot;status&quot;=&gt;$status,
            &quot;affected&quot;=&gt;$affected
        );
    }
}
?&gt;
</pre>
<p>@filename: bps.php</p>
<pre name="code" class="php">
&lt;?php
class BPS {
    private $db;
    function __construct(&amp;$ADOdb) {
        $this-&gt;db = $ADOdb;
    }

    public function getKab($province_id){
        $data = $this-&gt;db-&gt;GetAll(
                &quot;select * from kabupaten where province_id=?&quot;,
                array($province_id)
                );
        return $data;
    }

    public function getKec($province_id,$kabupaten_id){
        $data = $this-&gt;db-&gt;GetAll(
                &quot;select * from kecamatan where province_id=? and kabupaten_id=?&quot;,
                array($province_id,$kabupaten_id)
                );
        return $data;
    }

    public function getKel($province_id,$kabupaten_id,$kecamatan_id){
        $data = $this-&gt;db-&gt;GetAll(
                &quot;select * from kelurahan where province_id=? and kabupaten_id=? and kecamatan_id=?&quot;,
                array($province_id,$kabupaten_id,$kecamatan_id)
                );
        return $data;
    }
}
?&gt;
</pre>
<p>Langkah selanjutnya adalah membuat alur program pada circuit.xml di setiap circuit(direktori), dalam hal ini bps dan data.</p>
<p>circuit.xml.php (bps):</p>
<pre name="code" class="xml">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;circuit access=&quot;public&quot; xmlns:php=&quot;php/&quot;&gt;
    &lt;prefuseaction&gt;
        &lt;if condition=&quot;$originalFuseaction == $myFusebox-&amp;gt;thisFuseaction&quot;&gt;
            &lt;true&gt;
                &lt;instantiate class=&quot;BPS&quot; object=&quot;bps&quot; arguments=&quot;$adodb&quot;/&gt;
                &lt;php:include file=&quot;apps/vendors/FastJSON.class.php&quot;/&gt;
            &lt;/true&gt;
        &lt;/if&gt;
    &lt;/prefuseaction&gt;

    &lt;fuseaction name=&quot;getKab&quot;&gt;
        &lt;invoke
         object=&quot;bps&quot;
         methodcall=&quot;getKab($_POST[&#039;province_id&#039;])&quot;
         returnvariable=&quot;data&quot; /&gt;
        &lt;do action=&quot;echo&quot;/&gt;
    &lt;/fuseaction&gt;

    &lt;fuseaction name=&quot;getKec&quot;&gt;
        &lt;invoke
         object=&quot;bps&quot;
         methodcall=&quot;getKec($_POST[&#039;province_id&#039;],$_POST[&#039;kabupaten_id&#039;])&quot;
         returnvariable=&quot;data&quot; /&gt;
        &lt;do action=&quot;echo&quot;/&gt;
    &lt;/fuseaction&gt;

    &lt;fuseaction name=&quot;getKel&quot;&gt;
        &lt;invoke
         object=&quot;bps&quot;
         methodcall=&quot;getKel($_POST[&#039;province_id&#039;],$_POST[&#039;kabupaten_id&#039;],$_POST[&#039;kecamatan_id&#039;])&quot;
         returnvariable=&quot;data&quot; /&gt;
        &lt;do action=&quot;echo&quot;/&gt;
    &lt;/fuseaction&gt;

    &lt;fuseaction name=&quot;echo&quot; access=&quot;private&quot;&gt;
        &lt;if condition=&quot;$_GET[&#039;ajax&#039;]==&#039;1&#039;&quot;&gt;
            &lt;true&gt;&lt;set value=&quot;echo FastJSON::encode(\$data);&quot; evaluate=&quot;true&quot;/&gt;&lt;/true&gt;
        &lt;/if&gt;
    &lt;/fuseaction&gt;
&lt;/circuit&gt;
</pre>
<p>circuit.xml.php (data):</p>
<pre name="code" class="xml">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;circuit access=&quot;public&quot; xmlns:php=&quot;php/&quot;&gt;

    &lt;prefuseaction&gt;
        &lt;if condition=&quot;$originalFuseaction == $myFusebox-&gt;thisFuseaction&quot;&gt;
            &lt;true&gt;&lt;instantiate class=&quot;Anggota&quot; object=&quot;anggota&quot; arguments=&quot;$adodb&quot;/&gt;&lt;/true&gt;
        &lt;/if&gt;
    &lt;/prefuseaction&gt;

    &lt;fuseaction name=&quot;list&quot;&gt;
        &lt;set name=&quot;fbx_pagetitle&quot; value=&quot;Data Anggota&quot; /&gt;
        &lt;xfa name=&quot;add&quot; value=&quot;add&quot;/&gt;
        &lt;xfa name=&quot;edit&quot; value=&quot;edit&quot;/&gt;
        &lt;xfa name=&quot;delete&quot; value=&quot;delete&quot;/&gt;
        &lt;include template=&quot;dsp_list&quot; contentvariable=&quot;fbx_maincontent&quot;/&gt;
    &lt;/fuseaction&gt;

    &lt;fuseaction name=&quot;form&quot; access=&quot;private&quot;&gt;
        &lt;xfa name=&quot;list&quot; value=&quot;list&quot;/&gt;
        &lt;xfa name=&quot;add&quot; value=&quot;add&quot;/&gt;
        &lt;include template=&quot;dsp_form&quot; /&gt;
    &lt;/fuseaction&gt;

    &lt;fuseaction name=&quot;add&quot;&gt;
        &lt;xfa name=&quot;action&quot; value=&quot;insert&quot;/&gt;
        &lt;set name=&quot;fbx_pagetitle&quot; value=&quot;Tambah Data Anggota&quot;/&gt;
        &lt;do action=&quot;form&quot; contentvariable=&quot;fbx_maincontent&quot;/&gt;
    &lt;/fuseaction&gt;

    &lt;fuseaction name=&quot;edit&quot;&gt;
        &lt;xfa name=&quot;action&quot; value=&quot;update&quot;/&gt;
        &lt;set name=&quot;fbx_pagetitle&quot; value=&quot;Ubah Data Anggota&quot;/&gt;
        &lt;do action=&quot;form&quot; contentvariable=&quot;fbx_maincontent&quot;/&gt;
    &lt;/fuseaction&gt;

    &lt;fuseaction name=&quot;insert&quot;&gt;
        &lt;invoke
         object=&quot;anggota&quot;
         methodcall=&quot;insert($_POST)&quot;
         returnvariable=&quot;ret&quot; /&gt;
        &lt;do action=&quot;echo&quot;/&gt;
    &lt;/fuseaction&gt;    

    &lt;fuseaction name=&quot;update&quot;&gt;
        &lt;invoke
         object=&quot;anggota&quot;
         methodcall=&quot;update($_POST)&quot;
         returnvariable=&quot;ret&quot; /&gt;
        &lt;do action=&quot;echo&quot;/&gt;
    &lt;/fuseaction&gt;    

    &lt;fuseaction name=&quot;delete&quot;&gt;
        &lt;invoke
         object=&quot;anggota&quot;
         methodcall=&quot;delete($_POST[&#039;id&#039;])&quot;
         returnvariable=&quot;ret&quot; /&gt;
        &lt;do action=&quot;echo&quot;/&gt;
    &lt;/fuseaction&gt;    

    &lt;fuseaction name=&quot;echo&quot; access=&quot;private&quot;&gt;
        &lt;if condition=&quot;$_GET[&#039;ajax&#039;] == &#039;1&#039;&quot;&gt;
            &lt;true&gt;
                &lt;php:include file=&quot;apps/vendors/FastJSON.class.php&quot;/&gt;
                &lt;set value=&quot;echo FastJSON::encode(\$ret);&quot; evaluate=&quot;true&quot;/&gt;
            &lt;/true&gt;
        &lt;/if&gt;
    &lt;/fuseaction&gt;
&lt;/circuit&gt;
</pre>
<p>Yang perlu diperhatikan pada kedua circuit.xml diatas adalah fuseaction &#8220;echo&#8221;,  fungsi dari fuseaction itu adalah mengubah nilai kembali suatu proses kedalam format JSON jika ada parameter querystring yang menandakan sebuah request Ajax ($_GET['ajax] == &#8216;1&#8242;). File FastJSON.class.php adalah class dari pihak ketiga, yang dapat di download dari : <strong><a href="http://www.phpclasses.org/package/3512-PHP-Encode-and-decode-PHP-values-in-JSON-format.html" target="_blank">PHP Classes </a></strong></p>
<p>Langkah selanjutnya adalah membuat file-file fuse yang dibutuhkan, dapat kita lihat ada dua fuse yang dibutuhkan pada circuit data yaitu dsp_list dan dsp_form.  Kita lewati fuse dsp_list karena tidak ada yang istimewa, hanya file untuk menampilkan data yang disimpan (source dapat di download pada akhir artikel ini). Kita beralih ke fuse dsp_form. Buat kode dasarnya:</p>
<pre name="code" class="php">
&lt;?php
$data = $anggota-&gt;byID($attributes[&quot;id&quot;]);
$dataProp = $adodb-&gt;GetAll(&quot;select * from provinces&quot;);
?&gt;

&lt;h2&gt;&lt;?php echo $fbx_pagetitle; ?&gt;&lt;/h2&gt;
&lt;form id=&quot;myForm&quot; action=&quot;&lt;?php echo $myself.$XFA[&quot;action&quot;]; ?&gt;&quot; method=&quot;post&quot;&gt;
  &lt;?php if ($data) : ?&gt;
  &lt;input type=&quot;hidden&quot; name=&quot;id&quot; value=&quot;&lt;?php echo $data[&quot;id&quot;] ?&gt;&quot;/&gt;
  &lt;?php endif; ?&gt;
  &lt;table&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Nama&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;nama&quot; id=&quot;nama&quot; value=&quot;&lt;?php echo $data[&quot;nama&quot;] ?&gt;&quot; size=&quot;50&quot;/&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Alamat&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;alamat&quot; id=&quot;alamat&quot; value=&quot;&lt;?php echo $data[&quot;alamat&quot;] ?&gt;&quot; size=&quot;70&quot;/&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Propinsi&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;?php
        echo &#039;&lt;select name=&quot;province_id&quot; id=&quot;province_id&quot;&gt;&#039;;
        echo &#039;&lt;option value=&quot;&quot;&gt;-- Pilih Propinsi --&lt;/option&gt;&#039;;
        foreach($dataProp as $prop) {
        if ($data[&quot;province_id&quot;] == $prop[&quot;id&quot;]) $sel = &#039; selected=&quot;selected&quot;&#039;;
        echo &#039;&lt;option value=&quot;&#039;.$prop[&quot;id&quot;].&#039;&quot;&#039;.$sel.&#039;&gt;&#039;.$prop[&quot;name&quot;].&#039;&lt;/option&gt;&#039;;
        }
        echo &#039;&lt;/select&gt;&#039;;
        ?&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Kabupaten/Kota&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;select name=&quot;kabupaten_id&quot; id=&quot;kabupaten_id&quot;&gt;
          &lt;option value=&quot;&quot;&gt;-- Pilih Kab/Kota --&lt;/option&gt;
        &lt;/select&gt;
        &lt;span id=&quot;kabupaten_loader&quot;&gt;&lt;/span&gt; &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Kecamatan&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;select name=&quot;kecamatan_id&quot; id=&quot;kecamatan_id&quot;&gt;
          &lt;option value=&quot;&quot;&gt;-- Pilih Kecamatan --&lt;/option&gt;
        &lt;/select&gt;
        &lt;span id=&quot;kecamatan_loader&quot;&gt;&lt;/span&gt; &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Kelurahan&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;select name=&quot;kelurahan_id&quot; id=&quot;kelurahan_id&quot;&gt;
          &lt;option value=&quot;&quot;&gt;-- Pilih Kelurahan --&lt;/option&gt;
        &lt;/select&gt;
        &lt;span id=&quot;kelurahan_loader&quot;&gt;&lt;/span&gt; &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&amp;nbsp;&lt;/td&gt;
      &lt;td&gt;&lt;button type=&quot;button&quot; id=&quot;btnSave&quot;&gt;Simpan&lt;/button&gt;
        &lt;button type=&quot;reset&quot;&gt;Reset&lt;/button&gt;
        &lt;span id=&quot;save_loader&quot;&gt;&lt;/span&gt; | &lt;a href=&quot;&lt;?php echo $myself.$XFA[&quot;list&quot;] ?&gt;&quot;&gt;List Anggota&lt;/a&gt; | &lt;a href=&quot;&lt;?php echo $myself.$XFA[&quot;add&quot;] ?&gt;&quot;&gt;Data Baru&lt;/a&gt; &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
&lt;/form&gt;
</pre>
<p>Kita akan membuat input bertingkat untuk memudahkan seleksi propinsi,kabupaten,kecamatan dan kelurahan. Combo box propinsi dibuat sebagaimana mestinya, sedangkan sisanya hanya berupa combo box yang kosong. Untuk membuat seleksi bertingkat kita menggunakan metode Ajax dengan bantuan script dari <a href="http://prototypejs.org" target="_blank">prototype.js</a> . Ada dua file .js yang diperlukan, saya beri nama keduanya <a href="http://demo.fbxphpindonesia.com/assets/js/my_common.js" target="_blank">my_common.js</a> dan <a href="http://demo.fbxphpindonesia.com/assets/js/bps.js" target="_blank">bps.js</a>, file-file .js (termasuk prototype.js) saya letakkan pada direktori assets/js/</p>
<p>Jangan lupa menambahkan kode untuk me-link file prototype.js, my_common.js dan bps.js pada dsp_form:</p>
<pre name="code" class="html">
&lt;script src=&quot;assets/js/prototype.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;assets/js/my_common.js&quot;&gt;&lt;/script&gt;
&lt;script&gt;
var post_province_id  = &quot;&lt;?php echo $data[&quot;province_id&quot;] ?&gt;&quot;;
var post_kabupaten_id = &quot;&lt;?php echo $data[&quot;kabupaten_id&quot;] ?&gt;&quot;;
var post_kecamatan_id = &quot;&lt;?php echo $data[&quot;kecamatan_id&quot;] ?&gt;&quot;;
var post_kelurahan_id = &quot;&lt;?php echo $data[&quot;kelurahan_id&quot;] ?&gt;&quot;;
&lt;/script&gt;
&lt;script src=&quot;assets/js/bps.js&quot;&gt;&lt;/script&gt;
</pre>
<p>Langkah terakhir adalah mengaktifkan tombol Simpan agar mengirim request Ajax ke server untuk pemrosesan data (insert/update). Kita buat file .js dengan nama <a href="http://demo.fbxphpindonesia.com/apps/index/circuits/data/update.js" target="_blank">update.js</a> dan kita letakkan pada circuit aktif (apps/index/circuits/data/). Jangan lupa untuk menambahkan link ke file tersebut pada dsp_form:</p>
<pre name="code" class="html">
&lt;script src=&quot;&lt;?php echo $originalCircuitPath.&quot;update.js&quot;; ?&gt;&quot;&gt;&lt;/script&gt;
</pre>
<p>Happy Fuseboxing <img src='http://blog.fbxphpindonesia.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Source Code : <a href="http://blog.fbxphpindonesia.com/wp-content/uploads/2010/09/gofusebox-demo-ajax.zip">gofusebox-demo-ajax</a></p>
<p>Keterangan: Source code berisi dump sql database, direktori apps dan assets untuk dipasang(di-replace) pada template go-fusebox.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fbxphpindonesia.com/2010/09/26/aplikasi-database-dengan-form-ajax/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mengubah Layout pada Go-Fusebox</title>
		<link>http://blog.fbxphpindonesia.com/2010/09/25/mengubah-layout-pada-go-fusebox/</link>
		<comments>http://blog.fbxphpindonesia.com/2010/09/25/mengubah-layout-pada-go-fusebox/#comments</comments>
		<pubDate>Sat, 25 Sep 2010 16:49:05 +0000</pubDate>
		<dc:creator>Yerie Piscesa</dc:creator>
		
		<category><![CDATA[Go-Fusebox]]></category>

		<category><![CDATA[Langkah-langkah]]></category>

		<guid isPermaLink="false">http://blog.fbxphpindonesia.com/?p=178</guid>
		<description><![CDATA[Setelah mengetahui dasar penggunaan template Go-Fusebox, pembahasan kali ini adalah mengubah layout website kita agar terlihat lebih manis. Pastikan Anda mempunyai template layout terlebih dahulu. Jika belum punya pada contoh ini saya menggunakan template gratis dari web http://www.freecsstemplates.org/preview/memoranda/
Setelah mendownload template layout, ekstrak dan kemudian pindahkan ke direktori : apps/common/layout/ (pastikan file-file yang diekstrak tetap pada [...]]]></description>
			<content:encoded><![CDATA[<p>Setelah mengetahui dasar penggunaan template Go-Fusebox, pembahasan kali ini adalah mengubah layout website kita agar terlihat lebih manis. Pastikan Anda mempunyai template layout terlebih dahulu. Jika belum punya pada contoh ini saya menggunakan template gratis dari web <a href="http://www.freecsstemplates.org/preview/memoranda/">http://www.freecsstemplates.org/preview/memoranda/</a></p>
<p><span id="more-178"></span>Setelah mendownload template layout, ekstrak dan kemudian pindahkan ke direktori : apps/common/layout/ (pastikan file-file yang diekstrak tetap pada folder memoranda), pindahkan gambar-gambar dari folder images ke assets/images/ dan file style.css ke assets/css/, ubah file style.css agar gambar di-link dengan benar, kemudian buat file baru pada folder memoranda/ tersebut, misal lay_default.php. Kode dari file lay_default.php :</p>
<pre name="code" class="html">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;
&lt;!--
Design by Free CSS Templates
http://www.freecsstemplates.org
Released for free under a Creative Commons Attribution 2.5 License

Name       : Memoranda
Description: A two-column, fixed-width design with dark color scheme.
Version    : 1.0
Released   : 20100801

--&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta name=&quot;keywords&quot; content=&quot;&quot; /&gt;
&lt;meta name=&quot;description&quot; content=&quot;&quot; /&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;&lt;?php echo $fbx_pagetitle; ?&gt;&lt;/title&gt;
&lt;link href=&quot;assets/css/style.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; media=&quot;screen&quot; /&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id=&quot;wrapper&quot;&gt;
&lt;div id=&quot;page&quot;&gt;
&lt;div id=&quot;page-bgtop&quot;&gt;
&lt;div id=&quot;page-bgbtm&quot;&gt;
&lt;div id=&quot;content&quot;&gt;
&lt;?php echo $fbx_maincontent; ?&gt;
&lt;div style=&quot;clear: both;&quot;&gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;!-- end #content --&gt;
&lt;div id=&quot;sidebar&quot;&gt;
&lt;div id=&quot;logo&quot;&gt;
&lt;h1&gt;&lt;a href=&quot;#&quot;&gt;Memoranda &lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;by &lt;a href=&quot;http://www.freecsstemplates.org/&quot;&gt;Free CSS Templates&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&quot;menu&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;current_page_item&quot;&gt;&lt;a href=&quot;#&quot;&gt;Home&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Photos&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;About&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Links&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Contact&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div id=&quot;search&quot; &gt;
&lt;form method=&quot;get&quot; action=&quot;#&quot;&gt;
&lt;div&gt;
&lt;input type=&quot;text&quot; name=&quot;s&quot; id=&quot;search-text&quot; value=&quot;&quot; /&gt;
&lt;input type=&quot;submit&quot; id=&quot;search-submit&quot; value=&quot;GO&quot; /&gt;
&lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;div style=&quot;clear: both;&quot;&gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h2&gt;Aliquam tempus&lt;/h2&gt;
&lt;p&gt;Mauris vitae nisl nec metus placerat perdiet est. Phasellus dapibus semper consectetuer hendrerit.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h2&gt;Categories&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Aliquam libero&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Consectetuer adipiscing elit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Metus aliquam pellentesque&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Suspendisse iaculis mauris&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Urnanet non molestie semper&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Proin gravida orci porttitor&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h2&gt;Blogroll&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Aliquam libero&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Consectetuer adipiscing elit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Metus aliquam pellentesque&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Suspendisse iaculis mauris&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Urnanet non molestie semper&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Proin gravida orci porttitor&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h2&gt;Archives&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Aliquam libero&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Consectetuer adipiscing elit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Metus aliquam pellentesque&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Suspendisse iaculis mauris&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Urnanet non molestie semper&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Proin gravida orci porttitor&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;!-- end #sidebar --&gt;
&lt;div style=&quot;clear: both;&quot;&gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- end #page --&gt;
&lt;/div&gt;
&lt;div id=&quot;footer&quot;&gt;
&lt;p&gt;Copyright (c) 2008 Sitename.com. All rights reserved. Design by &lt;a href=&quot;http://www.freecsstemplates.org/&quot;&gt;Free CSS Templates&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;!-- end #footer --&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Pastikan Anda menempatkan variabel $fbx_pagetitle dan $fbx_maincontent dengan benar. Langkah selanjutnya adalah mengubah circuit.xml.php pada folder layout, menjadi:</p>
<pre name="code" class="xml">
....
&lt;if condition=&quot;$layout==&#039;default&#039;&quot;&gt;
&lt;true&gt;&lt;include template=&quot;memoranda/lay_default&quot;/&gt;&lt;/true&gt;
&lt;/if&gt;
....
</pre>
<p>Sampai disini Anda telah mengubah layout utama dari Go-Fusebox.</p>
<p>Happy Fuseboxing</p>
<p>Source untuk demo :  <a href="http://blog.fbxphpindonesia.com/wp-content/uploads/2010/09/gofusebox-layout-demo.zip">gofusebox-layout-demo</a></p>
<p>(jangan lupa ubah konfigurasi database di apps/common/config/db.php)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fbxphpindonesia.com/2010/09/25/mengubah-layout-pada-go-fusebox/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Penggunaan Dasar Template Go-Fusebox</title>
		<link>http://blog.fbxphpindonesia.com/2010/09/25/penggunaan-dasar-template-go-fusebox/</link>
		<comments>http://blog.fbxphpindonesia.com/2010/09/25/penggunaan-dasar-template-go-fusebox/#comments</comments>
		<pubDate>Sat, 25 Sep 2010 15:57:02 +0000</pubDate>
		<dc:creator>Yerie Piscesa</dc:creator>
		
		<category><![CDATA[Go-Fusebox]]></category>

		<guid isPermaLink="false">http://blog.fbxphpindonesia.com/?p=166</guid>
		<description><![CDATA[Dalam menggunakan template Go-Fusebox, hal pertama yang perlu diperhatikan adalah versi PHP yang terpasang pada komputer/server Anda harus PHP 5.0 atau yang lebih baru. Silahkan download sourcenya disini (jika belum ada), dan kita siap menggunakannya  
Setelah Anda mendownloadnya serta meng-ekstrak-nya, Anda akan mendapatkan folder-folder (dan file) sebagai berikut:
apps/
assets/
framework/
index.php
Folder apps adalah folder tempat aplikasi-aplikasi fusebox [...]]]></description>
			<content:encoded><![CDATA[<p>Dalam menggunakan template Go-Fusebox, hal pertama yang perlu diperhatikan adalah versi PHP yang terpasang pada komputer/server Anda harus PHP 5.0 atau yang lebih baru. Silahkan download sourcenya <a href="http://fbxphpindonesia.com/projects/GoFusebox/GoFusebox.zip">disini</a> (jika belum ada), dan kita siap menggunakannya <img src='http://blog.fbxphpindonesia.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> <span id="more-166"></span></p>
<p>Setelah Anda mendownloadnya serta meng-ekstrak-nya, Anda akan mendapatkan folder-folder (dan file) sebagai berikut:</p>
<p>apps/<br />
assets/<br />
framework/<br />
index.php</p>
<p>Folder apps adalah folder tempat aplikasi-aplikasi fusebox Anda, sedangkan folder framework berisi core dari Fusebox dan ADOdb serta library-library pendukung lain (library lain akan menyusul, berupa helper untuk Model, Form dan Validation).</p>
<p>Hal pertama yang perlu dilakukan adalah setting konfigurasi database pada file db.php pada direktori apps/common/config/, silahkan Anda atur variabel $db_name,  $db_user dan $db_password sesuai dengan database Anda.</p>
<pre name="code" class="php">
&lt;?php
$db_driver = &quot;mysql&quot;;
$db_host = &quot;localhost&quot;;
$db_name = &quot;test&quot;;
$db_user = &quot;root&quot;;
$db_password = &quot;my-secret-db-password&quot;;
?&gt;
</pre>
<p>Kemudian silahkan buka file fusebox.xml.php pada direktori apps/index/. Ada tiga buah circuit yang sudah didefinisikan, yaitu: db, global dan layout. Tag parameter yang dapat diubah yaitu: defaultFuseaction, mode dan password, parameter lain bisa saja Anda ubah tetapi tidak disarankan.</p>
<p>Pada titik ini jika Anda jalankan pada browser (melalui http://localhost/GoFusebox/) maka akan muncul tampilan awal yaitu Hello World.</p>
<p>Untuk membuat circuit baru silahkan tambahkan pada file fusebox.xml.php, misal kita akan menambahkan circuit home. Langkah-langkahnya adalah:</p>
<ol>
<li>Buat folder baru dengan nama home pada  apps/index/circuits/</li>
<li>Dalam folder home buat file circuit.xml.php</li>
<li>Tambahkan definisi circuit home pada fusebox.xml.php<br />
Tag &lt;circuits&gt; pada file fusebox.xml.php menjadi:</p>
<pre name="code" class="xml">
&lt;circuits&gt;
&lt;circuit alias=&quot;global&quot; path=&quot;/apps/common/circuits/global/&quot; relative=&quot;false&quot; /&gt;
&lt;circuit alias=&quot;db&quot; path=&quot;/apps/common/circuits/db/&quot; relative=&quot;false&quot; /&gt;
&lt;circuit alias=&quot;layout&quot; path=&quot;/apps/common/circuits/layout/&quot; relative=&quot;false&quot; /&gt;

&lt;circuit alias=&quot;home&quot; path=&quot;circuits/home/&quot; /&gt;
&lt;/circuits&gt;
</pre>
</li>
<li>Tambahkan fuseaction pada circuit.xml, misal :
<pre name="code" class="xml">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;circuit access=&quot;public&quot;&gt;
&lt;fuseaction name=&quot;test&quot;&gt;
&lt;set name=&quot;fbx_pagetitle&quot; value=&quot;Tes Halaman Baru&quot;/&gt;
&lt;include template=&quot;dsp_test&quot; contentvariable=&quot;fbx_maincontent&quot;/&gt;
&lt;/fuseaction&gt;
&lt;/circuit&gt;
</pre>
</li>
<li>Tambahkan fuse (file) yang diperlukan (dsp_test.php) :
<pre name="code" class="php">
&lt;strong&gt;Halaman tes yang baru&lt;/strong&gt;
&lt;hr/&gt;
Tes database : &lt;br/&gt;
&lt;?php
$recset = $adodb-&gt;GetAll(&quot;select * from users&quot;);  // asumsi ada tabel users dalam database
var_dump($recset);
?&gt;
</pre>
</li>
<li>Jalankan pada browser dengan url http://localhost/GoFusebox/index.php?go=home.test</li>
</ol>
<p>Hal yang perlu diperhatikan adalah variabel $fbx_pagetitle (muncul pada title bar) dan $fbx_maincontent (muncul pada body halaman), kedua variabel tersebut didefinisikan pada file lay_default, lay_frame dan lay_blank pada circuit layout (apps/common/circuits/layout/). Anda dapat merubah layout dari aplikasi melalui circuit tersebut, atau menggantinya pada tempat lain.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fbxphpindonesia.com/2010/09/25/penggunaan-dasar-template-go-fusebox/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Multiple Application pada Fusebox 5</title>
		<link>http://blog.fbxphpindonesia.com/2009/08/02/multiple-application-pada-fusebox-5/</link>
		<comments>http://blog.fbxphpindonesia.com/2009/08/02/multiple-application-pada-fusebox-5/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 05:14:30 +0000</pubDate>
		<dc:creator>Yerie Piscesa</dc:creator>
		
		<category><![CDATA[Fusebox Umum]]></category>

		<category><![CDATA[Tips Pengembangan]]></category>

		<guid isPermaLink="false">http://blog.fbxphpindonesia.com/?p=142</guid>
		<description><![CDATA[Fusebox 5 mempunyai fasilitas untuk membuat beberapa aplikasi fusebox dalam satu aplikasi php. Apa yang menjadikan ini menarik? karena dengan fasilitas ini kita dapat memecah aplikasi yang kompleks menjadi satuan-satuan yang lebih kecil sehingga lebih mudah dikelola.

Anggaplah Anda membuat suatu aplikasi rumah sakit, dalam sistem rumah sakit mungkin terdapat beberapa sub aplikasi seperti registrasi, rekam [...]]]></description>
			<content:encoded><![CDATA[<p>Fusebox 5 mempunyai fasilitas untuk membuat beberapa aplikasi fusebox dalam satu aplikasi php. Apa yang menjadikan ini menarik? karena dengan fasilitas ini kita dapat memecah aplikasi yang kompleks menjadi satuan-satuan yang lebih kecil sehingga lebih mudah dikelola.<br />
<span id="more-142"></span><br />
Anggaplah Anda membuat suatu aplikasi rumah sakit, dalam sistem rumah sakit mungkin terdapat beberapa sub aplikasi seperti registrasi, rekam medis, apotik, laboratorium dan lain-lain. Dengan menggunakan fasilitas multiple application kita dapat membuat kanal(channel) sendiri untuk setiap sub aplikasi tersebut.</p>
<p>Untuk membuat lebih mudah dimengerti, intinya adalah kita membuat beberapa aplikasi fusebox pada satu aplikasi php. Jadi dalam satu virtual directory terdapat beberapa aplikasi fusebox.</p>
<p>Setiap membuat aplikasi fusebox, saya selalu menentukan struktur direktori terlebih dahulu. Misal dalam aplikasi rumah sakit kita menentukan struktur direktori sebagai berikut:</p>
<pre style="overflow-x:auto">
hospital/
-------/index.php
-------/registrasi.php
-------/rm.php
-------/apotik.php
-------/kasir.php
-------/modules/
---------------/index/
---------------------/circuits/
---------------------/parsed/
---------------------/fusebox.xml.php
---------------/registrasi/
------------------------/circuits/
------------------------/parsed/
------------------------/fusebox.xml.php
---------------/rm/
------------------/circuits/
------------------/parsed/
------------------/fusebox.xml.php
---------------/apotik/
---------------------/circuits/
---------------------/parsed/
---------------------/fusebox.xml.php
---------------/kasir/
--------------------/circuits/
--------------------/parsed/
--------------------/fusebox.xml.php
-------/apps/
------------/fusebox.core/
-------------------------/*.* (berisi file-file core fusebox)
------------/common/
--------------------/circuits/
----------------------------/* (berisi circuit-circuit umum, atau circuit bersama yang dapat diakses setiap kanal)
</pre>
<p>Dari contoh struktur direktori diatas, anggaplah root dari aplikasi diakses melalui http://localhost/hospital. Kemudian bisa kita lihat beberapa kanal dari aplikasi rumah sakit tersebut, dan detail aplikasinya ada pada direktori modules/. </p>
<p>Perhatikan bahwa dalam satu aplikasi php diatas, terdapat beberapa file fusebox.xml, inilah yang disebut dengan multiple application. Apa keuntungannya? tentu saja aplikasi menjadi lebih mudah dikelola, selain itu hasil file parsed pun bisa lebih kecil karena dibagi-bagi per sub aplikasi.</p>
<p>Dengan demikian kita perlu melakukan pemetaan agar aplikasi yang diakses menunjuk ke modul yang bersesuaian. Anggap index adalah kanal untuk aplikasi master data (dokter, poli, ruangan, dan lain-lain), jadi file index.php bisa berisi:</p>
<pre name="code" class="php">

$FUSEBOX_APPLICATION_NAME = &quot;Hospital&quot;;
$FUSEBOX_APPLICATION_PATH = &quot;modules/index/&quot;;
$FUSEBOX_APPLICATION_KEY = &quot;index&quot;;
@include($FUSEBOX_APPLICATION_PATH.&quot;parsed/app_&quot;.$FUSEBOX_APPLICATION_NAME.&quot;.php&quot;);
include(&quot;apps/fusebox.core/fusebox5.php&quot;);
</pre>
<p>Sehingga path aplikasi mengarah ke modules/index/ sedangkan key ($FUSEBOX_APPLICATION_KEY) kita beri nama &#8220;index&#8221;. Karena key bebeda-beda, maka untuk mengakses $self/$myself harus dapat dinamis. Untuk membuat $self/$myself dinamis kita perlu membuat kode sebagai berikut:</p>
<pre name="code" class="php">

$self = $_fba-&gt;appKey.&quot;.php&quot;;
$myself = $self.&quot;?&quot;.$_fba-&gt;fuseactionVariable.&quot;=&quot;;
</pre>
<p>$_fba adalah objek bawaan fusebox, appKey adalah properti key yang sedang aktif, dalam hal ini $_fba->appKey akan berisi &#8220;index&#8221;. Sehingga variabel $self berisi &#8220;index.php&#8221;, dan $myself berisi &#8220;index.php?fuseaction=&#8221;.</p>
<p>Untuk membuat kanal yang lain pun sama, kita hanya perlu mengubah application path dan application key saja, dan untuk mengaksesnya sesuaikan dengan nama filenya, misal http://localhost/hospital/registrasi.php untuk kanal registrasi.</p>
<p>Kode untuk variabel $self dan $myself sebaiknya berada pada circuit bersama, misal kita membuat circuit global dan setting $self dan $myself berada pada fuseaction settings, sehingga setiap fusebox.xml dalam suatu kanal dapat mengakses fuseaction global.settings pada &lt;preprocess&gt; nya.</p>
<p>Happy fuseboxing <img src='http://blog.fbxphpindonesia.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fbxphpindonesia.com/2009/08/02/multiple-application-pada-fusebox-5/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tag set pada circuit.xml</title>
		<link>http://blog.fbxphpindonesia.com/2009/08/01/tag-set-pada-circuitxml/</link>
		<comments>http://blog.fbxphpindonesia.com/2009/08/01/tag-set-pada-circuitxml/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 05:05:39 +0000</pubDate>
		<dc:creator>Yerie Piscesa</dc:creator>
		
		<category><![CDATA[Circuit XML]]></category>

		<category><![CDATA[circuit]]></category>

		<category><![CDATA[evaluate]]></category>

		<category><![CDATA[set]]></category>

		<guid isPermaLink="false">http://blog.fbxphpindonesia.com/?p=132</guid>
		<description><![CDATA[Tag set (&#60;set/&#62;) dalam circuit.xml berfungsi sebagai tag untuk penugasan variabel, namun dalam situasi tertentu kita dapat menggunakan tag set untuk mengevaluasi kode PHP.

Berikut ini adalah contoh tag set secara umum:


&#60;set name=&#34;nama&#34; value=&#34;Yerie Piscesa&#34;/&#62;

atau jika value nya berupa variabel:


&#60;set name=&#34;nama&#34; value=&#34;{$attributes[&#039;name&#039;]}&#34;/&#62;

Dengan menggunakan tag set, variabel dengan nama &#8220;nama&#8221; dapat kita akses melalui fuse dengan aturan [...]]]></description>
			<content:encoded><![CDATA[<p>Tag set (&lt;set/&gt;) dalam circuit.xml berfungsi sebagai tag untuk penugasan variabel, namun dalam situasi tertentu kita dapat menggunakan tag set untuk mengevaluasi kode PHP.<br />
<span id="more-132"></span><br />
Berikut ini adalah contoh tag set secara umum:</p>
<pre name="code" class="xml">

&lt;set name=&quot;nama&quot; value=&quot;Yerie Piscesa&quot;/&gt;
</pre>
<p>atau jika value nya berupa variabel:</p>
<pre name="code" class="xml">

&lt;set name=&quot;nama&quot; value=&quot;{$attributes[&#039;name&#039;]}&quot;/&gt;
</pre>
<p>Dengan menggunakan tag set, variabel dengan nama &#8220;nama&#8221; dapat kita akses melalui fuse dengan aturan php, yaitu $nama (menggunakan tanda dollar).  </p>
<p>Tag set mempunyai 3 buah atribut, yaitu name, value dan evalute. Atribut name dan value adalah pasangan nama variabel (name) dan isi/nilainya (value). Atribut evaluate memiliki nilai true/false, menandakan apakah isi atribut value perlu di evaluasi sebagai statement php. Perhatikan contoh dibawah ini:</p>
<pre name="code" class="xml">

&lt;set name=&quot;a&quot; value=&quot;{$attributes[&#039;a&#039;]}&quot;/&gt;
&lt;set value=&quot;echo \$a;&quot; evaluate=&quot;true&quot;/&gt;
&lt;set value=&quot;\$arr = array(1,2,3);&quot; evaluate=&quot;true&quot;/&gt;
&lt;set value=&quot;var_dump(\$arr);&quot; evaluate=&quot;true&quot;/&gt;
</pre>
<p>Perhatikan contoh diatas, atribut evaluate jika diisi true maka akan mengevaluasi/mengeksekusi nilai dalam atribut value sebagai kode php. Jika atribut name tidak didefinisikan maka fusebox akan menciptakan variabel acak sebagai penampung value. Contoh hasil parsing dari kode &lt;set value=&#8221;var_dump(\$arr);&#8221; evaluate=&#8221;true&#8221;/&gt; adalah:</p>
<pre name="code" class="php">

$fb_[&#039;4a73cc6e3aac3&#039;] = eval(&quot;var_dump(\$arr);&quot;);
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.fbxphpindonesia.com/2009/08/01/tag-set-pada-circuitxml/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Menggunakan Class pada Fusebox</title>
		<link>http://blog.fbxphpindonesia.com/2009/07/31/menggunakan-class-pada-fusebox/</link>
		<comments>http://blog.fbxphpindonesia.com/2009/07/31/menggunakan-class-pada-fusebox/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 09:43:49 +0000</pubDate>
		<dc:creator>Yerie Piscesa</dc:creator>
		
		<category><![CDATA[Langkah-langkah]]></category>

		<category><![CDATA[Object Oriented Programming]]></category>

		<category><![CDATA[Tips Pengembangan]]></category>

		<category><![CDATA[class]]></category>

		<category><![CDATA[fusebox]]></category>

		<category><![CDATA[object]]></category>

		<category><![CDATA[OOP]]></category>

		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.fbxphpindonesia.com/?p=118</guid>
		<description><![CDATA[Dalam OOP, class dan objek adalah hal dasar yang perlu diketahui untuk dapat membuat aplikasi menggunakan pendekatan ini. Jika Anda sudah pernah menggunakan class pada php dan ingin mengimplementasikan pada fusebox, maka disinilah Anda bisa memulainya 

Misal Anda mempunyai class Karyawan, dengan kode sebagai berikut:


class Karyawan {
  private $DB;
  public function __construct(){
  [...]]]></description>
			<content:encoded><![CDATA[<p>Dalam OOP, class dan objek adalah hal dasar yang perlu diketahui untuk dapat membuat aplikasi menggunakan pendekatan ini. Jika Anda sudah pernah menggunakan class pada php dan ingin mengimplementasikan pada fusebox, maka disinilah Anda bisa memulainya <img src='http://blog.fbxphpindonesia.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
<span id="more-118"></span><br />
Misal Anda mempunyai class Karyawan, dengan kode sebagai berikut:</p>
<pre name="code" class="php">

class Karyawan {
  private $DB;
  public function __construct(){
    global $db;
    $this-&gt;DB = $db;
  }
  public function getByNIP($nip) {
    $db = $this-&gt;DB;
    $sql = &quot;select * from karyawan where nip=?&quot;;
    return $db-&gt;GetRow($sql,array($nip));
  }
}
</pre>
<p>Bagaimana menerapkannya pada fusebox? Pada file fusebox.xml buatlah tag &lt;classes&gt; jika belum ada dibawah root &lt;fusebox&gt;. Kemudian tambahkan tag class di dalam tag classes tersebut:</p>
<pre name="code" class="xml">

&lt;class alias=&quot;Karyawan&quot; classpath=&quot;classes/Karyawan.php&quot; /&gt;
</pre>
<p>Dengan menambahkan tag class, maka class Karyawan dapat digunakan pada semua circuit dalam aplikasi fusebox tersebut. Berikut adalah contoh penggunaannya dalam circuit.xml:</p>
<pre name="code" class="xml">

&lt;instantiate class=&quot;Karyawan&quot; object=&quot;karyawan&quot;/&gt;
&lt;invoke object=&quot;karyawan&quot; methodcall=&quot;getByNIP($attributes[&#039;nip&#039;])&quot; returnvariable=&quot;data&quot; /&gt;
&lt;include template=&quot;dsp_data&quot; /&gt;
</pre>
<p>Tag instantiate jika diterjemahkan kedalam kode php menjadi:<br />
$karyawan = new Karyawan;<br />
Sedangkan tag invoke jika diterjemahkan kedalam php menjadi:<br />
$data = $karyawan-&gt;getByNIP($attributes['nip']);<br />
Karena tag invoke mengembalikan variabel $data, maka dapat kita gunakan dalam fuse dsp_data, sebagai berikut:</p>
<pre name="code" class="php">

&lt;?php
echo &quot;Detail Karyawan&lt;br/&gt;&quot;;
echo &quot;NIP: &quot; .$data[&#039;nip&#039;].&quot;&lt;br/&gt;&quot;;
echo &quot;Nama : &quot; . $data[&#039;nama&#039;].&quot;&lt;br/&gt;&quot;;
echo &quot;Alamat: &quot; .$data[&#039;alamat&#039;].&quot;&lt;br/&gt;&quot;;
?&gt;
</pre>
<p>Dengan demikian kita juga menerapkan pola MVC(Model-View-Controller) walaupun secara implisit. Dapat kita lihat bahwa class adalah model dari aplikasi kita, kemudian file fuse (.php) adalah viewnya dan semuanya dikontrol melalui circuit.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fbxphpindonesia.com/2009/07/31/menggunakan-class-pada-fusebox/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

