Mynet tarzı Hava Durumu Modülü Yapalım

Kodla Büyü

erbay111

Site Gezgini
Mesajlar
97
Joomla 3 sitesi için sıfırdan MYNET tarzı hava durumu modülü yapalım.Yapmak istediğimiz resimdeki gibi basit anlık hava durumunu yayınlayabilmek.

Modülümüzde Hava durumu resmi, il ve anlık sıcaklık bilgileri olmalı.Yönetim panelinden yayınlayacağımız ili seçebilmeli, resim ve yazı boyutu ile yazı rengi ve gölge efekti rengini ayarlayabilmeliyiz.
Aynı zamanda iframe kullanmadan mgm.gov.tr den veri çekebilmek iyi olurdu diye düşünüyorum.
ya Bismillah!
Öncelikle standart joomla modül kurulumunu editleyerek yayınladığım http://joomlaweb.site/Joomla_Modul_Olusturucu/ adresinden online olarak hazırlıyoruz.
Resimdeki gibi bilgileri ilgili alanlara girip, sağ köşeden PAKETİ İNDİR diyerek zipli dosyayı bilgisayarımıza indirelim.

Modülümüzün ilk hali bu:
Bu haliyle kurulum yaptığımızda sadece parametre bilgi alanı yayınlanacaktır.
Şimdi zipli dosyaları klasöre çıkartalım. Ve modulümüzü yazmaya başlayalım.

İlk iş olarak mod_havadurumu.php dosyasını açıp içindeki bilgileri silelim ve ilk kodumuzu yazalım.
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=utf-8" />
<title>Hava Durumu</title>
</head>
<body>
Önce curl yöntemiyle http://www.mgm.gov.tr/ adresine bağlanacağım.
Kod:
<?php
function Baglan($link)
{  
$ch  = curl_init();   
curl_setopt($ch,CURLOPT_URL,$link);   
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);  
curl_setopt($ch,CURLOPT_REFERER,"http://www.mgm.gov.tr/");   
curl_setopt($ch, CURLOPT_TIMEOUT, 9999999);   
$Curl = curl_exec($ch);   curl_close($ch);return $Curl;
}
?>
Ardından preg_match_all yöntemiyle merkez değişkene parametre atayıp http://www.mgm.gov.tr/tahmin/il-ve-ilceler.aspx?m=" " adresinden istediğim bilgileri cekeceğim.
Kod:
<?php
$il=$params->get('merkez');
$Site = Baglan("http://www.mgm.gov.tr/tahmin/il-ve-ilceler.aspx?m=".$il."");
?>
<?php
preg_match_all('@<td><em class="renkMin zemimeZ">(.*?)</em></td>@si',$Site,$Sicaklikge);
preg_match_all('@<td><em class="renkMax">(.*?)</em></td>@si',$Site,$Sicaklikgu);
preg_match_all('@<td title = "(.*?)" rowspan="2"><img src="../FILES/imgIcon/(.*?)" alt="(.*?)" /> </td>@si',$Site,$Resim);
preg_match_all('@<h1 id="sfB" style="clear:both;">(.*?)<strong>(.*?)</strong></h1>@si',$Site,$ill);?>

<?php 
error_reporting(E_ALL & ~E_NOTICE); 
?>

Sıra çektiğim verileri basmaya geldi. Burada bilgileri basarken verileri ortalayarak işe başladım.Hava durumu resmini boyutlandırmak, Yazı rengini, boyutunu ve yazı gölge rengini yönetim panelinden ayarlayabilmek için parametreler atadım.
Kod:
<center><img src="http://www.mgm.gov.tr/FILES/imgIcon/<?=$Resim[2][0]?> " alt="" width="<?php echo $params->get('resimgenislik')?>" height="<?php echo $params->get('resimyukseklik')?> " align="center"/>
<font size="<?php echo $params->get('yaziboyutu')?>" face="Georgia, Times New Roman, Times, serif" style="text-shadow: 0px 0px 2px <?php echo $params->get('golgerengi')?>" color="<?php echo $params->get('yazirengi')?>">
<?php echo $params->get('merkez')?> &nbsp;
<?=$Sicaklikgu[1][0]?><?=$Sicaklikge[1][0]?>
       </font></center>
Mod_havadurumu.php kodlarını kapatalım.
Kod:
</body></html>
Sıra mod_havadurumu.xml dosyamızı düzenlemeye geldi.
Atadığımız parametreleri hatırlayalım
$params->get('merkez');
$params->get('resimgenislik');
$params->get('resimyukseklik');
$params->get('yaziboyutu');
$params->get('yazirengi');
$params->get('golgerengi');

