# Müşteri Site Kabuğu Kancaları

https://dev.wisecp.com/tr/musteri-site-kabugu-kancalari

Her sayfanın paylaştığı on altı yerleşim noktası: başlık, gövde, menüler ve alt bilgi.

## Genel Bakış

Sitenin her sayfasında bulunan yerleşim noktaları burada: başlık bölümü, gövde, menüler, alt bilgi ve sistem sayfaları.

Bu noktaların ortak özelliği **ölçeğidir**: buraya koyduğunuz şey ana sayfada da, ödeme adımında da, hata sayfasında da çalışır. Maliyeti de o ölçüde hesaplayın.

## Referans

### Siteye stil ekleme

uiclient.head.css

`website/inc` parametresiz

Sitenin başlık bölümünde, **her sayfada** görünür. Kendi stil dosyanızı buradan bağlarsınız.

Parametreler 0

—Parametre almaz.

Dönüş 1

string|nullDöndürdüğünüz **HTML görünür**. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, `null` ve `false` atlanır: bir şey eklemek istemediğinizde `null` dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.

Dinleyici PHP

```php
Hook::add('ui:client.head.css', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});
```

### Siteye betik ekleme

uiclient.head.js

`website/inc` parametresiz

Her sayfada betik eklemenin yeridir. Ziyaretçinin gördüğü ilk şey burasıdır: ağır bir dosya sayfanın açılışını geciktirir.

Parametreler 0

—Parametre almaz.

Dönüş 1

string|nullDöndürdüğünüz **HTML görünür**. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, `null` ve `false` atlanır: bir şey eklemek istemediğinizde `null` dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.

Dinleyici PHP

```php
Hook::add('ui:client.head.js', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});
```

### Gövdenin başı

uiclient.body.begin

`website/inc` parametresiz

Sayfa gövdesinin en başında görünür. Siteye yayılan bir duyuru şeridi için uygundur.

Parametreler 0

—Parametre almaz.

Dönüş 1

string|nullDöndürdüğünüz **HTML görünür**. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, `null` ve `false` atlanır: bir şey eklemek istemediğinizde `null` dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.

Dinleyici PHP

```php
Hook::add('ui:client.body.begin', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});
```

### Gövdenin sonu

uiclient.body.end

`website/inc` parametresiz

Sayfa gövdesinin en sonunda görünür. Pencereler ve ölçüm betikleri için doğru yerdir.

Parametreler 0

—Parametre almaz.

Dönüş 1

string|nullDöndürdüğünüz **HTML görünür**. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, `null` ve `false` atlanır: bir şey eklemek istemediğinizde `null` dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.

Dinleyici PHP

```php
Hook::add('ui:client.body.end', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});
```

### Üst çubuğun sonu

uiclient.topbar.end

`website/inc` parametresiz

Üst çubuğun sonunda görünür.

Parametreler 0

—Parametre almaz.

Dönüş 1

string|nullDöndürdüğünüz **HTML görünür**. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, `null` ve `false` atlanır: bir şey eklemek istemediğinizde `null` dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.

Dinleyici PHP

```php
Hook::add('ui:client.topbar.end', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});
```

### Başlık işlem alanı

uiclient.header.actions

`website/inc` parametresiz

Site başlığındaki işlem alanında görünür.

Parametreler 0

—Parametre almaz.

Dönüş 1

string|nullDöndürdüğünüz **HTML görünür**. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, `null` ve `false` atlanır: bir şey eklemek istemediğinizde `null` dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.

Dinleyici PHP

```php
Hook::add('ui:client.header.actions', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});
```

### Ana menü öğeleri

uiclient.nav.items

`website/inc` parametresiz

Ana menünün öğeleri arasında görünür. Menü yapısını bozmamak için aynı öğe biçimini kullanın.

Parametreler 0

—Parametre almaz.

Dönüş 1

string|nullDöndürdüğünüz **HTML görünür**. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, `null` ve `false` atlanır: bir şey eklemek istemediğinizde `null` dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.

Dinleyici PHP

```php
Hook::add('ui:client.nav.items', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});
```

### Alt menü öğeleri

uiclient.subnav.items

`website/inc` parametresiz

Alt menünün öğeleri arasında görünür.

Parametreler 0

—Parametre almaz.

Dönüş 1

string|nullDöndürdüğünüz **HTML görünür**. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, `null` ve `false` atlanır: bir şey eklemek istemediğinizde `null` dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.

Dinleyici PHP

```php
Hook::add('ui:client.subnav.items', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});
```

### Kullanıcı menüsü öğeleri

uiclient.user_menu.items

`website/inc` parametresiz

Giriş yapmış kullanıcının menüsünde görünür.

Parametreler 0

—Parametre almaz.

Dönüş 1

string|nullDöndürdüğünüz **HTML görünür**. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, `null` ve `false` atlanır: bir şey eklemek istemediğinizde `null` dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.

