Jquery Validation sonradan kural ekleme

August 25th, 2010

Selamlar,
ben genelde formlarimi client tarafinda Jquery Validate Plugin i ile kontrol ettitirim.
Iki benzer formum var, ikincisinde ama baska alanlarda bulundugu icin onlari da ekstradan kontroll ettirmem gerekiyor.
Tüm js kodunu kopyalayip yeniden yaza biliriz ama, o tabiki güzel olmaz.
onun icin validator a yama yapalim. nasilmi iste böyle:
ana validator dosyamiz :

JAVASCRIPT:
  1. $(document).ready(function(){
  2.     $('form#regit div div.element').append('<div class="errormessage" style="display:inline;"></div>');
  3.    
  4.  
  5.     var validator = $("form#regit").validate({
  6.          ignore: "input[type=hidden]",
  7.  
  8.         rules: {
  9.             reg_email: {
  10.                 required: true,
  11.                 email: true,
  12.                 remote: "/an/checkemail/"
  13.             },
  14.             reg_password: {
  15.                 required: true,
  16.                 minlength:4
  17.             },
  18.             reg_password2:{
  19.                 required:true,
  20.                 minlength:4,
  21.                 equalTo:"#reg_password"
  22.             },
  23.             agb: "required"
  24.            
  25.         },
  26.         messages: {
  27.             reg_email: {
  28.                 required: Message["email_required"],
  29.                 email: Message["email_notok"],
  30.                 remote: Message["email_exists"]
  31.             },
  32.             reg_password: {
  33.                 required : Message["pass_required"],
  34.                 minlength: Message["pass_length"]
  35.             },
  36.             reg_password2: {
  37.                 required : Message["pass_required"],
  38.                 minlength: Message["pass_length"],
  39.                 equalTo: Message["pass_equal"]
  40.             },
  41.             agb:Message["agb_required"]
  42.            
  43.         },
  44.         success: function(label) {
  45.             if(label[0].htmlFor=="agb")
  46.                 label.removeClass('error');
  47.             else
  48.                 label.addClass("valid");
  49.            },
  50.  
  51.         errorPlacement: function(error, element) {
  52.             if ( element.is(":hidden") ){
  53.                 element.next().next().html(error);
  54.             }
  55.             else{
  56.                 element.next($('div.errormessage')).html(error);
  57.             }
  58.         }
  59.        
  60.     });
  61.    
  62. });

yama yaptigimiz dosya:

JAVASCRIPT:
  1. $(document).ready(function(){
  2.     $('#reg_email').rules("add",{
  3.         remote: "/ag/checkemail/"
  4.     });
  5.     $('#company').rules("add",{
  6.         required: true,
  7.         minlength:4,
  8.         messages:{
  9.             required:Message["company_required"],
  10.             minlength: Message["company_length"]
  11.         }
  12.     });
  13.     $('#branch_id').rules("add",{
  14.         required: true,
  15.         messages: {
  16.             required: Message["branch_required"]
  17.         }
  18.     })
  19. });

#reg_email de remote adresini degistiriyoruz,
ve iki extra kontrol alani daha ekliyoruz validatorumuza.

Bu satirlar bana özel: Message["email_required"] siz oralara kendi hata mesajlarinizi yaza bilirsiniz.

ps:
bir alana tamamiyle baska kurallar eklemek icinse remove metodunu kullanarak ekli olan kurallari sile bilirsiniz.

JAVASCRIPT:
  1. $('#reg_email').rules("remove");

Categories: Javascript/Ajax/Jquery

Tags: , No Comments

Jquery Dialog da Tinymce gösterme

August 20th, 2010

Selamlar,
cok kisa bir kod ekliyecegim lazim oldugunda herkez bula bilsin diye.

Bugün iste ajax ile icerigini doldurdugum bir Jquery UI Dialog caminda Tinymce editorunu göstermem gerekiyordu.
Bir kac gün önceden bu sorunla karsilacagimi bildigim icin Jquery türkiye Mailing liste bir mail atmistim, sagolsun Veysi Ertekin hemen cevab yazdi.

Su Kodla ajaxla gelen bir dialogda tinymce göstere bilirsiniz.

JAVASCRIPT:
  1. tinyMCE.init({
  2.                      mode : "textareas",
  3.                      theme : "simple"
  4.                 });
  5.    
  6.                 tinyMCE.execCommand('mceAddControl', false, "task");

dialog kodunun hemen altina bunu ekleyin tamamdir.
task yazan yere kendi textareanizin idsini yazin;)