Elimizdeki mod_havadurumu.xml dosyasındaki parametreler üç adetti. Oysa biz 6 adet parametre yazdık. Yeni parametre ekleyip tekrardan yazacağız.
Dosyanın ilk hali buydu:
Kod:
<?xml version="1.0" encoding="utf-8"?>

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

	<name>Hava Durumu</name> 
	<author>Erdal BAYRAK</author> 
	<creationDate>18.12.2015 08:41:25</creationDate> 
	<copyright>
		(C) 2015 Erdal BAYRAK. Tüm hakları saklıdır.
	</copyright>
	<license>GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html</license> 
	<authorEmail>erdalbayrak1@gmail.com</authorEmail> 
	<authorUrl>http://www.joomlaweb.site</authorUrl> 
	<version>1.0</version>
 	<description>Açılır listeden göstermek istediğiniz kenti seçiniz.</description>
 
	<!--
		If you create new files, remember to list them here, or they
		will not be copied to the module folder during installation!
		Note that the entry point file is marked with the "module"
		attribute.
	-->
	<files>
		<filename module="mod_havadurumu">mod_havadurumu.php</filename>
		<filename>helper.php</filename>
		<filename>index.html</filename>
	</files>
 
	<!--
		Module fields
		for more information about field types, VISIT
		http://docs.joomla.org/Standard_form_field_types
	-->
	<config>
	
		<fields name="params">
                
			<fieldset name="basic">
                
				<!-- =========================================== -->
				<!-- =========================================== -->
				<!--
					I recommend to keep this field untouched. It is
					a Joomla! default to handle the module's div
					wiht a custom class. Very useful for CSS
					manipulations.
				-->
				<field 
					name="moduleclass_sfx"
					type="text"
					label="COM_MODULES_FIELD_MODULECLASS_SFX_LABEL"
					description="COM_MODULES_FIELD_MODULECLASS_SFX_DESC"
					size="60" >
				</field>
				<!-- =========================================== -->
				<!-- =========================================== -->
				
				<!--
					A basic parameter. On mod_naked.php you can see
					examples of how to read it's value.
				-->

				<!-- Parameter 1 -->					
				<field
					label="1. Parametre" 
					name="parametre1"
					description="Bu modülün ilk parametresidir."
					type="text"
					size="60"	
				/>
				<!-- End of Parameter 1 -->
				
				<!-- Parameter 2 -->					
				<field
					label="2. Parametre" 
					name="parametre2"
					description="Bu modülün 2. parametresidir."
					type="text"
					size="60"	
				/>
				<!-- End of Parameter 2 -->
				
				<!-- Parameter 3 -->					
				<field
					label="3. Parametre" 
					name="parametre3"
					description="Bu modülün 3. parametresidir."
					type="text"
					size="60"	
				/>
				<!-- End of Parameter 3 -->
					
			</fieldset>
				
			<!-- Joomla's default tag for advanced fields.
				 Uncomment to use. -->
			<!--
				<fieldset name="advanced">
				</fieldset>
			-->
			
			<!-- Your custom fieldset. Uncomment and edit to use.  -->
			<!--
				<fieldset name="myfields" label="My Fields">
				</fieldset>
			-->
			
		</fields>
		
	</config>

