JS Yardımcı Fonksiyonları
Bu sayfa, general.js dosyasında tanımlı olan ve tema genelinde global olarak erişilebilen yardımcı JavaScript fonksiyonlarını belgeler. API isteklerinden DOM manipülasyonuna, fiyat formatlamadan form doğrulamaya kadar tüm yardımcıları theme.js içinden doğrudan çağırabilirsiniz.
getLocale()
Sayfanın diline göre yerel ayar (locale) bilgisini döndürür.
Parametre almaz.
Dönüş değeri: string — yerel ayar kodu (örneğin tr-TR, en-US).
const locale = getLocale(); // "tr-TR"
request()
Asenkron HTTP istekleri gönderir.
| Parametre | Tip | Açıklama |
|---|---|---|
method | string (opsiyonel) | HTTP yöntemi (GET, POST vb.). Varsayılan: GET. |
url | string | İstek gönderilecek URL. |
data | any (opsiyonel) | Gönderilecek veri (örneğin FormData). |
accept | string (opsiyonel) | Beklenen yanıt türü (JSON). |
Dönüş değeri: Promise — yanıt verisi (JSON veya metin).
request('GET', '/api/data', null, 'JSON')
.then(response => console.log(response))
.catch(error => console.error(error));
LocalApi.get()
localStorage üzerinden veri alır.
| Parametre | Tip | Açıklama |
|---|---|---|
key | string | Alınacak verinin anahtarı. |
def | any (opsiyonel) | Anahtar yoksa dönecek varsayılan değer. Varsayılan: false. |
Dönüş değeri: any — alınan veri veya varsayılan değer.
const value = LocalApi.get('compare', null); // compare anahtarındaki veriyi alır
LocalApi.set()
localStorage üzerine veri kaydeder.
| Parametre | Tip | Açıklama |
|---|---|---|
key | string | Kaydedilecek verinin anahtarı. |
val | any | Kaydedilecek veri. |
timeout | number (opsiyonel) | Geçerlilik süresi (saniye). Varsayılan: 1 yıl. |
Dönüş değeri: boolean — işlem başarılıysa true.
LocalApi.set('user', { id: 1 }, 3600); // 1 saatlik geçerlilik süresi
LocalApi.remove()
localStorage üzerinden veri siler.
| Parametre | Tip | Açıklama |
|---|---|---|
key | string | Silinecek verinin anahtarı. |
Dönüş değeri: boolean — işlem başarılıysa true.
LocalApi.remove('user'); // user anahtarını siler
scrollBehavior()
Sayfayı belirtilen bir elemana kaydırır.
| Parametre | Tip | Açıklama |
|---|---|---|
href | string | object (opsiyonel) | Kaydırılacak elemanın seçicisi veya DOM elemanı. |
height | number (opsiyonel) | Üstten kaydırma mesafesi. Varsayılan: 0. |
trigger | boolean (opsiyonel) | Elemana tıklamayı da tetikler. Varsayılan: false. |
Dönüş değeri: Yok.
scrollBehavior('#section1', 100); // #section1 elemanına 100px üstten kaydır
loader()
Sayfa yükleme göstergesini kontrol eder.
| Parametre | Tip | Açıklama |
|---|---|---|
status | boolean (opsiyonel) | true olduğunda body elemanına is-loading sınıfı atar. Varsayılan: false. |
Dönüş değeri: Yok.
loader(true); // Yükleme göstergesini göster
loader(false); // Yükleme göstergesini gizle
addClass()
Belirtilen elemanlara sınıf ekler.
| Parametre | Tip | Açıklama |
|---|---|---|
element | NodeList | Array | Sınıf eklenecek elemanlar. |
cls | string | Eklenecek sınıf(lar). |
Dönüş değeri: Yok.
addClass(document.querySelectorAll('.item'), 'active');
removeClass()
Belirtilen elemanlardan sınıf kaldırır.
| Parametre | Tip | Açıklama |
|---|---|---|
element | NodeList | Array | Sınıf kaldırılacak elemanlar. |
cls | string | Kaldırılacak sınıf(lar). |
Dönüş değeri: Yok.
removeClass(document.querySelectorAll('.item'), 'active');
toggleClass()
Belirtilen elemanlarda sınıfı değiştirir (varsa kaldırır, yoksa ekler).
| Parametre | Tip | Açıklama |
|---|---|---|
element | NodeList | Array | Sınıf değiştirilecek elemanlar. |
cls | string | Değiştirilecek sınıf(lar). |
Dönüş değeri: Yok.
toggleClass(document.querySelectorAll('.item'), 'active');
getUrlParam()
URL'den belirli bir parametreyi alır.
| Parametre | Tip | Açıklama |
|---|---|---|
key | string | Alınacak parametrenin anahtarı. |
url | string (opsiyonel) | Parametre alınacak URL. Varsayılan: mevcut sayfa URL'si. |
Dönüş değeri: string | null — parametre değeri veya null.
const param = getUrlParam('id'); // ?id=123 -> "123"
setUrlParam()
URL'ye bir parametre ekler veya günceller.
| Parametre | Tip | Açıklama |
|---|---|---|
key | string | Eklenecek/güncellenecek parametrenin anahtarı. |
value | string | Parametre değeri. |
url | string (opsiyonel) | İşlem yapılacak URL. Varsayılan: mevcut sayfa URL'si. |
Dönüş değeri: URL — güncellenmiş URL nesnesi.
const newUrl = setUrlParam('id', '123', 'https://example.com'); // https://example.com?id=123
deleteUrlParam()
URL'den belirli bir parametreyi siler.
| Parametre | Tip | Açıklama |
|---|---|---|
key | string | Silinecek parametrenin anahtarı. |
url | string (opsiyonel) | İşlem yapılacak URL. Varsayılan: mevcut sayfa URL'si. |
Dönüş değeri: URL — güncellenmiş URL nesnesi.
const newUrl = deleteUrlParam('id', 'https://example.com?id=123'); // https://example.com
setCookie()
Çerez (cookie) oluşturur.
| Parametre | Tip | Açıklama |
|---|---|---|
cookieName | string | Çerez adı. |
cookieValue | string | Çerez değeri. |
ExDays | number | Geçerlilik süresi (gün). |
Dönüş değeri: Yok.
setCookie('user', 'john', 30); // 30 gün geçerli bir çerez oluşturur
getCookie()
Belirtilen çerezin değerini alır.
| Parametre | Tip | Açıklama |
|---|---|---|
cookieName | string | Çerez adı. |
Dönüş değeri: string — çerez değeri veya boş string.
const user = getCookie('user'); // "john"
browser()
Kullanıcının tarayıcısını tespit eder.
Parametre almaz.
Dönüş değeri: string — tarayıcı adı (örneğin Google Chrome, Mozilla Firefox).
const browserName = browser(); // "Google Chrome"
isMobile()
Cihazın mobil olup olmadığını kontrol eder.
| Parametre | Tip | Açıklama |
|---|---|---|
size | number (opsiyonel) | Maksimum ekran genişliği. Varsayılan: 1024. |
Dönüş değeri: boolean — mobil cihazsa true.
const isMob = isMobile(); // true / false
getLink()
URL'ye parametre ekler veya günceller ve sonucu string olarak döndürür.
| Parametre | Tip | Açıklama |
|---|---|---|
param | string | Eklenecek/güncellenecek parametre. |
value | string | Parametre değeri. |
link | string (opsiyonel) | İşlem yapılacak URL. Varsayılan: mevcut sayfa URL'si. |
Dönüş değeri: string — güncellenmiş URL.
const url = getLink('page', '2'); // ?page=2
evalScripts()
Metin içerisindeki <script> etiketlerini çalıştırır.
| Parametre | Tip | Açıklama |
|---|---|---|
content | string | Çalıştırılacak HTML içeriği. |
Dönüş değeri: Yok.
evalScripts('<script>console.log("Merhaba");</script>'); // Konsola "Merhaba" yazar
evalScriptsAdd()
Metin içerisindeki <script> etiketlerini DOM'a ekler.
| Parametre | Tip | Açıklama |
|---|---|---|
content | string | HTML içeriği. |
id | string | Script elemanlarına atanacak ID öneki. |
Dönüş değeri: boolean — işlem başarılıysa true.
evalScriptsAdd('<script>console.log("Merhaba");</script>', 'script1');
scriptAdd()
Sayfaya harici bir script dosyası ekler.
| Parametre | Tip | Açıklama |
|---|---|---|
src | string | Script dosyasının URL'si. |
onload | function (opsiyonel) | Script yüklendiğinde çalışacak fonksiyon. |
onerror | function (opsiyonel) | Hata durumunda çalışacak fonksiyon. |
integrity | string (opsiyonel) | Script için bütünlük (integrity) değeri. |
Dönüş değeri: Yok.
scriptAdd('https://example.com/script.js', () => console.log('Yüklendi'));
setLanguage()
Sayfa dilini değiştirir.
| Parametre | Tip | Açıklama |
|---|---|---|
value | string | Yeni dil kodu (örneğin tr, en). |
callback | string | function (opsiyonel) | Dil değişimi sonrası çalışacak fonksiyon. |
Dönüş değeri: Yok.
setLanguage('en', () => console.log('Dil değişti'));
setCurrency()
Sayfa para birimini değiştirir.
| Parametre | Tip | Açıklama |
|---|---|---|
value | string | Yeni para birimi kodu (örneğin TL, USD). |
callback | string | function (opsiyonel) | Para birimi değişimi sonrası çalışacak fonksiyon. |
Dönüş değeri: Yok.
setCurrency('USD', () => console.log('Para birimi değişti'));
copyText()
Metni panoya kopyalar ve bir bildirim gösterir.
| Parametre | Tip | Açıklama |
|---|---|---|
text | string | Kopyalanacak metin. |
msg | string (opsiyonel) | Bildirim mesajı. |
Dönüş değeri: Yok.
copyText('Merhaba', 'Kopyalandı!'); // Metni kopyalar ve bildirim gösterir
awaitTimeOut()
Belirtilen süre kadar bekleyen bir Promise döndürür.
| Parametre | Tip | Açıklama |
|---|---|---|
ms | number | Bekleme süresi (milisaniye). |
Dönüş değeri: Promise — bekleme tamamlandığında çözülür.
await awaitTimeOut(1000); // 1 saniye bekler
modal()
Bir modal pencere oluşturur ve gösterir.
| Parametre | Tip | Açıklama |
|---|---|---|
options.id | string | Modal ID'si. |
options.class | string | Modal sınıfı (success, danger, info). |
options.width | string | Modal genişliği (örneğin 580px). |
options.height | string | Modal yüksekliği. |
options.title | string | Modal başlığı. |
options.html | string | Modal içeriği. |
options.timeout | number | Otomatik kapanma süresi (milisaniye). |
options.close | boolean | Kapatma düğmesi gösterilsin mi? |
options.disabledClose | boolean | Kapatma devre dışı mı? |
options.iconHtml | string | Modal simgesi. |
options.alert | boolean | Uyarı modalı mı? |
options.buttons | array | Modal düğmeleri. |
options.callbacks | object | Açılma/kapanma geri çağırımları. |
Dönüş değeri: Yok.
modal({
id: 'myModal',
title: 'Başlık',
html: '<p>Merhaba Dünya</p>',
buttons: [{ text: 'Kapat', event: () => modalClose() }]
});
modalClose()
Modal pencereyi kapatır.
| Parametre | Tip | Açıklama |
|---|---|---|
modal | string | HTMLElement (opsiyonel) | Kapatılacak modalın seçicisi veya DOM elemanı. |
modalObj | object (opsiyonel) | Modal nesnesi. |
Dönüş değeri: Yok.
modalClose('#myModal'); // #myModal ID'li modalı kapatır
drawer()
Bir yan menü (drawer) oluşturur ve gösterir.
| Parametre | Tip | Açıklama |
|---|---|---|
options.id | string (opsiyonel) | Drawer ID'si. |
options.html | string | Drawer içeriği. |
options.position | string | Drawer konumu (right, left). Varsayılan: right. |
options.close | boolean | Kapatma düğmesi gösterilsin mi? Varsayılan: false. |
options.title | string (opsiyonel) | Drawer başlığı. |
Dönüş değeri: Yok.
drawer({
id: 'cartDrawer',
html: response,
position: 'right',
close: false,
title: 'Sepetim'
});
drawerClose()
Açık olan tüm yan menüleri (drawer) kapatır.
Parametre almaz.
Dönüş değeri: Yok.
drawerClose(); // Tüm yan menüleri kapatır
notify()
Bir bildirim (toast) gösterir.
| Parametre | Tip | Açıklama |
|---|---|---|
options.title | string | Bildirim başlığı. |
options.text | string | Bildirim metni. |
options.duration | number | Bildirim süresi (milisaniye). |
options.gravity | string | Bildirim konumu (top, bottom). |
options.position | string | Bildirim hizası (left, right). |
options.class | string | Bildirim sınıfı (success, danger, info). |
options.iconHtml | string | Bildirim simgesi. |
Dönüş değeri: Yok.
notify({
text: 'Başarılı!',
class: 'success',
duration: 3000
});
mask()
Giriş alanlarına maske uygular.
| Parametre | Tip | Açıklama |
|---|---|---|
element | HTMLElement | Maske uygulanacak giriş elemanı. |
mask | string (opsiyonel) | Maske türü (string, number, email vb.). |
regex | string (opsiyonel) | Özel düzenli ifade. |
max | string (opsiyonel) | Maksimum karakter sayısı. |
Dönüş değeri: Yok.
mask(document.querySelector('#phone'), 'number', null, 10); // Telefon girişine sayı maskesi uygular
format()
Sayıyı mağazanın para birimi formatına dönüştürür.
| Parametre | Tip | Açıklama |
|---|---|---|
p | number | Formatlanacak sayı. |
d | number (opsiyonel) | Ondalık basamak sayısı. Varsayılan: DECIMAL_LENGTH. Özel bir durum yoksa boş bırakın. |
Dönüş değeri: string — formatlanmış sayı (örneğin 1.234,56).
const formatted = format(1234.567); // "1.234,57" — varsayılan d değeri 2'dir
vat()
KDV dahil fiyatı hesaplar ve formatlar.
| Parametre | Tip | Açıklama |
|---|---|---|
p | number | KDV hariç fiyat. |
vat | number | KDV oranı (%). |
Dönüş değeri: string — KDV dahil formatlanmış fiyat.
const priceWithVat = vat(100, 18); // "118,00" — KDV dahil fiyat
priceToFloat()
Formatlanmış fiyatı sayıya dönüştürür.
| Parametre | Tip | Açıklama |
|---|---|---|
p | string | Formatlanmış fiyat (örneğin 1.234,56). |
Dönüş değeri: number | false — dönüştürülmüş sayı veya hata durumunda false.
const number = priceToFloat('1.234,56'); // 1234.56
triggerEvent()
Belirtilen elemanda bir olay tetikler.
| Parametre | Tip | Açıklama |
|---|---|---|
element | HTMLElement | Olay tetiklenecek eleman. |
event | string | Tetiklenecek olay (örneğin click, mouseenter). |
Dönüş değeri: Yok.
triggerEvent(document.querySelector('#btn'), 'click'); // #btn elemanında click olayı tetikler
outsideClick()
Elemanın dışına tıklanıldığında bir geri çağırım çalıştırır.
| Parametre | Tip | Açıklama |
|---|---|---|
eventElement | HTMLElement | İzlenen eleman. |
element | HTMLElement | Dış tıklama kontrol edilecek eleman. |
onCallback | function | Dış tıklamada çalışacak fonksiyon. |
Dönüş değeri: Yok.
outsideClick(document.querySelector('#menu'), document.querySelector('#menu'), () => console.log('Dışarı tıklandı'));
timeConverter()
Unix zaman damgasını belirtilen formata dönüştürür.
| Parametre | Tip | Açıklama |
|---|---|---|
UNIX_timestamp | number | Unix zaman damgası. |
format | string | Çıktı formatı (örneğin d.m.y). y.m.d.h.i.s sırasıyla yıl, ay, gün, saat, dakika, saniyeye denk gelir. |
Dönüş değeri: string — formatlanmış tarih.
const date = timeConverter(1625097600000, 'd.m.y'); // "01.07.2021"
taxLoader()
Vergi dairesi listesini yükler ve bir seçim menüsü oluşturur.
| Parametre | Tip | Açıklama |
|---|---|---|
options.selector | string | HTMLElement | Seçim menüsünün bağlanacağı eleman. |
options.limit | number | Bir seferde yüklenecek öğe sayısı. |
options.start | number | Başlangıç indeksi. |
Dönüş değeri: Yok.
taxLoader({ selector: '#taxOffice', limit: 15 });
stringToObject()
Query string'i bir nesneye dönüştürür.
| Parametre | Tip | Açıklama |
|---|---|---|
inputString | string | Query string (örneğin key1=value1&key2=value2). |
Dönüş değeri: object — anahtar-değer nesnesi.
const obj = stringToObject('id=123&name=John'); // { id: "123", name: "John" }
snippetUri()
Snippet URL'si oluşturur.
| Parametre | Tip | Açıklama |
|---|---|---|
snippet | string | Snippet adı. |
params | object | URL parametreleri. |
Dönüş değeri: string — oluşturulan URL.
const url = snippetUri('cart-preview', { include: 'cart' });
// '/api/storefront/snippet/cart-preview?include=cart&language=tr'
loadSnippet()
Bir snippet'i sunucudan yükler.
| Parametre | Tip | Açıklama |
|---|---|---|
options.snippet | string | Snippet adı. |
options.params | object | URL parametreleri. |
options.success | function | Başarılı yanıt sonrası çalışacak fonksiyon. |
Dönüş değeri: Yok.
loadSnippet({
snippet: 'cart-preview',
params: { include: 'cart' },
success: (response) => console.log(response)
});
getOffsetTop()
Elemanın sayfanın üstüne olan mesafesini hesaplar.
| Parametre | Tip | Açıklama |
|---|---|---|
element | HTMLElement | Mesafesi hesaplanacak eleman. |
Dönüş değeri: number — elemanın üst mesafesi (px).
const offset = getOffsetTop(document.querySelector('#section')); // 500
checkValidity()
Formun geçerliliğini kontrol eder.
| Parametre | Tip | Açıklama |
|---|---|---|
form | HTMLFormElement | Doğrulanacak form. |
Dönüş değeri: boolean — form geçerliyse true.
const isValid = checkValidity(document.querySelector('#myForm')); // true
popoverAlert()
Form alanında hata mesajı gösterir.
| Parametre | Tip | Açıklama |
|---|---|---|
options.selector | string | HTMLElement | Hata mesajının bağlanacağı eleman. |
options.message | string | Hata mesajı. |
options.scroll | boolean | Hata alanına kaydırılsın mı? |
Dönüş değeri: Yok.
popoverAlert({
selector: '#email',
message: 'Geçersiz e-posta'
});
popoverAlertHide()
Gösterilen hata mesajlarını gizler.
| Parametre | Tip | Açıklama |
|---|---|---|
parent | HTMLElement (opsiyonel) | Hata mesajlarının gizleneceği kapsayıcı. Varsayılan: document.body. |
Dönüş değeri: Yok.
popoverAlertHide(document.querySelector('#myForm')); // Formdaki hata mesajlarını gizler
passwordToggle()
Şifre girişinin görünürlüğünü değiştirir.
| Parametre | Tip | Açıklama |
|---|---|---|
event | HTMLElement | Şifre görünürlük düğmesi. |
input | HTMLElement | Şifre giriş alanı. |
Dönüş değeri: Yok.
passwordToggle(document.querySelector('#toggle'), document.querySelector('#password'));
captchaToggle()
CAPTCHA resmini yeniler.
| Parametre | Tip | Açıklama |
|---|---|---|
element | HTMLElement | CAPTCHA resmi. |
Dönüş değeri: Yok.
captchaToggle(document.querySelector('#captcha')); // CAPTCHA resmini yeniler
messageCount()
Kullanıcının mesaj sayısını alır ve arayüzde gösterir.
Parametre almaz.
Dönüş değeri: Yok.
messageCount(); // Mesaj sayısını günceller
formLoader()
Form alanlarını veriyle doldurur.
| Parametre | Tip | Açıklama |
|---|---|---|
options.selector | string | Form seçicisi. |
options.url | string | Veri alınacak URL. |
options.data | object | Formu dolduracak veri. |
options.callback | function | Doldurma sonrası çalışacak fonksiyon. |
Dönüş değeri: Yok.
formLoader({
selector: '#myForm',
url: '/api/form-data',
callback: (result) => console.log(result)
});
tsRegion()
Bölge seçimi (ülke, şehir, ilçe) için dinamik bir arayüz sağlar.
| Parametre | Tip | Açıklama |
|---|---|---|
options.container | string | Bölge seçimi kapsayıcısı. |
options.countryLimit | number | Ülke limiti. |
options.storeLimit | number | Mağaza limiti. |
options.regionLimit | number | Bölge limiti. |
options.country, options.state, options.city, options.town, options.district | object | Her seviye için ayarlar (container, selector, code, value). |
Dönüş değeri: Yok.
tsRegion({
container: '.regions',
country: { selector: '#country' }
});