Joomla için modul kodlamak - Bölüm 1 : Basit Moduller

30 Haziran 2014 "Basit bir Joomla modulu yazacağız. Veritabanına bağlanacak, ekranda veritabanından çekilen bilgileri formatlayıp gösterecek. Joomla 1.5 versiyonu için duzenlenmiştir."

joomla 1.5 için module oluşturmak

Basit bir Hello world modulu nasıl yapılır?

A) dosya yapısı:
1) mod_helloworld.php : Bu dosya modulumuzun başlangıç dosyası. Websiteleri için index.php ne ise bu dosyada bizim modul için odur. Herhangib ir kurulum, bir atama, veya veritabanı erişimi için data toplama gibi işlemler veya bu işlemleri çağıracak helper dosyalarının cagrılması hep burada yapılır ayrıca ekran çıktısını hazırlayacak template'in cagrılmasıda buradadır.
2) mod_helloworld.xml : Bu dosya ise modul hakkında bilgi verir. Joomla! installer'a hangi dosyaların kurulacağını söyler. Modul kurulumu için konfigurasyon parametrelerinin oldugu dosyadır.
3) helper.php : Bu dosya asıl işi yapan dosyadır diyebiliriz. Veritabanından bilgileri çeken fonksiyonları burada tutuyoruz.
4) tmpl/default.php : Bu dosyada modul çiin template dosyasıdır. Burada mod_helloworld.php tarafından oluşturulan bilgileri alıp, ekranda görünecek HTML çıktısını sunar. Tasarımla ilgili şeyler , DOM yapısı falan burada belirlenir.

Bizim yapacagımız modulde bu 4 dosyayı oluşturacagız, joomla için kurulumunu yapacagız.

Basit Hello World Modulunu Oluşturmak:
----------------------------------------
En basit anlamda modul 2 adet dosyadan oluşmakta. Bir controller.php dosyası birde tanım ve ayarların yapıldıgı XML dosyası. Öncelikle xml kurulum dosyasını oluşturmamız lazım. Xml dosyasında, modul hakkında genel bir bilgi vereecegiz ve bu bilgi Joomla administration sayfasında çıkan bilgi olacak.

modulumuzun ismi mod_hello_world olsun diyelim, bu durumda xml dosyasının adı şu olmalı:
/modules/mod_hello_world/mod_hello_world.xml

xml dosyasının adı ile modul adının birebir tutması cok önemli. aksi halde joomla kurulumu yapılamaz.

<?xml version="1.0" encoding="utf-8"?>
<install type="module" version="1.5.0">
<!-- Name of the Module -->
<name>Hello World - Hello</name>
<!-- Name of the Author -->
<author>Yazarın Adı Soyadı</author>
<!-- Version Date of the Module -->
<creationDate>2014-06-27</creationDate>
<!-- Copyright information -->
<copyright>Modul yazanın telif haklarını belirten cumle.</copyright>
<!-- License Information -->
<license>GPL 2.0</license>
<!-- Author's email address -->
<authorEmail>yazarin email adresi a@b.com seklinde</authorEmail>
<!-- Author's website -->
<authorUrl>yazarın websitesi www.a.com seklinde</authorUrl>
<!-- Module version number -->
<version>1.0.0</version>
<!-- Description of what the module does -->
<description>Bu modul ogrenme amaclı deneme moduludur</description>
<!-- Listing of all files that should be installed for the module to function -->
<files>
<!-- The "module" attribute signifies that this is the main controller file -->
<filename module="mod_hello_world">mod_hello_world.php</filename>
<filename>index.html</filename>
</files>
<!-- Optional parameters -->
<params />
</install>

XML dosyamızı oluşturduk, şimdi ikinci dosyamız olan controller dosyasınıda aşagıdaki dosya yapısı ve ismi ile olusturalim:
/modules/mod_hello_world/mod_hello_world.php

Tekrar hatırlatalım, dosya isimleri önemlidir. XML dosyasında bu isimlere göre kurmasını istemiştik hatırlarsanız. (yukarda <files> kısmına bakınız)

<?php
//don't allow other scripts to grab and execute our file
defined('_JEXEC') or die('Direct Access to this location is not allowed.');
?>
<p>
Hello World
</p>

