Перейти к контенту
  • 0

v2.0 RF3 Hide this group from the member list?


Iris

Вопрос

When the option to "Hide this group from the member list?" is set to yes; it disables the ability to click on the group name from within the Admin CP and see a list of everyone that is within that group. The Admin CP seems to link to the regular member list tool.

 

I am placing an enhancement request for the Admin CP to override this option. I want to be able to hide the group from the member list on the regular forum; but still be able to click on the group from the "Manage User Groups" Admin panel and see a list of everyone that is in that group

Добавлено в [mergetime]1094908325[/mergetime]

Below edit should work fine on any PF version, only tested on PF3.

 

This will allow users with Admin CP access to view members that are in groups, that are hidden from the Member list, tad bit hacky in the MySQL query to prevent more edits.

 

Open ./sources/memberlist.php

 

Find:

 

      if ( $row['g_hide_from_list']  )
      {
       continue;
      }

 

Replace With:

 

      if ( $row['g_hide_from_list'] && $ibforums->member['g_access_cp'] == 0 )
      {
       continue;
      }

Find:

 

     $DB->cache_add_query( 'mlist_count', array( 'query' => $query_string ) );

 

Replace With:

 

     if($ibforums->member['g_access_cp'] == 1) {
   $memberlist_count = "mlist_nohide_count";
  } else {
   $memberlist_count = "mlist_count";	
  }
  $DB->cache_add_query( $memberlist_count, array( 'query' => $query_string ) );

Find:

 

   $DB->cache_add_query( 'mlist_get_members', array( 'query'   => $query_string,
                 'sort'    => $this->sort_key,
                 'order'   => $this->sort_order,
                 'limit_a' => $this->first,
                 'limit_b' => $this->max_results ) );

 

Replace With:

 

   if($ibforums->member['g_access_cp'] == 1) {
    $memberlist_getmembers = "mlist_get_nohide_members";
   } else {
    $memberlist_getmembers = "mlist_get_members";
   }
   $DB->cache_add_query( $memberlist_getmembers, array(  'query'   => $query_string,
                  'sort'    => $this->sort_key,
                  'order'   => $this->sort_order,
                  'limit_a' => $this->first,
                  'limit_b' => $this->max_results ) );

 

Next you need to add all the MySQL stuff.

 

Open ./sources/sql/mysql_queries.php

 

Find:

 

 function mlist_get_members( $a )
{
  return "SELECT m.*,me.*,p.*,g.g_hide_from_list,g.g_id FROM ".SQL_PREFIX."members m
    LEFT JOIN ".SQL_PREFIX."member_extra me ON me.id=m.id
    LEFT JOIN ".SQL_PREFIX."pfields_content p ON (p.member_id=m.id)
    LEFT JOIN ".SQL_PREFIX."groups g ON (g.g_id=m.mgroup)
    WHERE g.g_hide_from_list <> 1 {$a['query']}
    ORDER BY m.{$a['sort']} {$a['order']}
    LIMIT {$a['limit_a']}, {$a['limit_b']}";
}

 

Add Above:

 

 function mlist_nohide_count( $a )
{
  return "SELECT COUNT(*) as total_members FROM ".SQL_PREFIX."members m
    LEFT JOIN ".SQL_PREFIX."member_extra me ON me.id=m.id
    LEFT JOIN ".SQL_PREFIX."pfields_content p ON (p.member_id=m.id)
    LEFT JOIN ".SQL_PREFIX."groups g ON (g.g_id=m.mgroup)
    WHERE g.g_id=g.g_id {$a['query']}";
}
function mlist_get_nohide_members( $a )
{
  // Yes i know it's a bit hacky to do m.id=m.id but it's easier then doing more edits
  // to IPB
  return "SELECT m.*,me.*,p.*,g.g_hide_from_list,g.g_id FROM ".SQL_PREFIX."members m
    LEFT JOIN ".SQL_PREFIX."member_extra me ON me.id=m.id
    LEFT JOIN ".SQL_PREFIX."pfields_content p ON (p.member_id=m.id)
    LEFT JOIN ".SQL_PREFIX."groups g ON (g.g_id=m.mgroup)
    WHERE m.id=m.id {$a['query']}
    ORDER BY m.{$a['sort']} {$a['order']}
    LIMIT {$a['limit_a']}, {$a['limit_b']}";
}

 

And your done.

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

winnie

ура! winnie рулит :D

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.