Kategoriler
Teknik

Sublime Text Klasör/Dosya Listesi Problemi

Geçici bir çözüm olarak klavye kısayolu atayarak dosya listesini yenilemesini sağladım. Sublime Text 2 -> Preferences -> Key Bindings - User yolundan kısyolların bulunduğu dosyayı açıp kısayol tanımladım.

[
    {"keys": ["command+shift+r"], "command": "refresh_folder_list"}
]

Ben Mac kullandığım için CMD Shift ve R kombinasyonu ile yenilemeyi tercih ettim. Windows/Linux kullanıcıları Ctrl+Shift+R ya da kendilerine uygun bir kısayol belirleyebilirler.

Kolay gelsin.

Kategoriler
Teknik

Girdi Değerini Büyük Harfe Çevirmek

Merhaba, JavaScript ile girdi değerini büyük harfe çevirme ihtiyacı duydum. Daha önceden de karşılaşmıştım. Bu sefer Angular JS ile gerekti. Ama ben hepsini burada yazacağım.

<input type="text" onKeyup="this.value = this.value.replace('i','İ').toUpperCase()">

Yukarıda özellikle i harfini İ harfine değiştirdim (replace). Çünkü ingilizce karakter olan i, değiştirmediğimde I harfine çevriliyor.

jQuery ile

$(function() {
    $('input').keyup(function() {
        this.value = this.value.replace('i','İ').toUpperCase();
    });
});

Güncelleme: Yazıldıktan sonra değil de, yazıldığı anda büyük harf yazılması için şu da uygundur:

$('.buyukHarf').on('input', function(evt) {
  $(this).val(function (_, val) {
    return val.replace('i', 'İ').toUpperCase();
  });
});

AngularJS ile

$scope.girdi = $scope.girdi.replace("i", "İ").toUpperCase();

Kolay gelsin.

Kategoriler
Teknik

Composer/OpenSSL Sertifika Hatası

Mac üzerine Composer kurdum. Paket kurmak istediğimde şöyle bir sertifika hatası veriyordu:

error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

Biraz araştırma yaptım. Sorun OpenSSL sertifikasından kaynaklanıyormuş. PHP’nin sürüm güncellemesinden sonra orataya çıkmış. Olmayan ingilizcemle ancak bu kadarını (doğru ya da yanlış) anlayabildim. Çözüm için epey uğraştım.

Evvela php.ini’den OpenSSL eklentisinin/uzantısının akif olup olmadığını kontrol ettim, aktifti. Sonra uzantının kullandığı sertifika dosyasını bulmam gerekti. Bunu da openssl_get_cert_locations() fonksiyonu ile elde ettim.

echo "<pre>"; print_r(openssl_get_cert_locations());

yazdıktan sonra

Array
(
    [default_cert_file] => /Applications/XAMPP/xamppfiles/share/openssl/cert.pem
    [default_cert_file_env] => SSL_CERT_FILE
    [default_cert_dir] => /Applications/XAMPP/xamppfiles/share/openssl/certs
    [default_cert_dir_env] => SSL_CERT_DIR
    [default_private_dir] => /Applications/XAMPP/xamppfiles/share/openssl/private
    [default_default_cert_area] => /Applications/XAMPP/xamppfiles/share/openssl
    [ini_cafile] => 
    [ini_capath] => 
)

Sonucunu aldım. Yani sertifikanın /Applications/XAMPP/xamppfiles/share/openssl/cert.pem yolunda olması gerekiyordu. Ama yerinde yoktu. Olması gereken dizine sertifika dosyasını yüklemem gerekiyordu. Sırasıyla aşağıdaki komutları uyguladım:

$ cd /Applications/XAMPP/xamppfiles/share/openssl/
$ sudo curl http://curl.haxx.se/ca/cacert.pem -o cert.pem

Sonrasında Apache sunucusunu yeniden başlattım. Sonra da composer install komutuyla istediğim paketleri kurdum.

Mac’te wget olmadığı için alternatif olarak curl kullandım. Wget sistemde kurulu değilse curl http://site.com/dosya-adi -o yeni-dosya-adi şeklinde kullanılabiliyor.

Kolay gelsin.

Kategoriler
Teknik

Many to Many İlişki Tipi

Veritabanında birden fazla veriyi birden fazla veriye ilişkilendirmek için Many To Many Relationship diye bir yöntem var. Türkçe manası da herhale Çoktan çoğa ilişki tipidir. Bu yönteme bir blog sisteminde ihtiyaç duydum. Bir blog gönderisine bir kategori tanımlamak daha önceden yaptığım bir işti. Ama Bir gönderiye birden fazla kategori tanımlamak istediğimde bu tarz bi yönteme başvurmak gerektiğini öğrendim.

Bir gonderi tablomuz olsun, içerisinde id, baslik, govde alanları olduğunu varsayalım. Bir de kategori tablomuz olsun, içindeki alanlarsa id, adi, aciklama olsun.

Bu noktada her şey tamam. Şimdi yapmamız gereken bu iki tablodaki verileri ilişkilendirmek olacak. Önceden gönderiyi bir kategoriyle ilişkilendirmek için gönderi tablosunda kategori_id adlı bir alan oluşturup gönderinin ait olduğu kategorinin ID‘sini eklerdik. Ama birden fazla kategori tanımlamak istenildiğinde bu durum yapılamıyordu. Şimdi, bu durumun üstesinden gelebilmek için hangi gönderi ve kategorilerin hangisiyle ilişkili olduğunu tutabileceğimiz bir tablo oluşturacağız. Tablonun adı gonderi_kategori olsun. İçerisindeki alanlar ise id, gonderi_id, kategori_id olsun. Görsel olarak şöyle:

1 numaralı gönderi, 2 ve 3 numaralı kategoriyle ilişkilendirildiğinde, gonderi_kategori tablosuna iki satır eklenir. Yani şöyle:

id gonderi_id kategori_id
1 1 2
2 1 3

Daha sonra uygulamalı bir örnekte görüşmek üzere diyelim.