Yazacağımız bir plugin için vBulletinin xxxx şablonundaki xxxxxx kodların yyyyyy kodlarını yerleştirmemiz gerektiği durumlarda FIND ve REPLACE kodları ile çok kolay bir şekilde değiştirebiliriz.
Bu tip işleri plugin ile yapmanız faydaları şablonları tek tek yanı birden fazla stillerde tek tek şablonları editlemek yerine plugin ile otomatik değiştirmek çok daha güzel olur.
Yada şöyle diyelim vBulletin için bazı şablonlarında kodlar ekleyerek veya değiştirerek bir özellik eklediniz bunu diğer vBulletin kullanıcılarla paylaşmak istiyorsunuz ve onlara şurada bunu bul bununla değiştir diye tam bir işkence sunmuş oluyorsunuz her güncellemede yada her yeni bir stilde yada her sitilde bunu uygulamak tam ölüm işkencesi olsa gerek işte bunlardan kurtulmak için plugin süper bir çözüm.
Aşağıda vereceğim kod ben kayıt alanında TC Kimlik Sorgulama yapan bir pluginde kullandım görevi şu üye olacak kişi TC Kimlik numara giriş alanına gireceği kimlik numara eğer forumda kayıtlı bir üye tarafından kullanıyorsa Kaydı Tamamla butonu devredişi bırakıyor bu butonu devredişi bırakmak için vBulletine ait olan bu submit kodlarına bir şeyler eklemem gerekti ve bende FIND ve REPLACE kullanarak yaptım işte kodlar.
AdminCP den Plugin Yönetiminden Yeni Plugin Ekle diyoruz.
Ürün: pluginmizi seçiyoruz
Çegel Konumu: register_form_complete
Başlık: TC Kimlik No Kontrolü Submit Butonu Değiştirme
Uygulama Sırası: 5
Plugin PHP Kodu:
|
$tc_kimlik_numara_kontrolu['register']['find'] = array('<input type=\"submit\" class=\"button\" value=\"$vbphrase[complete_registration]\" accesskey=\"s\" />');
$tc_kimlik_numara_kontrolu['register']['replace'] = Array('<input type=\"submit\" class=\"button\" id=\"sbutton\" value=\"$vbphrase[complete_registration]\" accesskey=\"s\" enabled=\"true\" />');
$vbulletin->templatecache['register'] = str_replace($tc_kimlik_numara_kontrolu['register']['find'], $tc_kimlik_numara_kontrolu['register']['replace'], $vbulletin->templatecache['register']);
$tc_kimlik_numara_kontrolu['register']['find1'] = array('<input type=\"text\" class=\"bginput\" name=\"userfield[field40]\" id=\"ctb_field40\" value=\"\" size=\"25\" maxlength=\"11\" />');
$tc_kimlik_numara_kontrolu['register']['replace1'] = Array('<input type=\"text\" class=\"bginput\" name=\"userfield[field40]\" id=\"ctb_field40\" value=\"\" size=\"25\" maxlength=\"11\" /><br /><div id=\"status\" style=\"display\"></div>');
$vbulletin->templatecache['register'] = str_replace($tc_kimlik_numara_kontrolu['register']['find1'], $tc_kimlik_numara_kontrolu['register']['replace1'], $vbulletin->templatecache['register']);
|
İşte kodlar bunlar çalışır durumda iyicene inceleyin derim
Ancak neyi ne ile değiştirdiğimi daha kolay anlaşılması için aşağıda kodları veriyorum
register şablonunda aşağıdaki kodu kaldırıp
| <input type="submit" class="button" value="$vbphrase[complete_registration]" accesskey="s" /> |
Yerine aşağıdaki kodu yerleştirdim.
| <input type="submit" class="button" id="sbutton" value="$vbphrase[complete_registration]" accesskey="s" enabled="true" /> |
Burada neyi eklediğimi görebilirsiniz aslında hepsini kaldırıp yerine başkasını yerleştirmeye gerek olmayabilir accesskey e kadar bul diyorsun ondan sonra değiştir gibi bir şeyler oluyor ama emin değilim değişen bir şey yok bu daha kolay.
Birde şunu belirteyim kafanız karışmasın burada kullandığım şablon isimleri tc_no_sorgula gibi şablon isimleri sadece buradaki kodlar için yanı başka bir yere bağlı değil.
Bu sitemle vBulletine ait olan bir alana veya bölüme pluginimize ait bir şeyler ekleriz deya değiştiririz
Birde şunu belirteyim en üsteki kodların arasında çok boşluk bıraktım bunu sizlerin daha kolay anlamanız için yaptım üsteki kodlar FIND ve REPLACE aşağıdaki kodlarda bul ve değiştir işlemi yap demektir.
Enson öğrendiğim birşeyde eklemek istiyorum
Bu şu görevi yapar.
Bir şablon içinde bir metin bulup onun yerine yeni oluşturduğunuz şablonun içindeki tüm kodları koyar.
Bunun iyiliği yukardaki bul ve değiştir yerlere sığdıramayacağınız kadar fazla kodlar var ise bnlar bir şablon içinde bulundurarak o şablonu çağırıp içindeki tüm kodları bu metin yerine koy demektir.
Ben kendim için yaptığım bir kodu paylaşayım
Benm yaptığım iş postbit içinde üyelerin kullanıcı adı yerine özel profil alanı oluşturup üyelerden gerçek adlarını ve soyadlarını yazmalarını istedim ve kullanıcı adları yerine gerçek adlarını göstermeye çalıştım.
| $vbulletin->templatecache['postbit_legacy'] = str_replace('$post[musername]','' . fetch_template('kullanici_adi_yerine_adi_soyadi_goster') . '',$vbulletin->templatecache['postbit_legacy']); |
Burada ben "kullanici_adi_yerine_adi_soyadi_goster" diye bir şablon oluşturdum ve içine kodları koydum ve bir plugin ekleyerek yukarıdaki kodu yazdım ve üyenin kullanıcı adı yerine üyenin gerçek adı ve soyadı göründü.
BU WEB SİTEDEKİ TÜM İÇERİKLER BU SİTEYE AİTTİR VE KOPYALANMASINA KESİNLİKLE İZİN VERİLMEZ, BU SİTEYİ KAYNAK GÖSTEREREK SİZE ÇALMA HAKKINI VERMEZ, ŞEREFLİ İNSANLAR OKURLAR VE YARARLANIRLAR, ŞEREFSİZ İNSANLAR İSE ÇALARLAR VE KENDİ VEYA DİĞER WEB SİTELERDE YAYINLAYARAK KENDİNE MAL EDERLER. NOT: ÇALAN SİTELER BURADA AFİŞE EDİLECEKTİR.