DLE 19.0 ile birlikte AJAX ve API sistemleri köklü bir değişikliğe uğradı. Artık tüm AJAX istekleri merkezi olarak index.php üzerinden yönetilmektedir.
| Özellik | Eski Yöntem (V18 ve öncesi) | Yeni Yöntem (V19.0+) |
|---|---|---|
| AJAX URL | engine/ajax/controller.php?mod=... | index.php?controller=ajax&mod=... |
| Güvenlik | Dosya bazlı kontroller | Sistem düzeyinde CSRF koruması |
| Antibot | engine/modules/antibot.php | index.php?controller=antibot |
Yeni sistemde AJAX istekleri gönderirken user_hash mutlaka gönderilmelidir. Aksi takdirde sunucu "Hacking Attempt" hatası verecektir.
$.post(dle_root + "index.php?controller=ajax&mod=my_plugin", {
action: 'save',
user_hash: dle_login_hash, // DLE tarafından otomatik tanımlanır
content: 'test'
}, function(data) {
if (data.success) {
DLEPush.success("Başarıyla kaydedildi!");
}
}, "json");
if (!defined('DATALIFEENGINE')) die("Hacking attempt!");
// user_hash kontrolü sistem tarafından otomatik yapılır,
// ancak ek güvenlik için eklenti içinde de kontrol edilebilir:
if ($_REQUEST['user_hash'] == "" OR $_REQUEST['user_hash'] != $dle_login_hash) {
die(json_encode(['error' => 'Geçersiz güvenlik anahtarı']));
}
$action = $_POST['action'];
// İşlemlerinizi burada yapın...
echo json_encode(['success' => true]);
Arayüzde kullanıcıya bilgi vermek için standart alert() yerine modern DLEPush kütüphanesini kullanmalısınız.
DLEPush.success("Mesaj");
Yeşil başarı bildirimi.
DLEPush.error("Hata");
Kırmızı hata bildirimi.
// Uyarı Mesajı (20 saniye görünür kalır)
DLEPush.warning("Dikkatli olun!", "Uyarı", 20000);
// Bilgilendirme
DLEPush.info("Yeni bir mesajınız var.");
defer parametresi ile ekleyin.
const MyPlugin = { ... }; yapısı kullanın.