Yönetim Panelinde Eklenti Bağlama
DataLife Engine, geliştirilen betik değişikliklerinin bağlanması için kullanışlı mekanizmalar sağlar. Bu mekanizmalar, betik dosyalarını düzenlemeden eklentileri bağlamanıza olanak tanıdığı için, betiğin yeni bir sürümüne güncellendikten sonra eklentilerin çalışmasını sağlar.
Yönetim Paneline Eklenti Bağlama
Yönetim Panelinde eklentinizi bağlamak için dosyanızı engine/inc/
klasörüne yerleştirmeniz gerekir. Yalnızca bu klasördeki dosyalar bağlanabilir. Örneğin, dosyanızın adı mymod.php
ve bunu engine/inc/
klasörüne yerleştirdiniz. Bundan sonra, eklentinizi Yönetim Panelinden şu adreste çağırabilir ve erişebilirsiniz:
http://site.ru/admin.php?mod=mymod
Burada mymod
, .php
uzantısı olmayan eklentinizin adıdır. Bağlantı otomatik olarak gerçekleştirilir, betik dosyalarında hiçbir değişiklik gerekmez.
Yönetim Paneli Bölümleri Tablosu
Kullanıcıların eklentinizin adresini tarayıcıda manuel olarak girmesini önlemek ve Yönetim Panelindeki tüm bölüm listesinde erişilebilir olmasını sağlamak için MySQL'de özel bir tablo oluşturulur. Bu tablonun adı: PREFIX_admin_sections
. PREFIX
kurulum betiğiniz tarafından engine/data/dbconfig.php
adresinden okunabilir.
Bu tablo aşağıdaki alanları içerir:
Alan | Açıklama |
---|---|
name |
Eklentinizin adı. Yani, engine/inc/ klasöründen bir .php dosyasıdır, ancak dosya uzantısı olmadan. Örneğin, dosyanızın adı mymod.php ise, bu alana mymod girilmelidir. |
title |
Eklentinizin başlığı. |
descr |
Eklentinizin açıklaması. |
icon |
Modülünüz için yolu olmayan simgenin adını içerir. Simge engine/skins/images/ konumunda bulunmalıdır (gereklidir). Önerilen simge boyutu 70x70 pikseldir. |
allow_groups |
Bu eklentinin izin verildiği gruplar hakkında bilgi içerir. Bu alan aşağıdaki değerleri alabilir: all veya virgüllerle ayrılmış grupların ID'leri. Örneğin: 1,2,3 . all değeri belirtilirse, eklenti Yönetim Paneline erişimi olan tüm kullanıcılar için görüntülenecektir. |
Eklenti Kayıt Örneği
mymod eklentisi hakkında bilgi kaydetmek için sorgu örneği:
INSERT INTO `prefix_admin_sections` (`name`, `title`, `descr`, `icon`, `allow_groups`) VALUES
('mymod', 'Test eklentisinin adı', 'Test eklentisinin açıklaması', 'mymod.png', '1');
Sorgu çalıştırıldıktan sonra, bu eklenti Yönetim Panelinde yalnızca Yöneticiler için listelenecektir.
DİKKAT
Veritabanında gruplar belirtirseniz, bu, diğer gruplardaki kullanıcıların eklentiyi başlatmasını yasaklamaz veya engellemez. Eklentilerinizin kullanıcı gruplarını kendilerinin kontrol etmeleri ve yalnızca izin verilen kullanıcı grupları tarafından başlatılmaları gerekmektedir.
Eklenti Güvenliği
Yönetim panelinde çalışan eklentilerin güvenliği çok önemlidir. Eklentiniz içinde aşağıdaki önlemleri almanız önerilir:
- Eklenti dosyanızın en başında DLE'nin güvenlik kontrollerini dahil edin:
if( !defined( 'DATALIFEENGINE' ) OR !defined( 'LOGGED_IN' ) ) { header( "HTTP/1.1 403 Forbidden" ); header ( 'Location: ../../' ); die( "Err0r" ); }
- Kullanıcının yetki seviyesini her zaman kontrol edin:
if( $member_id['user_group'] != 1 ) { msg( "error", "Erişim Reddedildi", "Bu bölüme erişim izniniz yok" ); }
- Tüm kullanıcı girdilerini doğrulayın ve filtreleyerek XSS ve SQL enjeksiyonlarını önleyin.
- Dosya yükleme işlemlerinde güvenlik kontrollerini uygulayın.
Eklenti Arayüzü Oluşturma
Yönetim panelinde profesyonel görünümlü bir eklenti arayüzü oluşturmak için DLE'nin yerleşik öğelerini kullanabilirsiniz:
// Yönetim paneli echoheader fonksiyonu
echoheader( "module_icon", "Eklenti Başlığı" );
// Uygulama içeriği burada
echo <<