# Site Package: Package Builder ile Kurulum

TYPO3 resmi Site Package Builder aracı ile hızlıca bir site package iskeleti oluşturmayı anlatır.

---

## Site Package Builder Nedir?

[TYPO3 Site Package Builder](https://get.typo3.org/sitepackage), resmi TYPO3 aracıdır ve sıfırdan bir site package oluşturmak yerine hazır bir iskelet sunar.

---

## Adım Adım Kullanım

### 1. Builder'a Erişim

Tarayıcınızda açın: [https://get.typo3.org/sitepackage/new/](https://get.typo3.org/sitepackage/new/)

### 2. Formu Doldurun

| Alan | Açıklama | Örnek |
|------|----------|-------|
| **Base Package** | Temel paket seçimi | Fluid Styled Content |
| **Vendor Name** | Geliştirici/şirket adı | MySite |
| **Extension Name** | Extension adı | SitePackage |
| **Title** | Başlık | My Site Package |
| **Description** | Açıklama | Custom site package for TYPO3 v13 |
| **Author** | Yazar adı | Developer |
| **Author Email** | E-posta | dev@example.com |

### 3. Paketi İndirin

**Create Site Package** butonuna tıklayın ve `.zip` dosyasını indirin.

---

## İndirilen Paketin Kurulumu

### 1. Arşivi Çıkarın

```bash
# packages/ dizinine çıkar
unzip site_package.zip -d packages/my_site_package
```

### 2. Dizin Yapısını Kontrol Edin

Builder tarafından oluşturulan yapı:

```
packages/my_site_package/
├── composer.json
├── ext_emconf.php
├── ext_localconf.php
├── Configuration/
│   ├── Sets/
│   │   └── SitePackage/
│   │       ├── config.yaml
│   │       ├── constants.typoscript
│   │       └── setup.typoscript
│   └── TCA/
│       └── Overrides/
│           ├── pages.php
│           └── sys_template.php
├── Resources/
│   ├── Private/
│   │   ├── Layouts/
│   │   │   └── Page/
│   │   │       └── Default.html
│   │   ├── Partials/
│   │   │   └── Page/
│   │   │       ├── Footer.html
│   │   │       ├── Header.html
│   │   │       └── Jumbotron.html
│   │   └── Templates/
│   │       └── Page/
│   │           └── Default.html
│   └── Public/
│       ├── Css/
│       ├── Icons/
│       ├── Images/
│       └── JavaScript/
```

### 3. Composer ile Projeye Ekleyin

Root `composer.json`'da repository tanımı yapın:

```json
{
    "repositories": [
        {
            "type": "path",
            "url": "./packages/*",
            "options": {
                "symlink": true
            }
        }
    ]
}
```

Paketi yükleyin:

```bash
ddev composer require mysite/site-package:@dev
```

### 4. Site Set'i Aktif Edin

#### Yöntem A: Backend UI

1. **Site Management > Sites** modülüne gidin
2. Sitenizi düzenleyin
3. **Sets for this Site** bölümünde site package'ınızı seçin
4. Kaydedin

#### Yöntem B: config.yaml

`config/sites/main/config.yaml`:

```yaml
base: 'https://typo3v13.ddev.site/'
rootPageId: 1
dependencies:
  - mysite/site-package
  - typo3/fluid-styled-content
```

### 5. Cache Temizleyin

```bash
ddev exec vendor/bin/typo3 cache:flush
```

---

## Builder Sonrası Özelleştirme

### TypoScript Setup'ı Düzenleme

`Configuration/Sets/SitePackage/setup.typoscript`:

```typoscript
page = PAGE
page {
    typeNum = 0

    10 = FLUIDTEMPLATE
    10 {
        templateName = Default
        templateRootPaths.10 = EXT:my_site_package/Resources/Private/Templates/Page/
        layoutRootPaths.10 = EXT:my_site_package/Resources/Private/Layouts/Page/
        partialRootPaths.10 = EXT:my_site_package/Resources/Private/Partials/Page/

        variables {
            content < styles.content.get
        }

        dataProcessing {
            10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
            10 {
                levels = 3
                as = mainMenu
            }
        }
    }

    # Özel CSS/JS ekle
    includeCSS {
        theme = EXT:my_site_package/Resources/Public/Css/theme.css
    }

    includeJSFooter {
        app = EXT:my_site_package/Resources/Public/JavaScript/app.js
    }

    meta {
        viewport = width=device-width, initial-scale=1
    }
}
```

### Fluid Template'i Özelleştirme

`Resources/Private/Templates/Page/Default.html`:

```html
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
      data-namespace-typo3-fluid="true">

<f:layout name="Default" />

<f:section name="Main">
    <div class="container">
        <f:format.raw>{content}</f:format.raw>
    </div>
</f:section>

</html>
```

---

## Builder vs Manuel Oluşturma

| Özellik | Builder | Manuel |
|---------|---------|--------|
| Hız | Çok hızlı | Zaman alır |
| Özelleştirme | Sınırlı başlangıç | Tam kontrol |
| v13 Uyumluluk | Güncel | Siz kontrol edersiniz |
| Site Sets | Otomatik | Manuel oluşturma |
| Content Blocks | Dahil değil | İstediğiniz gibi |
| Öğrenme | Yapıyı öğretir | Derinlemesine anlama |

**Öneri:** Yeni başlayanlar Builder ile başlayıp, yapıyı anladıktan sonra kendi site package'larını manuel oluşturmalıdır.

---

## Sorun Giderme

### "Extension not found" Hatası

```bash
# Composer autoload yenile
ddev composer dump-autoload

# Extension setup çalıştır
ddev exec vendor/bin/typo3 extension:setup
```

### Template Görünmüyor

1. Site Set'in aktif olduğunu kontrol edin
2. TypoScript'te template path'lerinin doğru olduğunu kontrol edin
3. Root sayfanızın doğru site configuration'a bağlı olduğunu doğrulayın
4. Cache temizleyin

---

## Kaynaklar

- [TYPO3 Site Package Builder](https://get.typo3.org/sitepackage)
- [Sitepackage Tutorial](https://docs.typo3.org/m/typo3/tutorial-sitepackage/main/en-us/)
