Ziyaretçinin konumuna göre namaz vakitleri modülü

Kodla Büyü

erbay111

Site Gezgini
Mesajlar
97
Ziyaretçinin ip adresinden konumunu bulup ona göre Joomla 3 siteleri için namaz vakitleri modülü yapalım.
iş bittiğinde şöyle görünecek


1. ip adresini çekme:
İp Adresim Test Et: http://joomlaweb.site/ip.php
Kodumuz,
Kod:
<?php
$ip = $_SERVER['REMOTE_ADDR'];
2.ip adresi üzerinden ziyaretçinin konumunu bulma:
Bunun için http://ip-api.com/php adresinden ip sorgulaması yapıp bize gerekli olan şehir bilgisini alacağız.
Bulunduğum Şehir TEST ET: http://joomlaweb.site/konumum.php
Kod:
$query = @unserialize(file_get_contents('http://ip-api.com/php/'.$ip));
if($query && $query['status'] == 'success'){ 
}else {
  echo 'Unable to get location';
      }
3.il değişkeni oluşturma
Kod:
$il=$query['city'];
4.curl yöntemiyle namaz vakitlerini alma:
Bunun içinse http://www.namazvaktim.net sitesini kullanacağız.
Kod:
function site_kaynak($url) { 
            if (function_exists('curl_init')) {  
                $ch = curl_init($url);  
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
                curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1"); 
                return curl_exec($ch);  
            }      
    } 
    $il=$query['city'];
    $ss = site_kaynak("http://www.namazvaktim.net/xml/gunluk/".$il.".xml"); 

        $a=simplexml_load_string($ss); 
         $a->il.'<br><p>'; 
        foreach ($a->zaman as $oku) { 
            $baslik    =    $oku->gun.'<br>'; 
            $baslik    =    $oku->ay.'<br>'; 
            $baslik    =    $oku->yil.'<br><p>'; 
            $baslik    =    $oku->vakitler->imsak.'<br>'; 
            $baslik    =    $oku->vakitler->gunes.'<br>'; 
            $baslik    =    $oku->vakitler->ogle.'<br>'; 
            $baslik    =    $oku->vakitler->ikindi.'<br>'; 
            $baslik    =    $oku->vakitler->aksam.'<br>'; 
            $baslik    =    $oku->vakitler->yatsi.'<br>'; 
            $baslik    =    $oku->vakitler->kible.'<br>'; 
             "<hr>"; 
        } 
    flush(); 

                    
?>
5.sonuçları basma
Kod:
<table width="%100" border="0">
  
  <tr><td colspan="2"><?php echo "<b>",$query['city']," Namaz"," Vakitleri","</b>";?></td></tr>
  <tr>
    <td width="%60" align="left" bgcolor="#F8F8FF">İmsak </td>
    <td width="%40" align="left" bgcolor="#F8F8FF"><?php echo $baslik    =    $oku->vakitler->imsak ?> </td>
   </tr>
   <tr>
    <td width="%60" align="left" bgcolor="#FFFFF0">Güneş</td>
    <td width="%40" align="left" bgcolor="#FFFFF0"><?php echo $baslik    =    $oku->vakitler->gunes ?></td>
    </tr>
    <tr>
    <td width="%60" align="left" bgcolor="#F8F8FF">Öğle</td>
    <td width="%40" align="left" bgcolor="#F8F8FF"> <?php echo $baslik    =    $oku->vakitler->ogle ?></td>
    </tr>
    <tr>
    <td width="%60" align="left" bgcolor="#FFFFF0">İkindi</td>
    <td width="%40" align="left" bgcolor="#FFFFF0"><?php echo $baslik    =    $oku->vakitler->ikindi ?></td>
    </tr>
    <tr>
    <td width="%60" align="left" bgcolor="#F8F8FF">Akşam</td>
    <td width="%40" align="left" bgcolor="#F8F8FF"><?php echo $baslik    =    $oku->vakitler->aksam ?></td>
    </tr>
    <tr>
    <td width="%60" align="left" bgcolor="#FFFFF0">Yatsı</td>
    <td width="%40" align="left" bgcolor="#FFFFF0"> <?php echo $baslik    =    $oku->vakitler->yatsi ?></td>
  </tr>
  <tr>
    
</table>
Tüm kodlamaları birleştirip gerçek bir hostta deneyelim.
Kodları test et:http://joomlaweb.site/namaz.php
ÖNEMLİ:BU KODLAR LOCALDE ÇALIŞMAZ
Kod:
<?php
/**
 * @package Namaz Vakitleri
 * @version mod_namazvakitleri 1.0 (27.01.2016 20:19:45)
 * @author Erdal BAYRAK
 * @copyright (C) 2015 Adınız Soyadınız. Tüm hakları saklıdır.
 * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 **/

$ip = $_SERVER['REMOTE_ADDR']; // the IP address to query
$query = @unserialize(file_get_contents('http://ip-api.com/php/'.$ip));
if($query && $query['status'] == 'success'){ 
}else {
  echo 'Unable to get location';
      }
 

  function site_kaynak($url) { 
            if (function_exists('curl_init')) {  
                $ch = curl_init($url);  
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
                curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1"); 
                return curl_exec($ch);  
            }      
    } 
    $il=$query['city'];
    $ss = site_kaynak("http://www.namazvaktim.net/xml/gunluk/".$il.".xml"); 

        $a=simplexml_load_string($ss); 
         $a->il.'<br><p>'; 
        foreach ($a->zaman as $oku) { 
            $baslik    =    $oku->gun.'<br>'; 
            $baslik    =    $oku->ay.'<br>'; 
            $baslik    =    $oku->yil.'<br><p>'; 
            $baslik    =    $oku->vakitler->imsak.'<br>'; 
            $baslik    =    $oku->vakitler->gunes.'<br>'; 
            $baslik    =    $oku->vakitler->ogle.'<br>'; 
            $baslik    =    $oku->vakitler->ikindi.'<br>'; 
            $baslik    =    $oku->vakitler->aksam.'<br>'; 
            $baslik    =    $oku->vakitler->yatsi.'<br>'; 
            $baslik    =    $oku->vakitler->kible.'<br>'; 
             "<hr>"; 
        } 
    flush(); 

                    
?> 

<table width="%100" border="0">
  
  <tr><td colspan="2"><?php echo "<b>",$query['city']," Namaz"," Vakitleri","</b>";?></td></tr>
  <tr>
    <td width="%60" align="left" bgcolor="#F8F8FF">İmsak </td>
    <td width="%40" align="left" bgcolor="#F8F8FF"><?php echo $baslik    =    $oku->vakitler->imsak ?> </td>
   </tr>
   <tr>
    <td width="%60" align="left" bgcolor="#FFFFF0">Güneş</td>
    <td width="%40" align="left" bgcolor="#FFFFF0"><?php echo $baslik    =    $oku->vakitler->gunes ?></td>
    </tr>
    <tr>
    <td width="%60" align="left" bgcolor="#F8F8FF">Öğle</td>
    <td width="%40" align="left" bgcolor="#F8F8FF"> <?php echo $baslik    =    $oku->vakitler->ogle ?></td>
    </tr>
    <tr>
    <td width="%60" align="left" bgcolor="#FFFFF0">İkindi</td>
    <td width="%40" align="left" bgcolor="#FFFFF0"><?php echo $baslik    =    $oku->vakitler->ikindi ?></td>
    </tr>
    <tr>
    <td width="%60" align="left" bgcolor="#F8F8FF">Akşam</td>
    <td width="%40" align="left" bgcolor="#F8F8FF"><?php echo $baslik    =    $oku->vakitler->aksam ?></td>
    </tr>
    <tr>
    <td width="%60" align="left" bgcolor="#FFFFF0">Yatsı</td>
    <td width="%40" align="left" bgcolor="#FFFFF0"> <?php echo $baslik    =    $oku->vakitler->yatsi ?></td>
  </tr>
  <tr>
    
</table>
Yukarıdaki kodu joomla modülümüze yamayalım. Burada yönetim panelinden kontrol edilecek şekilde parametre yazabilirsiniz.Ben gerek görmedim.
mod_namazvakitleri.zip içeriğine bakalım

index.html dosyası
Kod:
<html><body></body></html>
mod_namazvakitleri.php dosyası örnek kod dosyamız
Kod:
<?php
/**
 * @package Namaz Vakitleri
 * @version mod_namazvakitleri 1.0 (27.01.2016 20:19:45)
 * @author Erdal BAYRAK
 * @copyright (C) 2015 Adınız Soyadınız. Tüm hakları saklıdır.
 * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 **/

$ip = $_SERVER['REMOTE_ADDR']; // the IP address to query
$query = @unserialize(file_get_contents('http://ip-api.com/php/'.$ip));
if($query && $query['status'] == 'success'){ 
}else {
  echo 'Unable to get location';
      }
 

  function site_kaynak($url) { 
            if (function_exists('curl_init')) {  
                $ch = curl_init($url);  
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
                curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1"); 
                return curl_exec($ch);  
            }      
    } 
    $il=$query['city'];
    $ss = site_kaynak("http://www.namazvaktim.net/xml/gunluk/".$il.".xml"); 

        $a=simplexml_load_string($ss); 
         $a->il.'<br><p>'; 
        foreach ($a->zaman as $oku) { 
            $baslik    =    $oku->gun.'<br>'; 
            $baslik    =    $oku->ay.'<br>'; 
            $baslik    =    $oku->yil.'<br><p>'; 
            $baslik    =    $oku->vakitler->imsak.'<br>'; 
            $baslik    =    $oku->vakitler->gunes.'<br>'; 
            $baslik    =    $oku->vakitler->ogle.'<br>'; 
            $baslik    =    $oku->vakitler->ikindi.'<br>'; 
            $baslik    =    $oku->vakitler->aksam.'<br>'; 
            $baslik    =    $oku->vakitler->yatsi.'<br>'; 
            $baslik    =    $oku->vakitler->kible.'<br>'; 
             "<hr>"; 
        } 
    flush(); 

                    
