Arama, ayarlar ve SEO
Arama sağlayıcısı
SearchProviderInterface uygulayan bir servis, üst çubuk aramasına sonuç ekler (autoconfigure ile otomatik kaydolur):
final class OrnekSearchProvider implements SearchProviderInterface
{
public function getKey(): string { return 'ornek'; }
public function getLabel(): string { return 'ornek.search.source'; } // çeviri anahtarı
public function getIcon(): string { return 'bi-book'; }
public function getPriority(): int { return 35; }
public function search(string $term, string $locale, int $limit): SearchGroup { /* SearchHit listesi */ }
}
Ayarlar (CpSetting)
Ayarlar bir taşıyıcı sınıfta öznitelik olarak tanımlanır; ayar anahtarı modul.ad biçimindedir. Okumak için SettingsRegistry::get() kullanın; kaydederken Setting varlığını yazıp clearCache() çağırın.
#[CpSetting(key: 'ornek.title', label: 'Başlık', type: 'text', default: 'Örnek', module: 'ornek', group: 'ornek_general')]
final class OrnekSettings {}
Çeviriler
Resources/translations/messages+intl-icu.{tr,en}.yaml dosyalarına anahtarlar ekleyin; şablonda 'anahtar'|trans. Yönetim ekranlarında sabit Türkçe metin kullanmak çalışır ama çok dilli kurulumlarda çeviri anahtarı tercih edin.
Önbellek
Herkese açık sayfalar önbelleğe alınır. İçerik değişince OriginCachePurger::purgeAll() (veya etiketli temizleme) çağırın; Node türleri bunu otomatik yapar, modül tabloları yapmaz.
SEO
Modül SEO sağlayıcısı ve site haritası kaynağı da ekleyebilir (Seo modülü gerektirir). Her sayfada <title>, description ve canonical verin.