Konu Sahibi
XenForo’da PHP Callback Widget, bir widget’ın içeriğini doğrudan PHP ile üretmeni sağlayan özel bir widget türüdür.
Normal widget’lar genelde şablon, HTML veya belirli veri tipleri üzerine kuruludur; fakat PHP callback, tamamen kendi mantığını yazıp çıktıyı istediğin gibi döndürmene izin verir.
Aşağıda konuyu daha kapsamlı, sade ve net şekilde açıklıyorum:
PHP Callback Widget Neyi Sağlar?
Bu widget türü, XenForo’nun widget sistemine özel bir “çağrı noktası” ekler.
Sen bir PHP sınıfı ve bu sınıf içinde bir metot tanımlarsın;
XenForo bu metodu çağırır ve metodun döndürdüğü veriyi widget olarak görüntüler.
Yani:
XenForo AdminCP → Appearance → Widgets → Add widget
Widget type listesinde: PHP callback olarak görünür.
Eklerken şu alanları doldurursun:
Bir sınıf yazarsın:
XenForo widget sistemi bu metodu çağırır ve dönen sonucu sitede widget olarak gösterir.
Avantajları
Bunlar PHP callback için ideal senaryolardır:
✔ Standart widget’tan daha özel içerik istiyorsan
✔ Belirli thread’lerden, kategorilerden özel veri çekeceksen
✔ Kullanıcıya göre değişen çıktı istiyorsan (online/offline, level, badge vs.)
✔ Dış API’den veri alacaksan
✔ Tamamen custom bir HTML blok hazırlayacaksan
Ne Değildir?
PHP callback widget, XenForo’nun widget sistemine özel olarak yazılmış bir PHP fonksiyonunun çağrılmasıdır.
Böylece standart widget sınırlarının dışına çıkıp kendi dinamik widget’ınızı oluşturursunuz.
Normal widget’lar genelde şablon, HTML veya belirli veri tipleri üzerine kuruludur; fakat PHP callback, tamamen kendi mantığını yazıp çıktıyı istediğin gibi döndürmene izin verir.
Aşağıda konuyu daha kapsamlı, sade ve net şekilde açıklıyorum:
PHP Callback Widget Neyi Sağlar?
Bu widget türü, XenForo’nun widget sistemine özel bir “çağrı noktası” ekler.
Sen bir PHP sınıfı ve bu sınıf içinde bir metot tanımlarsın;
XenForo bu metodu çağırır ve metodun döndürdüğü veriyi widget olarak görüntüler.
Yani:
- Kendi sorgunu yazabilirsin (veritabanı → thread, user, message, custom table…)
- Kendi hesaplamanı yapabilirsin
- Veri manipülasyonu yapabilirsin
- Widget’ın HTML çıktısını tamamen kendin belirleyebilirsin (genelde template ile birleştirilir)
- Standart widget türlerinin izin vermediği gelişmiş şeyleri yaparsın
XenForo AdminCP → Appearance → Widgets → Add widget
Widget type listesinde: PHP callback olarak görünür.
Eklerken şu alanları doldurursun:
- Callback class → PHP sınıfının tam adı (örn: AddOn\MyAddon\Widget\MyWidget)
- Callback method → Widget’ı çalıştıran metot (örn: render)
- İsteğe bağlı ekstra parametreler
Bir sınıf yazarsın:
namespace AddOn\MyAddon\Widget;class MyWidget{ public static function render(array $widget, array $position, array $params, \XF\Template\Templater $templater) { // 1) Veri çekersin // 2) İşlersin // 3) Bir template döndürürsün return $templater->renderTemplate('my_widget_template', [ 'data' => $veriler ]); }}XenForo widget sistemi bu metodu çağırır ve dönen sonucu sitede widget olarak gösterir.
Avantajları
- Sınır yok: Standart widget’ların yapamadığı her şeyi yapabilirsin.
- Tam kontrol: Veriyi nasıl çekeceğin, nasıl işleyeceğin tamamen sende.
- Performans dostu: Cache sistemine entegre edilebilir.
- Dinamik içerik: Üyeye özel içerik, istatistik, dış API, karmaşık hesaplamalar…
Bunlar PHP callback için ideal senaryolardır:
✔ Standart widget’tan daha özel içerik istiyorsan
✔ Belirli thread’lerden, kategorilerden özel veri çekeceksen
✔ Kullanıcıya göre değişen çıktı istiyorsan (online/offline, level, badge vs.)
✔ Dış API’den veri alacaksan
✔ Tamamen custom bir HTML blok hazırlayacaksan
Ne Değildir?
- HTML/CSS widget değildir
- Basit statik widget değildir
- Template-only widget değildir
- “Kod parçası yapıştırayım çalışsın” türü değildir → PHP bilgisi ister
PHP callback widget, XenForo’nun widget sistemine özel olarak yazılmış bir PHP fonksiyonunun çağrılmasıdır.
Böylece standart widget sınırlarının dışına çıkıp kendi dinamik widget’ınızı oluşturursunuz.