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

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

есть идея. в принципе если немного покопавшись ее сделать можно и самостоятельно, но... Решил еще почтенный народ к этому прикрутить. все таки одна голова хорошо - две лучше.

итак суть.

 

создать на борде возможность закрытия определенного форума/форумов на доступ только одному полу, казанному при регистрации + по паролю. знаю, что такое можно создать на основе групп пользователей, но тогда затруднен переход пользователей по группам.

 

идея по сути глупа, но для нетематических форумов имеет резон.

 

что скажете?

 

от себя, как я это вижу...

создаем обязательное поле выбора пола при регистрации, без возможности исправления в дальнейшем. если каким либо путем будет доказано что пол подходящий, выдается пасс на доступ к форуму (пасс будет выдавать модератор форума). так же было бы неплохо иметь возможность смены пароля на этот форум самим модератором.

 

если администратор борды мужчина - это "неизбежное зло", он сможет заходить, но обычно админу доверяют.

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

если каким либо путем будет доказано что пол подходящий,
:D

не доказуемо, виртуалы ведь ;)

а по сути мне пришлось и приходиться это делать ручками пользуясь распределением по группам. как админ честно закрыл форум для просмотра даже себе :)

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

Мдя...вот это идейка...

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

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

не, народ, не получиться, если у меня кто-то левый проскочит в женский раздел, визга будет больше чем в гареме. хотя предупредил, что если кто левый залезет будет banned по жизни. так что только личное видение или просьбы модераторов о "зачислении" в группу. ну не будешь же при регистрации вешать форму психологического опроса который с 80% вероятностью определит половую принадлежность участника. :D
Ссылка на комментарий
Поделиться на других сайтах

А где есть такой психологический опрос ? ;o) ИМХО их всех надурить может любой практически ;o)))

Тут только личное знакомство IMHO рулит ! ;o)))

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

запрос на созданние хака и посылался исходя из личного знакомства. в мое случае подавляющее большинство пользователей знают друг друга в реале. то есть зная ник и его мордашку в реале можно с полной уверенностью сказать что она девушка не заглядывая под.... (эээээ, это меня что то уже не туда понесло) :D
Ссылка на комментарий
Поделиться на других сайтах

Z

брррр ... пока не понимаю, на основе личного знакомства хак ... ну не доходит пока что.

 

от себя, как я это вижу...

создаем обязательное поле выбора пола при регистрации, без возможности исправления в дальнейшем. если каким либо путем будет доказано что пол подходящий, выдается пасс на доступ к форуму (пасс будет выдавать модератор форума). так же было бы неплохо иметь возможность смены пароля на этот форум самим модератором.

создаем фиксированное поле, if gender==female then send -> meet if meet("result")==true then userID send e-mail pass for forum Buduar

короче переврал все на свете.

т.е. по сути все сводиться к добавлению возможностей администрирования модератором, т.е. подтверждать результаты meet может не только админ, а и модератор. в том числе ему (модератору) даються права смены пароля на определенный форум.

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

(эээээ, это меня что то уже не туда понесло)

весна скоро :D

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

Немного поразмышляв над этой темой, придумал как лучше всего сделать доступ.

Создать в админке раздел, в который вводить имена или же ID'ы пользователей, кто имеет доступ к форуму "Будуар". Мне кажется этот способ доступа наиболее приемлимый.

 

Можно ли это реализовать?

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

при помощи групп ничего не получится, так как у группы свои права. выдавать все необходимые права всем пользователям на равных не зависимо от количества сообщений на форуме - не фонтан, а переходы по группам исключат доступ к форуму "Будуар". то есть све равно сводится все к тому, что нужно делать список доступа. этот список должен позволить пользователям и в дальнейшем переходить по группам при этом не теряя доступа к форуму "Будуар".
Ссылка на комментарий
Поделиться на других сайтах

  • 4 месяца спустя...

кхм.. у кого-нибудь получилось сделать такую фичу? :D

просто искал- ничего не нашел (может плохо искал) в принципе есть идеи как это организовать, но может есть уже готовые решения ;)

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

кхм.. вообщем вроде как сделал, правда пока еще сырой вариант...испробуйте кто может, подскажите где ошибки, если есть :D

вообщем делается это так:

сделано это все для версии 2PF1

1. в таблице ibf_forums добавляем новую колонку (как добавлять думаю описывать не надо ;))

 

permission_array_user text NOT NULL DEFAULT '';

 

2. далее ищем файлик sources\functions.php

в нем ищем функцию

 function check_perms($forum_perm="")

и меняем всю эту функию на

 	function check_perms($forum_perm="",$fid="")
{
  global $ibforums;
//моя добавка  	
  	if (trim( $ibforums->cache['forum_cache'][$fid]['permission_array_user'])!='')
  	{
    $forum_perm_array_user = explode( ",",  $ibforums->cache['forum_cache'][$fid]['permission_array_user'] );

    if ( in_array( $ibforums->member['id'], $forum_perm_array_user ) )
    {
//##############################    	
  if ( ! is_array( $ibforums->perm_id_array ) )
  {
  	return FALSE;
  }
  
  if ( $forum_perm == "" )
  {
  	return FALSE;
  }
  else if ( $forum_perm == '*' )
  {
  	return TRUE;
  }
  else
  {
  	$forum_perm_array = explode( ",", $forum_perm );
  	
  	foreach( $ibforums->perm_id_array as $u_id )
  	{
    if ( in_array( $u_id, $forum_perm_array ) )
    {
    	return TRUE;
    }
  	}
  	
  	// Still here? Not a match then.
  	
  	return FALSE;
  }
//еще моя добавка  
    }
    else
    {
    	return FALSE;
    }
//#########################################    
  	}elseif ( ! is_array( $ibforums->perm_id_array ) )
  {
  	return FALSE;
  }
  
  if ( $forum_perm == "" )
  {
  	return FALSE;
  }
  else if ( $forum_perm == '*' )
  {
  	return TRUE;
  }
  else
  {
  	$forum_perm_array = explode( ",", $forum_perm );
  	
  	foreach( $ibforums->perm_id_array as $u_id )
  	{
    if ( in_array( $u_id, $forum_perm_array ) )
    {
    	return TRUE;
    }
  	}
  	
  	// Still here? Not a match then.
  	
  	return FALSE;
  }
}

 

3. ищем файлик sources\classes\class_forums.php

 

ищем в нем функцию

 function forums_check_access($fid, $prompt_login=0, $in='forum')

в ней строка ~ 240

 	if ( $std->check_perms($this->forum_by_id[$fid]['show_perms']) == TRUE )

меняем на

 	if ( $std->check_perms($this->forum_by_id[$fid]['show_perms'],$fid) == TRUE )

это мы поставили проверку на просмотр форума

 

4. ищем файлик sources\search.php

в нем в самом низу функция

    function check_access($i)

в ней строчку

     if ( $std->check_perms( $i['read_perms']  ) == TRUE )

меняем на

     if ( $std->check_perms( $i['read_perms'],$i['id']  ) == TRUE )

так мы сделали проверку на запрет при поиске..

 

5. ищем файл sources\admin\ad_forums.php

в ней ищем функцию

 function do_form($type='edit')

в ней находим строчку

 	$ibforums->html .= $ibforums->adskin->add_td_row( array( "<b>Custom 'Permission Denied' Message</b><br>You may use HTML - linebreaks 'Auto-Magically' converted to <br>.<br />If left blank, a default 'permission denied' error is used." ,
                  $ibforums->adskin->form_textarea("permission_custom_error", $std->my_br2nl( $forum['permission_custom_error']) )
               )      );

после вставляем

 	$ibforums->html .= $ibforums->adskin->add_td_row( array( "<b>Выборочный доступ</b><br>Впишите  ID пользователя через запятую, например  2,4,5" ,
                  $ibforums->adskin->form_textarea("permission_array_user", $forum['permission_array_user'] )
               )      );

 

потом ищем функцию

 function do_edit()

