Eklenti Geliştirme ve 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.

Eklentileri Bağlama

Eklentilerinizi bağlamak için aşağıdaki etiketi eklemeniz gerekir:

{include file="engine/modules/mymod.php"}

Burada engine/modules/, eklentinizin dosyasına giden yoldur ve mymod.php 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 bir klasörde de saklayabilirsiniz. Eklentiyi eklerken tek güvenlik kısıtlaması, bu dosyanın klasörü için yazma izinlerinin (CHMOD 777) olmaması gerektiğidir. Ayrıca, eklentileri bağlarken göreli yolları kullanmanızı öneririz. DataLife Engine otomatik olarak göreli yolları algılar ve eklentilerinizi betiğin ayarlarına ve betiğin kurulu olduğu yollara göre bağlar. Böylece, değişiklikleriniz için genel bir kurulum talimatı oluşturabilirsiniz.

Parametrelerle Eklenti Bağlama

Ayrıca, eklentinizin PHP dosyalarını çeşitli parametreler vererek de bağlayabilirsiniz, örneğin:

{include file="engine/modules/mymod.php?param=value1&variable2=value2"}

Bu tür bağlantı özelliklerinin sayesinde, değişikliklerinizi ç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.

Şablon Etiketi Parametreleri

DataLife Engine 8.3'ten itibaren, eklentilere parametre olarak şablon betik etiketlerini belirtebilirsiniz. Örneğin, aşağıdakini tam makale şablonuna eklediğinizde makale kimliğini eklentinize parametre olarak aktarabilirsiniz:

{include file="engine/modules/mymod.php?param={news-id}"}

Not: Aktarılan parametreler GET parametrelerine benzerdir. Bu nedenle, aktarılan etiketleri seçerken GET dizesinin sınırlamalarını dikkate almanız gerekir. Başka bir deyişle, tam makale içeriğini parametre olarak aktaramazsınız.

Özel Bölümler Oluşturma

Ayrıca, tüm haberlerin ve diğer temel bilgilerin görüntülendiği ana bloğu değiştirmek için eklentilerinizi kullanabilirsiniz. Bunun için bu etiketi [aviable=section]text[/aviable] ve [not-aviable=section]text[/not-aviable] etiketleriyle birlikte kullanmalısınız. Etiket açıklaması "Sayfalarda haberlerin görüntülenmesi" bölümündedir. Standart bir bölüm listesi kullanabilir veya tarayıcının URL'sine ileterek kendi web sitesi bölümünüzü oluşturabilirsiniz.

Örneğin, eklentinizden 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 oluşturmak istiyorsunuz. Bunun için, main.tpl'ye aşağıdakileri yazın:

[aviable=faq]{include file="engine/modules/mymod.php"}[/aviable]
[not-aviable=faq]{content}[/not-aviable]

Bu bağlantıdan sonra, http://site.ru/index.php?do=faq adresine erişirken haberler yerine eklentinizden bölümünüz görüntülenecektir.

Basit Bir Eklenti Örneği

Eklentilerinizin çalışması ve bilgilerin bu etiketi yerleştirdiğiniz yerde görüntülenmesi için sadece 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 mymod.php oluşturalım:

<?php

echo "Test eklentisi";

?>

Bir şablona eklediğiniz yerde aşağıdaki metin görünecektir: Test eklentisi

Kullanılabilir DLE Değişkenleri ve Sınıfları

Değişken/Sınıf Açıklama
$is_logged Ziyaretçinin yetkili bir kullanıcı mı yoksa bir misafir mi olduğu bilgisini içerir. true veya false olabilir.
$member_id Profildeki tüm bilgileri dahil olmak üzere yetkili kullanıcı hakkında bilgi içeren bir dizi 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 betik 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çinin görüntülediği kategorinin kimliğini içerir.
$_TIME Betik ayarlarındaki sapma ayarlarıyla 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 bilgisini içerir. true veya false olabilir.
$dle_module Kullanıcının görüntülediği site bölümü hakkında bilgi veya bir tarayıcının URL çubuğundan do değişkeninin bilgisini içerir.

Uyarı

Modülünüz bu değişkenlerden yalnızca veri okumalıdır. Değişkenlerin değerlerinde yapılan değişiklikler, betiğin standart özelliklerinin arızalanmasına ve daha sonra yanlış çalışmasına neden olacaktır.