Ana sayfada Birden Çok Modül Görüntülemek
Belki de en fazla sorulan ve merak
edilen konulardan biride budur :) İşte o gün geldi :) Artık Php Nuke ana
sayfasında birden çok modüle yer verebileceksiniz. Fakat üzülerek söylemeliyim
ki, bu konu hakkında size hazır bir modül öneremeyeceğim. Aksine yine her
zamanki gibi dosyalarımızın birini açıp diğerini kapatacak ver birinde belli
kodlar üzerinde değişiklik uygulayacağız. Ama burada anlatacağım yol hepsinden
daha zor ve daha karışık. Yani bir miktar ileri düzey diyebiliriz ve ayrıca
okuyup ta anlayamayanlar, anlayıp ta uygulayamayanlar elbet olacaktır. Bu
cümleme kanıp sakın moralinizi bozmayın ve okumayı bırakmayın. İnanın bu türlü
şeyler tekrar tekrar deneyerekten yapılıyor ve öğreniliyor. Elimden geldiğince
sade ve anlaşılır şekilde anlatmaya çalışacağım..Umarım büyük bir çoğunluk
anlayabilip uygulayabilecek. Kim bilir bakarsınız bende böyle bir modül yazıp
işleri çok daha kolaylaştırabilirim :)
İlk önce php nuke dizininde yer alan
index.php dosyamızı herhangi bir editör ile açıyoruz. Bu dosyamızın içerisinde ;
kodunun yer altığı satırı, kendisini arataraktan buluyoruz.
Şimdi ana sayfaya modül yükleyen kodu bulduk. Bir başka deyişle, ana sayfaya
modüllerin yüklenebileceği satır arasını bulduk. Ana sayfamıza aynı anda sırası
ile Topics, Downloads, FAQ modüllerini yerleştirmek istediğimizi düşünelim.
Öncelikle bu modülleri “modules” klasörü altında kopyalayıp farklı bir yere
yapıştıralım (örneğin masaüstü) Arkasından bu yapıştırdıklarımızın klasör
isimlerini sonuna “2” rakamını ekleyelim. Ve son olarak isimlerine ekleme
yaptığımız 3 modülü “modules” klasörü altına tekrar yapıştıralım. Anladığınız
üzere aynı modüllerin bir ikincilerini yarattık. Şimdi yukarıda bulduğumuz kodu
siliyoruz ve yerine alttaki kodları ekliyoruz.
include("modules/Topics2/index.php");
include("modules/Downloads2/index.php");
include("modules/FAQ2/index.php"); |
Gördüğünüz üzere her bir modülü kendi klasörleri altından
ekledik. Her bir modülün giriş (ana) sayfası “index.php” olduğundan dolayı da o
dosyayı seçtik. Şimdi değişiklik yaptığımız dosyamızı kaydedip kapatalım ve
sitemizin adresini tarayıcıya yazıp görüntüleyelim. Ana sayfanıza konu
listelerinin (topics2 modülü) geldiğini göreceksiniz. Fakat eklenmesini
istediğimiz diğer iki modül (downloads2 ve faq2) görünürlerde yok. Peki bunun
sebebi nedir?
*******************************************
Modüller yazılırken başlarına ;
satırı eklenir. Böylelikle sayfamızın kaynağında ilk satırlar
oluşturulur (meta etiketleri, scriptler vb.) Ayrıca “header.php” içerisinde
sayaç çalıştırılır ve ayrıca cookie dosyaları yollanır. Anlayacağınız üzere
görevi büyüktür. Sayfa kaynağı oluşturulurken, yukarıdaki kod bir kez dikkate
alınır. Artı aynısını bir ikincisi dikkate alınmaz.
Ve aynı şekilde modül kaynağında kodlama işlemi bitirileceği zaman da;
dosyası eklenir. Ve bu dosyada sayfanın bittiği anlamına
işarettir. Bu koddan sonra yazılacak yada yer alacak satırlar dikkate alınmaz.
*******************************************
Yukarıdakileri niye anlattım? Buyurun bakalım..
include("modules/Topics2/index.php");
include("modules/Downloads2/index.php");
include("modules/FAQ2/index.php"); |
derken ortaya çıkacak kodların toplamı şu şekilde olacaktır.
(alt taraf sadece örnektir.Gerçek kodlar kullanılmamıştır.)
include("modules/Topics2/index.php");
‘den
include("header.php");
echo "Topics";
include("footer.php"); |
include("modules/Downloads2/index.php"); ‘den
include("header.php");
echo "Downloads";
include("footer.php"); |
include("modules/FAQ2/index.php"); ‘den
include("header.php");
echo "FAQ";
include("footer.php"); |
Kodları bir araya getirirsek;
include("header.php");
echo "Topics";
include("footer.php");
include("header.php");
echo "Downloads";
include("footer.php");
include("header.php");
echo "FAQ";
include("footer.php"); |
Gördüğünüz üzere 3 kez "header.php" ve "footer.php" dosyalarını
ekleme yaptık. Hatırlarsanız ilk "footer.php" den sonraki kodlar derlenmez
demiştim. Yukarıda da ilk "footer.php" den sonra gelen kodlar downloads2 ve faq2
modüllerine aittir. O yüzden onlar ana sayfada görünmez. Bizim amacımız o "header.php"
ve "footer.php" dosyalarını düzene sokmak. Yani doğru kodumuz şöyle olmalıdır ;
include("header.php");
echo "Topics";
echo "Downloads";
echo "FAQ";
include("footer.php"); |
olursa 3 modülde aynı anda ana sayfada görüntülenir.
Topics2 Modülü Değişimi
Bunun için ilk olarak "modules/Topics2/"
dizini altında bulunan “index.php” dosyasını açıyoruz ve bulduğumuz tüm ;
| include("footer.php");
$pagetitle = "- "._ACTIVETOPICS.""; |
kodlarının tümünü siliyoruz. Bu dosyanın başlarında yer alan;
| $module_name = basename(dirname(__FILE__)); |
satırını;
olarak değiştiriyor ve orijinal modülün adını yazıyoruz.
Downloads2 Modülü Değişimi
Şimdi de "modules/Downloads2/" dizini
altında bulunan "index.php" dosyasını açıyoruz ve;
| include("header.php");
$pagetitle = "- "._UDOWNLOADS."";
include("footer.php"); |
kodlarının tümünü bulup siliyoruz. Yine bu dosyanın başlarında
yer alan ;
| $module_name = basename(dirname(__FILE__)); |
satırını;
| $module_name = "Downloads"; |
olarak değiştiriyor ve yine orijinal modül adını yazıyoruz.
FAQ Modülü Değişimi
Bu kez de "modules/FAQ2/" dizini altında
bulunan "index.php" dosyasını açıyoruz ve;
| include("header.php");
$pagetitle = "- $module_name"; |
kodlarının tümünü bulup siliyoruz. Sonrasında;
| $module_name = basename(dirname(__FILE__)); |
satırını;
olarak değiştiriyor ve yine orijinal modül adını yazıyoruz.
Sitemizin ana sayfasını
görüntülediğimizde 3 modülünde arka arkaya yer aldığını göreceksiniz. Evet
burada ana sayfada birden fazla modül yayınlamanın, belki de en uzun, zahmetli,
detaylı yolunu anlattık :D Eğer yukarıda uyguladığım yöntemi anlayabilirseniz,
diğer modülleri ve istediğiniz sırada ana sayfaya yerleştirebilirsiniz. Umarım
bir parçada olsa yardımcı olabilmişimdir.
Kolay Gelsin :)
Bu uygulama Php – nuke 7.3 altında
uygulanmıştır.
Hakan Demiray
hakan.demiray@aktifnuke.com Copyright © PHP Nuke - Themes - Modules - Blocks - Addons - Turkish Nuke Tüm hakları saklıdır. Yayınlanma:: 2005-08-12 (461 okuma) [ Geri Dön ] |