ps: form u benim gibi js/ajax ile gönderiyorsaniz, tinymce ozaman textarea ya yazilmasi gereken icerikleri iframe den kopyalamiyor, ajax postu göndermeden onun icin bu fonksiyonu da cagarin.

JAVASCRIPT:
  1. tinyMCE.triggerSave();

kolay gelsin

Categories: Javascript/Ajax/Jquery

Tags: , No Comments

APC kurulumu

August 16th, 2010

apc nedir:
APC, alternatif PHP önbelleğidir. PHP betiklerini derlemek ve önbelleklemek için özgür, açık ve sağlam bir çalışma ortamı sağlamak adına tasarlandı. APC, yükü ağır olan sitelerde betiklerin çözümlenmesi ve derlenmesinden neredeyse tamamen kurtularak derlenmiş bir durumda önbelleklenmesi için imkan sunarak PHP'nin başarımının arttırılmasını sağlayacak bir yol olarak düşünüldü

apc kurulumuna gecelim, öncelikle en son apc yi buradan indirelim:

cd /tmp && wget http://pecl.php.net/get/APC

indirdigimiz dosyayi acalim:
tar xvfz APC

ardindan su satirlari calistiralim:
cd APC-3.1.4/
phpize
./configure --enable-apc-mmap --with-apxs2 --with-php-config=/usr/bin/php-config
make && make install

ardindan php.ini yi acip Dynamic Extensions satirinin altina bunlari ekliyoruz:

extension="apc.so"
apc.enabled=1
apc.file_update_protection=2
apc.optimization=0
apc.shm_size=32
apc.shm_segments=1
apc.gc_ttl=7200
apc.ttl=7200
apc.num_files_hint=1024
apc.enable_cli=0

ve son olarak apacheyi yeniden baslatiyoruz:
/etc/init.d/apache2 restart

Herseyi dogru yaptiysak phpinfo ya apc adli bir bölüm eklenmis olmali.

phpize icin suse de php5-devel paketi ve ubuntuda php5-dev paketi kurulu olmasi lazim.

Categories: Linux

Tags: No Comments

at ile ileri tarihde bir görev calistirma

April 12th, 2010

Bu yazimizida at ile ileri bir zamanda komut nasil calistirilir ona bakacagiz.
Bana lazim olus sebebi yarin gece Server baska bir Datacentere tasinacak ondan kisa bir zaman önce Serveri kapatmam lazim.

Bunun icin öncelikle atd yi kuralim:

apt-get install at

calistiralim:

/etc/init.d/atd start

ardindan calistirilicak olan komutu ve zamani yazalim:

echo "/sbin/shutdown -h now" | at 22:15 13.05.2010

ardindan atq komutu ile görevi dogru yapmismiyiz diye kontrol ede bilirsiniz.

atq

daha fazla bilgi icin man at

Categories: Linux

Tags: No Comments

Zend Certified Engineer

April 10th, 2010

Selamlar,

persembe günü saat 11 de Almanyada Zend Zertifikasi sinavina girdim.
Sinava iki günde PHP Architects's Zend PHP 5 Certification Study Guide kitabini okuyarak hazirlandim.
Kitabi Zend in sayfasindan satin ala bilirsiniz yada Internetten ebook versiyonunu arayan buluyormus diye duydum :)
Kitabin yaninda String ve Array fonksiyonlarinada php.net sayfasindan yeniden göz gecirin derim.
Onun yaninda PHP de XML ile hasir nesir degilseniz, php.net sayfasinda o bölümüde iyice inceleyin.
Sinav gercekten düsünüldügü gibi kolay degil, sorular cok sasirtici, sorulari iyi okuyup ona göre cevap vermek lazim.
Sinavda 90 dakikada tam 70 soru cevaplamaniz gerekiyor.
Sinavdan sonra hemen basarip basaramadiginizi ögreniyorsunuz, tek kötü olan kac puan ile basarip/basaramadiginizi söylememeleri.
Ben sahsen hangi soruya yanlis cevap vermisim görmek isterdim.
Cok kolaylastirilmis sekli olsada, Sinav sorulari hemen hemen nasil Chris Shiflett'in sayfasinda bir bakin.

Sinav hakkinda sorusu olan Mesaj yazsin yada mail atsin.
Zend Yellow Pages deki yerim:

Zend Certified Engineer

Categories: PHP

No Comments

Opera 10.50 yayinlandi

March 2nd, 2010

Evet kisa bir süredir yayinlanmasini bekledigim sürüm sonunda yayinlandi, suan icin sadece Windows icin yayinlandi, Mac, Linux, Solaris ve FreeBsd versiyonlari yolda.

