Kontrollü Ve Standart Site Tasarımı
-
Aylardır 2-3 proje üstünde çalışıyorum.Maalesef belli bir düzen, kalite, ve bütün kontrolü sağlamak istiyorum.Bir iki şey var bunlar için.Onları sizinle paylaşıcam.Eğer javascript'i kapatmışsa adam (olabiliyor bazen), yönlendirme yaparak kurtulmanız gerekmektedir.Nasıl olacak ? Kod
<script type="text/javascript">
document.write("<!-- ");
</script>
<meta id="refresh" http-equiv="Refresh" content="0;URL=noscript.html" />
<script type="text/javascript">
document.write(' --><script type="text/javascript">');
</script>
--
burda script açıksa <!-- --> ekliyor ve görmezden geliyor, fakat kapalıysa metamızı çalıştırıyor ve noscript.html sayfasına yönlendiriyor.Burda 'javascript'i açın' falan gibi birşey yazdırabilirsiniz. Ben nasıl açılacağına dair chrome, firefox ve opera için yönergeler koyucam.
2 - scrollbar
Muhtemelen sizin için ne alaka diyebileceğiniz birşey olabilir.Fakat sayfalarda bazen scroll bar çıkıyor bazen çıkmıyor. Sayfalarda oynaklık oluyor.Yani scrollbar yoksa sağda, çıakrsa biraz sola kayıyor aynı sayfada. 750px genişliği olan bir blog var ve bundan tiksiniyorum.Çünkü kayıyor, sapıtıyor.Bende scrollbar'ı sürekli göstererek üstesinden geldim.Kodlar ;
html {
overflow-y: scroll;
}
3- Seçilmeyi iptal etme
Sitede ister istemez mouse kayınca, seçiliyor vs.. fakat site o kadar iğrenç duruyor ki .. Tiksiniyordum.Elimden geldiğince iptal ettim ;
webkit, gecko ve presto için ayrı ayrı yapacaksınız (hoş opera için genelde koymaya gerek yok)
body{-webkit-user-select: none; -moz-user-select: none; user-select: none;}
--
4- Tarayıcı seçimi
webkit, moz gibi bir sürü tarayıcıya özgü şeyler kullanıyorum. Fakat bunları yukarda olduğu gibi otomatik yazmak işkence.Yani lazım değilken bile orda. O halde tarayıcıları ayıralım ;if (stristr($_SERVER['HTTP_USER_AGENT'],"webkit") || stristr($_SERVER['HTTP_USER_AGENT'],"Googlebot") || stristr($_SERVER['HTTP_USER_AGENT'],"Yahoo") || stristr($_SERVER['HTTP_USER_AGENT'],"YandexBot"))
echo '<link href="./webkit.css" rel="stylesheet" type="text/css" media="all">';
elseif (stristr($_SERVER['HTTP_USER_AGENT'],"gecko"))
echo '<link href="./gecko.css" rel="stylesheet" type="text/css" media="all">';
elseif (stristr($_SERVER['HTTP_USER_AGENT'],"presto"))
echo '<link href="./presto.css" rel="stylesheet" type="text/css" media="all">';
-
explorer için trident yazabilirsiniz fakat ben explorer'!ı komple yasakladım.
5- sayfalara göre css ve javascript ekleme
Performans için işime yarasada yaramasada her türlü css kodlarını doldurmaya karşıyım.En azından modül modül ayırdım.Yani blog için blog.css , üyelik işlemleri için uyelik.css vs..
sayfa kontrolü yapıp ekletiyorum. Direkt ekletebilirsiniz, fakat kontrollü, kuralına uygun, standartları olan bir iş yapalım.Yani head kısmına ekleyelim.
explorerda arıza çıkarıyordur %10000 fakat bir kaç yol var.
head için jquery ile append kullanabilirsiniz.
$('head').append('<link href="./css.css" rel="stylesheet" type="text/css" media="all">');
yada ;
http://api.jquery.com/attr/ ile ; sadece değişken olacak (her sayfa içinf arklı css için)
<link id="aydi" href="./css.css" rel="stylesheet" type="text/css" media="all">
$('#aydi').attr('href','bilmemnecsssi.css');
-------------
explorerda arıza çıkaranlar olabilir. O yüzden explorer için bende arıza çıkartıp siteye girişini yasakladım. Daha iyi çözümleri olanlar yazarsa, yada farklı şeyler kullananlar güzel bir konu olabilir. Aklıma geldikçe eklerim.
-
bende dursun
-
scrollbar olayı gerçekten çok işime yarayacak çok saol zumsuk
-
standart değil ama şifre ve nick pattern'i vermek istedim ;
sifre = /^(?=.*[A-Za-z])(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?!.*[^A-Za-z0-9@_.])(?!.*\s).{6,12}$/ ;
nick = /^[a-z0-9_]{4,12}$/;
şifrede küçük harf, büyük harf, rakam, @, _ ve . karakterleri kullanılabilir.6-12 karakter.Nick'te ise küçük harf, rakam ve sadece _ kullanılabilir.
-
uplama niteliğinde yazı , daha çok paylaşım falan olur diye düşünüyordum :/
---
İf else kullanımına güzel örnek kısaltılmış kullanımdır (bu tekniğin adını hatırlamıyorum) ;
kontrol ? doğruysa bunu : yanlışsa bunu yap ;
switch caselerde falan şöyle bir kullanımım vardı ;
case 'bilgiler': require_once './m/uye.php'; echo (isset($_POST['veri']) ? uye::bilgilerim($_POST['veri']) : uye::bilgilerim()); break;
--
Burda sınıf kısmınıda ;
$a = new uye();
$uye->bilgilerim();
demek yerine zaten bir kere kullanacağım için ;
uye::bilgilerim()
şeklinde yazdım.
-
Javascript ile taglardan kurtulma.
yazi.replace(/(<([^>]+)>)/ig,"");
yaptığınızda bütün <tag></tag> ve arasındakiler gider. İhtiyacıma yarayıyordu buldum.