</extension>
<!-- Parameter 1 --> den itibaren yeniden düzenleme yapalım
yönetim panelinden merkez adlı parametreye il seçip bağlayabilmek için açılır liste yazmalıyız.
Burada;
name= parametre adı,
type=kayıt metodu,
default=varsayılan değer,
label=parametre etiketi,
description=ekiket açıklaması,
nı ifade ediyor.
type: text, textarea,list, color,radio,contenttype,media vb. değerler alabilir.
Bilgi almak isteyenler joomla için field type değerlerine bakabilirsiniz.https://docs.joomla.org/Standard_form_field_types
'merkez' parametresini bağladık.
Kod:
<field name="merkez" type="list" default="ISTANBUL" label="Varsayılan Şehir" description="Varsayılan Şehir">
                      <option value="ADANA" >ADANA</option>
                      <option value="ADIYAMAN" >ADIYAMAN</option>
                      <option value="AFYONKARAHISAR" >AFYON</option>
                      <option value="AGRI" >AĞRI</option>
                      <option value="AKSARAY" >AKSARAY</option>
                      <option value="AMASYA" >AMASYA</option>
                      <option value="ANKARA" >ANKARA</option>
                      <option value="ANTALYA" >ANTALYA</option>
                      <option value="ARDAHAN" >ARDAHAN</option>
                      <option value="ARTVIN" >ARTVİN</option>
                      <option value="AYDIN" >AYDIN</option>
                      <option value="BALIKESIR" >BALIKESİR</option>
                      <option value="BARTIN" >BARTIN</option>
                      <option value="BATMAN" >BATMAN</option>
                      <option value="BAYBURT" >BAYBURT</option>
                      <option value="BILECIK" >BİLECİK</option>
                      <option value="BINGOL" >BİNGÖL</option>
                      <option value="BITLIS" >BİTLİS</option>
                      <option value="BOLU" >BOLU</option>
                      <option value="BURDUR" >BURDUR</option>
                      <option value="BURSA" >BURSA</option>
                      <option value="CANAKKALE" >ÇANAKKALE</option>
                      <option value="CANKIRI" >ÇANKIRI</option>
                      <option value="CORUM" >ÇORUM</option>
                      <option value="DENIZLI" >DENİZLİ</option>
                      <option value="DIYARBAKIR" >DİYARBAKIR</option>
                      <option value="DUZCE" >DÜZCE</option>
                      <option value="EDIRNE" >EDİRNE</option>
                      <option value="ELAZIG" >ELAZIĞ</option>
                      <option value="ERZINCAN" >ERZİNCAN</option>
                      <option value="ERZURUM" >ERZURUM</option>
                      <option value="ESKISEHIR" >ESKİŞEHIR</option>
                      <option value="GAZIANTEP" >GAZİANTEP</option>
                      <option value="GIRESUN" >GiRESUN</option>
                      <option value="GUMUSHANE" >GÜMÜŞHANE</option>
                      <option value="HAKKARI" >HAKKARİ</option>
                      <option value="HATAY" >HATAY</option>
                      <option value="IGDIR" >IĞDIR</option>
                      <option value="ISPARTA" >ISPARTA</option>
                      <option value="ISTANBUL" >İSTANBUL</option>
                      <option value="IZMIR" >İZMİR</option>
                      <option value="K.MARAS" >K.MARAŞ</option>
                      <option value="KARABUK" >KARABÜK</option>
                      <option value="KARAMAN" >KARAMAN</option>
                      <option value="KARS" >KARS</option>
                      <option value="KASTAMONU" >KASTAMONU</option>
                      <option value="KAYSERI" >KAYSERİ</option>
                      <option value="KIRIKKALE" >KIRIKKALE</option>
                      <option value="KIRKLARELI" >KIRKLARELİ</option>
                      <option value="KIRSEHIR" >KIRŞEHİR</option>
                      <option value="KILIS" >KİLİS</option>
                      <option value="KOCAELI" >KOCAELİ</option>
                      <option value="KONYA" >KONYA</option>
                      <option value="KUTAHYA" >KÜTAHYA</option>
                      <option value="MALATYA" >MALATYA</option>
                      <option value="MANISA" >MANİSA</option>
                      <option value="MARDIN" >MARDİN</option>
                      <option value="MERSIN" >MERSİN</option>
                      <option value="MUGLA" >MUĞLA</option>
                      <option value="MUS" >MUŞ</option>
                      <option value="NEVSEHIR" >NEVŞEHİR</option>
                      <option value="NIGDE" >NİĞDE</option>
                      <option value="ORDU" >ORDU</option>
                      <option value="OSMANIYE" >OSMANİYE</option>
                      <option value="RIZE" >RİZE</option>
                      <option value="SAKARYA" >SAKARYA</option>
                      <option value="SAMSUN" >SAMSUN</option>
                      <option value="SIIRT" >SİİRT</option>
                      <option value="SINOP" >SİNOP</option>
                      <option value="SIVAS" >SİVAS</option>
                      <option value="SANLIURFA" >ŞANLIURFA</option>
                      <option value="SIRNAK" >ŞIRNAK</option>
                      <option value="TEKIRDAG" >TEKİRDAĞ</option>
                      <option value="TOKAT" >TOKAT</option>
                      <option value="TRABZON" >TRABZON</option>
                      <option value="TUNCELI" >TUNCELİ</option>
                      <option value="USAK" >UŞAK</option>
                      <option value="VAN" >VAN</option>
                      <option value="YALOVA" >YALOVA</option>
                      <option value="YOZGAT" >YOZGAT</option>
                      <option value="ZONGULDAK" >ZONGULDAK</option>
                </field>