Yeni Javascript-Engine ile tam 7 kat daha hizlanan opera, gelistiricilerine göre suanda dünyadaki en hizli Browser durumunda.

Windows 7 ve Html5 destegi gelistirildi ve onun yaninda birde private Tab lar eklendi.
Private Tab da ziyaret edilen sayfalar iz birakmiyor, Tabin kapanmasiyla o sayfaya ait tüm izler yok ediliyor.

Ikinici ayin basinda yayinlanmis bir benchmark testi asagida.

opera 10.50 benchmark

Resimdede görüldügü gibi, opera IE den tam 17.7 kat daha hizli calisiyor.
Herkezin sevgilisi olan Firefox uda ikiye katlamis durumda.

FAzla dicek bir sey yok aslinda, lider kim belli.
Gelistirme hizli, Browser hizli daha bir insan ne isterki :)

Opera'yi indirmek icin www.opera.com ziyaret ede bilirsiniz.

Categories: Bilgisayar & Internet

Tags: No Comments

google den Dns servisi

December 15th, 2009

haberi duyali bir kac hafta oldu aslinda yazmaya yeni vakit buldum.
Google artik genel bir DNS servisi sunuyor. Amaci bulunan yeni fikirlerle DNS isteklerini daha cabuk sunmasi.
Servis diger google servislerinde oldugu gibi suan icin sadece deney olarak adlandirilmis.
Daha hizli cevaplar icin öncelikle clevere Caching mekanizmasini kullaniliyor. Böylelikle DNS kaydi gecersiz (TTL) kilinmadan DNS-Server kayit bilgilerini yeniliyor ve istek geldiginde google zaten hangi adresi döndürecegini biliyor ondan yeni bir istek yapmasina gerek yok.

daha genis bilgi burada.

Google in DNS Adresleri ise:
8.8.8.8
8.8.4.4

Categories: Bilgisayar & Internet, Genel

No Comments

Opera Unite

December 3rd, 2009

Beni taniyanlar bilir, yillarin operacisiyimdir ve kod yazarken öteki tüm browserleride kullansam özel islerim icin hep opera kullanirim.
Bugün yeni kesfettigim bir servisden bahsetmek istiyorum.
Diger bazi Browserler bu isler icin degisik addon lar kullanmak zorunda olurken Opera 10 ile bircok özellik otomatikman bilgisayariniza yükleniyor.
Servisin adi Opera Unite. Dosya paylasimi, Müzik dinleme, not tutma, arkadaslarla mesajlasma, Statik Websitenizi kendi evinizden host etme, resim paylasimi vs. gibi eylemleri destekliyor.
Mesela :
-arkadasiniza film göndermek istiyorsaniz, operada dosyayi paylasin ve arkadasiniz sizin bilgisayarinizdan sorunsuzca indirsin. Rapidshare e filan yüklemeye gerek yok,
-ayni sey resimlerde tüm arkadaslara resimleri tek tek göndermek artik opera ile yok, resimleri paylasin tüm arkadaslariniz ayni anda hepsini görsünler
-isyerinde yada okulda evinizdeki müzikleri dinlemek istiyorsunuz ama download etme imkaniniz yok, sorun degil evde müzikleri paylasin isyerinden bilgisayariniza baglanip istediginiz mp3 ü dinleyin.
......

Bu sersivi kullanabilmek icin opera 10 yüklü olmasi gerekiyor, birde myopera hesabina ihtiyacinz var.
Myopera hesabini opera unite ilk kullanmak istediginizde olustura bilirsinz 20 saniye sürmez.

Dana beklemeye gerek yok operayi indirin ve deneyin:
Benim opera unite adresim:

Categories: Bilgisayar & Internet

No Comments

Php 5.3 Namespace ler

October 1st, 2009

Bir uygulama nekadar büyür, nekadar cok yazar o uygulamada calisirsa, nekadar degisik tür kodlar, kütüphaneler kullanilirsa okadar cok isim cakismasi ola bilir.
En büyük örnegi php 5.1.0 cikmasindan bir kac gün sonra php 5.1.1 cikmasiyle görüldü, bunun nedeni php 5.1.0 da yeni Date adinda bir sinif bulunmasiydi.
Bircok Pear kullanicisi update den sonra Fatal Error larla karsilasmisdi cünki Pear inde Date Sinifi vardi.
Böyle bir cakismadan kacinmak icin simdiye kadar Zend Framework de oldugu gibi Uzun isimler kullanildi (Zend_Controller_Action).

Php 5.3 ile bu uzun isimlerdende kurtulmak mümkün.

