DataLife Engine, geliştirilen script modifikasyonlarının bağlantısı için uygun mekanizmalar sağlar. Bu mekanizmalar, script dosyalarını düzenlemeden eklentileri bağlamanıza izin verdiği için, script'in yeni bir sürümüne güncellendikten sonra eklentilerin çalışmasını sağlar. Eklentilerinizi bağlamak için aşağıdaki etiketi eklemeniz gerekir:
{include file="engine/modules/mymod.php"}
Burada engine/modules/
eklentinizin dosya yolu, mymod.php
ise bağlanan dosyanın adıdır. DataLife Engine'in standart eklenti dosyaları bu klasörde bulunur ve bu klasörü kullanmanızı öneririz, ancak bu zorunlu değildir ve dosyayı sunucudaki başka herhangi bir klasörde saklayabilirsiniz. Eklentiyi eklerken tek güvenlik kısıtlaması, bu dosyanın klasörü için yazma izinlerinin (CHMOD 777) olmamasıdır. Ayrıca eklentileri bağlarken göreceli yollar kullanmanızı öneririz. DataLife Engine, göreceli yolları otomatik olarak algılar ve eklentilerinizi script'in ayarlarına ve script'in kurulu olduğu yollara göre bağlar. Böylece, modifikasyonlarınız için genel bir kurulum talimatı oluşturabilirsiniz.
Eklentilere Parametre Gönderme
Ayrıca, eklentinizin PHP dosyalarını onlara çeşitli parametreler vererek de bağlayabilirsiniz, örneğin:
{include file="engine/modules/mymod.php?param=deger1°isken2=deger2"}
Bu tür bağlantı özellikleri sayesinde, modifikasyonlarınızı çok işlevli hale getirebilirsiniz. Çeşitli bağlantılarda çeşitli roller ve işlevler gerçekleştirebilirler. Aktarılan değişkenler, eklentinizde sırasıyla $param
ve $variable2
olarak kullanılabilir.
DataLife Engine 8.3'ten başlayarak, eklentilere parametre olarak bir şablon script etiketleri belirleyebilirsiniz. Örneğin, tam makale şablonuna şunları ekleyerek makale ID'sini eklentinize parametre olarak aktarabilirsiniz: {include file="engine/modules/mymod.php?param={news-id}"}
. Not: Aktarılan parametreler GET parametrelerine benzer. Bu nedenle, aktarılan etiketleri seçerken GET dizesinin sınırlamalarını göz önünde bulundurmalısınız. Başka bir deyişle, tam makalenin içeriğini bir parametre olarak geçiremezsiniz.
Ana İçerik Bloğunu Değiştirme
Ayrıca eklentilerinizi, tüm haberlerin ve diğer temel bilgilerin görüntülendiği ana bloğu değiştirmek için kullanabilirsiniz. Bunun için bu etiketi [available=bölüm]metin[/available]
ve [not-available=bölüm]metin[/not-available]
ile birlikte kullanmalısınız. Bu etiketlerin açıklaması "Sayfalarda haber görüntüleme" bölümündedir. Standart bölüm listesini kullanabilir veya tarayıcının URL'sine geçirerek web sitesinin kendi bölümünü oluşturabilirsiniz. Örneğin, eklentinizden gelen bilgileri görüntülemek için web sitesinin standart bölümlerine kendi bölümünüzü eklemek istiyorsunuz. Diyelim ki bir SSS bölümü oluşturmak istiyorsunuz. Bunun için main.tpl
dosyasına şunları yazın:
[available=faq]{include file="engine/modules/mymod.php"}[/available]
[not-available=faq]{content}[/not-available]
Bu bağlantıdan sonra, http://dlehub.com.tr/index.php?do=faq
adresine erişildiğinde haberler yerine eklentinizden gelen bölümünüz görüntülenecektir.
Basit Eklenti Örneği
Eklentilerinizin çalışması ve bu etiketi yerleştirdiğiniz bir yerde bilgilerin görüntülenmesi için tek bir şey gereklidir. Bilgiler, echo
PHP fonksiyonu kullanılarak görüntülenmelidir. Basit bir eklenti ve bilgi çıktısı örneğini ele alalım. Aşağıdaki içeriğe sahip bir mymod.php
oluşturalım:
<?php
echo "Test eklentisi";
?>
Şablona eklediğiniz yerde şu metin görünecektir: Test eklentisi
Kullanılabilir DLE Değişkenleri ve Sınıfları
Eklentinizde, bir bildirim olmadan kullanabileceğiniz DLE değişkenleri ve sınıflarının listesi:
$is_logged
- Ziyaretçinin yetkili bir kullanıcı mı yoksa misafir mi olduğu bilgisini içerir.true
veyafalse
olabilir.$member_id
- Yetkili kullanıcı hakkında, profilindeki tüm bilgileri de içeren bir dizi bilgi içerir.$db
- Veritabanı ile çalışmak için DLE sınıfı.$tpl
- Şablonlarla çalışmak için DLE sınıfı.$cat_info
- Web sitesindeki tüm kategoriler hakkında bilgi içeren dizi.$config
- Tüm script ayarları hakkında bilgi içeren dizi.$user_group
- Tüm kullanıcı grupları ve ayarları hakkında bilgi içeren dizi.$category_id
- Ziyaretçi tarafından görüntülenen kategorinin ID'sini içerir.$_TIME
- Script ayarlarınızdaki sapma ayarlarıyla birlikte UNIX formatında geçerli zamanı içerir.$lang
- Dil paketinin metnini içeren dizi.$smartphone_detected
- Kullanıcının web sitesini bir akıllı telefondan mı yoksa standart bir tarayıcıdan mı görüntülediği hakkında bilgi içerir.true
veyafalse
olabilir.$dle_module
- Kullanıcının görüntülediği sitenin bölümü veya tarayıcının URL çubuğundan gelendo
değişkeninin bilgisi hakkında bilgi içerir.