İkinci parametre havadurumu 'yazirengi'
Burada type değeri olarak renk seçici "color" atayalım.
Kod:
<field name="yazirengi"
				       default="#525252"
					   label="Yazı rengi"
					   type="color"
					   
				/>
Üçüncü parametre havadurumu 'resimgenislik'
Kod:
<field name="resimgenislik"
				       default="25"
					   label="Resim Genişliği"
					   type="text"
				/>

Dördüncü parametre havadurumu 'resimyukseklik'
Kod:
 <field name="resimyukseklik"
                   default="25"
                  label="Resim Yüksekliği"
                  type="text"
            />
Beşinci parametre 'yaziboyutu'
Kod:
<field name="yaziboyutu"
				       default="2"
					   label="Yazı Boyutu"
                                           type="text"
				/>
Altıncı parametre 'golgerengi'
Kod:
				<field name="golgerengi"
				       default="#DEDEDE"
					   label="Yazı Gölge Rengi"
					   type="color"
				/>

mod_havadurumu.xml dosyamızın yeni hali bu:
Kod:
<?xml version="1.0" encoding="utf-8"?>

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

	<name>Hava Durumu</name> 
	<author>Erdal BAYRAK</author> 
	<creationDate>18.12.2015 08:41:25</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>erdalbayrak1@gmail.com</authorEmail> 
	<authorUrl>http://www.joomlaweb.site</authorUrl> 
	<version>1.0</version>
 	<description>Açılır listeden göstermek istediğiniz kenti seçiniz.</description>
 
	<!--
		If you create new files, remember to list them here, or they
		will not be copied to the module folder during installation!
		Note that the entry point file is marked with the "module"
		attribute.
	-->
	<files>
		<filename module="mod_havadurumu">mod_havadurumu.php</filename>
		<filename>helper.php</filename>
		<filename>index.html</filename>
	</files>
 
	<!--
		Module fields
		for more information about field types, VISIT
		http://docs.joomla.org/Standard_form_field_types
	-->
	<config>
	
		<fields name="params">
           <fieldset name="basic">     
														
