Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer

Dinamik Olarak Sitil Değiştirmek

1 min read

Sitil diyerek artık günümüzün vazgeçilmezi olan sitelerimize şekil veren CSS dosyalarını kastediyorum. Farzedin ki siteniz turuncu ağırlıklı fakat kullanıcıların sitenizin rengini istedikleri zaman değiştirebilmesini istiyorsunuz. Bunu yapmak düşündüğünüzden çok daha kolay. Tek yapmanız gereken sitil dosyasınızın(.css) dinamik olarak değiştirilebilmesini sağlamak. Gelelim bunu nasıl yapacağınıza.

Bunu yapmanın birçok farklı yolu var. Genel olarak makalelerimde yapmaya çalıştığım gibi bu yazımda da amacım size işin mantığını anlatmak. Üzerine kat döşemek size kalmış ;)

Ben kendi yöntemim olan php ile çerezleri kullanarak sitenin sitil dosyasını değiştirmeyi göstereceğim. Çalışma mantığı şöyle:

Kullanıcı sitenizde Mavi ve Turuncu isimli iki bağlantı görecek. Mavi’ye tıklayınca degistir.php isimli dosyaya mavi değişkeni gidecek. Bu dosya sizin belirleyeceğiniz bir ismiyle içinde mavi değerini almış değişkeni barındıran bir çerez yaratıp yeniden kullanıcıyı sitenize yönlendirecek. Siteniz, açılırken önceden oluşturulmuş çerezi kullanıcının bilgisayarında arayacak ve eğer yaratılmışsa siteniz, kullanıcının belirttiği renkte açılacak site.

Öncelikle sitemin “turuncu.css” ve “mavi.css” isimli iki adet sitil dosyası olduğunu varsayıyorum. Turuncu’da tüm linklerin ve başlıkların turuncu, mavide de mavi olduğunu düşünün.
Not: WordPress için düşünürsek mutlaka temanızın bir de “style.css” dosyası olması gerekiyor.

Yazının devamında belirteceğim “stil_degiskeni” yazan yerlere kendi isteğiniz doğrultusundadiğer sitelerden ayırt edilebilecek bir isim yazınız. Sitenizin ana dizininde “degistir.php” isimli bir dosya yaratın ve içine şu kodu ekleyin:

[php]< ?php $theStyle = $_GET['stil_degiskeni']; setcookie("stil_degiskeni", $theStyle, time()+36000, "/", ""); header("Location: index.php"); exit; ?>[/php]

Sitenizin/temanızın < head > … < / head > etiketlerinin arasına şu kodları yazın.

[php]< ?php if (isset($_COOKIE["stil_degiskeni"])) $cerez=$_COOKIE["stil_degiskeni"]; switch($cerez) { case "turuncu": break; case "mavi": case "": $cerez = "mavi"; break; } $adres=get_bloginfo('template_directory'); //Eger wordpress degilse buraya sitenizin adresini yazin. $cerez='‘;
echo $cerez;
?>[/php]

Bu kodun anlamı şudur. Eğer çerez oluşturulmuşsa kullanıcının bilgisayardaki çerezden sitenin renk değişkenini alıyor ve siteniz belirtilen sitil dosyası ile açılıyor aksi halde yani çerez yaratılmamışsa yine varsayılan olarak mavi.css dosyası ile açılacaktır. Eğer WordPress için oluşturuyorsanız bu dediklerimi sitil dosyalarınız temanızın içinde olmalı.

Son olarak kullancılarımıza sitemizin rengini değiştirecekleri bağlantıları sunucaz.

[html]Mavi
Turuncu[/html]

Umarım beğenirsiniz. saygılar sevgiler ;)

Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer