[eklenti]Renk Grupları Modunda Sorgulamayı En Aza Düşürme

[url=http://www.phpbbturkey.com/mods.html:34cnv4ga]phpBB 2.0.x MOD Veritabanımızda[/url:34cnv4ga] yayınlanan ve tarafınızca eklenen tüm yeni phpBB 2.0.x sürümleri için MODların duyuruları buradan yapılmaktadır. MODlar hakkında ihtiyacınız olan desteği lütfen [b:34cnv4ga]2.0.x MOD Destek[/b:34cnv4ga] forumuna başlık açarak sorunuz.
fatihbaz

[eklenti]Renk Grupları Modunda Sorgulamayı En Aza Düşürme

Mesaj gönderen fatihbaz »

arkadaşlar renk grupları(color groups)modu kuruluydu sitemde ve sitede fazla sql sorgusuyla birlikte yavaşlıga neden oluyordu.color groups modunu kaldırmayı düşünürken ********** sagolsun çözümü buldu :) eger sizde de color groups fazla sorgu sorunu çıkarıyorsa aşagıdaki degişiklikleri yapınız.bende 11-12 000 lik sorgu vardı önceden ama bu degişiklikleri yaptıktan sonra 100 civarı en fazla...

Kod: Tümünü seç

#
#-----[ AÇ ]-----
#

includes/functions_color_groups.php

#
#-----[ BUL ]-----
#

function color_group_colorize_name($user_id, $no_profile = false)
{
   global $board_config, $phpEx, $db, $phpbb_root_path;
   
   static $cacheUsers;
   
   // First see if the user is Anon
   if ($user_id != ANONYMOUS)
   {
      if (!isset($cacheUsers[$user_id]))
      {
         // Get the user info and see if they are assigned a color_group //
         $sql = 'SELECT u.user_color_group, u.username, c.* FROM ' . USERS_TABLE . ' u, ' . COLOR_GROUPS_TABLE . " c
         WHERE u.user_id = $user_id
         AND u.user_color_group = c.group_id";
         $result = $db->sql_query($sql);
         $row = $db->sql_fetchrow($result);
         if (!isset($row['username']))
         {
            //If there was a problem before, we don't want a blank username!
            $sql = 'SELECT username FROM ' . USERS_TABLE . "
               WHERE user_id = $user_id";
            $result = $db->sql_query($sql);
            $row = $db->sql_fetchrow($result);
         }
         $cacheUsers[$user_id]['username'] = $row['username'];

         if (isset($row['group_color']))
         {
            // WE found the highest level color, head out now //
            $cacheUsers[$user_id]['group_color'] = stripslashes($row['group_color']);
         }
         else
         {
            // Now start looking for user group memberships //
            $sql = 'SELECT c.* FROM ' . USER_GROUP_TABLE . ' ug, ' . USERS_TABLE . ' u, ' . COLOR_GROUPS_TABLE . ' c, ' . GROUPS_TABLE . ' g
            WHERE ug.user_id = ' . $user_id . '
            AND u.user_id = ug.user_id
            AND ug.group_id = g.group_id
            AND g.group_color_group = c.group_id
            AND g.group_single_user = 0
            ORDER BY c.order_num ASC LIMIT 1';
            //print $sql;
            $result = $db->sql_query($sql);
            $curr = 10000000000000;
            $style_color = '';
            while ($row = $db->sql_fetchrow($result))
            {
               // If our new group in the list is a higher order number, it's color takes precedence //
               if ($row['order_num'] < $curr)
               {
                  $curr = $row['order_num'];
                  $cacheUsers[$user_id]['group_color'] = stripslashes($row['group_color']);
               }
            }
         }
      }
      
      
      $style_color = 'style="font-weight:bold;color:' . $cacheUsers[$user_id]['group_color'] . '"';
      $username = $cacheUsers[$user_id]['username'];
      // Make the profile link or no and return it //
      if ($no_profile)
      {
         $user_link = "<span $style_color>$username</span>";
      }
      else
      {
         $user_link = '<a href="' . append_sid($phpbb_root_path."profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id") . '"' . $style_color .'>' . $username . '</a>';
      }
      return($user_link);
   }
   else
   {
      return false;
   }
}

#
#-----[ BUNUNLA DEGISTIR ]-----
#

function color_group_colorize_name($user_id, $no_profile = false)
{
   global $board_config, $phpEx, $db, $phpbb_root_path, $colorusers, $coloruname, $colorgroup;
   
   // First see if the user is Anon
   if ($user_id != ANONYMOUS)
   {
      $username = $coloruname[$user_id];
      if ( $colorusers[$user_id] != 0 )
      {
         // Get the user info and see if they are assigned a color_group //
         $sql = 'SELECT u.user_color_group, u.username, c.* FROM ' . USERS_TABLE . ' u, ' . COLOR_GROUPS_TABLE . " c
            WHERE u.user_id = $user_id
            AND u.user_color_group = c.group_id";
         $result = $db->sql_query($sql);
         $row = $db->sql_fetchrow($result);

      }
      
      if (isset($row['group_color']))
      {
         // WE found the highest level color, head out now //
         $style_color = 'style="font-weight:bold;color:' . $row['group_color'] . '"';
      }
      else
      {
         if ( in_array($user_id, $colorgroup) )
         {
            // Now start looking for user group memberships //
            $sql = 'SELECT c.* FROM ' . USER_GROUP_TABLE . ' ug, ' . USERS_TABLE . ' u, ' . COLOR_GROUPS_TABLE . ' c, ' . GROUPS_TABLE . ' g
               WHERE ug.user_id = ' . $user_id . '
               AND u.user_id = ug.user_id
               AND ug.group_id = g.group_id
               AND g.group_color_group = c.group_id
               AND g.group_single_user = 0';
            //print $sql;
               $result = $db->sql_query($sql);
               $curr = 10000000000000;
               $style_color = '';
               while ($row = $db->sql_fetchrow($result))
               {
                  // If our new group in the list is a higher order number, it's color takes precedence //
                  if ($row['order_num'] < $curr)
                  {
                     $curr = $row['order_num'];
                     $style_color = 'style="font-weight:bold;color:' . $row['group_color'] . '"';
                  }
               }
         }
      }
      
      // Make the profile link or no and return it //
      if ($no_profile)
      {
         $user_link = "<span $style_color>$username</span>";
      }
      else
      {
         $user_link = '<a href="' . append_sid($phpbb_root_path."profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id") . '"' . $style_color .'>' . $username . '</a>';
      }
      return($user_link);
   }
   else
   {
      $username = $coloruname[$user_id];
      if ($no_profile)
      {
         $user_link = "<span $style_color>$username</span>";
      }
      else
      {
         $user_link = '<a href="' . append_sid($phpbb_root_path."profile.php?mode=viewprofile&" . POST_USERS_URL . "=$user_id") . '"' . $style_color .'>' . $username . '</a>';
      }
      return $username;
   }
}

#
#-----[ AÇ ]-----
#

common.php
 
#
#-----[ BUL ]-----
#

//
// Show 'Board is disabled' message if needed.
//

#
#-----[ ÖNCESINE EKLE ]-----
#

$sql = "SELECT user_id, user_color_group, username FROM " . USERS_TABLE;
if( !($result = $db->sql_query($sql)) )
{
   message_die(GENERAL_ERROR, 'Could not read user color groups', '', __LINE__, __FILE__, $sql);
}

$colorusers = array();
$coloruname = array();
while ( $row = $db->sql_fetchrow($result) )
{
   $userid = $row['user_id'];
   $colorusers[$userid] = $row['user_color_group'];
   $coloruname[$userid] = $row['username'];
}

$colorgroup = array();

$sql = "SELECT ug.user_id FROM " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g
   WHERE g.group_single_user = 0
   AND g.group_id = ug.group_id
   GROUP BY ug.user_id
   ORDER BY ug.user_id";
if( !($result = $db->sql_query($sql)) )
{
   message_die(GENERAL_ERROR, 'Could not read user color groups', '', __LINE__, __FILE__, $sql);
}
while ( $row = $db->sql_fetchrow($result) )
{
   $colorgroup[] = $row['user_id'];
}

#
#-----[ TÜM DOSYALARI KAPAT/KAYDET ]-----
#
SoN 
Kullanıcı avatarı
cupra
Kayıtlı Kullanıcı
Mesajlar: 2505
Kayıt: 01.04.2006, 02:33
Konum: smyrna
İletişim:

Mesaj gönderen cupra »

fatihbaz işe yarayaacağını gözüküyor paylaşım için teşekkürler.. test yapanlar notlarını buraya atabilir.
fatihbaz

Mesaj gönderen fatihbaz »

rica ederim,test yapan ve başarı saglayan şuan 3 kişi var.birisi de benim :D gördügüm kadarıyla çok güzel bi eklenti.....bu sorunu yaşayan arkadaşlar hiç düşünmeden kullansın bence.
Kullanıcı avatarı
RSNBK
Kayıtlı Kullanıcı
Mesajlar: 311
Kayıt: 11.05.2006, 22:08
Konum: zonguldak/Bartın
İletişim:

Mesaj gönderen RSNBK »

ben kurdum bişey farketmedim doğrusu :roll:
Kullanıcı avatarı
cupra
Kayıtlı Kullanıcı
Mesajlar: 2505
Kayıt: 01.04.2006, 02:33
Konum: smyrna
İletişim:

Mesaj gönderen cupra »

sendeki 11.000 küsür çıkması bir dosya hatasından kaynaklamıyor olabilir..
yani okadar çok sorgu yapmasına imkan yok page generation modunu nerden yukledin bilemiyorum ama eski olarak bir versiyon yuklediysen sorgu sayısı hesaplamada mod hata yapıyordur..
smartor'un page genaration modunun güncel versiyonu: http://smartor.is-root.com/viewtopic.php?t=2968
yukarıdaki bahsedilen code u kim yapmış anlayamadım ama incelemek lazım kaynağı neresi bu modun..
fatihbaz

Mesaj gönderen fatihbaz »

ismini yazdım ama çıkmıyor bu sitede :D nefrit in modluk yaptıgı sitenin admininden aldım.kendisi modun altına yazmıştı kimden aldıgını ama hatırlamıyoum şuan.

düzeltme :
Eklenti Yazarı: oxpus muş....
Kullanıcı avatarı
VSaBaH
Kayıtlı Kullanıcı
Mesajlar: 2493
Kayıt: 09.02.2006, 16:58
Konum: Denizli
İletişim:

Mesaj gönderen VSaBaH »

Kardeş hay ellerin dert görmesin.. Nerden buldun nerden ettin bilmiyorum ama benim sorunu da hallettin...

SQL ler azaldı.. Sanki birazcık da hızlandı gibi geldi bana.. Ha şöyle ya.. Şimdi daha güzel göründü forum gözüme.. :D

İŞTE SONUÇ...

ÖNCE :(
[ resmi görüntülemek için tıklayın ]

SONRA :D
[ resmi görüntülemek için tıklayın ]
Kullanıcı avatarı
cupra
Kayıtlı Kullanıcı
Mesajlar: 2505
Kayıt: 01.04.2006, 02:33
Konum: smyrna
İletişim:

Mesaj gönderen cupra »

benimde testlerimde 140 civarı olan sorgu 100 civarına düştü
fatihbaz

Mesaj gönderen fatihbaz »

işinize yaradıgına sevindim.özellikle sql sorgusu 10 000 leri bulanlarda daha çok işe yarıyor.benimki artık 100 ü geçmiyor.önceden 10 000 e dahi zor iniyordu....
zirve
Kayıtlı Kullanıcı
Mesajlar: 474
Kayıt: 28.04.2006, 10:26
İletişim:

Mesaj gönderen zirve »

sayende çok hızlı bi forumum oldu sağolasın 15 binlerdeydi 100 lere düstü

ama sayfanın üsttü hemen yükleniyor alttı 10 saniye sonra yükleniyor
Kullanıcı avatarı
cupra
Kayıtlı Kullanıcı
Mesajlar: 2505
Kayıt: 01.04.2006, 02:33
Konum: smyrna
İletişim:

Mesaj gönderen cupra »

color groupsta ki zorlama şu : her kullanıcı için 1 sql sorgusu olması.
Kullanıcı avatarı
BaRCeLoNa
Kayıtlı Kullanıcı
Mesajlar: 178
Kayıt: 20.05.2006, 01:59
İletişim:

Mesaj gönderen BaRCeLoNa »

vistada 500 sorgu alıodum bundan kaynaklanıo olabilir ...
ve ikincisi : http://www.forumuni.com
:)

Özelden Mesaj Atmayın Cevaplamam ...
Kullanıcı avatarı
www.ferhatonair.com
Kayıtlı Kullanıcı
Mesajlar: 16
Kayıt: 30.10.2006, 16:44
Konum: Başkent
İletişim:

Mesaj gönderen www.ferhatonair.com »

fatihbaz yazdı:arkadaşlar renk grupları(color groups)modu kuruluydu sitemde ve sitede fazla sql sorgusuyla birlikte yavaşlıga neden oluyordu.color groups modunu kaldırmayı düşünürken ********** sagolsun çözümü buldu :) eger sizde de color groups fazla sorgu sorunu çıkarıyorsa aşagıdaki degişiklikleri yapınız.bende 11-12 000 lik sorgu vardı önceden ama bu degişiklikleri yaptıktan sonra 100 civarı en fazla...
******* çözümü buldu derken emeğe saygı nerede kaldı !!!!!!!!!!!!!!!!!
T-U-R-K-P-H-P-B-B.ORG OLMASIN Fatih :!:
fatihbaz

Mesaj gönderen fatihbaz »

www.ferhatonair.com yazdı:
fatihbaz yazdı:arkadaşlar renk grupları(color groups)modu kuruluydu sitemde ve sitede fazla sql sorgusuyla birlikte yavaşlıga neden oluyordu.color groups modunu kaldırmayı düşünürken ********** sagolsun çözümü buldu :) eger sizde de color groups fazla sorgu sorunu çıkarıyorsa aşagıdaki degişiklikleri yapınız.bende 11-12 000 lik sorgu vardı önceden ama bu degişiklikleri yaptıktan sonra 100 civarı en fazla...
******* çözümü buldu derken emeğe saygı nerede kaldı !!!!!!!!!!!!!!!!!
T-U-R-K-P-H-P-B-B.ORG OLMASIN Fatih :!:
ben normal yazdım ama çıkmamış.o arkadaşla bi sorunum yok,aksine aramız çok iyidir.bizde yanlış olmaz ;)
Kullanıcı avatarı
bekirrr
Kayıtlı Kullanıcı
Mesajlar: 50
Kayıt: 14.10.2006, 20:54
İletişim:

Mesaj gönderen bekirrr »

bunu yapınca bütün üyelerin nickleri ince ve mavi renk oluyor. Bu standarti değiştirip kalın ve lacivert renk yapmak mümkünmü acaba ???
Kilitli

“2.0.x MOD Duyuruları” sayfasına dön

Kimler çevrimiçi

Bu forumu görüntüleyen kullanıcılar: Google [Bot] ve 1 misafir