Özel tarih ve günde div'in aktif olması
Merhabalar,
ALışveriş sitem için örneğin 27 Ekim ayı ve gününe gelindiğine otomatik olarak çalıştırak istediğim bir div'i aktif etmesini isteyeceğim. Nasıl yapabiliriz ?
Diyelim ki PHP ile şu şekilde tarihleri tutuyorsunuz:
$activeDates = [
'10-29',
'21-1',
'4-23',
'5-19',
];
Şimdi bugünün yukarıdaki tarihlerden biri olup olmadığını bulalım.
// Önce bugünün tarihini alalım:
$today = date("m-d");
// Henüz kontrol sağlamadan önce, bugünün aktif gün olup olmadığını tutacak değişkene false verelim:
$isTodayActive = false;
// Şimdi tüm aktif günlere tek tek bakmak için bir döngü oluşturalım:
foreach($activeDates as $date) {
// Döngünün baktığımız elemanı ile bugün aynı mı?
if($date == $today) {
// Aynıysa bugünün aktif olduğunu belirten değişkenimizi true yapalım.
$isTodayActive = true;
// Ve döngünün sonraki tarihlere bakmadan sonlanmasını sağlayalım.
break;
}
}
Artık $isTodayActive
değişkenimiz true ise bugünün özel günlerden biri olduğunu anlayabiliyoruz.
Bu durumda DOM'daki ilgili elementimizin $isTodayActive
değerine göre gösterilmesini/gösterilmemesini sağlayabiliriz.
<?php if($isTodayActive===true) { ?>
<a href="ornek.html">
<div class="ozelgunlerlinki">
Bu fırsatı kaçırmayın ! (resimler vs olacak)
</div>
</a>
<?php } ?>
Siz diyebilirsiniz ki:
"Özel tarih olunca anlayalım ama aynı zamanda bu özel tarihin adını da ekrana yazmak istersek ne yapabiliriz?"
Bu durumda $activeDates
değişkenimizi biraz daha geliştirmemiz gerekir:
$activeDates = [
['10-29', 'Cumhuriyet Bayramı'],
['1-1', 'Yılbaşı'],
['4-23', 'Ulusal Egemenlik ve Çocuk Bayramı'],
['5-19', 'Gençlik ve Spor Bayramı'],
];
Böylece 2 boyutlu bir dizi oluşturmuş olduk.
Şimdi bugünün aktif olup olmadığını tutan değişkenimize true
veya false
atamak yerine, bugün eğer özel günlerden biriyse bu özel günün ne olduğunu yazalım.
// Önce bugünün tarihini alalım:
$today = date("m-d");
// Henüz kontrol sağlamadan önce, bugünün aktif gün olup olmadığını tutacak değişkene boş string ("") verelim:
$isTodayActive = "";
// Şimdi tüm aktif günlere tek tek bakmak için bir döngü oluşturalım:
foreach($activeDates as $date) {
// Döngünün baktığımız elemanı ile bugün aynı mı?
if($date[0] == $today) {
// Aynıysa bugünün aktif olduğunu belirten değişkenimize o günün verisini tutan dizinin 2. elemanını verelim.
$isTodayActive = $date[1];
// Ve döngünün sonraki tarihlere bakmadan sonlanmasını sağlayalım.
break;
}
}
Böylece eğer bugün özel günlerden biriyse $isTodayActive
değişkeninde o günün adı yazıyor. Eğer değilse bu değişken boş string olarak kalmış demektir. Bu durumu if içinde kontrol edebiliriz.
<?php if($isTodayActive!=="") { ?>
<a href="ornek.html">
<div class="ozelgunlerlinki">
<?= $isTodayActive ?> gününe özel bu fırsatı kaçırmayın ! (resimler vs olacak)
</div>
</a>
<?php } ?>