Ana içeriğe geç

Grup Alanları

Bu dokümantasyon, Serenay\B2B\Data\Group nesnesinin tüm erişilebilir alanlarını ve metodlarını içerir. Grup nesnesi Twig şablonlarında kullanılabilir.

Tüm Grup Özellikleri

PropertyArama TerimleriTipAçıklamaÖrnek
idid, kimlik, group idintGrup benzersiz ID'si{{ group.id }}
isim / nameisim, name, ad, grup adıstringGrup adı{{ group.name }}
durumdurum, aktif, statusbooleanAktif/pasif durumu{% if group.durum %}
ana_kategoriana kategori, main, parentbooleanAna grup olma durumu{% if group.ana_kategori %}
pozisyonpozisyon, sıra, orderintSıralama pozisyonu{{ group.pozisyon }}
main_group_idana grup, parent groupintÜst grup ID'si{{ group.main_group_id }}
urlurl, link, grup linkistringGrup sayfa linki<a href="{{ group.url }}">
slugslug, seo, url slugstringSEO dostu URL{{ group.slug }}
productCount()ürün sayısı, product countintGruptaki ürün sayısı{{ group.productCount() }}

Twig Kullanım Örnekleri

Basit Grup Listesi

<!-- Tüm aktif grupları listele -->
<div class="group-list">
{% for group in groups %}
{% if group.durum %}
<div class="group-item">
<h3>{{ group.name }}</h3>
<a href="{{ group.url }}" class="btn btn-primary">
Gruba Git ({{ group.productCount() }} ürün)
</a>
</div>
{% endif %}
{% endfor %}
</div>

Ana Grupları Gösterme

<!-- Sadece ana grupları göster -->
<div class="main-groups">
{% for group in groups %}
{% if group.ana_kategori and group.durum %}
<div class="main-group-card">
<h2>{{ group.name }}</h2>
<p>Pozisyon: {{ group.pozisyon }}</p>
<span class="product-count">{{ group.productCount() }} ürün</span>
<a href="{{ group.url }}" class="view-products">Ürünleri Gör</a>
</div>
{% endif %}
{% endfor %}
</div>

Grup Menüsü

<!-- Hiyerarşik grup menüsü -->
<nav class="group-navigation">
<ul>
{% for group in groups | sort((a, b) => a.pozisyon <=> b.pozisyon) %}
{% if group.durum %}
<li class="{% if group.ana_kategori %}main-group{% else %}sub-group{% endif %}">
<a href="{{ group.url }}">
{{ group.name }}
<span class="badge">{{ group.productCount() }}</span>
</a>
</li>
{% endif %}
{% endfor %}
</ul>
</nav>

Grup Dropdown

<!-- Select dropdown için gruplar -->
<select name="group_id" class="form-control">
<option value="">-- Grup Seçin --</option>
{% for group in groups %}
{% if group.durum %}
<option value="{{ group.id }}"
{% if group.ana_kategori %}class="main-group"{% endif %}>
{% if not group.ana_kategori %}&nbsp;&nbsp;&nbsp;{% endif %}
{{ group.name }} ({{ group.productCount() }} ürün)
</option>
{% endif %}
{% endfor %}
</select>
<!-- Grup sayfası breadcrumb -->
{% if current_group is defined %}
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="{{ base_url }}">Ana Sayfa</a>
</li>
<li class="breadcrumb-item">
<a href="{{ 'products' | url }}">Ürünler</a>
</li>
{% if current_group.main_group_id %}
<li class="breadcrumb-item">
<a href="{{ parent_group.url }}">{{ parent_group.name }}</a>
</li>
{% endif %}
<li class="breadcrumb-item active">
{{ current_group.name }}
</li>
</ol>
</nav>
{% endif %}

Grup Filtresi

<!-- Ürün listesi için grup filtresi -->
<div class="filter-groups">
<h4>Grup Filtresi</h4>
<div class="form-check">
{% for group in groups %}
{% if group.durum %}
<label class="form-check-label">
<input type="checkbox"
class="form-check-input"
name="groups[]"
value="{{ group.id }}">
{{ group.name }}
<small class="text-muted">({{ group.productCount() }})</small>
</label>
{% endif %}
{% endfor %}
</div>
</div>

Grup İstatistikleri

<!-- Grup istatistik widget'ı -->
<div class="group-statistics">
{% set total_groups = groups | filter(g => g.durum) | length %}
{% set main_groups = groups | filter(g => g.ana_kategori and g.durum) | length %}
{% set sub_groups = total_groups - main_groups %}

<div class="stats-container">
<div class="stat-item">
<h5>Toplam Grup</h5>
<p class="stat-number">{{ total_groups }}</p>
</div>
<div class="stat-item">
<h5>Ana Gruplar</h5>
<p class="stat-number">{{ main_groups }}</p>
</div>
<div class="stat-item">
<h5>Alt Gruplar</h5>
<p class="stat-number">{{ sub_groups }}</p>
</div>
</div>
</div>

Performans İpuçları

Performans

productCount() metodunu dikkatli kullanın:

  • Bu metod veritabanı sorgusu yapar
  • Cache mekanizması olsa da yoğun döngülerde kullanmaktan kaçının
  • Alternatif: Backend'den ürün sayılarını hazır alın
Dikkat

Büyük grup listeleri için:

  • Sayfalama kullanın
  • Lazy loading uygulayın
  • İnaktif grupları backend'de filtreleyin

Sık Sorulan Sorular

Ana grup ve alt grup arasındaki fark nedir?

ana_kategori alanı true olan gruplar ana grup olarak kabul edilir. Genellikle menülerde ve navigasyonda öne çıkarılırlar. Alt gruplar ise main_group_id alanı ile ana gruba bağlanırlar.

productCount() her zaman güncel mi?

Evet, bu metod her çağrıldığında güncel ürün sayısını döndürür. Ancak performans için cache mekanizması kullanır.

Grup slug'ı nasıl oluşturuluyor?

Grup ismi otomatik olarak SEO dostu URL'ye dönüştürülür. Türkçe karakterler İngilizce karşılıklarına, boşluklar tire işaretine dönüşür.


Kaynaklar


İletişim ve Destek

Herhangi bir sorunla karşılaşırsanız veya yardıma ihtiyaç duyarsanız, destek ekibimizle iletişime geçebilirsiniz. Size en kısa sürede yardımcı olmaktan memnuniyet duyarız.