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:

  1. 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" );
    }
  2. 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" );
    }
  3. Tüm kullanıcı girdilerini doğrulayın ve filtreleyerek XSS ve SQL enjeksiyonlarını önleyin.
  4. 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 <<