PHPNuke php ile yazılmış
bir içerik yönetim sistemidir diyebiliriz. PHPNuke'nin çalışması
için hosting firmanızın php ve mysql desteği sunması gerekir. Ama bu
demek değildir ki PHPNuke sadece mysql ile çalışır. PHPNuke mysql
dışında, mSQL, PostreSQL, PostreSQL_local, ODBC, ODBC_Adabas,
Interbase ve Sybase veritabanları ile çalışır. Ama gerek hız gerek
de php ile uyumu açısından MySQL veritabanı tercih edilir.
PHPNuke nin standart
klasörleri vardır. Bunlar; admin, language, blocks, modules,
includes, images ve themes klasörleridir. Bu klasörlerin ne için
kullanıldığına kısaca değinelim.
1- admin:
Bu klasörün içerisinde links, case, language ve modules
klasörleri mevcuttur. Admin klasörü yönetim paneli için gerekli bir
paneldir. Yönetim ile ilgili dosyalar burada mevcuttur. links
klasörü yönetim menüsünde link oluşmasına yarar. Örneğin links.newsletter.php
dosyası yönetim menüsünde Newsletter adında bir link oluşmasını
sağlar. language içerisindeki dosyalar ise yönetim menüsü dil
dosyalarını içerir.
2- language:
Bu klasörün içerisindeki dosyalar sitenin dil dosyalarıdır.
Dikkat ederseniz dil dosyaları lang- ile başlar. Bu nukenin standart
bir uygulamasıdır. Örneğin Türkçe dilinin dosyası lang-turkish.php,
İngilizce dilinin dosyası lang-english.php dir. Dil dosyaları
olmazsa nuke hata verir.
3- blocks:
Bu klasörün içerisinde site tasarımının solunda, sağında ve
ortasında görülen blokların dosyaları mevcuttur. Bütün bloklar siz
aktif etmediğiniz sürece görülmez.
4- modules:
Bu klasörde sitenin bölümlerini oluşturan klasörler
mevcuttur. Her klasör bir bölüm için kullanılır. Örneğin Downloads
klasörü Download bölümünün oluşmasını sağlar.
5- includes:
Bu klasörde phpnukenin yukarıda saydığım veritabanları ile
çalışması için sql_layer.php dosyası, istatistik için counter.php,
sitenizin meta etiketlerini yazabileceğiniz meta.php ve çeşitli
amaçlar için yazılmış dosyalar mevcuttur.
6- images:
Bu klasörde ise sitenin nerdeyse bütün grafikleri saklanır.
Örneğin konu grafikleri, yönetim menüsü grafikleri, dil grafikleri,
bölümler grafikleri, haberler için gerekli grafikler...vb.
7- themes:
Bu klasörde sitenin görünümü için gerekli temalar bulunur.
Her görünüm ayrı bir klasör içerisinde olur. Temalarla sitenizin
görünümünü değiştirebilirsiniz. Böylece siteye yeni bir görünüm
kazandırabilirsiniz.
8- db:
Bu klasör PHPNuke 6.5 ile hayatımıza girdi. Adından da anlaşılacağı
gibi veritabanı ile ilgili bazı dosyalar mevcut. Ellenmemesi ve
değiştirilmemesi gereken bir klasördür.
PHPNukenin klasörlerini
tanıdıktan sonra şimdi de "Blok nedir? Modül nedir? Addon nedir?
Tema nedir?" gibi konularda bilgiler sunalım.
Nukede standart olarak hangi dosyalar var ve bunlar ne işe yarar?
Şimdi bu sorunun cevabını verelim.
Nukede standart olarak, ana klasörde config.php, header.php,
footer.php, modules.php, mainfile.php, backend.php, auth.php,
banners.php, admin.php, index.php, ultramode.txt ve robots.txt
dosyaları mevcuttur. includes klasöründe counter.php,
meta.php, sql_layer.php dosyaları mevcuttur. Ancak PHPNuke
6.5 ile bu klasöre yeni dosyalar eklenmiştir. Onlarla bir işlem
yapmayacağınız için onları bilmenize gerek yok.
Şimdi bu dosyaların işlevlerini tanıyalım.
1- config.php:
Bu dosyada veritabanına bağlantı için gerekli bilgiler yer
almaktadır. Bu değerleri siz veritabanı bilgilerinize göre
değiştirmelisiniz. $dbhost için veritabanı sunucunuzun adresini
girmelisiniz. Bu genelde localhost. Ama buraya eğer veritabanı
sunucunuz başka bir yerde ise oranın veritabanı sunucu adresini
girmelisiniz. Örnek vermek gerekirse; veritabanınızın adresi db.siteismi.com
ise buraya onu yazmalısınız. Ancak bir port adresi varsa o zaman
yazacağınız şekil db.siteismi.com:8080 gibidir. Yani port
numarasından önce : ve sonra da post numarasını yazmalısınız. Eğer
size Ip adresi verilmişse o zaman buraya IP adresini yazmalısınız.
Örneğin; 65.126.35.12 gibi. Diğer bir alan ise $dbuname. Buraya da
veritabanına bağlantı için server tarafından size verilmiş olan yada
sizin oluşturduğunuz bir kullanıcı adı eklenmeli. Örneğin siteis_kullanici
gibi. $dbpass ise veritabanına bağlantı için kullandığınız kullanıcı
adına ait şifrenizin girileceği yerdir. $dbname alanı ise veritabanı
adını yazacağınız yerdir. diğer alanları olduğu gibi
bırakabilirsiniz. Yalnız nuke 6.5 ile bu dosyaya yeni bir alan
eklendi. $sitekey. Bu alanın karşındaki değeri değiştirmeniz
gerekli. Ne yazacağınız ise önemli değil. Oradaki gibi canınız ne
isterse onu yazabilirsiniz.
2- header.php:
Bu dosyada html başlangıç satırları yer alır. Örneğin
<html><head><title> bilgileri ve style dosyasının nereden
yükleneceği burada tanımlıdır. Bir değişiklik gerekmez.
3- footer.php:
Bu dosyada da html bitiş satırları yer alır. Örneğin
</body></html> burada tanımlıdır. Herhangi değişiklik gerekmez.
4- modules.php:
Bu dosya ise modülleri çağırmak için kullanılır. Modüllere
erişim kısıtlaması yaptığınızda da bu dosya görev yapar aynı
şekilde. Modüllere nasıl link verilir? Modüllere modules.php?name=Moduladi
şeklinde link vermeniz gerekir. Aksi halde çalışmayacaktır. Eğer
modülün içinde bir dosya varsa bu dosya ise modules.php?name=Moduladi&file=dosya
şeklinde link verilir. Dosya uzantısı normalde php olmasına karşın
dosyaya link verirken php uzantısı yazılmaz. Nuke bunu otomatikmen
anlayacaktır. Uzantısı php olmayan dosyalar ise çağrılamaz. Onlara
normal şekilde link verilir. Yani modülün içinde bilgi.html şeklinde
bir dosya varsa onu çağırmak için modules.php?name=Moduladi&file=bilgi
şeklinde link verilemez. Modules/Moduladi/bilgi.html şeklinde
standart html bilgisi ile link verilir.
5- mainfile.php:
Bu dosya olmazsa olmaz bir dosyadır. Nukenin herşeyi
buradadır. Yani güvenlik için kod ayıklama, modüllerin ve sitenin
dil dosyalarını çağırma, sağ, sol ve orta bloklar, sitenin config
bilgileri, modüllerdeki aktif ve pasiflik, admin bekleyen içerik
bloğu, online olanların bilgileri, birinin admin mi, user mı, yoksa
misafir mi olduğu, dil seçimi, tarih formatı, üye özel bloğu,
konuların çağrılması, login bloğu, programlı haberlerin
gösterilmesi, herkese açık mesajların yayınlanması gibi bir çok
özellik bu dosya sayesinde olur. Daha yaptığı şey çok aslında.
Bunlar en önemli olanlarıdır.
6- backend.php:
Bu dosya ne işe yarıyor diye birçoğunuz merak etmiştir. Bu
dosya başka bir sitenin sizin sitede yayınlanan haberlerinizi kendi
sitelerinde blokta göstermesini sağlar. Bu konuya ilerde ayrıntılı
olarak değineceğiz.
7- auth.php:
Size bu dosyanın işlevini şöyle anlatayım. Bir internet
cafedesiniz. Admin olarak siteye girdiniz diyelim. Ama siz admin
olduktan sonra birkaç işlem yapıp çıkış yaptınız. Ama browserınızı
kapatmadınız. Acilen işiniz çıktı ve öylece bıraktınız. Sizden sonra
oturan kişi browser kapatılmadığı için sizin admin.phpnizi fark etti
ve girmek istedi. Bu durumda bu kişinin karşına bir göz resmi ve get
out! yazısı çıkacaktır. İşte bu olayı kontrol eden dosya bu
dosyadır. Admin sayfanızı korumak için konulmuştur. Bu dosya
içeriği yeni sürümlerde admin.php dosyasının içine eklenmiştir.
8- banners.php:
Sitenizde banner yayınlamak ve müşterilerinizin bannerları
ile ilgili istatistiklere erişebileceği bir dosyadır. Bu bannerları
siteniz yönetim panelinden ayarlıyorsunuz. Bu dosya yeni sürümlerde
kaldırılmış, içeriği daha da geliştirilerek mainfile.php dosyasına
eklenmiştir. Müşterileriniz artık Advertising modülü sayesinde
istatistiklerine bakabilirler.
9- admin.php:
Bu dosya sitenizin yönetim menüsüne giriş için kullanılır.
Bu dosyanın adı yeni sürümlerde değiştirilebilir şekildedir.
10- index.php:
index.php dosyası ise sitenizin anasayfasını oluşturur. Bu
dosya sitenize link veren siteleri kayıt eder, anasayfada yüklü
modülü çağırır.
11- ultramode.txt:
Eğer yönetim menüsü/seçenekler sayfasından ultramode
etkinleştirilsin seçeneği evet ise işe yarar. Bu dosyaya
etkinleştirdiğiniz anda yeni eklenen haberler bir formatta kayıt
edilir. Bu dosya sitenizin haberlerini kendi sitesinde yayınlamak
isteyenler için bir kaynak oluşturur ve bir script ile isteyenler bu
dosyadaki verileri okutup sitenizdeki haberleri kendi sitesinde
yayınlayabilir. Bu dosyanın chmod değeri 666 olmak zorundadır.
12- robots.txt:
Bu dosya arama motorlarının robotlarının hangi dosya ve
dizinleri indeksleyeceğini belirler. Bu dosya standart olarak admin.php
dosyasının, admin, language, images, modules, themes, blocks ve
includes klasörlerinin indekslenmeyeceği bilgisini içerir. Bu
dosyaya sizde oluşturduğunuz dizin ve dosyaların indekslenmemesini
istiyorsanız ekleme yapabilirsiniz. İndeks engelmeme formatı şu
şekildedir. Dosyanın endekslenmesini önlemek için Disallow:
dosya.php, dizinin indekslenmesini önlemek için ise Disallow:
/dizinadi/ şeklinde bir formatta ekleme yapabilirsiniz.
13- includes/counter.php:
Bu dosyanın amacı hit bilgisini ve istatistik bilgilerini
veritabanına kaydetmektir. Bu istatistiki bilgiler; işletim sistemi
ve browser tipi ile sınırlıdır.
14- includes/meta.php:
Arama motorlarının robotları bu dosyada yazılan bilgiler
ışığında sitenizi indekslerler. Yani burada sitenizin meta
etiketleri tanımlanır.
15- includes/sql_layer.php:
Bu dosyanın amacı nukenin MySQL dışındaki veritabanı
sunucuları ile çalışması içindir. Nuke MySQL dışında mSQL,
PostgreSQL, PostgreSQL_local, ODBC, ODBC_Adabas, Interbase ve Sybase
veritabanı sunucları ile sağlıklı bir şekilde çalışır. İşte bu olayı
sql_layer.php dosyası sağlar.
16- includes/my_header.php:
Bu dosya normalde boştur. Diyelim ki, popup pencere
açacaksınız. Ama bunun için <head> ve </head> arasına kod eklemeniz
gerekli. İşte bu durumda <head> ile </head> arasına eklenecek kodu
bu dosyaya ekleyebilirsiniz.
PHPNukenin standart dosyalarını tanıdık. Şimdi de "Blok nedir? Modül
nedir? Addon nedir? Tema nedir?" gibi konularda bilgiler sunalım.
Blok nedir?
Blok dediğimiz olayı basitçe, sitenizin sol ve sağ tarafında - ve
hatta orta alanda - gördüğümüz görünümler olarak tanımlayabiliriz.
Yani sitenizin sol tarafında gördüğünüz modules başlıklı alan
aslında bir bloktur. Blokların içeriğini bloğun dosyası, başka bir
siteden veri yada veritabanına girilmiş bilgiler oluşturur. Blok
yönetiminzde bu konuya detaylı olarak değineceğiz. NOT: Blok
dosyaları anadizindeki blocks klasörü içerisine koyulmalıdır.
Modül nedir?
Modül, basitçe sitemizin sayfalarını oluşturan dosyalar olarak
tanımlanabilir. Örneğin, Downloads modülü sitemizin download
sayfamızı, Feedback modülü ise sitemizin iletişim formu sayfamızı
oluşturur. Başta da söylediğim gibi modülleri modules/Moduladi/
şeklinde çağıramayız. Modülleri çağırmak için modules.php dosyasını
kullanmamız gerekir. Örneğin Downloads modülünü çağırmak için,
modules.php?name=Downloads şeklinde bir çağırım uygulayabiliriz.
Diyelim ki, Email adında modülümüz var. Bu modüle modules.php?name=Email
şeklinde link vermemiz gerekir. Bu modülün içinde yeni.php adında
yeni kayıt için bir dosyamız varsa bu dosyaya da, modules.php?name=Email&file=yeni
şeklinde link vermemiz gerekli. Burada dikkat etmeniz gereken nokta
modülün klasörünün adını doğru yazmamız gerekli. Eğer modülün klasör
adı email ise mutlaka çağırırken email şeklinde çağırmalıyız. Asla
Email yada EMAIL şeklinde çağıramayız. Bu son söylediğim internet
ortamında geçerlidir. NOT: Modüller anadizindeki modules klasörü
içerisine koyulmalıdır.
Addon nedir?
Addon'a Türkçe olarak eklenti diyebiliriz. Bir eklenti bir modüle
ilave özellik kazandırabilir, yönetim sayfasına yeni bir özellik
ekleyebilir yada başlı başına phpnuke'ye adepte edilmiş bir sistem
olabilir.
Tema nedir?
Temalar ise sitemizin nasıl görüneceğini belirleyen paketlerdir.
Temalar sayesinde sitemizin görünümünü istediğimiz an
değiştirebiliriz. Temaları kendiniz yazabileceğiniz gibi hazır
olarak sunulmuş olanları da düzenleyerek kullanabilirsiniz. NOT:
Temalar anadizindeki themes klasörü içerisine
koyulmalıdır.