Merkez Bankası (TCMB) Döviz Kurlarını Çekme

ozmo18

OpenCart-TR
Katılım
21 Eki 2010
Mesajlar
1
Tepkime puanı
0
Puanları
0
Merhaba
Kodlamasını kendi yaptığım ve Multishop FreeBox modül kullanarak gerçekleştirdiğim Merkez Bankası Döviz Kurlarını günlük olarak çekip DB'e kaydeden kodları paylaşmak istedim.1.4.7 de denedim sorunsuz çalışmakta.
Kurulum :
Öncelikle Multishop FreeBox modülünü kuruyoruz (kurulum dosyaları ve anlatımı forumda var ;) )
ardından
Otodovizkur klasörünü serverın kök dizinine atıyoruz,bu klasör içerisinde ki index.php dosyasında ki ayarları yapıyoruz.
$db_host = ""; // Veri tabanınızın bulunduğu host adı (Genelde Localhost olur )
$db_kullanici = "****** "; // Db kullanıcı adınız
$db_sifre = "*******"; // Db şifreniz
$db_adi = "********"; // Db adınız

kurlar.php dosyasını kök dizine atıyoruz.

Modül ayarlarından Multishop FreeBox modülünü düzenle diyerek
<iframe align="center" frameborder="0" height="160" src="http://www.********.com/kurlar.php" style="width: 160px; height: 100px"></iframe></p>
kaydediyoruz.

Sıra geldi günlük olarak döviz kurlarını db'e kayıt ettirmeye ben bunun için plesk panelin "Crontab" özelliğini kullanıyorum aynıo özellik Cpanel de de mevcut.
Ayarlar sırasında her gün 15:50 de kod otodovizkur klasörü içerisinde ki index.php sayfasının çalıştırılmasını sağlıyorum çünkü MB her gün 15:30 da kur bilgilerini yeniliyor.(burada server saatinize dikkat etmeniz gerekmekte ve ayarlamayı server saatine göre yapmalısınız)
Son olarak opencart sisteminizin varsayılan para birimi TL ise Dolar'a çeviriyor ayarları kaydediyoruz mağazamıza gidip fiyatları kontrol ediyoruz oooops ! bi problem var fiyatlar baya karışmış panik yapmadan admin paneline geri dönüyor ve yine ayarlardan varsayılan para birimini TL yapıyoruz kaydedip mağazamıza gittiğimizde herşeyin normale döndüğünü görüyoruz.Şu andan itibaren sistemimiz kurlar arasında otomatik çevrimi yapabiliyor. Ve günlük olarak kurları DB'e kaydediyor

serverınızın crontab özelliği yoksa kurları manuel olarak hızlıca çekip db'e kaydetmek için sitenizide ki otodovizkur klasörü içinde ki index.php dosyasını browserınızdan çağırmanız yeterli.
İyi Çalışmalar
 

Ekli dosyalar

  • otodovizkur.zip
    3 KB · Görüntüleme: 367

mehmetk85

OpenCart-TR
Katılım
7 Ocak 2011
Mesajlar
8
Tepkime puanı
0
Puanları
0
Merhaba, çok güzel bir modül yazmışsın , öncelikle teşekkür ederim. Fakat otomatik güncellemeden sonra her seferinde varsayılan kuru dolar- sonra bi daha kuru tl mi yapmamız gerekiyor. Çünkü her güncellemeden sonra dolar TL den fazla gözüküyor. ( Otomatik kur güncellemesini kapattım )
 

mehmetk85

OpenCart-TR
Katılım
7 Ocak 2011
Mesajlar
8
Tepkime puanı
0
Puanları
0
mehmetk85' Alıntı:
Merhaba, çok güzel bir modül yazmışsın , öncelikle teşekkür ederim. Fakat otomatik güncellemeden sonra her seferinde varsayılan kuru dolar- sonra bi daha kuru tl mi yapmamız gerekiyor. Çünkü her güncellemeden sonra dolar TL den fazla gözüküyor. ( Otomatik kur güncellemesini kapattım )
Kendi soruma cevap vereyim , sürekli varsayılan kuru değiştirme zorunluluğna karşı bir çözüm buldum.index.php dosyasını aşağıdaki şekilde değiştirin ,veritabanına direk kurun verisini yazıyor.
Kod:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<title>Untitled Document</title>
</head>
<?
  $db_host = "localhost"; 
  $db_kullanici = "xxxxxx"; // Db kullanıcı adınız 
  $db_sifre = "xxxxxxx";         // Db şifreniz 
  $db_adi = "xxxxxxxx";     // Db adınız 

  $baglanti = mysql_connect($db_host, $db_kullanici, $db_sifre); 
  mysql_select_db($db_adi, $baglanti); 
   
  if(mysql_errno()) 
  { 
    echo 'Veritabanına bağlanılamıyor ...'; 
  }
// dolar değeri///////////////////////////////////////////////////
$sorgu=mysql_query("SELECT * FROM currency WHERE currency_id =2");
while($oku=mysql_fetch_array($sorgu))
echo $oku[value];
echo "<br>";
//////////////////////////////////////////////////////////////////

// Euro Değeri///////////////////////////////////////////////////
$sorgu=mysql_query("SELECT * FROM currency WHERE currency_id =3");
while($oku=mysql_fetch_array($sorgu))
echo $oku[value];
echo "<br>";
//////////////////////////////////////////////////////////////////

/////// döviz kurlarını al ///////////////////////////////////////
$para_birimi = array("USD" => "","EUR" => "",);
$veri  = array("Isim" => "isim", "forexbuying" => "Alis", "forexselling" => "Satis",);
$url  = file_get_contents("http://www.tcmb.gov.tr/kurlar/today.xml");
foreach($para_birimi as $birim => $arr){
preg_match("'<currency Kod=\"(".$birim.")\".*>(.*)</currency>'Uis",$url,$crst);
foreach($veri as $alan => $deger){
preg_match("'<".$alan.">(.*)</".$alan.">'Uis",$crst[2],$frst);
$para_birimi[$birim][$deger] = $frst[1];
}
}
 echo "<font color=#FF0000 size=1 face=Georgia, Times New Roman, Times, serif >Dolar:</font> " . $para_birimi[USD][Alis] . "<br>";
 echo "<font color=#FF0000 size=1 face=Georgia, Times New Roman, Times, serif >Euro :</font> " . $para_birimi[EUR][Alis] . "<br>";
 /////// döviz kurlarını site kuruna böl ///////////////////////////////////////
$para=$para_birimi[USD][Alis];
$para_2=$para_birimi[EUR][Alis];
$para_portal1=(1.00000000 / $para);
$para_portal2=(1.00000000 / $para_2);
$sorgu=mysql_query("UPDATE currency SET value= $para_portal1 WHERE currency_id =2");
$sorgu=mysql_query("UPDATE currency SET value= $para_portal2 WHERE currency_id =3");



?>
<body>
</body>
</html>
 

hooligan

OpenCart-TR
Katılım
10 Eki 2011
Mesajlar
10
Tepkime puanı
0
Puanları
0
direct admin de cronjobs diye bölüm var
orda bu ayarları yapmam gerekiyor
ancak saati yazıyorum
dakikayı yazıyorum
tarih olarak ne yazmam gerekiyor
ve bu komutu nasıl çalıştırmam gerekiyor bulamadım?
 
Üst