Bu yazımda sizlere laravel üzerinde Elequent Sluggable paketini kullanarak seo uyumlu linkler nasıl yaratırız, güncelleme işlemlerinde Sluggable nasıl aktif ederiz ve türkçe karakter sorununu nasıl giderebiliriz bahsetmek istiyorum. Eğer cms sistemi yazıyorsanız veya özel bir yazılım projesi geliştiriyorsanız seo uyumlu link yapısına mutlaka ihtiyacınız olacaktır.

Öncelikle ben işlemlerimi Laravel 5.6 üzerinde gerçekleştiriyorum.

1. Kurulum

Terminal üzerinde proje klasörüne giderek composer ile paketimizi indiriyoruz.

**Eğer Laravel 5.5 ve üzeri kullanıyorsanız bu adımı atlayabilirsiniz.

Daha düşük Laravel versiyonları kullanıyorsanız providers’a şunu yazmanız gerekmektedir. Tabi Laravel 5.4 kullanırken Sluggable 4.2 sürümünü kurmalısınız.


2. Kullanım

Eğer eklentinin varsayılan ayarlarını üzerinde değişiklik yapmak istiyorsanız aşağıdaki vendor:publish komutumuzu çalıştırıyoruz ve config dizini içerisine sluggable.php ayar dosyamızı getirmiş oluyoruz.

Seo linki yapacağınız her tablo’nun Model dosyaları içerisine aşağıdaki tanımlamaları yapıyoruz.
Ben örnekte post tablosu içerisine title ve slug adında 2 sütun oluşturdum.

Burada anlamamız gereken sluggable() fonksiyonunun çalışma mantığıdır.
Fonksiyon bize şunu söylüyor; ben tablonda başlık olarak verdiğin sütunu (title) referans alır gider linki yazdıracağın sütuna (slug) otomatik olarak çeviririm der.

Örnek bir ekleme işlemi yaptığımızda aşağıdaki gibi başlığımız otomatik olarak linke dönüşecektir.

3. Güncelleme (Update) İşlemlerinde Sluggable Kullanımı

Peki buraya kadar herşey normal yeni kayıt eklerken otomatik olarak link çevrimi yapılıyor fakat güncelleme işlemlerinde otomatik olarak link çevirme yapmamaktadır.  Bunun sebebi ise Sluggable tablodaki slug sütununu dolu olarak algıladığından üzerine yazdırma yapmamaktadır.

Güncelleme fonksiyonlarımızda slug alanını en başta null yaparak bu sorunuda çözmüş oluyoruz.

Alternatif Yol:

Facebook Php-TR sayfası üzerinden Yusuf bey alternatif bir yol daha olduğuna değindi.
Direkt olarak config/sluggable.php ayar dosyası içinde onUpdate alanını true yaparak güncelleme işlemlerinde otomatik link değişimi yapılabilmektedir.

4. Türkçe Karakter Sorunu ve Çözümü

Başlıklarımızı seo uyumlu linklere artık otomatik olarak çevirebiliyoruz fakat türkçe karakter kullandığımızda bazı uyuşmazlıklar ortaya çıkmaktadır. Yukarıdaki güncelleme örneğinde de farketmiş olabilirsiniz 😀

Örneğin; “ü” harfini eklenti linke çevirirken “ue” olarak döndürmektedir.

Bu sorunun temel kaynağı laravel’in Str::slug’ı dahil yapısında türkçe karakterlere destek vermemesidir. Hatırlarsanız ki kurulum yaparken yukarda sizlere varsayılan ayarlara değiştirmek istiyorsanız vendor:publish komutunu çalıştırın demiştim. Türkçe karakter sorununu çözmek için şimdi komutu çalıştırıp config/sluggable.php ayar dosyamızın içerisine gidiyoruz.

Ayar dosyamız içerisinde method elemanını buluyoruz. Standartta burası null olarak tanımlı gelmektedir. Biz içerisine türkçe karakterleri de seo yapısına uygun çevirebilmesi için aşağıdaki yazdığım fonksiyon ekliyoruz.

5. Sonuç

Laravel üzerinde SEO dostu url yapısı nasıl yapılır, güncelleme işlemlerinde de sluggable eklentisini nasıl kullanırız, sluggable eklentisinde türkçe karakter sorunu gibi sorulara cevap vermeye çalıştım.
Umarım faydalı olmuştur, bir sonraki yazıda görüşmek üzere 🙂

6 Shares:
2 comments

Bir Cevap Yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.

You May Also Like
Devamını Oku

Laravel Theme

Bugün sizlere Laravel üzerinde geliştirdiğim bir eklentiden bahsetmek istiyorum. Bazı projeler için birden fazla temanın kontrol edilebileceği bir…