Php-Nuke nedir? Sorular ve cevaplar
PHP-Nuke nedir?
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.
Nuke'de standart olarak hangi dosyalar var ve bunlar ne işe yarar
Nuke'de 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, ve my_header.php dosyaları mevcuttur. Ancak nuke 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.
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.
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. Müşterileriniz bannerlarının istatistiklerine erişmek istediklerinde banners.php?op=login şeklinde müşteri giriş sayfasına ulaşabilirler.
9- admin.php: Bu dosya sitenizin yönetim menüsüne giriş için kullanılır.
10- index.php: index.php dosyası ise sitenizin anasayfasını oluşturur. Bu dosya sitenize link veren siteleri kayıt eder, anasayfadaya 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 önlemeke için Disallow: dosya.php, dizinin indekslenmesini önlemek için ise Disallow: /dizinadi/ şeklinde bir formatta ekleme yapabilirsiniz. Bu dosyanın chmod değeri 666 olmak zorundadır.
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ı nuke'nin 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.
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, downloads.html ş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.
Alıntıdır.