Konuyu Oyla:
  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
MyBB Kullaıcı Grupları Sayfası Yapımı

#1
Selamlar,
Çoğu kişi forumunda kullanıcı gruplarını yazıya döküyor rütbelerimiz konusu diye işte. Biz neden bunu sayfa haline getirmeyelim ki :)
Bu sayfa, php kodlarında belirlerdiğiniz rütbelerin kullanıcı grubunun resmini, adını, ve kaç kişinin belirlediğiniz rütbeye sahip olduğunu gösterir.
Gereksiz bir yer vardı, tarafımca kaldırılıp kısa yoldan hali eklendi.
Not: Bu modifikasyon şuanlık 10tl.net sistemine yapılamaz, dosya oluşturmak gerekiyor.  @admin Bu sayfayı oluşturmanızı istemekteyim.
Yapımcı: Brian
Önizleme:
68747470733a2f2f707265766965772e6962622e...642e706e67
Sayfa türkçedir, sadece görüntü ingilizcedir.

usergroups.php diye bir sayfa oluşturup, aşağıdaki kodları yapıştırıp kaydedin.
PHP Kod:
<?php

define
'IN_MYBB'TRUE );
define'NAME'basename__FILE__ ) );
define'THIS_SCRIPT'NAME );
require_once 
__DIR__ '/global.php';
if(
$mybb->user['uid'] == 0)
 
   error_no_permission();

add_breadcrumb'Kullanıcı Grupları'NAME );

$allowed_groups = array( 'x','x','x'); // Please group IDs here

if( !$mybb->input['request'] )
{
 
   foreach $allowed_groups as &$groupid )
 
   {
 
       $groupcache $cache->read'usergroups' );

 
       $query $db->write_query"
            SELECT *
            FROM "
.TABLE_PREFIX."usergroups
            WHERE `gid`='"
.(int)$groupid."'
            ORDER BY gid
        " 
);

 
       if( isset( $query->num_rows ) )
 
       {
 
           while$groups $db->fetch_array$query ) )
 
           {
 
               /* Fetch group leaders */
 
               $leaders_array = array();
 
               $leader_query $db->write_query("
                    SELECT u.username, u.uid, u.usergroup, u.displaygroup, l.gid
                    FROM "
.TABLE_PREFIX."groupleaders l
                    INNER JOIN "
.TABLE_PREFIX."users u ON (u.uid=l.uid)
                    WHERE `gid`='"
.(int)$groupid."'
                "
);

 
               while$leader $db->fetch_array$leader_query ) )
 
                                  
                    $leaders 
build_profile_linkformat_name$leader['username'], ( !empty( $leader['displaygroup'] ) ? $leader['displaygroup'] : $leader['usergroup'] ) ), $leader['uid'] );
 
                   array_push$leaders_array$leaders );
 
               }

 
               $usergroups['groupleaders'] = rtrimimplode', '$leaders_array ), ', ' );

 
               if( !$usergroups['groupleaders'] )
 
               {
 
                   $usergroups['groupleaders'] = 'None';
 
               }

 
               $usergroups['groupname'] = htmlspecialchars_uni$groupcache[$groups['gid']]['title'] );
 
               $usergroups['groupdesc'] = htmlspecialchars_uni$groupcache[$groups['gid']]['description'] );
 
               $usergroups['userbar'] = '<img src="'.$groupcache[$groups['gid']]['image'].'" />';
 
               $usergroups['gid'] = intval$groupcache[$groups['gid']]['gid'] );
 
               $usergroups['members'] = intvalcountmembers$groupid ) );

 
               eval"\$groups_row .= \"".$templates->get'usergroups_row' )."\";" );
 
           }
 
       }
 
       else
        
{
 
           $groups_row '<td class="trow1" align="left">No usergroups was found.</td>';
 
       }
 
   }
}

eval( 
"\$usergroups_page = \"".$templates->get'usergroups' )."\";" );
output_page$usergroups_page );


/* Count members function */
function countmembers$groupid )
{
 
   global $db$plugins;

 
   $query $db->query("
        SELECT g.gid, COUNT(u.uid) AS users
        FROM "
.TABLE_PREFIX."users u
        LEFT JOIN "
.TABLE_PREFIX."usergroups g ON (g.gid=u.usergroup)
        GROUP BY g.gid
    "
);

 
   while$groupcount $db->fetch_array$query ) )
 
   {
 
       $primaryusers[$groupcount['gid']] = $groupcount['users'];
 
   }

 
   switch$db->type )
 
   {
 
       case "pgsql":
 
       case "sqlite":
 
           $query $db->query("
                SELECT g.gid, COUNT(u.uid) AS users
                FROM "
.TABLE_PREFIX."users u
                LEFT JOIN "
.TABLE_PREFIX."usergroups g ON (','|| u.additionalgroups|| ',' LIKE '%,'|| g.gid|| ',%')
                WHERE g.gid != '0' AND g.gid is not NULL GROUP BY g.gid
            "
);

 
       break;
 
       default:
 
           $query $db->query("
                SELECT g.gid, COUNT(u.uid) AS users
                FROM "
.TABLE_PREFIX."users u
                LEFT JOIN "
.TABLE_PREFIX."usergroups g ON (CONCAT(',', u.additionalgroups, ',') LIKE CONCAT('%,', g.gid, ',%'))
                WHERE g.gid != '0' AND g.gid is not NULL GROUP BY g.gid
            "
);
 
       }

 
       while$groupcount $db->fetch_array$query ) )
 
       {
 
           $secondaryusers[$groupcount['gid']] = $groupcount['users'];
 
       }
 
               
        $numusers 
$primaryusers[$groupid];
 
       $numusers += $secondaryusers[$groupid];
 
               
        if
( !$numusers )
 
       {
 
           $numusers "0";
 
       }

 
       return $numusers;
 
   }
?>

$allowed_groups = array( 'x','x','x'); bu kodu bulun ve göstermek istediğiniz grupların id numaralarını x olan bölüme yazın.

Sonra ise, Admin Paneli > Temalar & Şablonlar > Şablonlar > Genel Şablonlar > usergroups adlı bir şablon açıp içine aşağıdaki kodları yapıştırıyoruz.
Kod:
<html>
   <head>
       <title>
           {$mybb->settings['bbname']} - Kullanıcı Grupları
       </title>
       {$headerinclude}
   </head>
   <body>
       <style>
           .joingroup {
               color: #fff;
               text-shadow: none;
               padding: 5px 8px;
               border-radius: 2px;
               text-align: center;
               margin-left: 5px;
               background: rgba(0,0,0,0.2);
           }
           .joingroup:hover {
               cursor: pointer;
               background: rgb(167, 70, 70);
           }
       </style>
       {$header}
       <table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
           <tr>
               <td class="thead" colspan="5"><strong>Kullanıcı Grupları</strong></td>
           </tr>
           <tr>
               <td class="trow1">{$groups_row}</td>
           </tr>
       </table>
       {$footer}
   </body>
</html>
Admin Paneli > Temalar & Şablonlar > Şablonlar > Genel Şablonlar > usergroups_row adlı bir şablon açıp içine aşağıdaki kodları yapıştırın.
Kod:
<div style="width: 48%; min-height: 150px; float: left; border: 1px #333 solid; margin: 4px; padding: 2px;">
   <table width="100%" cellspacing="0" cellpadding="5" border="0">
       <tr>
           <td width="75%">
               <span style="color: #fff; font-size: 15px;">{$usergroups['groupname']}</span><br />
               </br>{$usergroups['groupdesc']}<br />
       Bu gruba sahip olan kişi sayısı: {$usergroups['members']}
       </td>
   <td width="25%" align="right" valign="top">
       {$usergroups['userbar']}
   </td>
   </tr>
</table>
</div>
Not: Temanıza yazı rengi uymuyor veya resimdeki gibi ise, <span style="color: #fff; font-size: 15px;">  bu kodu bulun ve #fff kodunu istediğinize göre değiştirin. Default temada black olarak tespit ettik onun rengini. Deneyerek ayarlayabilirsiniz.
Herşeyi eksiksiz bir şekilde yaptıysanız, http://siteadresiniz.com/usergroups.php sayfasına gidebilirsiniz :)
Kolay gelsin. Sorun çıkarsa yorumlara yazabilirsiniz.
Ups.
WWW
Cevapla
Teşekkür verenler:
#2
$allowed_groups = array(
bu kısım bizde sabit olamaz. yüzlerce forumumuz var. hangi id yi yazacağız ? yani bu 10tl.net e bu haliylu uygulanamaz.

ÖM lere eskiden yeniye doğru bakıyorum

İpucu: http://destek.10tr.net/showthread.php?tid=71211
http://destek.10tr.net/showthread.php?tid=71414

Haksızlığa uğrayan varsa sırayla diğer görevlilere, sonra adminlere, tatmin olmazlarsa da bana yazabilirler. Elimizden geldiği kadar adaletli olmaya çalışacağız. 
Görevli başvurularına ilk fırsatta bakacağız. 

Ana prensibimiz "İnsana Saygı"
Amacımız sadece para kazanmak ya da geyik değil, aynı zamanda faydalı şeyler yapmak. sadece para kazanmak olsaydı, yapılacak birçok şey vardı...
1
Cevapla
Teşekkür verenler: AperioN
#3
Onu tamamen unutmuşum adminim.
Ups.
WWW
Cevapla
Teşekkür verenler:

Şu anda bu konuyu okuyanlar: 1 Ziyaretçi

Hızlı Menü:

  • Gece
  • Normal


  • ***