Not: Öncelikle Merhaba Arkadaşlar Daha önce bir çok BB Portallarında çalışmalar yaptım Özel Eklentiler yazdım Xenforo da yeniyim bu yaptığım paylaşımın xenforo yazılım Bütünlüğünü Bozması vs bir işlem olabileceğini düşündüğüm için bu açıklamayı yaptım çünkü daha önceki çalışmış olduğum BB yazılımları Açık kaynak kod lisanslıydı xenforo ücretli bir yazılım fakat araştırdım ve kendi sitelerinde böyle bir dokümana eriştim(Entities, finders, and repositories – XenForo 2.0 Documentation) ve bende buna dayanarak sisteme müdahalede buluna bilecek bir kod betiği ile kendi PHP entegrasyonu mu sağlaya bilirim diye düşündüm VE Bir kaç yabancı kaynakta bunu ücret karşılığında yapa bileceğini belirten arkadaşlar gördüm ben açık olarak hiçbir kar amacı gütmeden zaten xenforo takımının sunmuş olduğu dokümanı sizlere ücretsiz olarak bu konuda sunacağım
Amaç:
Forum sitemizde sadece belli grup kullanıcılarımıza belli kriterlerde suna bileceğimiz bir Alt klasör erişimi sağlaya bilmek misal forum sitemiz altında başka bir PHP yazılım sadece adminlerimiz veya Moderatörlerimizin erişim sağladığı alanlar yada Forumda Belirli sayıda beğenilmeye mesaj içeriğine sahip kullanıcılara özel ftp dizin indexi (Grafik Tasarımlar/Özel Çalışmalar gibi)
Nasıl Yapılır:
Not: PHP Bilgisi Olan Arkadaşlar için Anlatıyorum Zaten az çok PHP PDO yapısı anlayan arkadaşlar kolayca işi çözeceklerdir
1.Adım: Ana dizinde bir Klasör oluşturalım (Örneğin: ftp)
2.Adım: Oluşturduğumuz dizin İçerisine girip index.php dosyası oluşturalım
3.Adım: index.php dosyamızı açıp içerisine şu Kodları ekleyelim
<?php
/*
Xenforo 2.X Session Kontrolü
Yazan:Enes BİBER
Blog:enesbiber.blogspot.com
Açıklama: Xenforo dizininiz altında herhangi bir dizine Xenforo da Oturum Açmamış Kullanıcıların Erişimini Engelleye bilir,
Özel Üyeler İçin Alt Dizinler Oluştura Bilirisiniz.
*/
//Temel Değişkenler Tanımı Başlangıç
$mesajLimiti=2;
$begeniLimit=1;
$izinliKullaniciGrubu=Array(2,3,4);// Varsayılan Kullanıcı Grupları 2 Normal Üye 3 Admin 4 Moderatördür 1 Onaylanmamış Üye
$dir = "../src/XF.php"; //Anadizindeki Xenforo Kütüphanemizin Yolu
//Temel Değişkenler Tanımı Bitiş
require($dir);
XF::start($dir);
$app = XF::setupApp('XF\Pub\App');
$app->start();
$session = $app->session();
$visitor = \XF::visitor();
$user_id = $visitor['user_id'];
$finder = \XF::finder('XF:User');
$kullaniciAdi= $finder->where('user_id', $user_id)->fetchOne()->username; //Kullanıcı Adı nagöre Sorgu
$mesajSayisi= $finder->where('user_id', $user_id)->fetchOne()->message_count;//Kullanıcı Mesaj Sayısına Göre if else Kullana bilirisniz Örneğin if($mesajSayisi>=40){}
$begeniSayisi= $finder->where('user_id', $user_id)->fetchOne()->like_count;//Kullanıcı Beğeni Sayısına Göre if else Kullana bilirisniz Örneğin if($begeniSayisi>=40){}
$kullaniciGrubu=$finder->where('user_id', $user_id)->fetchOne()->display_style_group_id;//Kullanıcı grubu Örneğin if(in_array($KullaniciGrubu, $izinliKullaniciGrubu)){}
//Örnek Olarak Bir Kullanıcı Adı varsa ve Belitilen Miktarda mesaja yada Beğenilmeye sahipse ,belirlenene kullanıcı gurubuna dahil ise Php İçerik Gösterilir
//Yani Tüm Koşullar Karşılanıyorsa İçerik Kullanıcıya Sunulur
if(!empty($kullaniciAdi) && $mesajSayisi >= $mesajLimiti && $begeniSayisi >= $begeniLimit && in_array($kullaniciGrubu, $izinliKullaniciGrubu) )
{
echo "Hoşgeldiniz ".$kullaniciAdi." Özel Alanı Görüntülüyorsunuz";
}else{
echo "Bu Alana Erişe Bilmek İçin Forumda Oturum Açmalısınız veya gerekli Şu Koşulları Sağlamalısınız:<br>*Topluluk Üyesi<br>
*Mesaj Sayısı:".$mesajLimiti."<br>*Beğeni Sayısı:".$begeniLimit."<br>";
}
?>