Ana Sayfa Slaytları
Ana sayfa slider slaytlarını, görsellerini ve videolarını yöneten sekiz uç.
Genel Bakış
Slaytlar ana sayfanın üstündeki döner alanı besler. Her slaytın bir ana görseli vardır ve bu görsel zorunludur; metinler, bağlantı ve video isteğe bağlıdır.
Metinler dil başına tutulur: başlık, açıklama ve bağlantı her dilde ayrı yaşar. Bir dilde metin bırakmazsanız slayt orada sessizce yalnız görselden ibaret kalır.
Görsel ve video için ayrı uçlar vardır. Görsel her zaman bulunur; video isteğe bağlı bir katmandır ve kaldırıldığında slayt görseline geri döner.
Referans
Slaytları Listeleme
Ana sayfa slider slaytlarını döndürür.
curl 'https://panel.ornek.com/api/v1/admin/website/slides' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/website/slides', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/website/slides');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Liste DURUMU ve SIRAYI tasimaz: hangi slaytin yayinda oldugunu detaydan okuyun.
$slides = Api::Website()->GetSlides()['data'];Slayt Detayı
Tek bir slaytı metinleri, görseli ve videosuyla döndürür.
curl 'https://panel.ornek.com/api/v1/admin/website/slides/2' \
-H "Authorization: Bearer $API_KEY"const res = await fetch(`https://panel.ornek.com/api/v1/admin/website/slides/${id}`, {
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/website/slides/' . $id);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Video alani BOS gelebilir; okumadan once varligini sinayin.
$slide = Api::Website()->GetSlide(['id' => $id])['data'];
$clip = $slide['video']['url'] ?? null;Slayt Oluşturma
Ana sayfa slider'ına yeni bir slayt ekler.
curl -X POST 'https://panel.ornek.com/api/v1/admin/website/slides' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"image":"https://ornek.com/slayt.jpg","languages":{"tr":{"title":"Hos geldiniz"}}}'const res = await fetch('https://panel.ornek.com/api/v1/admin/website/slides', {
method: 'POST',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
image: 'https://example.com/slide.jpg',
languages: { en: { title: 'Welcome', link: 'https://example.com/' } },
}),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/website/slides');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'image' => 'https://example.com/slide.jpg',
'languages' => ['en' => ['title' => 'Welcome', 'link' => 'https://example.com/']],
]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Slayt ACIK dogar ve ana sayfaya hemen girer; hazir degilse durumu kapali gonderin.
Api::Website()->CreateSlide([
'image' => $data,
'status' => 'inactive',
]);Slaytı Güncelleme
Slaytın durumunu, sırasını ve metinlerini değiştirir.
curl -X PATCH 'https://panel.ornek.com/api/v1/admin/website/slides/2' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"status":"inactive","rank":1}'const res = await fetch(`https://panel.ornek.com/api/v1/admin/website/slides/${id}`, {
method: 'PATCH',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ status: 'inactive', rank: 1 }),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/website/slides/' . $id);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PATCH',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['status' => 'inactive', 'rank' => 1]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Sira numarasi baska slaytlari OTELEMEZ; ayni sayiyi iki slayta verirseniz sira belirsizlesir.
foreach ($order as $i => $slideId)
Api::Website()->UpdateSlide(['id' => $slideId, 'rank' => $i]);Slaytı Silme
Slaytı, görselini ve videosunu kaldırır.
curl -X DELETE 'https://panel.ornek.com/api/v1/admin/website/slides/2' \
-H "Authorization: Bearer $API_KEY"const res = await fetch(`https://panel.ornek.com/api/v1/admin/website/slides/${id}`, {
method: 'DELETE',
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/website/slides/' . $id);
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);// Mevsimlik bir slayti silmek yerine DURUMU kapatin: gorsel ve metinler durur.
Api::Website()->UpdateSlide(['id' => $id, 'status' => 'inactive']);Slayt Görselini Değiştirme
Slaytın ana görselini yenisiyle değiştirir.
curl -X PUT 'https://panel.ornek.com/api/v1/admin/website/slides/2/image' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"image":"https://ornek.com/yeni.jpg"}'const res = await fetch(`https://panel.ornek.com/api/v1/admin/website/slides/${id}/image`, {
method: 'PUT',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ image: 'https://example.com/new.jpg' }),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/website/slides/' . $id . '/image');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['image' => 'https://example.com/new.jpg']),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Ayni isi guncelleme cagrisi da yapar; ayri uc yalniz gorseli degistirmek icindir.
Api::Website()->SetSlideImage(['id' => $id, 'image' => $data]);Slayt Videosu Atama
Slayta arka plan videosu atar.
curl -X PUT 'https://panel.ornek.com/api/v1/admin/website/slides/2/video' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"video":"https://ornek.com/klip.mp4","video_duration":12}'const res = await fetch(`https://panel.ornek.com/api/v1/admin/website/slides/${id}/video`, {
method: 'PUT',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
video: 'https://example.com/clip.mp4',
video_duration: 12,
}),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/website/slides/' . $id . '/video');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'video' => 'https://example.com/clip.mp4',
'video_duration' => 12,
]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Sureyi VERMEZSENIZ slider gecisi videoyla uyusmaz; saniyeyi birlikte gonderin.
Api::Website()->SetSlideVideo([
'id' => $id, 'video' => $data, 'video_duration' => 12,
]);Slayt Videosunu Kaldırma
Slaytın videosunu kaldırır ve görseline geri döner.
curl -X DELETE 'https://panel.ornek.com/api/v1/admin/website/slides/2/video' \
-H "Authorization: Bearer $API_KEY"const res = await fetch(`https://panel.ornek.com/api/v1/admin/website/slides/${id}/video`, {
method: 'DELETE',
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/website/slides/' . $id . '/video');
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);// Videosu olmayan slaytta cagri SESSIZCE gecer; once kontrol etmeye gerek yok.
Api::Website()->DeleteSlideVideo(['id' => $id]);Tuzaklar
Durum alanını göndermezseniz slayt açık oluşur ve ziyaretçiler onu o an görmeye başlar. Ana sayfa sitenin en görünür yeridir; hazırlık aşamasındaki bir slaytı kapalı oluşturup metinleri tamamladıktan sonra açın.
Listeleme ucu numarayı, başlığı, bağlantıyı ve tarihi verir; durum ve sıra alanları yoktur. Yani listeden hangi slaytın yayında olduğunu ya da hangi sırayla göründüklerini anlayamazsınız. Bu bilgi için her slaytı detay ucundan okuyun; slayt sayısı genelde azdır.
Bir slayta sıra numarası vermek diğerlerini kaydırmaz. İki slayta aynı sayıyı verirseniz hangisinin önce geleceği belirsizleşir ve sıralama sayfa yenilendikçe değişebilir. Sırayı yeniden düzenlerken hepsine sırayla artan numaralar yazın.
Slider bir sonraki slayta ne zaman geçeceğini verdiğiniz süreye göre ayarlar. Video yükleyip süreyi göndermezseniz geçiş videoyla uyuşmaz: klip yarıda kesilir ya da bittikten sonra donuk bir kare kalır. Süreyi videoyla birlikte gönderin.
Videonun kaldırma ucu vardır, görselin yoktur. Ana görsel slaytın var olma şartıdır: değiştirebilirsiniz ama boş bırakamazsınız. Görselden vazgeçmek istiyorsanız yapılacak şey slaytı silmektir; slaytı silmek görselini ve videosunu da götürür.
İ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.