son olarak boş bir index.html sayfası hazırlayalım ki dosya yapımızı görmesinler.
/modules/mod_hello_world/index.html

<html><body bgcolor="#FFFFFF"></body></html>

böylece çok basit bir modul oluşturmuş olduk. Şimdi tum bu yaptıklarımızı zipleyip (mod_hello_world klasorunu) joomla administrator sayfasından module zip dosyasını upload edelim. Kurulum kendi kendine gercekleşecektir.

Joomla'da daha detaylı , MVC yapısına uygun modullerde yazılabilir, böylece Template sistemlerini kullanabilirsiniz. Onu da artık bir başka yazıya ekleriz.

Joomla-icin-modul-kodlamak-Bolum-1-Basit-Moduller image

Yazar Hakkında
FatihYILMAZ "Duyurmaya değer bir şey yapmıyor, ya da yaptıkları çok gizli, duyurmak istemiyor." Yazara Ait Diğer Yazılar
İlginizi Çekebilecek Diğer Yazılar
macos memcached kurmak ve php ile memcache baglantisi saglamakmacos icin memcached kurulumu ve php memcache extension ile baglantisini saglamak icin tutorial
laravel 5 - config ayarları olmadan birden çok veritabanına bağlanmaklaravel kullanarak kod tarafında veritabanı baglantılarını oluşturmak için örnek php class.
Bolt CMS (içerik yönetim sistemi) nedir,asıl kurulur? Detaylarla anlatıyorumbasit içerik siteleri için, Bolt CMS 'i anlatıyorum.
MySQL veritabanında para değerlerini hangi kolon tipinde tutmalı?E-commerce türü site yapanlar için özellikle dikkat etmeleri gereken bir konu: mysql için para değerlerini nasıl bir tablo yapısında tutmalı? Kolon tipi ne olmalı?
phantomjs kurulum ve ögrenim notlarıEskiden çok zor olan bir çok şeyi, kolay yoldan yapabilmemizi saglayan phantomjs kurulum ve ögretim notları.
Yorumlar Yorum Ekle
Yorum yazabilmek için, Yeni Kayıt Oluşturun veya Site Girişi Yapın




Tüm Liste »

Son Gönderilen 20 Yazı

cloudflare ve api ile otomatik dns kaydi guncelleme mRemoteNG config dosyası confCons.xml yerini değiştirmek için macos memcached kurmak ve php ile memcache baglantisi saglamak gram altın değeri euro cinsinden nasıl hesaplanır? dolar ve türk lirası ol laravel 5 - config ayarları olmadan birden çok veritabanına bağlanmak Yunan Krizi Son Durum - Maliye Bakanlari Anlaşamadi - Liderler toplantisi iptal 18.06.2014 - 19.06.2015: borsa istanbul, Foreks dolar ve euro için takip notlar nodejs kurulum notları Circle Spike Run - Yeni ücretsiz Android Oyunu opel corsa için bazı kullanışlı ayarlar Tap Cowboy - Ücretsiz Android Mobil Telefon Oyunu - Kovboy Oyunu sevenlere mac os kullanirken ntfs dosya sistemine yazmak TP-LINK modemde port açmak - tum adsl modemlerde gecerli yontem Bolt CMS (içerik yönetim sistemi) nedir,asıl kurulur? Detaylarla anlatıyorum Çalışma günleri 5 günden 4 güne düşürülecek. MySQL veritabanında para değerlerini hangi kolon tipinde tutmalı? Çok kullanılan, işinize yarayacak temel Linux komutları Joomla için modul kodlamak - Bölüm 1 : Basit Moduller phantomjs kurulum ve ögrenim notları Çin malı cep telefonlarına IMEI kopyalama - IMEI Yedekleme

Popüler Yazılar

CNBC-E 'de Twitter Çılgınlığına Katıldı Legend and Killers'in Detayları Belli Oldu Rise of the Godslayer oyuncuları çağırıyor David Cage'in Chronicles Üzüntüsü Call of Duty: Black Ops dan yeni ekran görüntüleri IBM'in Tercihi Firefox "Her Evde 3D TV Olacak" Mafia 2'nin İlk Yapımcı Günlüğü Ortaya Çıktı FIFA Manager 11 Duyuruldu "Blu-ray Kaybedecek" Sin City 2 Baştan Yazılıyor Civilization V Collector's Edition paketi Ölü doğan cep telefonları Crysis 2 Collector's Edition Dragon Age 2 den yeni ekran görüntüleri

