de_coder Опубликовано 9 Марта 2009 Жалоба Поделиться Опубликовано 9 Марта 2009 Есть такая модификация для 1.1.... и для 2.1.x http://www.ibresource.ru/forums/index.php?showtopic=44225Но для 2.3.x ненашел. Вот мой вариант - переделал под себя возможно кому то пригодится. 1. сделать запросALTER TABLE ibf_members ADD invisible_forums VARCHAR(255) DEFAULT NULLЕсли у вас на форуме больше 50 разделов, лучше сделать запросALTER TABLE ibf_members ADD invisible_forums text2. Изменение шаблона skin_ucp -- Menu_barнайти <{ITEM_START}> <a href="{$this->ipsclass->base_url}act=UserCP&CODE=04">{$this->ipsclass->lang['m_board_opt']}</a><br />добавить после <{ITEM_START}> <a href='{$this->ipsclass->base_url}act=UserCP&CODE=333'>Видимость форумов</a><br />3. Добавить шаблон в skin_ucpНазвание - forum_headerПеременные -Содержание -<form action="{$this->ipsclass->vars['board_url']}/index.php" method="post" name='fview'> <input type='hidden' name='act' value='UserCP'> <input type='hidden' name='CODE' value='999'> <div class="formsubtitle">Выберите форумы, которые не хотите видеть (Внимание так же отключится и поиск по этим форумам, включая "Показать новые сообщения")</div> <div class="borderwrapm"> <table class='ipbtable' cellspacing="1"> <tr> <th align='center' width='5%'>inVisible</td> <th align='left' width='95%'>{$this->ipsclass->lang['ft_forum']}</td> </tr>языковая переменная аналогично 4. Добавить шаблон в skin_ucpНазвание - forum_rowПеременные - $data=""Содержание -<tr> <td class='row1' align='center' width='5%'><input name=invForums[] type="checkbox" value="{$data['id']}" {$data['checked']}></td> <td class='row1' align='left'> <b><a href='{$this->ipsclass->base_url}act=SF&f={$data['id']}'>{$data['name']}</a></b> <br><span class='desc'>{$data['description']}</span> </td> </tr>5. Добавить шаблон в skin_ucpНазвание - forum_endПеременные - Содержание -<tr> <td align='center' class='row1' valign='middle' colspan='2'><input type="submit" value="Сохранить изменения" class='forminput'></td></tr> </table> </div> </form>(за этот фрагмент 10x Hugo Weaving)языковая переменная аналогично по желанию 6. Добавить шаблон в skin_ucpНазвание - forum_cat_rowПеременные - $data=""Содержание - <tr> <td class='row1' align='left' colspan="2"> <b><a href='{$this->ipsclass->base_url}act=SF&f={$data['id']}'>{$data['name']}</a></b> <br><span class='desc'>{$data['description']}</span> </td> </tr>7. изменение файла sources/action_public/boards.php найти foreach( $this->ipsclass->forums->forum_cache[ $fid ] as $forum_data ) {добавить после if (strpos(",".$this->ipsclass->member['invisible_forums'].",",",".$forum_data['id'].",") !== false) continue;найти foreach( $this->ipsclass->forums->forum_cache[ $root_id ] as $id => $forum_data ) {добавить после if (strpos(",".$this->ipsclass->member['invisible_forums'].",",",".$forum_data['id'].",") !== false) continue;найти foreach( $this->ipsclass->forums->forum_cache[ $forum_data['id'] ] as $forum_data ) {добавить после if (strpos(",".$this->ipsclass->member['invisible_forums'].",",",".$forum_data['id'].",") !== false) continue; 8. изменение файла sources/action_public/usercp.php найти case '50': $this->forum_tracker(); break; case '51': $this->remove_forum_tracker(); break;добавить после case '333': $this->forums_view(); break; case '999': $this->do_forums_view(); break;найти} ?>добавить перед, не промахнуться! function forums_view() { $this->output .= $this->ipsclass->compiled_templates['skin_ucp']->forum_header(); foreach( $this->ipsclass->forums->forum_cache['root'] as $id => $forum_data ) { $cat_data = $forum_data; $this->output .= $this->ipsclass->compiled_templates['skin_ucp']->forum_cat_row( $cat_data ); if ( is_array( $this->ipsclass->forums->forum_cache[ $forum_data['id'] ] ) ) { $this->recursion_forum_view($this->ipsclass->forums->forum_cache[ $forum_data['id'] ]); } } $this->output .= $this->ipsclass->compiled_templates['skin_ucp']->forum_end(); $this->page_title = $this->ipsclass->lang['t_welcome']; $this->nav = array( "<a href='".$this->ipsclass->base_url."act=UserCP&CODE=00'>".$this->ipsclass->lang['t_title']."</a>" ); } function recursion_forum_view($forums) { foreach( $forums as $id => $forum_data ) { if ( $this->ipsclass->check_perms($forum_data['show_perms']) != TRUE ) continue; if (in_array($forum_data['id'], explode(",",$this->ipsclass->member['invisible_forums']))) $forum_data['checked'] = 'checked="checked"'; if ( $this->ipsclass->vars['forum_cache_minimum'] ) { $forum_data['description'] = "<!--DESCRIPTION:{$forum_data['id']}-->"; $need_desc[] = $forum_data['id']; } $this->output .= $this->ipsclass->compiled_templates['skin_ucp']->forum_row( $forum_data ); if (is_array( $this->ipsclass->forums->forum_cache[ $forum_data['id'] ])) $this->recursion_forum_view($this->ipsclass->forums->forum_cache[ $forum_data['id'] ]); } } //*******************************************************************/ //| Forums Visibility Change function //| //| Change user inVisible forums list. //| //*******************************************************************/ function do_forums_view() { //--------------------------------------------------------- // If no inVisible forums then make default variable value //--------------------------------------------------------- if (empty($this->ipsclass->input['invForums'])) { $this->ipsclass->input['invForums'][] = '0'; } //--------------------------------------------------------- // Create string of inVisible forums id's //--------------------------------------------------------- $invis_forums_list = implode(',',$this->ipsclass->input['invForums']); //--------------------------------------------------------- //update user profile in DataBase //--------------------------------------------------------- $this->ipsclass->DB->do_update( 'members', array( 'invisible_forums' => ''.$invis_forums_list.'' ), "id={$this->ipsclass->member['id']}" ); //--------------------------------------------------------- //redirect to the Forums List //--------------------------------------------------------- $this->ipsclass->print->redirect_screen( 'Видимость форумов изменена', 'act=UserCP&CODE=333' ); } и тут тоже языковая переменная 9. изменение файла sources/classes/class_session.php найти has_blog, has_gallery, members_markers, members_editor_choice, members_auto_dst, members_display_name, members_created_remote, members_cache, members_disable_pmдобавить после, invisible_forumsда так, с запятой. Вот наверное и все.Если вы хотите отключить поиск - по этим разделам (В том числе и кнопкой "Новые сообщения" - тогда: 10. изменение файла sources/action_public/search.phpнайти //----------------------------------------- // Not an array... //----------------------------------------- if ( $this->ipsclass->input['forums'] == 'all' ) { foreach( $this->ipsclass->forums->forum_by_id as $data ) { добавить после if (strpos(",".$this->ipsclass->member['invisible_forums'].",",",".$data['id'].",") !== false) continue; Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
WildCat Опубликовано 6 Июня 2009 Жалоба Поделиться Опубликовано 6 Июня 2009 Я уж думал не найду этот мод под 2.3.xБлагодарствую! Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.