Bu da eski yazılarımdan biriydi aktifnuke’dayken. Dursun arkadaşımızın aradığı bir yazıymış ve onun için bu yazıyı burada tekrar yayınlıyorum 🙂
Yönetici eklemek istediğinizde bu kişinin yetkilerini, yani hangi modüllere ulaşabileceğini seçebiliyorduk. Fakat çoğumuz bu kısma arzu ettiğimiz modülleri koyamıyorduk. Sonunda 7.5 sürümü ile gelen bir özellikle yeni hazırlanan modüllere bu özelliği kazandırmak çocuk oyuncağı. Evet çocuk oyuncağı! Fakat eski modülleri çevirmek aynı kolaylıkta olsada biraz zaman alan ve biraz sabır isteyen bir şey. Burada size bir modülü 7.5 sistemine çevirmeyi anlatacağım. Bu sayede yönetici yetkileri listesinde bu modülde yer alacak. Ama konuya başlamadan önce eski ve yeni sistem hakkında konuşalım.
Eski (7.4 ve altı) ve Yeni (7.5 ve üstü) sistem farkı
7.5 ile yönetici panelimiz iki kısma ayrıldı. Bunlar “yönetim menüsü” ve “modül yönetimi” olarak , kendi altlarında bazı modülleri topladılar. Biz buna yani yönetici panelinin bir kuralla 2 kısma ayrılmasına 7.5 kuralı diyelim. Bu kurala göre “yönetim menüsü” altında sadece yöneticiye hitap eden ve ziyaretçi yada üyelerin kullanamayacağı modüller toplanıyor. “modül yönetimi” altında ise tam tersi bir koşul geçerli. Peki bu, dizindeki klasörlere nasıl yansıdı?
Bildiğiniz üzere modüllerin admin dosyaları ana dizindeki “admin” klasörü altında, bulunması gereken yerlere göre toplanırlar. 7.5 kuralına göre bundan sonra ana dizindeki bu “admin” klasörü altında sadece “yönetim menüsü” kısmının öğelerine ait dosyalar yer alacaktır. 7.5 sürümünde bu kural bir iki modül ile çiğnense de 7.6 ile başarılı bir şekilde uygulanmıştır. Peki bu klasör altı böyle olacaksa, modüllerin admin dosyaları nereye gidecek diyeceksiniz. Aynı kısma onları ekleyebilirsiniz, hiçbir sorun çıkmaz. Fakat modül yönetimi erişimi “yönetim menüsü” kısmı altında yer alır. Ve asla o şekilde modül yönetici yetki listesinde yer almaz. O yüzden oyunu kurallarıyla oynayacağız. Neyse dediğimiz gibi diğer modüllerin admin dosyaları kendi klasörleri altında yer alan yada oluşturulacak bir “admin” klasörü altında toplanacaktır. İşte bu kadar. Böyle olan ve uygun kodlar kullanılarak hazırlanan modüller “modül yönetimi” altında yer almaktadır. Evet iyi kötü buraya kadar anladığımızı düşünüyorum. Ve geçelim bir uygulamaya.
4nAlbum Version 0.91 modülünü 7.5 sistemine uyarlıyoruz
Niye 4nAlbum modülünü seçtim 🙂 “admin” klasörü altında dosyaları beklenenin dışından yer alan bir modül olduğundan bunu seçtim. Şimdi beklenin dışında ?? diyeceksiniz. Şöyle açıklayayım. Modül hazırlayan arkadaşlar bilirler. “admin/modules” dizini altına modülümüze ait atıyorum “4nalbum.php” adında bir dosya yerleştiririz ve o modülümüzün yönetici modülü oluyor. Ama 4nAlbum ise “admin/modules/4nalbum” şeklinde olup altında da bir dünya dosya bulunmaktadır..Neyse bu bize engel olamayacak tabi..Bu modülü uyarlamayı anlayan arkadaşlar diğer modülleri rahatlıkla uyarlar. Önemli olan şu, unutmayın. “Admin/modules” altında genelde modülün adıyla bir “.php” dosyası yer alır. Normalde biz “admin/modules” klasörü altından onu almalıyız ama 4nalbumde olay yukarı da anlattığım gibi.
Öncelikle modülümüzü kurduk. Ehhh bu kısmı anlatmıyorum. Daha sonra aşağıdaki basamakları gerçekleştiriyoruz.
- “Modules/4nAlbum” dizini altında “admin” adında bir klasör yaratıyoruz…7.5 kuralına göre admin dosyaları bu klasör altında yer almalıydı..
- “admin/case/case.4nalbum.php” , “admin/links/links.4nalbum.php” dosyalarını kesip basamak 1 de oluşturduğumuz “admin” klasörü altına yapıştırıyoruz. Ayrıca ,”admin/modules” altındaki “4nalbum” klasörünü de kesip aynı dizine yapıştırıyoruz. Normalde bu dizin altında modül ismiyle bir klasör değilde dosya olabilir.İşte o zaman o dosyayı alıyoruz.
- Şimdi bu taşımış olduğumuz dosyaların isimleri değiştireceğiz. “case.4nalbum.php” dosyasını “case.php” ve “links.4nalbum.php” dosyasını da “links.php” olarak değiştiriyoruz. İşte en önemli noktalardan biri de bu. 7.5 kuralına göre artık bu klasör altındaki dosyaların başında “case” yada “link” olmayacak. Modül yazmayı bilen arkadaşlar bu ifademi daha iyi anlayacaklardır.
- 7.5 kuralına göre, sürüm 7.5 ve 7.6 lar yönetici paneline eklenecek modülleri şu koşula göre seçer. Eğer “modules/admin/” dizini altıda “index.php” , “case.php” ve “links.php” varsa bu modül “modül yönetimi” kısmı altında yer alabilir. Gördüğünüz üzere koşul, 3 dosyanında kesin olarak olması gerektiğidir. Biz basamak 3 ile bu dosyalardan ikisi olan “case.php” ve “links.php” yi elde ettik. Fakat “index.php” dosyasını nasıl yapacağız? Eğer basamak 2’de klasör değilde dosya kesip almış olsaydık o dosyanın ismini “index.php” yapacaktık. Fakat biz klasör aldık. Ve dizinimizde aranmakta olan “index.php” bulunmamaktadır. Ne yapacağız? Tabi ki kendimiz yaratacağız :)) Hemen “/modules/4nAlbum/admin” altına “index.php” adında dosya yaratın. Dosyanın içeriği ise gerekmez yani boş bir dosya olsun. Şimdi yönetici panelinizi yenileyin. Ne görüyorsunuz :)) Evet 4nalbum “modül yönetimi” altına geçmiş olacaktır. Ayrıca yönetici düzenle bağlantısına tıkladığınızda da, buradaki yetki listesine modülümüzün eklendiğini göreceksiniz. Ama işimiz henüz bitmedi. Zira paneldeki 4nalbum bağlantısına tıkladığınızda hata ile karşılaşacaksınız. Şimdi birkaç değişiklik ile bu hataların üstesinden geleceğiz.
- Öncelikle “case.php” dosyasını açıyoruz ve ;
[php]include(“admin/modules/4nalbum/index.php”);[/php]
satırını;
[php]include(“modules/4nalbum/admin/4nalbum/index.php”);[/php]
olarak değiştiriyoruz. Burada modülün, yönetici modülünü belirttik. Yani yönetici panelinden 4nalbum bağlantısına tıkladığımızda direk bu dizindeki dosya açılacak. Hemen phpnuke yönetici panelinden deneme yapın. Nasıl tıkladığınızda yönetim kısmı açıldı dimi? Fakat bu kezde bağlantıların çalışmadığını göreceksiniz. :)) Onu da yapacağız. - Şimdi de “modules/4nAlbum/” dizinin de yer alan “include-admin.php” dosyasını açıyoruz. Nedeni ise “modules/4nAlbum/admin/4nalbum/index.php” dosyasını bu dosyayı kullanmasıdır. Peki “include-admin.php” ne var. Bu dosyanın içeriğinde admin klasörünün dizini belirtilmiştir. Hemen açalım bu dosyayı.
[php]$adminpath=”admin/modules/4nalbum”;[/php]
Olduğunu göreceksiniz..Halbuki artık modülün admin klasörü o dizinde değil..Yani 7.5 kuralı gereği kendi izinde.
[php]$adminpath = “modules/4nalbum/admin/4nalbum”;[/php]
Yapıyoruz ve artık modülümüzün yönetici kısmı başarılı bir şekilde çalışıyor. 🙂 - Son basamakta ise bloklarımız göz atalım. Açalım hemen “blocks” klasöründeki “block-4nAlbum.php” dosyamızı ..aaa bir bakıyoruz ;
[php]include(“admin/modules/4nalbum/config.php”);[/php]
diyor…Olmaz değiştirdik biz onu :)) Hemen düzeltelim
[php]include(“modules/4nAlbum/admin/4nalbum/config.php”);[/php]
yaptık…Ben denemedim ama illa bloğumuz da çalışacaktır 🙂
Peki nelere dikkat etmeliyiz?
Gördüğünüz üzere uyarlama yaparken ana dizindeki “admin” klasörü altındaki ilgili modülün dosyalarını taşıyoruz. Ve kimi modüllerin ayar dosyalarında “admin” klasörü altındaki modüllerin dizinleri belirtilir. Bu yüzden bu dizin işlemlerine dikkat etmeliyiz. Eğer işlemlerden sonra modül çalışmıyor yada özellikle bağlantılar eksik oluyorsa, ilgili dosyalar altındaki dizin ayarlarını yapmalıyız. Nerden mi bulacaksınız ilgili olan dosyaları? Bilmem! Ben hepsini kendim buldum :)) Teker teker tüm dosyalarında baş satırlarına göz atacağız.
7.5 Kuralı?
Sadece anlatımda sizler için yarattığım yeni bir kural :))
Son Olarak
Arkadaşlar makalelerden kendi sitelerinize alıntı yapmak isteyebilirsiniz..Ama lütfen öncelik olarak site yöneticilerinden yada makaleyi hazırlayanlardan izin alınız. Açıkcası bu konu da katı kurallarımız yok en azından 7.5 kuralı gibi :))