1. Bu site çerez kullanmaktadır. Siteyi kullanmaya devam etmeniz halinde çerez kullanımı ile ilgili site koşullarını kabul etmiş sayılırsınız. Daha Fazlasını Öğren.
  2. Forum İllegal Uyarısı Forum kuralları gereği forumda video ve illagal paylaşım yapmak yasaktır.Program Arşivimizde ise kısıtlanmış sürüm yada dağıtımı serbest olan (trial - freeware) yazılımlar yayınlayınız..Aksi takdirde mesajlarınız silinecektir..

PHP Nuke Dersleri

Konusu 'webmaster, script, Uygulama,Anlatım' forumundadır ve uydudoktoru tarafından 7 Ekim 2010 başlatılmıştır.

  1. uydudoktoru
    Offline

    uydudoktoru Aktif Üye Yönetici Yönetici

    Katılım:
    13 Haziran 2009
    Mesajlar:
    2.142
    Ödül Puanları:
    38
    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.
     

Sayfayı Paylaş