php dünyasininen en uzun süre tartisilan seperator u kesinlikle namespace seperator oldu.
Asil cif iki nokta üstüste (::) kullanilicakti ama php dünyasinda cif anlamli olur diye sonunda (\) Backslah isaretinde karar kilindi.

Namespace kullana bilmek icin, php dosyasinda ilk ifade namespace olmasi gerekmektedir, aksi takdirde bir fatal error ile karsilasirsiniz.
mesela:

PHP:
  1. <?php
  2. namespace Skorp;
  3. echo "skorp.eu";

Bir namespace bircok dosyayi kapsiya bilir. Dosyalarin her biri ayni namespace i beyan etmeleri gerekir. Asagidaki örnekde göründügü gibi, bir dosya icinde birden cok namespace bulunmasinada izin veriliyor.

PHP:
  1. <?php
  2. namespace Skorp
  3. {
  4.  
  5. echo "skorp.eu";
  6. }
  7.  
  8. namespace Foo
  9. {
  10. echo "foo.com";
  11.  
  12. }

Ama asagidaki örnege izin verilmiyor, en az bir namespace beyan edilmisse onun disinda herhangi bir kod olamaz.

PHP:
  1. <?php
  2. namespace Skorp
  3. {
  4.  
  5. echo "skorp.eu";
  6. }
  7.  
  8. echo "gohome";

alinan hata mesaji:
Fatal error: No code may exist outside of namespace {} in

Bir örnek ile namespaceleri nasil kullanacagimizi bakalim.

PHP:
  1. <?php
  2. namespace Skorp
  3. {
  4.     class Test {}
  5. }
  6.  
  7. namespace Foo
  8. {
  9. class Test{}
  10. }
  11.  
  12. namespace Bar
  13. {
  14.     var_dump(new \Foo\Test());
  15. }

Bar namespace i icinde Foo namespacindeki Test sinifini olusturuyoruz.

var_dump satirini su sekilde yazmis olsaydik:

PHP:
  1. var_dump(new Foo\Test());

söyle bir hata ile karsilasicaktik.
Fatal error: Class 'Bar\Foo\Test' not found in

Bundan Adreslemeye dikkat etmemizi cikartiyoruz, normal bilgisyardaki Dosya Yapisi gibidir namespace de basta \ isareti yoksa kendi namespace icinde ara o sinifi.

Alias Mekanizmasi
Herzaman \Foo\Test veya daha uzayan satirlar kullanmamak icin Alias mekanismasini kullana biliriz.

PHP:
  1. namespace Bar
  2. {
  3.     use Foo\Test as anton;
  4.     var_dump(new anton());
  5. }

daha kisa yazmak icin

PHP:
  1. namespace Bar
  2. {
  3.     use Foo\Test;
  4.     var_dump(new Test());
  5. }

Bu kisa yöntemde en son bilesen adi kullanilir alias olarak yani bizim örnegimizde Test

dikkat edilmesi gereken birsey daha var alias mekanizmasini kullanirken \ yazmamiza gerek yok, php burda sinif adinin tam yolunu bilmek istiyor.

Fonksiyonlarda bilinmesi gereken ise, onlara birer Alias veremiyoruz, ondan fonksiyonun tüm adini yazmak gerekiyor.
yazilan fonksiyonlar ilk önce kullanilan Namespace icerisinde aranmaktadir, eger orada bulunmadiysa, global Namespace de aranir.

Mesela strlen adinda bir fonksiyonumuz varsa ama biz php nin bize sunmus oldugu strlen fonksiyonunu kullanmak istiyorsak ozaman basina bir \ koymamiz gerekiyor

PHP:
  1. echo \strlen("blabla");

son olarakda hangi namespace de oldugumuzu görmek icin _NAMESPACE_ Konstansini cagara bilirsiniz.

Categories: PHP

Tags: , 1 Comment

CentOs de Php5.2.9′a updateleme

September 21st, 2009

Centos in kendi reploari php 5.1.6 ile geliyor.
Bazi applikasyonlar mesela Oxid shop php 5.2 gerektiriyor bu yüzden Centos de nasil php yi güncelleriz bakalim:

CODE:
  1. wget -q -O - http://www.atomicorp.com/installers/atomic.sh | sh

CODE:
  1. yum repolist all

ile baka bilirz atomic repolara eklendimi diye.

ardindan

CODE:
  1. yum update

son olarak

CODE:
  1. /etc/init.d/lighttpd  restart
  2.  
  3. apache kullananlar
  4.  
  5. /etc/init.d/httpd  restart

Categories: Linux, PHP

Tags: , No Comments

Feed

http://www.skorp.eu /