Dinleyici PHP

```php
Hook::add('ui:client.user_menu.items', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});
```

### Yan çekmece öğeleri

uiclient.drawer.items

`website/inc` parametresiz

Mobil yan çekmecenin öğeleri arasında görünür. **Ana menüden ayrıdır**: iki yerde de görünmesini istiyorsanız ikisine birden ekleyin.

Parametreler 0

—Parametre almaz.

Dönüş 1

string|nullDöndürdüğünüz **HTML görünür**. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, `null` ve `false` atlanır: bir şey eklemek istemediğinizde `null` dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.

Dinleyici PHP

```php
Hook::add('ui:client.drawer.items', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});
```

### Alt bilgiden önce

uiclient.footer.before

`website/inc` parametresiz

Alt bilginin hemen üstünde görünür.

Parametreler 0

—Parametre almaz.

Dönüş 1

string|nullDöndürdüğünüz **HTML görünür**. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, `null` ve `false` atlanır: bir şey eklemek istemediğinizde `null` dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.

Dinleyici PHP

```php
Hook::add('ui:client.footer.before', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});
```

### Alt bilgi sütunları

uiclient.footer.columns

`website/inc` parametresiz

Alt bilgi sütunlarının arasında görünür.

Parametreler 0

—Parametre almaz.

Dönüş 1

string|nullDöndürdüğünüz **HTML görünür**. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, `null` ve `false` atlanır: bir şey eklemek istemediğinizde `null` dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.

Dinleyici PHP

```php
Hook::add('ui:client.footer.columns', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});
```

### Alt bilginin altı

uiclient.footer.bottom

`website/inc` parametresiz

Alt bilginin en altında görünür.

Parametreler 0

—Parametre almaz.

Dönüş 1

string|nullDöndürdüğünüz **HTML görünür**. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, `null` ve `false` atlanır: bir şey eklemek istemediğinizde `null` dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.

Dinleyici PHP

```php
Hook::add('ui:client.footer.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});
```

### Çağrı şeridinden önce

uiclient.cta_band.before

`website/inc` parametresiz

Sayfa altındaki çağrı şeridinin üstünde görünür.

Parametreler 0

—Parametre almaz.

Dönüş 1

string|nullDöndürdüğünüz **HTML görünür**. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, `null` ve `false` atlanır: bir şey eklemek istemediğinizde `null` dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.

Dinleyici PHP

```php
Hook::add('ui:client.cta_band.before', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});
```

### Bakım sayfası gövdesi

uiclient.maintenance.body

`website/inc` parametresiz

Bakım sayfasının gövdesinde görünür. **Site kapalıyken** çalışır: burada veritabanına ya da dış servise bağlanan bir dinleyici, zaten sorunlu olan bir anda sayfayı da düşürebilir.

Parametreler 0

—Parametre almaz.

Dönüş 1

string|nullDöndürdüğünüz **HTML görünür**. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, `null` ve `false` atlanır: bir şey eklemek istemediğinizde `null` dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.

Dinleyici PHP

```php
Hook::add('ui:client.maintenance.body', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});
```

### Sistem sayfası başlığı

uiclient.system_page.head

`website/inc` parametresiz

Hata ve engel sayfalarının başlık bölümünde görünür. Bu sayfalar **çekirdek düşmüşken** de gösterilir: bağımlılığı olmayan, basit bir çıktı verin.

Parametreler 0

—Parametre almaz.

Dönüş 1

string|nullDöndürdüğünüz **HTML görünür**. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, `null` ve `false` atlanır: bir şey eklemek istemediğinizde `null` dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.

Dinleyici PHP

```php
Hook::add('ui:client.system_page.head', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});
```

## Tuzaklar

> **Kabuk noktaları ödeme adımında da çalışır**
> 
> Başlık ve gövde noktaları sitenin **her sayfasında** yürür; buna sepet ve ödeme adımı da dâhildir. Oraya konan yavaş bir betik yalnız bir sayfayı değil, doğrudan satın alma yolunu geciktirir.

> **Bakım ve hata sayfalarında bağımlılık kurmayın**
> 
> Bakım ve sistem sayfası noktaları, sitenin **zaten sorunlu olduğu** anda çalışır. Orada veritabanına ya da dış servise uzanan bir dinleyici, kullanıcıya gösterilecek son sayfayı da düşürür. Basit ve bağımlılıksız çıktı verin.

## İlgili Makaleler

- [Müşteri Sitesi Kancaları](https://dev.wisecp.com/tr/musteri-sitesi-kancalari)
- [Müşteri Panel Verisi Kancaları](https://dev.wisecp.com/tr/musteri-panel-verisi-kancalari)
- [Site İçeriği Kancaları](https://dev.wisecp.com/tr/musteri-icerik-kancalari)
