
Bir forumdaki küçük bir davranışı değiştirmek için çekirdek PHP dosyasını düzenlemek ilk bakışta hızlı görünebilir. Sonraki güncellemede aynı farkı yeniden uygulamak gerektiğinde bu kolaylık kaybolur. XenForo'nun eklenti yapısı, değişikliği kendi paketiniz içinde tarif edebilmeniz için farklı uzantı noktaları sunar.
Tek bir davranışla başlayın
İlk çalışmanız için kapsamı küçük tutun: örneğin belirli bir yerde bir bilgi göstermek. Aynı pakete yeni sayfa, ücret sistemi ve bildirim akışı eklemeye çalışmak, temel bağlantıları anlamayı zorlaştırır. Önce bilginin nereden geldiğini, hangi izinle görüntülendiğini ve hangi şablona ulaştığını çizin.
Eklenti kimliği ile dosya adlandırmasını baştan tutarlı seçin. addon.json, paketin tanınmasını sağlayan kimlik ve sürüm bilgilerinin bulunduğu dosyadır; gereksinimler de burada tanımlanabilir. Yalnızca dosyaların doğru klasörde durması, yönetim panelindeki eklenti verilerinin doğru pakete bağlandığı anlamına gelmez. Oluşturduğunuz kayıtların ait olduğu eklentiyi kontrol edin.
Davranış değişikliği için sınıf uzantısını inceleyin
Mevcut bir sınıfın davranışına ek yapmak istediğinizde sınıf uzantısı uygun seçeneklerden biridir. XFCP zinciri, aynı temel sınıfa uzanan eklentilerin birlikte çalışabilmesine yönelik mekanizmanın parçasıdır. Bu nedenle başka bir eklentinin veya çekirdeğin sınıfını kopyalayıp kendi sürümünüzle tamamen değiştirmekten kaçının.
Uzatacağınız metodun kurulu sürümdeki kaynağını okuyun. Parametreler, görünürlük, dönüş değeri ve üst metot çağrısının yeri tahmin edilmemelidir. İzin kontrolünü kaldıran kısa bir çözüm, ekranda çalışsa bile doğru değildir. Gereken davranışı ekleyip mevcut akışın beklentilerini korumayı hedefleyin.
Görünüm ve olay görevlerini ayırın
Bir şablona küçük bir parça eklemek için şablon değişikliği sistemi kullanılabilir. Dar ve anlamlı bir eşleşme seçin; güncelleme sonrasında eşleşmenin hâlâ uygulandığını kontrol edin. Çok geniş bir bölümün yerini değiştirmek, ilgisiz tema davranışlarını da etkileyebilir.
Olay dinleyicileri ise sistemin sunduğu belirli noktalara bağlanır. Hangi olayın ne zaman çalıştığını ve beklediği argümanları kendi sürümünüzün açıklamalarından doğrulayın. Her sayfada gereksiz sorgu yapan genel bir dinleyici yerine ihtiyaca uygun dar kapsamı seçin. Aynı bilgiyi hem dinleyicide hem sınıf uzantısında iki kez değiştirmemeye dikkat edin.
Paketleme de geliştirme işidir
Bir özelliğin kendi hesabınızla görünmesi, tamamlandığı anlamına gelmez. Normal üyenin ve izni olmayan kişinin deneyimini kontrol edin. Kullanıcı girdisini uygun biçimde doğrulayın; şablonda güvenli çıktı ve mevcut izin akışını koruyun. Veri oluşturuyorsanız kurulum, yükseltme ve kaldırma kararlarını da düşünün.
Son olarak paketi geliştirme klasörünü rastgele sıkıştırarak dağıtmayın. XenForo'nun yayın oluşturma sürecini ve dışa aktarılan eklenti verilerini kullanın. Böylece çalışmanın yalnızca sizin ortamınızdaki dosyalara veya unutulmuş panel kayıtlarına bağlı kalma olasılığını azaltırsınız. Küçük ama kurulabilir bir paket, yarım kalmış büyük bir denemeden daha iyi başlangıçtır.
Kısa kontrol listesi
- Paket kimliği ve eklenti kayıtları tutarlı mı?
- Uzatılan metot kurulu kaynakta incelendi mi?
- Şablon eşleşmesi ve izinler doğrulandı mı?
- Yayın paketi gereken verileri içeriyor mu?
Resmî başvuru kaynakları
Genel geliştirme kavramları, eklenti yapısı ve örnek eklenti geliştirme belgeleri başlangıç için birlikte okunabilir.