Arhar Опубликовано 4 Апреля 2007 Жалоба Поделиться Опубликовано 4 Апреля 2007 Название: Forums Visibility / Видимость Форумов / 2.1.xДобавил: ArharДобавлен: 04 Апр 2007Обновлен: 06 Апр 2007Категория: IP.Board 2.1.x Адаптация мода www.ibresource.ru/db/153/ для версии 2.1.х Посвящается Master, без его помощи мод бы не был доработан и приведен в нормальный функциональный вид Данная модификация позволяет всем зарегистрированным пользователям, через систему управления профилем, контролировать вывод форумов в списке форумов. То есть составить свой список форумов, который будет выводиться на главной странице, тем самым оставив для себя только интересные (наиболее посещаемые) разделы. Настройка индивидуальна для каждого пользователя! Нажмите здесь, чтобы скачать файл Ссылка на комментарий Поделиться на других сайтах Прочее
Jax Опубликовано 4 Апреля 2007 Жалоба Поделиться Опубликовано 4 Апреля 2007 Респект Я бы не стал возиться. Ссылка на комментарий Поделиться на других сайтах Прочее
GiV Опубликовано 4 Апреля 2007 Жалоба Поделиться Опубликовано 4 Апреля 2007 А я бы вообще переписал, ага. Ссылка на комментарий Поделиться на других сайтах Прочее
Hugo Weaving Опубликовано 4 Апреля 2007 Жалоба Поделиться Опубликовано 4 Апреля 2007 (изменено) 5 Баллов!Работает на ура. Архар, молодец! Изменено 4 Апреля 2007 пользователем Hugo Weaving Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 5 Апреля 2007 Автор Жалоба Поделиться Опубликовано 5 Апреля 2007 там в 21 такая муторная система доступа по маскам..не по ид групп, а по туфтятине, и причем учитываются еще и второстепенные группы и второстепенные маскитак что RC) Ссылка на комментарий Поделиться на других сайтах Прочее
Master Опубликовано 5 Апреля 2007 Жалоба Поделиться Опубликовано 5 Апреля 2007 М-да, у меня кода раза в три меньше если не больше, при том все без предупреждений отлично работает. Ссылка на комментарий Поделиться на других сайтах Прочее
Hugo Weaving Опубликовано 5 Апреля 2007 Жалоба Поделиться Опубликовано 5 Апреля 2007 М-да, у меня кода раза в три меньше если не больше, при том все без предупреждений отлично работает. О каких предупреждениях ты говоришь? Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 5 Апреля 2007 Автор Жалоба Поделиться Опубликовано 5 Апреля 2007 еще один ньюанс, в моде в usercp.php добавляется if (strpos(",".$forum['read_perms'].",",",".$gid.","))так вот, если гид стоит в строке реад_пермс на первом месте, то функция вернет 0поэтому сделаем так, заменим эту строчку наif (strpos("notnull,".$forum['read_perms'].",",",".$gid.","))инструкцию поправлю Ссылка на комментарий Поделиться на других сайтах Прочее
Hugo Weaving Опубликовано 5 Апреля 2007 Жалоба Поделиться Опубликовано 5 Апреля 2007 (изменено) По желанию, на шаге:5. Добавить шаблон в skin_ucp Название - forum_end Переменные - Содержание -Предлагаемое содержание:<tr> <td align='right' class='titlemedium' valign='middle' colspan='5'><input type="submit" value="Поменять" class='forminput'></td></tr> </table> </div> </form>заменить на:<tr> <td align='center' class='row1' valign='middle' colspan='2'><input type="submit" value="Сохранить изменения" class='forminput'></td></tr> </table> </div> </form>Итог: кнопка сохранения изменений будет смотреться лучше. Изменено 5 Апреля 2007 пользователем Hugo Weaving Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 5 Апреля 2007 Автор Жалоба Поделиться Опубликовано 5 Апреля 2007 10хрешил внести поправку в инструкцию да, и colspan='5' там остался ни к чему, надо colspan='2'в инструкции уже поправлено Ссылка на комментарий Поделиться на других сайтах Прочее
Hugo Weaving Опубликовано 5 Апреля 2007 Жалоба Поделиться Опубликовано 5 Апреля 2007 Скриншоты получившейся кнопки можно наблюдать какое-то время тут: http://www.lofors.com/images/1.gifhttp://www.lofors.com/images/2.gif Ссылка на комментарий Поделиться на других сайтах Прочее
GiV Опубликовано 5 Апреля 2007 Жалоба Поделиться Опубликовано 5 Апреля 2007 М-да, у меня кода раза в три меньше если не больше, при том все без предупреждений отлично работает.Код в студию! Ссылка на комментарий Поделиться на других сайтах Прочее
Master Опубликовано 5 Апреля 2007 Жалоба Поделиться Опубликовано 5 Апреля 2007 (изменено) У меня только две функции - hide_forums и функция апдейта hide_forums_upd function hide_forums() { $this->output .= $this->ipsclass->compiled_templates['skin_ucp']->hide_forums_head(); foreach( $this->ipsclass->forums->forum_cache['root'] as $id => $forum_data ) { $cat_data = $forum_data; if ( is_array( $this->ipsclass->forums->forum_cache[ $forum_data['id'] ] ) ) { foreach( $this->ipsclass->forums->forum_cache[ $forum_data['id'] ] 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['hide_forums']))) $forum_data['checked'] = 'checked="checked"'; $forum_data['folder_icon'] = $this->ipsclass->forums->forums_new_posts($forum_data); $forum_data['last_post'] = $this->ipsclass->get_date($forum_data['last_post'], 'LONG'); $forum_data['last_topic'] = $this->ipsclass->lang['f_none']; $forum_data['last_title'] = str_replace( "!" , "!", $forum_data['last_title'] ); $forum_data['last_title'] = str_replace( """, "\"", $forum_data['last_title'] ); if ( strlen($forum_data['last_title']) > 30 ) { $forum_data['last_title'] = substr($forum_data['last_title'],0,27) . "..."; $forum_data['last_title'] = preg_replace( '/&(#(\d+;?)?)?\.\.\.$/', '...', $forum_data['last_title'] ); } if ($forum_data['password'] != "") $forum_data['last_topic'] = $this->ipsclass->lang['f_none']; else $forum_data['last_topic'] = "<a href='{$this->ipsclass->base_url}showtopic={$forum_data['last_id']}&view=getlastpost'>{$forum_data['last_title']}</a>"; if ( isset($forum_data['last_poster_name'])) $forum_data['last_poster'] = $forum_data['last_poster_id'] ? "<a href='{$this->ipsclass->base_url}showuser={$forum_data['last_poster_id']}'>{$forum_data['last_poster_name']}</a>" : $forum_data['last_poster_name']; else $forum_data['last_poster'] = $this->ipsclass->lang['f_none']; if ( $this->ipsclass->vars['forum_cache_minimum'] ) { $forum_data['description'] = "<!--DESCRIPTION:{$forum_data['id']}-->"; $need_desc[] = $forum_data['id']; } if ( $forum_data['redirect_on'] ) continue; else $temp_html .= $this->ipsclass->compiled_templates['skin_ucp']->hide_forums_row( $forum_data ); } } if ( $temp_html ) $this->output .= $temp_html; unset($temp_html); } $this->output .= $this->ipsclass->compiled_templates['skin_ucp']->hide_forums_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 hide_forums_upd() { $ids = array(); foreach ($this->ipsclass->input as $key => $value) if ( preg_match( "/^id-(\d+)$/", $key, $match ) ) if ($this->ipsclass->input[$match[0]]) $ids[] = $match[1]; //$this->output .= print_r($ids); $this->ipsclass->DB->do_update( 'members', array( 'hide_forums' => ''.implode( ",", $ids ).'' ), "id={$this->ipsclass->member['id']}" ); $this->ipsclass->boink_it($this->ipsclass->base_url."act=UserCP&CODE=hide_forums"); } Изменено 5 Апреля 2007 пользователем Master Ссылка на комментарий Поделиться на других сайтах Прочее
pikachu Опубликовано 5 Апреля 2007 Жалоба Поделиться Опубликовано 5 Апреля 2007 на 2.1.7 работает - спасибо Ссылка на комментарий Поделиться на других сайтах Прочее
Hugo Weaving Опубликовано 5 Апреля 2007 Жалоба Поделиться Опубликовано 5 Апреля 2007 Кстати, в моде слово "inVisible", которое отображается в колонке с галочками в личных данных можно заменить, например, на такой вот символ "—" будет смотреться тоже более лучше www.lofors.com/images/3.gif Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 6 Апреля 2007 Автор Жалоба Поделиться Опубликовано 6 Апреля 2007 если автор не использует кеш, значит автор не знает его устройстваплюс автор переписывал код с 1.1.х, а с тех пор столько всего менялось...к тому же, автор не видит больших проблем в добавлении 2 лишних запросов к базе, тем более планирую их оптимизироватьтем более права доступа учтены максимально возможнос запароленными форумами еще добавлю проверку Ссылка на комментарий Поделиться на других сайтах Прочее
GiV Опубликовано 6 Апреля 2007 Жалоба Поделиться Опубликовано 6 Апреля 2007 а зочем? Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 6 Апреля 2007 Автор Жалоба Поделиться Опубликовано 6 Апреля 2007 выходит поправленная версия, спасибо всем за пояснения и наводки для обновления необходимо произвести следующие действия: Добавить шаблон в skin_ucpНазвание - forum_cat_rowПеременные - $data=""Содержание -<tr> <td class='row1' align='left' colspan="2"> <b><a href='{ipb.script_url}act=SF&f={$data['id']}'>{$data['name']}</a></b> <br><span class='desc'>{$data['description']}</span> </td> </tr> В файле sources/action_public/usercp.php найти function forums_view() ... } ?> заменить на 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; $temp_html .= $this->ipsclass->compiled_templates['skin_ucp']->forum_cat_row( $cat_data ); if ( is_array( $this->ipsclass->forums->forum_cache[ $forum_data['id'] ] ) ) { foreach( $this->ipsclass->forums->forum_cache[ $forum_data['id'] ] 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']; } $temp_html .= $this->ipsclass->compiled_templates['skin_ucp']->forum_row( $forum_data ); } } if ( $temp_html ) $this->output .= $temp_html; unset($temp_html); } $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>" ); } //*******************************************************************/ //| 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' ); } } ?> могу сказать, что в этом случае нет возможности убрать подфорумы...плохонадо будет поработать над этим Ссылка на комментарий Поделиться на других сайтах Прочее
Master Опубликовано 6 Апреля 2007 Жалоба Поделиться Опубликовано 6 Апреля 2007 Так это уже не твой мод в архиве теперь Копирайт поставь ! Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 6 Апреля 2007 Автор Жалоба Поделиться Опубликовано 6 Апреля 2007 еще одно изменение внес, для показа подфорумовда здравствует рекурсия)ща напишу для обновления заменить функцию forums_view()на две: 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'] ]); } } Ссылка на комментарий Поделиться на других сайтах Прочее
Demonit Опубликовано 6 Апреля 2007 Жалоба Поделиться Опубликовано 6 Апреля 2007 Спасибо за мод, хорошая вещь. А можно ли сделать так, чтобы при нажатии на кнопку "Новые сообщения", новые сообщения из невидимых форумов не показывались в списке? Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 6 Апреля 2007 Автор Жалоба Поделиться Опубликовано 6 Апреля 2007 подумаю над этим как над отдельной фичей, думаю это не очень сложно в общем, версия уже не RC, функциональность 99,99%)) Ссылка на комментарий Поделиться на других сайтах Прочее
Master Опубликовано 6 Апреля 2007 Жалоба Поделиться Опубликовано 6 Апреля 2007 Архар, и что, теперь ты будешь выдавать этот мод за свой? Про копирайты я уже писал! Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 6 Апреля 2007 Автор Жалоба Поделиться Опубликовано 6 Апреля 2007 нет))просто доработкаhttp://www.ibresource.ru/db/894/ Ссылка на комментарий Поделиться на других сайтах Прочее
Master Опубликовано 6 Апреля 2007 Жалоба Поделиться Опубликовано 6 Апреля 2007 Тогда поставь копирайт откуда код взял-то.Я уже третий раз пишу это. Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения