Neler yeni

Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

  • Forumdan daha fazla yararlanmak için, profilinizi telefon numaranız 📱 ile doğrulayın ve daha ayrıcalıklı olun 😉
    Daha fazla bilgi!

Güncel Hesapta bulunan süreye göre kullanıcı grubuna atama sistemi

Bu sorun halen çözme ulaştırılamamıştır!

LeoMuhafiz

Kullanıcı
Kullanıcı
Katılım
9 Şub 2020
Mesajlar
7
Satışını yaptığım bir programla xenforo arasında bağlantı kurmak istiyorum. Programdaki veritabanını baz alarak kullanıcıların süresi varsa a kullanıcı grubuna, süreleri bittiyse b kullanıcı grubuna otomatik aktarmak istiyorum. Lakin sistemi nasıl xenforo ile ilişkilendirebileceğimi bilmiyorum. Yardımcı olursanız sevinirim.
 
Bu xenforoya ilave olarak yazılım olur bundansa manuel olarak kullanıcıyı belirli süreye göre bir gruba yükselterek hangi grubda olduğunu php ile çekebilirsiniz mesela kullanıcıyı premium grubuna yükselttiniz 1 aylık php kendi sitenizde bu kullanıcının bilgisinde grubu premium gözüküyor isterseniz süreyide ilave edebilirsiniz (bu ilave bağlantı gerektirir çünki süre dışında söylediklerim ve söyleyeceklerim hepsi xf_users şablonuna bağlı mysqlda) ve xenforoda bu süre bittiğinde kullanıcının grup bilgisi değişir ve sitenizdede bu bilgi değişmiş olur. Ben kendi formumda ilave bir php sayfa oluşturdum xf_users bölümüne bağlanarak sadece belirli grubların o sayfanı görmesine ve görünen kullanıcıların tüm bilgilerini çekebiliyorum. Nasıl ?

İlk önce php bağlantımızı kuruyoruz

PHP:
<?php   

include "../startup.php";
$izinliKullaniciGrubu=Array(3,4,5,6);

$dir = "../src/XF.php";
 
require($dir);
XF::start(APP_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;
$kullaniciEmail=$finder->where('user_id', $user_id)->fetchOne()->email;


if(!empty($kullaniciAdi)  &&  $kullaniciEmail && in_array($kullaniciGrupu, $izinliKullaniciGrubu) )
{
// izinleri sağlıyorsa
    
}else{

// izinleri sağlamıyorsa

header("Location: https://sitem.com/");
}
?>

xf_users şablonuna böyle bağlanıyoruz örnek olarak 2 örner verdim kullanıcı adı ve eposta çekiyor

PHP:
$kullaniciAdi=  $finder->where('user_id', $user_id)->fetchOne()->username;
$kullaniciEmail=$finder->where('user_id', $user_id)->fetchOne()->email;

bununla örn (yetkili, moderatör, premium) grublarına izin veriyor
PHP:
$izinliKullaniciGrubu=Array(3,4,5,6);

ve bununlada izinleri sağlamıyorsa
PHP:
if(!empty($kullaniciAdi) && $kullaniciEmail && in_array($kullaniciGrupu, $izinliKullaniciGrubu) )

yani kullanıcı grubu yoksa ve izin verilmiyorsa ilave olarak isim ve ya e-posta doğrulanmamışsa kullanıcının else
header olan sitem.com a geri atıyor.

Kısaca bu bilgilerle rahatlıkla ilave php sayfasında kullanıcı bilgilerini yansıta bilirsiniz. Ancak kullanıcının yükseltme süresi için farklı bir tabloyada bağlanmak gerek. Çünki xf_users de bu bilgiyi göremedim.

Kullanıcı grubunuda üstte kullanıcıisim gibi izin sağlayarak


Kod:
<?php
                        $grup = $kullanıcıGrup;

                        
                            switch($grup) {
                                case '2':
                                   echo '<font color="orange">Premium</font>';
                                   break;
                                case '3':
                                   echo '<font color="red">Yönetim</font>';
                                   break;
                                   case '4':
                                    echo '<font color="green">Moderator</font>';
                                    break;
                                    case '6':
                                        echo '<font color="orange">Premium+</font>';
                                        break;
                                    case '8':
                                        echo '<font color="black">BANNED</font>';
                                        break;

                                }

                        ?>

çekiyorum kullanıcı hangi grubda ise ona görede veri okuyor.
Son olarak manüel kullanıcı gurubuna yükseltmek için
Admin CP > Kullanıcılar > Ücretli abonelik işlemleri > (aboneliği oluşturduğunuzu varsayıyorum) > aboneliğin sağında "Eylemler"-e tıklıyoruz > Kullanıcıyı abone yap > Kullanıcı adını girin daha sonra zamanı çekin gerisini xenforoya bırakın :)

İlave bilgiler içinde google'dan arama yayapabilirsin bir çok xenforoda farklı sayfada veri çekme için bağlantı çeşitleri paylaşılmış
 

Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.