En Yeni Videolar

Çin malı cep telefonlarına IMEI kopyalama - IMEI Yedekleme Arch Enemy İstanbulda - 27 Ocak 2012 Karanlık Saat (The Darkest Hour) VİZYONDA! 2012 Eurovision Temsilcimiz CAN BONOMO! Film önerisi: Duplicity - Sahtekarlar Türkçe Adsense Resmi Youtube Kanalı açıldı. Nasıl iPhone kullanarak, windows laptop internete bağlanır? En Populer iPhone Oyunları: Fruit Ninja, Plants vs Zombies, Angry Birds - I ABIT 'den Kol Saati ve Cep Telefonu Bir Arada. RailGun silahları gerçek oluyor. Google Earth 6 duyuruldu, artık ağaçlar bile 3 boyutlu. iPhone ve İnternet Adres Sorunu Crysis 2'ye Yeni Tarih FIFA 11 için Yeni Tanıtım Videosu Yayınlandı Street Fighter ve Tekken Sonunda Bir Araya Geliyor

En Son Yorumlar

» GokhanYILMAZ@22:21: "hey gidi"
» FatihYILMAZ@12:35: "steve jobs öldü belki ama mirası yükselmeye devam ediyor. "
» paranoiahasu@19:19: "Eklenti seçenekleri biraz daha fazla olsa, kullanıcılarının bü..."
» Silphatos@19:02: "güzel olmuş, severim richard abimi. artık şatoya kat çeker para..."
» paranoiahasu@13:28: "beklentilerin gerisinde olan getiriler şirketler için zarar olmuş..."
» CeUn@11:42: "hem "kar" yapıp hem zarar etmek nasıl oluyor acaba.."
» paranoiahasu@16:25: "Core i7 serisinin ısınma sorununa da bir çare bulurlar umarım. S..."
» FatihYILMAZ@14:06: "BP battıkca batıyor be. bu nedir şimdi yani."
» paranoiahasu@02:25: "güçlü işlemci ve ram seçeneği ile bu tür telefonlar teknoloji..."
» paranoiahasu@02:24: "ilginç bir durum aslında. özellikle netbook satışlarının tava..."
» MrHades@12:34: "güzel olacağa benziyor."
» OzanFIRAT@11:49: "yarısı DLC olarak sunulur zaten hehe "
» OzanFIRAT@11:48: "benim 3.5 kiloluk darbeye dayanıksız, hatta taşımaya dayanaksız..."
» paranoiahasu@18:47: "Listede de yok yok maşallah =)"
» paranoiahasu@13:10: "Şu an betayı x1900 gt ekran kartı (256 bit) ve 3 gb ram ile oynuy..."
» FatihYILMAZ@18:02: "apple delisi kuyuya bir taş attı, artık tutabilene aşkolsun. tel..."
» paranoiahasu@13:59: "wave de çok iyi satıyormuş"
» OzanFIRAT@11:36: "herşeyiyle bana SWG'yi hatırlattı, sanırım kasten gelişimleri ..."
» OzanFIRAT@22:33: "heh bende ps3'te infamous oynarken aynı şeyleri hissediyordum :D "
» paranoiahasu@23:21: "ön sipariş linki aradım yazıda bulamadım .."
» paranoiahasu@19:15: "bu resmi uzunca bir süre duvar kağıdı olarak kullanmıştım =)"
» FatihYILMAZ@11:48: "ehe evde x-box'da bunu oynuyorum. Oyunun kendisini tavsiye ederim, ..."
» paranoiahasu@14:33: "Hemen edinmeli bu albümü =)"
» paranoiahasu@02:16: "İnanılmaz şekilde kredi kartımı kabul etmeyen steam yüzünden ..."
» OzanFIRAT@23:36: "haberi bitirmeyi beklemeden, yazarken sabredemeyip Left 4 Dead 2 ve ..."

Evvel Zaman