в ней (там где идет апдейт данных по форуму) ищем строку

            'permission_custom_error' => $std->my_nl2br( $std->txt_stripslashes($_POST['permission_custom_error']) ),

и после нее вставляем так меняются данные при редактировании форума

            'permission_array_user' => trim($_POST['permission_array_user']) ,

аналогично ищем функцию

 function do_new()

и в ней находим строчку

 	$ibforums->html .= $ibforums->adskin->add_td_row( array( "<b>Custom 'Permission Denied' Message</b><br>You may use HTML - linebreaks 'Auto-Magically' converted to <br>.<br />If left blank, a default 'permission denied' error is used." ,
                  $ibforums->adskin->form_textarea("permission_custom_error", $std->my_br2nl( $forum['permission_custom_error']) )
               )      );

после вставляем

 	$ibforums->html .= $ibforums->adskin->add_td_row( array( "<b>Выборочный доступ</b><br>Впишите  ID пользователя через запятую, например  2,4,5" ,
                  $ibforums->adskin->form_textarea("permission_array_user", $forum['permission_array_user'] )
               )      );

так мы создаем новый форум

 

КАК ЭТО РАБОТАЕТ?!!!

в админке мы прописываем без пробелов через запятую ID (номера) пользователей которым мы хотим дать доступ к форуму.

Если вообще ничего не введено, то доступ к форуму имеют все

 

ЗЫ вроде старался чтобы было просто организовать, и как меньше изменений делать :)

вообщем подскажите может что можно было проще сделать..

есть мысль конечно вводитье не ИД пользователя а имя, но это в будущем

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

  • 4 недели спустя...

кхм.. вообщем усовершенствовал код

теперь юзверей можно добавлять непосредстевнно с главной страницы форума и могут это делать модераторы (в своих форумах), супер-модераторы, админы

можно выбрать форумы где фича включена где выключена - из админки

добавление порльзователей теперь по имени - типа так же как добавляются пользователи для множественной рассылки личной почты вообщем вот код

текста конечно много, но изменения на самом деле очень простые

 

изменяемая таблица

ibf_forums

 

изменяемые файлы

lang\{язык или номер}\lang_mod.php

sources\boards.php
sources\functions.php
sources\moderate.php
sources\search.php

sources\admin\ad_forums.php

sources\classes\class_forums.php

 

и еще изменения в скине ...

 

1. добавления к таблице ibf_forums

добавляем два поля

ALTER TABLE `ibf_forums` ADD `permission_array_user` TEXT,
ADD `alow_sel_access` TINYINT;

 

2. изменения в файле lang\{язык или номер}\lang_mod.php

в самом начале после

$lang = array (

добавляем

//exclusive access
'excl_acc_title' 	 =>	"Управление доступом к форуму: ",
'excl_acc_update_list'  =>  "Список пользователей обновлен!",
'excl_acc_title1'    =>  "Помощь по добавлению пользователей",
'excl_acc_help'    =>  "Впишите <b>точные</b> имена пользователей в поле ввода. Одно имя на строку! Или воспользуйтесь кнопкой поиска",
'excl_acc_title2'    =>  "Список пользователей",
'excl_acc_not_user'  =>  "Пользователь %s  не найден или не существует!",

или

$lang['excl_acc_title']  = "Управление доступом к форуму: ";
$lang['excl_acc_update_list']  = "Список пользователей обновлен!";
$lang['excl_acc_title1']  = "Помощь по добавлению пользователей";
$lang['excl_acc_help']  = "Впишите <b>точные</b> имена пользователей в поле ввода. Одно имя на строку! Или воспользуйтесь кнопкой поиска";
$lang['excl_acc_title2']  = "Список пользователей";
$lang['excl_acc_not_user']  = "Пользователь %s  не найден или не существует!";

смотреть по тому как записан файл

 

3. изменения в файле sources\boards.php

 

ищем функцию

    function init()

и в конце после строчки

        $this->html = $std->load_template('skin_boards');

добавляем

        $this->auth_key = $std->return_md5_check();

 

дальше ищем функцию

 

 function show_subforums($fid)

и в ней строчку

     $temp_html .= $this->html->ForumRow( $forums->forums_format_lastinfo( $forums->forums_calc_children( $forum_data['id'], $forum_data ) ) );

заменяем на

     $temp_html .= $this->html->ForumRow( $forums->forums_format_lastinfo( $forums->forums_calc_children( $forum_data['id'], $forum_data ) ),$this->auth_key, $ibforums->member['_moderator'][$forum_data['id']] );

 

дальше внутри функции

 function process_all_cats() {

находим строчку

      $temp_html .= $this->html->ForumRow( $forums->forums_format_lastinfo( $forums->forums_calc_children( $forum_data['id'], $forum_data ) ) );

и меняем ее на

      $temp_html .= $this->html->ForumRow( $forums->forums_format_lastinfo( $forums->forums_calc_children( $forum_data['id'], $forum_data ) ),$this->auth_key, $ibforums->member['_moderator'][$forum_data['id']] );

 

4. изменения в файле sources\functions.php

 

находим функцию

  function check_perms($forum_perm="",$fid="")

и заменяем ее всю на

  function check_perms($forum_perm="",$fid="")
{
  global $ibforums;

   if (trim( $ibforums->cache['forum_cache'][$fid]['permission_array_user'])!='' && $ibforums->cache['forum_cache'][$fid]['alow_sel_access'] == 1)
   {
$list_user = unserialize(stripslashes($ibforums->cache['forum_cache'][$fid]['permission_array_user']));
  $forum_perm_array_user=array(); 	 
  foreach( $list_user as $idx => $cc_user )
   {
    $forum_perm_array_user[]=$cc_user['id'];
   }

    if ( in_array( $ibforums->member['id'], $forum_perm_array_user ) )
    {
//##############################     
  if ( ! is_array( $ibforums->perm_id_array ) )
  {
   return FALSE;
  }
  
  if ( $forum_perm == "" )
  {
   return FALSE;
  }
  else if ( $forum_perm == '*' )
  {
   return TRUE;
  }
  else
  {
   $forum_perm_array = explode( ",", $forum_perm );
   
   foreach( $ibforums->perm_id_array as $u_id )
   {
    if ( in_array( $u_id, $forum_perm_array ) )
    {
     return TRUE;
    }
   }
   
   // Still here? Not a match then.
   
   return FALSE;
  }

    }
    else
    {
     return FALSE;
    }
//#########################################    
   }elseif ( ! is_array( $ibforums->perm_id_array ) )
  {
   return FALSE;
  }
  
  if ( $forum_perm == "" )
  {
   return FALSE;
  }
  else if ( $forum_perm == '*' )
  {
   return TRUE;
  }
  else
  {
   $forum_perm_array = explode( ",", $forum_perm );
   
   foreach( $ibforums->perm_id_array as $u_id )
   {
    if ( in_array( $u_id, $forum_perm_array ) )
    {
     return TRUE;
    }
   }
   
   // Still here? Not a match then.
   
   return FALSE;
  }
}

 

5. изменения в файле sources\moderate.php

 

находим такую строчку

        $post_array      = array( '04', '02', '20', '22', 'resync', 'prune_start', 'prune_finish', 'prune_move', 'editmember' );

 

и меняем ее на

        $post_array      = array( '04', '02', '20', '22', 'resync', 'prune_start', 'prune_finish', 'prune_move', 'editmember', 'select_forum_access' );

 

дальше находим

         case 'prune_move':
          $this->prune_move();
          break;

и после добавляем

         //-------------------------
         // select_forum_access
         //-------------------------
         case 'select_forum_access':
          $this->select_forum_access();
          break;

 

чуть ниже находим

 /*-------------------------------------------------------------------------*/
// Edit member
/*-------------------------------------------------------------------------*/

и перед этим добавляем

//###############################################################################
//select forum access
//###############################################################################
function select_forum_access()
{
  global $DB, $std, $forums, $ibforums, $print;
  
  //-----------------------------------------------
  // Check permissions
  //-----------------------------------------------
  
  if ($ibforums->member['g_is_supmod'] == 1)
  {
   $pass = 1;
  }
  else if ($this->moderator['mass_prune'] == 1)
  {
   $pass = 1;
  }
  else
  {
   $pass = 0;
  }
  if ($ibforums->cache['forum_cache'][$this->forum['id']]['alow_sel_access'] != 1)
  {
   $pass = 0;
  }
  
  if ($pass == 0)
  {
   $this->moderate_error();
   return;
  }
  
  //-----------------------------------------------
  // Are we checking first?
  //-----------------------------------------------
  $update='';
  
  if ($ibforums->input['check'] == 1)
  {
   $user_list=$ibforums->input['select_access'];
   if (isset($user_list) and $user_list != "")
   {
   //---------------------------
   // Sort out the array
   //---------------------------
   
   $user_list = str_replace(  "<br>", "<br />" , trim($user_list) );
   $user_list = str_replace(  "<br /><br />", "<br />" , trim($user_list) );
   $user_list = preg_replace( "#^(<br />){1}#", "" , $user_list );
   $user_list = preg_replace( "#(<br />){1}$#", "" , $user_list );
   $user_list = preg_replace( "#<br />\s+#",  ","  , $user_list );
   
   $temp_array = explode( "<br />", $user_list );
   
   //---------------------------
   // Make SQL'able
   //---------------------------
   
   if ( is_array($temp_array) and count($temp_array) > 0 )
   {
    $new_array = array();
    
    foreach( $temp_array as $name )
    {
     $name  = "'".trim(strtolower($name))."'";
     
     if (in_array( $name, $new_array ) )
     {
      continue;
     }
     
     $new_array[] = $name;
    }
   }

   //---------------------------
   // SQL it
   //---------------------------
   
   if ( is_array($new_array) and count($new_array) > 0 )
   {
    $array_count = count($new_array);
    
     $DB->simple_construct( array(  'select' => 'id, name',
               'from'   => 'members',
              'where'  => "LOWER(name) IN (".implode(",",$new_array).")",
              'order'  => "name"
           ));
    $DB->simple_exec();
         
    if ( ! $DB->get_num_rows() )
    {
     $this->moderate_error('cp_error_no_mem');
     return;
    }
    else
    {
     while( $r = $DB->fetch_row() )
     {
      $cc_array[$r['id']] = $r;
     }
     
    }
    
    $cc_error = "";
     
     if ( count($cc_array) != $array_count )
     {
      foreach( $new_array as $n )
      {
       $seen = 0;
       
       foreach( $cc_array as $idx => $cc_user )
       {
        $tmp = "'".strtolower($cc_user['name'])."'";
        
        if ($tmp == $n)
        {
         $seen = 1;
        }
       }
       
       if ($seen != 1)
       {
        $cc_error .= "<br>".sprintf( $ibforums->lang['excl_acc_not_user'], $n, $n );
       }
      }
     }
   $DB->do_update( 'forums', array ('permission_array_user'    =>addslashes(serialize($cc_array)),),"id={$ibforums->input['f']}" );
   $std->update_forum_cache();
   }
    $update=$ibforums->lang['excl_acc_update_list'].$cc_error;
    }
    else
    {
     $DB->do_update( 'forums', array ('permission_array_user'    =>'',),"id={$ibforums->input['f']}" );
    $std->update_forum_cache();
    $update=$ibforums->lang['excl_acc_update_list'];

    } 
    
    
  }
  $list_user = unserialize(stripslashes($ibforums->cache['forum_cache'][$this->forum['id']]['permission_array_user']));
  $list='';	
  if ( is_array($list_user))
  {  
   foreach( $list_user as $idx1 => $cc_user1 )
    {
     $list.=$cc_user1['name']."\n";
    }
  }
  $this->output .= $this->html->select_forum_access_splash ($this->forum, $std->return_md5_check(),$list, $update );
  
  $print->pop_up_window( "", $this->output );
}

//###############################################################################	
//select forum access
//###############################################################################

 

6. изменения в файле sources\search.php

 

находим (почти в самом низу) строчку

     if ( $std->check_perms( $i['read_perms']) == TRUE )

и меняем ее на

     if ( $std->check_perms( $i['read_perms'],$i['id'] ) == TRUE )

 

7. изменения в файле sources\classes\class_forums.php

находим строчку

  if ( $std->check_perms($this->forum_by_id[$fid]['show_perms']) == TRUE )

меняем на

  if ( $std->check_perms($this->forum_by_id[$fid]['show_perms'],$fid) == TRUE )

 

8. изменения в файле sources\admin\ad_forums.php

 

два раза находим строчку

'permission_custom_error' => $std->my_nl2br( $std->txt_stripslashes($_POST['permission_custom_error']) ),

и два раза после нее добавляем

'alow_sel_access' 	 => $ibforums->input['alow_sel_access'],

 

затем находим

  $ibforums->html .= $ibforums->adskin->add_td_row( array( "<b>Custom 'Permission Denied' Message</b><br>You may use HTML - linebreaks 'Auto-Magically' converted to <br>.<br />If left blank, a default 'permission denied' error is used." ,
                  $ibforums->adskin->form_textarea("permission_custom_error", $std->my_br2nl( $forum['permission_custom_error']) )
               )      );

и после добавляем

  $ibforums->html .= $ibforums->adskin->add_td_row( array( "<b>Разрешить выборочный доступ</b>" ,
                   $ibforums->adskin->form_yes_no("alow_sel_access", $forum['alow_sel_access'] )
                )      );

 

9. изменения в скине...

в админке в редактировании скинов идем сюда

ACP Home / Skin Manager Home / Board Index/ForumRow

и меняем в поле все содержимое на

<tr> 
          <td class="row4" align="center">{$data['img_new_post']}</td>
          <td class="row4">{$data['_queued_img']}<b><a href="{ipb.script_url}showforum={$data['id']}">{$data['name']}</a></b><br /><div class='forumdesc'>{$data['description']}{$data['show_subforums']}<br /><em>{$data['moderator']} </em>
<if="data['alow_sel_access']==1 and is_mod">
 · <a href='javascript:PopUp("{ipb.script_url}act=mod&CODE=select_forum_access&f={$data['id']}&auth_key={$auth_key}", "ACCESS", 600,500)'>Доступ к форуму</a>
</if>
<else if="ipb.member['g_is_supmod']==1 and data['alow_sel_access']==1">
 · <a href='javascript:PopUp("{ipb.script_url}act=mod&CODE=select_forum_access&f={$data['id']}&auth_key={$auth_key}", "ACCESS", 600,500)'>Доступ к форуму</a>
</if>
</div>{$data['_queued_info']}</td>
          <td class="row2" align="center">{$data['topics']}</td>
          <td class="row2" align="center">{$data['posts']}</td>
          <td class="row2" nowrap="nowrap">{$data['last_unread']} <span class='desc'>{$data['last_post']}</span><br />{ipb.lang['in']}: {$data['last_topic']}<br />{ipb.lang['by']}: {$data['last_poster']}</td>
        </tr>

 

потом жмем кнопочку Show Data Variables...

и пишем там

$data, $auth_key="", $is_mod

и сохраняем изменения...

 

потом идем сюда в админке в редактировании скинов идем сюда

ACP Home / Skin Manager Home / Moderator Function

и жмем там кнопку Add Template Bit

 

и там вписываем

название функции

select_forum_access_splash

переменные

$forum="", $auth_key="", $list_user="", $update=""

и в самое большое поле

</script><script language='javascript' type="text/javascript">
<!--
function find_users()
{
  url = "index.php?act=legends&CODE=finduser_one&s=&entry=textarea&name=select_access&sep=line";
  window.open(url,'FindUsers','width=400,height=250,resizable=yes,scrollbars=yes'); 
}
//-->
</script>
<div class='tableborder'>
  <div class='maintitle'>{ipb.lang['excl_acc_title']} {$forum['name']}</div>
<div class='pformstrip'>{$update}</div>
 <div class='pformstrip'>{ipb.lang['excl_acc_title1']}</div>
<div class='tablepad'>{ipb.lang['excl_acc_help']}</div>
<form action='{ipb.script_url}' method='POST' name='REPLIER' >
  <input type='hidden' name='s' value='{ipb.session_id}'>
  <input type='hidden' name='act' value='mod'>
  <input type='hidden' name='CODE' value='select_forum_access'>
  <input type='hidden' name='f' value='{$forum['id']}'>
  <input type='hidden' name='auth_key' value='$auth_key' />
<input type='hidden' name='check' value='1'>
 
  <div class='pformstrip'>{ipb.lang['excl_acc_title2']}</div>
 
<table width="100%" cellspacing="0">
<tr>
<td class='pformright' align='center'>
 <textarea name='select_access' rows='15' cols='40'>$list_user</textarea><br />
 <input type='button' class='forminput' name='findusers' onclick='find_users()' value='{ipb.lang['find_user_names']}' />
 </td>
</tr>
</table>
  <div class='pformstrip' align='center'><input type='submit' value='{ipb.lang['cp_prune_sub1']}' class='button' /></div>
</form>
</div>

ну и сохраняем...

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

  • 1 месяц спустя...

winnie

Ставил на финал... Вылазит ошибка:

IPB WARNING [2] in_array(): Wrong datatype for second argument (Line: 65 of \sources\moderate.php)

 

Код ~60-70 строк в файле:

//-----------------------------------------
        // Make sure this is a POST request
        // not a naughty IMG redirect
        //-----------------------------------------

        if ( ! in_array( $ibforums->input['CODE'], $post_array ) )
        {
                        if ($_POST['act'] == '')
                        {
                                $std->Error( array( 'LEVEL' => 1, 'MSG' => 'incorrect_use') );
                        }
                }

 

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

Забыл сказать: она вылазит когда пытаешься настроить доступ к форуму через поп-ап на главной странице... И еще - в шаблонах косяки: нет границ м-у иконкой форума и его названием, т.е. косяк в ForumRow.

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

вот эту строчку правильно вставили?

 $post_array      = array( '04', '02', '20', '22', 'resync', 'prune_start', 'prune_finish', 'prune_move', 'editmember', 'select_forum_access' );

 

на счет шаблона- да это делалось под старые скины.. под новый вот содержимое шаблона всплывющего окна

 

</script><script language='javascript' type="text/javascript">
<!--
function find_users()
{
 url = "index.php?act=legends&CODE=finduser_one&s=&entry=textarea&name=select_access&sep=line";
 window.open(url,'FindUsers','width=400,height=250,resizable=yes,scrollbars=yes'); 
}
//-->
</script>
<div class='tableborder'>
 <div class='maintitle'>{$ibforums->lang['excl_acc_title']} {$forum['name']}</div>
<div class='pformstrip'>{$update}</div>
<div class='formsubtitle'>{$ibforums->lang['excl_acc_title1']}</div>
<div class='tablepad'>{$ibforums->lang['excl_acc_help']}</div>
<form action='{$ibforums->base_url}' method='POST' name='REPLIER' >
 <input type='hidden' name='s' value='{$ibforums->session_id}'>
 <input type='hidden' name='act' value='mod'>
 <input type='hidden' name='CODE' value='select_forum_access'>
 <input type='hidden' name='f' value='{$forum['id']}'>
 <input type='hidden' name='auth_key' value='$auth_key' />
<input type='hidden' name='check' value='1'>

 <div class='formsubtitle'>{$ibforums->lang['excl_acc_title2']}</div>

<table width="100%" cellspacing="0">
<tr>
<td class='pformright' align='center'>
<textarea name='select_access' rows='15' cols='40'>$list_user</textarea><br />
</td>
</tr>
<tr><td class='pformright' align='center'> 
<input type='button' class='forminput' name='findusers' onclick='find_users()' value='{$ibforums->lang['find_user_names']}' />
</td>
</tr>
</table>
 <div class='formsubtitle' align='center'><input type='submit' value='{$ibforums->lang['cp_prune_sub1']}' class='button' /></div>
</form>
</div>

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

winnie

Да, действительно, криво вставил... Два знака $ в начале получилось... поменял, но все равно ошибка, но уже другая ;)

Неверная авторизация. Вернитесь назад и повторите попытку. Если Вы неправильно обратились к данной функции, исправьте ошибку и используйте соответствующий этой функции метод.

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

Блин, в скинах напутал... все заработало, спасибо!

Еще: лучше в ForumRow вставить

<tr> 
	 <td align="center" class="row2" width="1%">{$data['img_new_post']}</td>
	 <td class="row2">{$data['_queued_img']}<b><a href="{ipb.script_url}showforum={$data['id']}">{$data['name']}</a></b><br /><span class="forumdesc">{$data['description']}{$data['show_subforums']}<br /><i>{$data['moderator']}</i>

<if="data['alow_sel_access']==1 and is_mod">
 · <a href='javascript:PopUp("{ipb.script_url}act=mod&CODE=select_forum_access&f={$data['id']}&auth_key={$auth_key}", "ACCESS", 600,500)'>Доступ к форуму</a>
</if>
<else if="ipb.member['g_is_supmod']==1 and data['alow_sel_access']==1">
 · <a href='javascript:PopUp("{ipb.script_url}act=mod&CODE=select_forum_access&f={$data['id']}&auth_key={$auth_key}", "ACCESS", 600,500)'>Доступ к форуму</a>
</if>
</span>{$data['_queued_info']}</td>
	 <td align="center" class="row1">{$data['topics']}</td>
	 <td align="center" class="row1">{$data['posts']}</td>
	 <td class="row1" nowrap="nowrap">{$data['last_unread']} <span>{$data['last_post']}<br /><b>{ipb.lang['in']}:</b> {$data['last_topic']}<br /><b>{ipb.lang['by']}:</b> {$data['last_poster']}</span></td>
 </tr>

Патамучта с твоим кодом у меня теряются цвета в поле с названиями форумов...

Все, спасибо! :D

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

  • 5 недель спустя...

winnie

Скажите, если стоит будуар и всем группам разрешен просмотр тем форума (так получилось, что у меня на форум могут иметь доступ люди из разных групп: юзеры, админы и т.д.). Но сам будуар ограничивает только заход и просмотр тем... а вот если "лишний" юзер поставит галочку "Подписаться на все форумы", то будет ли он получать по мылу текст новых постов или нет?

ЗЫ - спрашиваю, т.к. на локалке не проверишь :D

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

Включить 'уведомления на e-mail' по умолчанию?

Если включено, выберите тип уведомления: 

- Не уведомлять

- Немедленное уведомление

- Уведомление с задержкой

- Ежедневное уведомление

- Еженедельное уведомление

При включении этой опции Вы будете автоматически подписаны на все новые и обновлённые темы.

Это разве не то? :D

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

ЗЫ - это в "настройках e-mail" в профиле ;)

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

winnie

Кое- каким макаром протестировал на рабочем форуме:

если для юзера по маске доступен просмотр форума, но имени юзера нет в списке будуара, то можно вручную ввести адрес

борда/index.php?act=Track&f=<номер форума>&type=forum

то подписка добавится и юзер будет благополучно получать по мылу все новые посты форума :D

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

угу есть такое.. пропустил :D

файл misc\tracker.php

ищем внутри

        if ( $std->check_perms( $forums->forum_by_id[ $ibforums->input['f'] ]['read_perms'] ) != TRUE )

меняем на

        if ( $std->check_perms( $forums->forum_by_id[ $ibforums->input['f'] ]['read_perms'], $ibforums->input['f'] ) != TRUE )

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

И еще - при таком же раскладе юзер, не имеющий доступ по списку будуара может читать заголовки последней темы форума.
Ссылка на комментарий
Поделиться на других сайтах

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

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

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

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