<field name="merkez" type="list" default="ISTANBUL" label="Varsayılan Şehir" description="Varsayılan Şehir">
                      <option value="ADANA" >ADANA</option>
                      <option value="ADIYAMAN" >ADIYAMAN</option>
                      <option value="AFYONKARAHISAR" >AFYON</option>
                      <option value="AGRI" >AĞRI</option>
                      <option value="AKSARAY" >AKSARAY</option>
                      <option value="AMASYA" >AMASYA</option>
                      <option value="ANKARA" >ANKARA</option>
                      <option value="ANTALYA" >ANTALYA</option>
                      <option value="ARDAHAN" >ARDAHAN</option>
                      <option value="ARTVIN" >ARTVİN</option>
                      <option value="AYDIN" >AYDIN</option>
                      <option value="BALIKESIR" >BALIKESİR</option>
                      <option value="BARTIN" >BARTIN</option>
                      <option value="BATMAN" >BATMAN</option>
                      <option value="BAYBURT" >BAYBURT</option>
                      <option value="BILECIK" >BİLECİK</option>
                      <option value="BINGOL" >BİNGÖL</option>
                      <option value="BITLIS" >BİTLİS</option>
                      <option value="BOLU" >BOLU</option>
                      <option value="BURDUR" >BURDUR</option>
                      <option value="BURSA" >BURSA</option>
                      <option value="CANAKKALE" >ÇANAKKALE</option>
                      <option value="CANKIRI" >ÇANKIRI</option>
                      <option value="CORUM" >ÇORUM</option>
                      <option value="DENIZLI" >DENİZLİ</option>
                      <option value="DIYARBAKIR" >DİYARBAKIR</option>
                      <option value="DUZCE" >DÜZCE</option>
                      <option value="EDIRNE" >EDİRNE</option>
                      <option value="ELAZIG" >ELAZIĞ</option>
                      <option value="ERZINCAN" >ERZİNCAN</option>
                      <option value="ERZURUM" >ERZURUM</option>
                      <option value="ESKISEHIR" >ESKİŞEHIR</option>
                      <option value="GAZIANTEP" >GAZİANTEP</option>
                      <option value="GIRESUN" >GiRESUN</option>
                      <option value="GUMUSHANE" >GÜMÜŞHANE</option>
                      <option value="HAKKARI" >HAKKARİ</option>
                      <option value="HATAY" >HATAY</option>
                      <option value="IGDIR" >IĞDIR</option>
                      <option value="ISPARTA" >ISPARTA</option>
                      <option value="ISTANBUL" >İSTANBUL</option>
                      <option value="IZMIR" >İZMİR</option>
                      <option value="K.MARAS" >K.MARAŞ</option>
                      <option value="KARABUK" >KARABÜK</option>
                      <option value="KARAMAN" >KARAMAN</option>
                      <option value="KARS" >KARS</option>
                      <option value="KASTAMONU" >KASTAMONU</option>
                      <option value="KAYSERI" >KAYSERİ</option>
                      <option value="KIRIKKALE" >KIRIKKALE</option>
                      <option value="KIRKLARELI" >KIRKLARELİ</option>
                      <option value="KIRSEHIR" >KIRŞEHİR</option>
                      <option value="KILIS" >KİLİS</option>
                      <option value="KOCAELI" >KOCAELİ</option>
                      <option value="KONYA" >KONYA</option>
                      <option value="KUTAHYA" >KÜTAHYA</option>
                      <option value="MALATYA" >MALATYA</option>
                      <option value="MANISA" >MANİSA</option>
                      <option value="MARDIN" >MARDİN</option>
                      <option value="MERSIN" >MERSİN</option>
                      <option value="MUGLA" >MUĞLA</option>
                      <option value="MUS" >MUŞ</option>
                      <option value="NEVSEHIR" >NEVŞEHİR</option>
                      <option value="NIGDE" >NİĞDE</option>
                      <option value="ORDU" >ORDU</option>
                      <option value="OSMANIYE" >OSMANİYE</option>
                      <option value="RIZE" >RİZE</option>
                      <option value="SAKARYA" >SAKARYA</option>
                      <option value="SAMSUN" >SAMSUN</option>
                      <option value="SIIRT" >SİİRT</option>
                      <option value="SINOP" >SİNOP</option>
                      <option value="SIVAS" >SİVAS</option>
                      <option value="SANLIURFA" >ŞANLIURFA</option>
                      <option value="SIRNAK" >ŞIRNAK</option>
                      <option value="TEKIRDAG" >TEKİRDAĞ</option>
                      <option value="TOKAT" >TOKAT</option>
                      <option value="TRABZON" >TRABZON</option>
                      <option value="TUNCELI" >TUNCELİ</option>
                      <option value="USAK" >UŞAK</option>
                      <option value="VAN" >VAN</option>
                      <option value="YALOVA" >YALOVA</option>
                      <option value="YOZGAT" >YOZGAT</option>
                      <option value="ZONGULDAK" >ZONGULDAK</option>
                </field>
				<field name="yazirengi"
				       default="#525252"
					   label="Yazı rengi"
					   type="color"
					   
				/>
				
				<field name="resimgenislik"
				       default="25"
					   label="Resim Genişliği"
					   type="text"
				/>
				<field name="resimyukseklik"
				       default="25"
					   label="Resim Yüksekliği"
					   type="text"
				/>
				
				<field name="yaziboyutu"
				       default="2"
					   label="Yazı Boyutu"
                                           type="text"
				/>
				<field name="golgerengi"
				       default="#DEDEDE"
					   label="Yazı Gölge Rengi"
					   type="color"
				/>				
			</fieldset>
				
			<!-- Joomla's default tag for advanced fields.
				 Uncomment to use. -->
			<!--
				<fieldset name="advanced">
				</fieldset>
			-->
			
			<!-- Your custom fieldset. Uncomment and edit to use.  -->
			<!--
				<fieldset name="myfields" label="My Fields">
				</fieldset>
			-->
			
		</fields>
		
	</config>

</extension>
Yönetim paneli görüntüsünü de verelim


Modülümüz bitti:
 

Ekli dosyalar

  • mynet_tarzi_hava_durumu.jpg
    mynet_tarzi_hava_durumu.jpg
    74.1 KB · Görüntüleme: 1,032
  • modul_olustur.jpg
    modul_olustur.jpg
    98.4 KB · Görüntüleme: 1,030
  • mod_havadurumu.zip
    5.5 KB · Görüntüleme: 24
  • install_icerik.jpg
    install_icerik.jpg
    23.2 KB · Görüntüleme: 1,028
  • mod_havadurumu_panel.jpg
    mod_havadurumu_panel.jpg
    51.7 KB · Görüntüleme: 1,006
  • gorunum.png
    gorunum.png
    162.6 KB · Görüntüleme: 1,007
  • mod_havadurumu.zip
    4 KB · Görüntüleme: 37
Geri
Üst