|
Standar awal dari OSCommerce untuk proses update currency adalah dengan melalui website OANDA atau XE, ini bisa dilihat pada file admin/includes/application_top yang berupa // Define how do we update currency exchange rates // Possible values are 'oanda' 'xe' or '' define('CURRENCY_SERVER_PRIMARY', 'oanda'); define('CURRENCY_SERVER_BACKUP', 'xe');
Disini artinya update currency akan melalui situs OANDA terlebih dahulu, dan kalo gagal baru dilanjutkan dengan menggunakan situs XE. Proses update currency ini dilakukan dengan mengambil nilai yang dihasilkan oleh fungsi quote_oanda_currency dan quote_xe_currency yang ada di dalam file admin/includes/functions/localization.php. Didalam file inilah nantinya akan kita tambahkan fungsi untuk mengambil nilai kurs yang ada di situs klikbca. Baiklah kita mulai proses modifikasi nya. Pertama-tama tambahkan fungsi di bawah ini ke dalam file localization.php. function quote_bca_currency($to, $from = DEFAULT_CURRENCY) { if( (($to=='IDR')&&($from==$to))||($to==$from) ) { return '1'; } elseif (($to=='IDR')||($from=='IDR')) {
// start curl $url = "http://www.klikbca.com/individual/silver/ind/rates.html";
if(function_exists('curl_init')) { $curl = curl_init(); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($curl, CURLOPT_ENCODING, 'ISO-8859-1'); curl_setopt($curl, CURLOPT_URL, $url); $page = curl_exec($curl); curl_close($curl); } elseif (ini_get('allow_url_fopen')) { error_reporting(0); $page = file_get_contents($url); }
$match = array();
$content = explode ('<table border="0" cellspacing="0" cellpadding="0" class="testL">', $page); $content = explode ('</table>', $content[1]); $content[0] .= '';
$periode = explode ('<font color="black" size="1" face="Arial">', $content[0]); $periode = explode ('WIB', $periode[1]); $periode[0] .= 'WIB';
$periode = str_replace(" ","", str_replace("\r\n","",$periode[0]));
$content = explode ("<TR BGCOLOR='#f0f0f0'>", $content[0]);
$list = 0; for($i=1;$i<=count($content);$i++){ $negara = explode ("<TR bgcolor='#e0e0e0'>", $content[$i]); if($negara[0]){ $list++; $kurs[$list] = str_replace(" ","", str_replace("::","", str_replace(" ","", str_replace(" ",":", str_replace("\r\n","",strip_tags($negara[0]))))))."<br>"; list($id1, $jual1, $beli1) = split(':', $kurs[$list]); $match[$id1]['jual'] = str_replace(".00","",$jual1); $match[$id1]['beli'] = str_replace(".00","",$beli1); } if($negara[1]){ $list++; $kurs[$list] = str_replace(" ","", str_replace("::","", str_replace(" ","", str_replace(" ",":", str_replace("\r\n","",strip_tags($negara[1]))))))."<br>"; list($id1, $jual1, $beli1) = split(':', $kurs[$list]); $match[$id1]['jual'] = str_replace(".00","",$jual1); $match[$id1]['beli'] = str_replace(".00","",$beli1); }
}
if(isset($match[$to])) { return ( sprintf("%08.8f",1 / $match[$to]['beli'])); } elseif(isset($match[$from])) { return ( $match[$from]['jual']); } else { return false; } } else { return false; } } Kemudian edit file /admin/includes/application_top.php Edit seperti dibawah ini: // Define how do we update currency exchange rates // Possible values are 'oanda' 'xe' or '' define('CURRENCY_SERVER_PRIMARY', 'bca'); define('CURRENCY_SERVER_BACKUP', 'oanda'); Just it....
|