Bildirim Düzeni
Bütün bildirimlerin paylaştığı çerçeveyi ve logoları yöneten dört uç.
Genel Bakış
Her bildirim ortak bir çerçeve içinde gider: üstte bir başlık, ortada şablonun kendi gövdesi, altta bir imza. Bu makale o çerçeveyi ve içindeki logoları yönetir.
Çerçeve dil başına ayrı tutulur, çünkü metni ve yönü dile bağlıdır. Şablon motoru ise kurulum geneli tek bir seçimdir ve değişkenlerin hangi yazımla çözüleceğini belirler.
Yazma çağrısı çerçeveyi kaydetmeden önce denetler: bilinmeyen bir değişken ya da bozuk sözdizimi reddedilir. Böylece bozuk bir çerçeve bütün bildirimleri düşürmez.
Referans
Düzeni Okuma
Bütün bildirimlerin paylaştığı çerçeveyi ve logoları döndürür.
curl 'https://panel.ornek.com/api/v1/admin/notifications/settings' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/notifications/settings', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const { data } = await res.json();
const syntax = data.engine; // degiskenlerin yazimi buna bagli$ch = curl_init('https://panel.ornek.com/api/v1/admin/notifications/settings');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Motor degisirse TUM sablonlardaki degisken yazimi degisir; once hangi motorda oldugunuzu okuyun.
$cfg = Api::Notifications()->GetNotificationSettings()['data'];
$engine = $cfg['engine'];Düzeni Yazma
Şablon motorunu ve çerçeve parçalarını değiştirir.
curl -X PUT 'https://panel.ornek.com/api/v1/admin/notifications/settings' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"engine":"twig","layout":{"en":{"header":"<header></header>","content":"{{ content }}","footer":"<footer></footer>"}}}'const res = await fetch('https://panel.ornek.com/api/v1/admin/notifications/settings', {
method: 'PUT',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
engine: 'twig',
layout: { en: { header, content: '{{ content }}', footer } },
}),
});
if (res.status === 422) showSyntaxError(await res.json());$ch = curl_init('https://panel.ornek.com/api/v1/admin/notifications/settings');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['engine' => 'twig', 'layout' => $layout]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Denetim YALNIZ duzen parcalarina bakar: sablonlarin kendi govdeleri motor degisiminde denetlenmez.
Api::Notifications()->UpdateNotificationSettings([
'engine' => 'twig', 'layout' => $layout,
]);Logo Yükleme
Bildirimlerin üst ya da alt logosunu yükler.
curl -X POST 'https://panel.ornek.com/api/v1/admin/notifications/logos/header' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"file":"data:image/png;base64,iVBORw0KGgo..."}'const res = await fetch(`https://panel.ornek.com/api/v1/admin/notifications/logos/${type}`, {
method: 'POST',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ file: dataUri }),
});
const { data } = await res.json();$uri = 'data:image/png;base64,' . base64_encode(file_get_contents($path));
$ch = curl_init('https://panel.ornek.com/api/v1/admin/notifications/logos/' . $type);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['file' => $uri]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Yeni logo ESKISINI SILER: geri donus yolu yoktur, once mevcut dosyayi indirip saklayin.
$cur = Api::Notifications()->GetNotificationSettings()['data']['logos']['header'] ?? '';
if ($cur) file_put_contents('logo-backup.png', file_get_contents($cur));
Api::Notifications()->UploadNotificationLogo(['type' => 'header', 'file' => $uri]);Logoyu Kaldırma
Üst ya da alt logoyu kaldırır.
curl -X DELETE 'https://panel.ornek.com/api/v1/admin/notifications/logos/header' \
-H "Authorization: Bearer $API_KEY"const res = await fetch(`https://panel.ornek.com/api/v1/admin/notifications/logos/${type}`, {
method: 'DELETE',
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/notifications/logos/' . $type);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Logoyu kaldirmak duzendeki gorsel etiketini KALDIRMAZ: cerceve kirik gorsel gosterebilir.
Api::Notifications()->DeleteNotificationLogo(['type' => 'header']);
// duzendeki <img> satirini da temizleyinTuzaklar
Şablon motoru kurulum genelinde tektir; değiştirmek her bildirimin değişken yazımını değiştirir. Yazma çağrısı yalnız gönderdiğiniz çerçeveyi denetler, şablonların kendi gövdelerini denetlemez. Motoru değiştirmeden önce şablon metinlerinin yeni yazıma uyduğunu kendiniz doğrulayın.
Logo yüklemek eski dosyayı sunucudan kaldırır; bir sürüm geçmişi yoktur. Yanlış bir görsel yüklemek eskisini geri getirilemez biçimde götürür. Yüklemeden önce mevcut logoyu adresinden indirip saklayın.
Logo kaldırma dosyayı ve ayar kaydını siler, ama çerçevedeki görsel etiketini kaldırmaz. Çerçeve o adrese işaret etmeye devam ederse müşteriye giden e-postada kırık bir görsel görünür. Logoyu kaldırdıktan sonra çerçeveyi de düzenleyin.
Çerçeve parçalarını dil başına yazarsınız, ama motor tek bir kurulum ayarıdır. Bir dilin çerçevesini yeni motora göre yazıp diğerlerini eski hâlinde bırakmak, bırakılan dillerde ham değişken metni gösterir. Motoru değiştirirken bütün dilleri birlikte geçirin.
Yazma çağrısı, gövdede gönderdiğiniz her dilin birleşik çerçevesini denetler. Göndermediğiniz diller denetlenmez ve bozuk kalmışlarsa öyle kalırlar. Kurulum genelinde bir doğrulama istiyorsanız bütün dilleri gönderin.
İlgili Makaleler
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.