?> 

<table width="%100" border="0">
  
  <tr><td colspan="2"><?php echo "<b>",$query['city']," Namaz"," Vakitleri","</b>";?></td></tr>
  <tr>
    <td width="%60" align="left" bgcolor="#F8F8FF">İmsak </td>
    <td width="%40" align="left" bgcolor="#F8F8FF"><?php echo $baslik    =    $oku->vakitler->imsak ?> </td>
   </tr>
   <tr>
    <td width="%60" align="left" bgcolor="#FFFFF0">Güneş</td>
    <td width="%40" align="left" bgcolor="#FFFFF0"><?php echo $baslik    =    $oku->vakitler->gunes ?></td>
    </tr>
    <tr>
    <td width="%60" align="left" bgcolor="#F8F8FF">Öğle</td>
    <td width="%40" align="left" bgcolor="#F8F8FF"> <?php echo $baslik    =    $oku->vakitler->ogle ?></td>
    </tr>
    <tr>
    <td width="%60" align="left" bgcolor="#FFFFF0">İkindi</td>
    <td width="%40" align="left" bgcolor="#FFFFF0"><?php echo $baslik    =    $oku->vakitler->ikindi ?></td>
    </tr>
    <tr>
    <td width="%60" align="left" bgcolor="#F8F8FF">Akşam</td>
    <td width="%40" align="left" bgcolor="#F8F8FF"><?php echo $baslik    =    $oku->vakitler->aksam ?></td>
    </tr>
    <tr>
    <td width="%60" align="left" bgcolor="#FFFFF0">Yatsı</td>
    <td width="%40" align="left" bgcolor="#FFFFF0"> <?php echo $baslik    =    $oku->vakitler->yatsi ?></td>
  </tr>
  <tr>
    
</table>
mod_namazvakitleri.xml dosyamız
Kod:
<?xml version="1.0" encoding="utf-8"?>

<extension type="module" version="1.0" client="site" method="upgrade">

	<name>Namaz Vakitleri</name> 
	<author>Erdal BAYRAK</author> 
	<creationDate>27.01.2016 20:19:45</creationDate> 
	<copyright>
		(C) 2015 Adınız Soyadınız. Tüm hakları saklıdır.
	</copyright>
	<license>GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html</license> 
	<authorEmail>erbay111@mynet.com</authorEmail> 
	<authorUrl>http://www.joomlaweb.site</authorUrl> 
	<version>1.0</version>
 	<description>Namaz vakitleri modülü kullancının ip adresinden bulunduğu konumu tespit edip, o şehrin namaz vakitlerini otomatik olarak verir. </description>
 	<files>
		<filename module="mod_namazvakitleri">mod_namazvakitleri.php</filename>
		<filename>helper.php</filename>
		<filename>index.html</filename>
	</files>
 
	<config>
	
		<fields name="params">
                
			<fieldset name="basic">
			<field 
					name="moduleclass_sfx"
					type="text"
					label="COM_MODULES_FIELD_MODULECLASS_SFX_LABEL"
					description="COM_MODULES_FIELD_MODULECLASS_SFX_DESC"
					size="60" >
				</field>
				
			</fieldset>
				
			
			
		</fields>
		
	</config>

</extension>
 

Ekli dosyalar

  • namaz_vakitleri.jpg
    namaz_vakitleri.jpg
    11.2 KB · Görüntüleme: 1,140
  • mod_namazvakitleri.zip
    mod_namazvakitleri.zip
    3 KB · Görüntüleme: 69
Güzel olmuş hocam, eline sağlık. Lakin konumum Ankara'ya 800 km uzaklıkta, namaz vaktini Ankara olarak gösteriyor.
 
Re: Ziyaretçinin konumu hocam cepten mi girdin?

hiboz' Alıntı:
Güzel olmuş hocam, eline sağlık. Lakin konumum Ankara'ya 800 km uzaklıkta, namaz vaktini Ankara olarak gösteriyor.
İşin mantığı ip adresinden şehri bulma. Ben http://ip-api.com/ üzerinden yaptım. Başka sitelerde de sorgulama yap. Ne çıkarsa o. Amerika'yı yeniden keşfetmedik hocam.
Ayrıca cepten girdinse Mobil internette ip sorgulaması doğru kenti vermiyor.İstanbul , Ankara .. çıkıyor. Mobil için farklı kodlama gerek.
 
erbay111 süper bir çalışma olmuş. Sunumunuz Modül nasıl hazırlanırın cevabı niteliğinde ve sabitlenmeli.
 
BBNET
Geri
Üst