- Katılım
- 9 Haz 2014
- Mesajlar
- 1,018
- Reaction score
- 1,044
- Puanları
- 113
- Web sitesi
- xenforo.web.tr
- PHP Versiyonu
- PHP v7.0.x
- XenForo Versiyonu
- XF 1.5.x
XenForo Eklenti Oluşturma , XenForo'da Eklenti Nasıl Yazılır ?
1. Bölüm
Bu yazı XenForo eklenti çalışması oluşturma sürecinde adım adım sizi götürecektir.Oluşturulan eklenti belirli bir miktardan az mesajı olan üyelere ve belirli bir gruba ait üyelere imzalarını düzenlemesini önlemeyi amaçlamaktadır.Bunu başarmak için Listener(Dinleyici) ve Admin Seçenekler Sayfasına ihtiyacımız var ve PHP dosyaları oluşturmalıyız.
Bu yazı boyunca ekran görüntüsü kullanmamaya karar verdim XenForo'nun Model View Controller (MVC) konseptini ve eklentinizi yazma konusunda zaten bilginiz olduğu hissini vermek istiyorum.Her adım detaylı olarak açıklanacaktır.
Çalışılan eklenti kodculara ve lisanslı üyelere referans için bu yazı sonunda kullanılabilir olacaktır.
Adım adım eklenti yapmayı planlıyorsanız, Geliştirme Modunu (Debug Mode) aktifleştirmelisiniz.Config.php dosyasını düzenlemeden önce yedeğini almanız önerilir.
Geliştirme Modunu açmak için,
Library->config.php
En altına
PHP:
$config['debug'] = true;
PHP:
// $config['enableListeners'] = false;
True ise bir şey yapmanıza gerek yoktur,bu kod hiç yoksa zaten default olarak true olacaktır.
Config dosyanızı kaydedin.
Eklenti oluşturma
Admin Paneline giriş yapın ve Geliştirme->Eklenti oluştur(Create Add-on) seçeneğine gidin.
Bu eklenti için aşağıdaki alanlar aşağıdaki bilgilerle doldurulmalıdır.
Add-on ID:limitSigs
Title:Yeni üyeler için imza kısıtlaması
Version String:1.0
Version ID:1
Versiyon ID revizyonları içten takip etmek için kullanılır.Her revizyonda bu numarayı artırın.
Geri kalan alanlara bu eklenti için ihtiyacımız yok.
Eklentiyi kaydedin.
Eklentimizin amacı olarak,yeni üyelere imzasını düzenleme(oluşturma) izni vermemek,XenForo da imzasını düzenleyebilecek üyeleri belirlemeliyiz bu yüzden çağrılan sınıfı dinlemeliyiz.Bu Kontrolör(Controller) olarak adlandırılır.Dört Kontroller klasörü vardır:Admin,Helper,Public,Response.İmza düzenleme admin fonksiyonu değildir.Yardımcı(Helper) veya Yanıt(Response) da değildir.Bu bize Genel(Public) ‘i bırakıyor.Dosya yöneticinizden ControllerPublic e gidin.İmza düzenleme Account.php için üye hesap görünümünün bir parçasıdır.Dosyayı açın ve imzayı(signature) arayın.Vurgulanan ilk kelime sadece yukarıdadır:public function actionSignature().
Bu üzerinden geçmek(override) istediğimiz fonksiyondur.
Şimdi bu fonksiyona ait (XenForo_ControllerPublic_Account) olarak çağrılan sınıf için dinlemeliyiz.
XenForo seçebileceğimiz epeyce Listenerlarla birlikte gelir.Geliştirme->Code Event Listeners (Kod çalışma parçaları yada Kod olay dinleyici olarak panelinizde gözükebilir) gezintisini yapın.Yeni olay dinleyici oluştur’a tıklayın.
İlk açılır pencere hangi olayı dinleyeceğinize izin verir.Yüklenen kontrolör den sınıfı dinlemeyi istediğimizden açılır menüden Load_Class_Controller seçin.
load_class_controller dinleyicisi aldatıcıdır fakat güçlüdür ve tüm dinleyicilerin daha fazla esnek olmasını sağlar.Dinleyiciyi seçtiğinizde load_class_controller açıklamasında bu sınıf: class My_Class_Name extends XFCP_My_Class_Name şeklinde tanımlanmalıdır bildirisini alacaksınız.Bu doğrudur,fakat doğrudan yüklenmeyecektir.Bu sınıf doğrudan yüklendiğinde AutoLoaderinizde bu istisnayı oluşturacaktır.XFCP kullanarak sınıf yükleyemezsiniz.İlk doğru yükleyiciyi kullanarak sınıfı yükleyin. (Cannot load class using XFCP. Load the class using the correct loader first.)
Bu hatanın anlamı, oluşturmak istediğiniz bu yeni sınıf çözümlenmeden önce yüklenmiş olmalıdır.Fakat soru şu,nerede yüklenecek ve nasıl? Bu $extend dizi argümanının amacıdır.
Son düzenleme: