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.
Önce curl yöntemiyle http://www.mgm.gov.tr/ adresine bağlanacağım.
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.
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.
Mod_havadurumu.php kodlarını kapatalım.
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:
<!-- 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.
İkinci parametre havadurumu 'yazirengi'
Burada type değeri olarak renk seçici "color" atayalım.
Üçüncü parametre havadurumu 'resimgenislik'
Dördüncü parametre havadurumu 'resimyukseklik'
Beşinci parametre 'yaziboyutu'
Altıncı parametre 'golgerengi'
mod_havadurumu.xml dosyamızın yeni hali bu:
Yönetim paneli görüntüsünü de verelim
Modülümüz bitti:
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>
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;
}
?>
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')?>
<?=$Sicaklikgu[1][0]?><?=$Sicaklikge[1][0]?>
</font></center>
Kod:
</body></html>
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>
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>
Burada type değeri olarak renk seçici "color" atayalım.
Kod:
<field name="yazirengi"
default="#525252"
label="Yazı rengi"
type="color"
/>
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"
/>
Kod:
<field name="yaziboyutu"
default="2"
label="Yazı Boyutu"
type="text"
/>
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>
Modülümüz bitti:
Ekli dosyalar
-
mynet_tarzi_hava_durumu.jpg74.1 KB · Görüntüleme: 1,034
-
modul_olustur.jpg98.4 KB · Görüntüleme: 1,032
-
mod_havadurumu.zip5.5 KB · Görüntüleme: 26
-
install_icerik.jpg23.2 KB · Görüntüleme: 1,030
-
mod_havadurumu_panel.jpg51.7 KB · Görüntüleme: 1,008
-
gorunum.png162.6 KB · Görüntüleme: 1,009
-
mod_havadurumu.zip4 KB · Görüntüleme: 39