forum_id] = $za_vi_settings['fhr'][$id]; else unset($za_vi_settings['fhr'][$f->forum_id]); if(isset($za_vi_settings['fhu'][$id])) $za_vi_settings['fhu'][$f->forum_id] = $za_vi_settings['fhu'][$id]; else unset($za_vi_settings['fhu'][$f->forum_id]); if(isset($za_vi_settings['fehu'][$id])) $za_vi_settings['fehu'][$f->forum_id] = $za_vi_settings['fehu'][$id]; else unset($za_vi_settings['fehu'][$f->forum_id]); } } } function za_vi_topic_has_visibility($id) { global $za_vi_settings; return !empty($za_vi_settings['thr'][$id]) || !empty($za_vi_settings['thu'][$id]) || !empty($za_vi_settings['tehu'][$id]) || !empty($za_vi_settings['tlr'][$id]) || !empty($za_vi_settings['tlu'][$id]) || !empty($za_vi_settings['tehu'][$id]); } function za_vi_reset_topic($id) { global $za_vi_settings; unset($za_vi_settings['thr'][$id]); unset($za_vi_settings['thu'][$id]); unset($za_vi_settings['tehu'][$id]); unset($za_vi_settings['tlr'][$id]); unset($za_vi_settings['tlu'][$id]); unset($za_vi_settings['telu'][$id]); } function za_vi_admin_get_request($variables, $request) { $variables['plugin'] = 'za_vi_configuration_page'; $temp = bb_get_uri('bb-admin/admin-base.php', $variables, BB_URI_CONTEXT_A_HREF + BB_URI_CONTEXT_BB_ADMIN); return esc_url(bb_nonce_url($temp, $request)); } function za_vi_explode_user_list($list) { $ret = array(); if(isset($list) && is_string($list)) { $temp = explode(',', $list); foreach($temp as $i => $v) { $v = trim($v); $user = bb_get_user_by_nicename($v); if($user) $ret[] = $user->ID; } } return $ret; } function za_vi_var($list) { global $za_vi_settings; foreach($list as $i) if(!isset($za_vi_settings[$i])) $za_vi_settings[$i] = array(); } function za_vi_initialize() { bb_load_plugin_textdomain(ZA_VI_ID, dirname(__FILE__) . '/languages'); global $za_vi_settings, $za_vi_hidden_forums_list, $za_vi_hidden_topics_list, $za_vi_locked_forums_count, $za_vi_hidden_topics_count, $za_vi_current_user_role, $bb_views, $bb_current_user, $forum_id, $page; $za_vi_settings = bb_get_option('za_visibility'); if(empty($za_vi_settings)) $za_vi_settings = array(); // super users and roles za_vi_var(array('su', 'sr', 'fhr', 'fhu', 'fehu', 'flr', 'flu', 'felu', 'thr', 'thu', 'tehu', 'tlr', 'tlu', 'telu', 'fp', 'tp', 'flm', 'tlm', 'tlm')); $id = (!empty($bb_current_user)) ? intval($bb_current_user->ID) : 0; $za_vi_hidden_forums_list = array(); $za_vi_hidden_topics_list = array(); $za_vi_hidden_topics_count = array(); // check blocked if($id == 0) $za_vi_current_user_role = 'inactive'; else { if(!isset($bb_current_user->capabilities) || !is_array($bb_current_user->capabilities) || empty($bb_current_user->capabilities)) { $za_vi_current_user_role = 'inactive'; } else { $caps = array_keys($bb_current_user->capabilities); $za_vi_current_user_role = $caps[0]; } } // Do not filter for super users if(!in_array($id, $za_vi_settings['su'])) { // Do not filter for super roles if(!in_array($za_vi_current_user_role, $za_vi_settings['sr'])) { foreach($za_vi_settings['fhr'] as $key => $value) // forum hide role if(in_array($za_vi_current_user_role, $value)) $za_vi_hidden_forums_list[] = $key; if($id != 0 && !empty($za_vi_settings['fhu'])) // forum hide user { foreach($za_vi_settings['fhu'] as $key => $value) if(in_array($id, $value)) $za_vi_hidden_forums_list[] = $key; $za_vi_hidden_forums_list = array_unique($za_vi_hidden_forums_list); } $ehu_count = count($za_vi_settings['fehu']); $i = 0; if($id != 0 && $ehu_count > 0 && !empty($za_vi_hidden_forums_list)) // forum hide user exception { foreach($za_vi_hidden_forums_list as $key => $value) { if(isset($za_vi_settings['fehu'][$value]) && in_array($id, $za_vi_settings['fehu'][$value])) { unset($za_vi_hidden_forums_list[$key]); if(++$i == $ehu_count) break; } } } foreach($za_vi_settings['thr'] as $key => $value) // topic hide role if(in_array($za_vi_current_user_role, $value)) $za_vi_hidden_topics_list[] = $key; if($id != 0 && !empty($za_vi_settings['thu'])) // topic hide user { foreach($za_vi_settings['thu'] as $key => $value) if(in_array($id, $value)) $za_vi_hidden_topics_list[] = $key; $za_vi_hidden_topics_list = array_unique($za_vi_hidden_topics_list); } $ehu_count = count($za_vi_settings['tehu']); $i = 0; if($id != 0 && $ehu_count > 0 && !empty($za_vi_hidden_topics_list)) // topic hide user exception { foreach($za_vi_hidden_topics_list as $key => $value) { if(isset($za_vi_settings['tehu'][$value]) && in_array($id, $za_vi_settings['tehu'][$value])) { unset($za_vi_hidden_topics_list[$key]); if(++$i == $ehu_count) break; } } } $temp = array(); // count hidden topics (per forum) if(!empty($za_vi_hidden_topics_list)) { foreach($za_vi_hidden_topics_list as $v) { $topic = get_topic($v); if($topic) { $forum = $topic->forum_id; if(!isset($za_vi_hidden_topics_count[$forum])) $za_vi_hidden_topics_count[$forum] = 1; else ++$za_vi_hidden_topics_count[$forum]; } } add_filter('forum_topics', 'za_vi_forum_count', 10, 2); add_filter('forum_posts', 'za_vi_forum_count', 10, 2); } // count locked forums foreach($za_vi_settings['flr'] as $key => $value) if(in_array($za_vi_current_user_role, $value)) $temp[] = $key; if($id != 0 && !empty($za_vi_settings['flu'])) { foreach($za_vi_settings['fhu'] as $key => $value) if(in_array($id, $value)) $temp[] = $key; $za_vi_locked_forums_count = count(array_unique($temp)); } if(!empty($za_vi_settings['flr']) || !empty($za_vi_settings['flu']) || !empty($za_vi_settings['tlr']) || !empty($za_vi_settings['tlu'])) { add_action('bb_forum.php', 'za_vi_template_hook'); // site.com/forum/forum-name add_action('bb_topic.php', 'za_vi_template_hook'); // site.com/topic/topic-name add_action('bb_front-page.php', 'za_vi_template_hook'); // site.com/ } } } if(!empty($za_vi_hidden_forums_list) || !empty($za_vi_hidden_topics_list)) { if(is_forum()) { $page = bb_get_uri_page(); bb_repermalink(); if(!empty($forum_id) && isset($za_vi_hidden_forums_list[$forum_id])) { nocache_headers(); bb_safe_redirect(bb_get_option('uri')); exit; } } //$za_vi_hidden_forums_count = count($za_vi_hidden_forums_list); //$za_vi_hidden_topics_count = count($za_vi_hidden_topics_list); $za_vi_hidden_forums_list = implode(',', $za_vi_hidden_forums_list); $za_vi_hidden_topics_list = implode(',', $za_vi_hidden_topics_list); $filters = array('get_thread','get_thread_post_ids', 'get_latest_posts','get_latest_topics','get_latest_forum_posts', 'get_recent_user_replies','get_recent_user_threads','get_user_favorites', 'get_sticky_topics','get_tagged_topics','get_tagged_topic_posts', 'bb_recent_search','bb_relevant_search','bb_get_first_post','bb_is_first' ); // bb_includes/functions.bb-forums.php:143 // erroneous filter if(!is_topic()) { add_filter('get_forum_where','za_vi_simple_filter_fixed', 20); add_filter('get_forums_where','za_vi_simple_filter', 20); } else add_filter('get_topic_where','za_vi_filter', 20); foreach($filters as $filter) add_filter($filter.'_where','za_vi_filter', 20); foreach($bb_views as $key=>$value) add_action('bb_view_' . $key . '_where', 'za_vi_filter'); add_filter('sort_tag_heat_map', 'za_vi_filter_tags', 1); } if($bb_current_user && $bb_current_user->has_cap('administrate')) { if(!empty($za_vi_settings['fp'])) add_filter('get_forum_name', 'za_vi_label_forum', 11, 2); if(!empty($za_vi_settings['tp'])) add_filter('topic_title', 'za_vi_label_topic', 11, 2); //add_action('pre_edit_form', 'za_vi_label_topic_stop'); add_filter('bb_topic_admin', 'za_vi_topic_admin', 10, 1); add_action('bb_admin_menu_generator', 'za_vi_configuration_page_add'); add_action('za_vi_configuration_page_pre_head', 'za_vi_configuration_page_process'); } } add_action('bb_init', 'za_vi_initialize'); function za_vi_filter($where = '') { global $za_vi_hidden_forums_list, $za_vi_hidden_topics_list; $prefix = ''; if($za_vi_hidden_forums_list == '' && $za_vi_hidden_topics_list == '') return $where; if(strpos($where,' t.')) $prefix = 't.'; elseif(strpos($where, ' p.')) $prefix = 'p.'; $ret = $where . (empty($where) ? ' WHERE ' : ' AND '); if($za_vi_hidden_forums_list != '') $ret .= "{$prefix}forum_id NOT IN ($za_vi_hidden_forums_list) "; if($za_vi_hidden_topics_list != '') { if($za_vi_hidden_forums_list != '') $ret .= 'AND '; $ret .= "{$prefix}topic_id NOT IN ($za_vi_hidden_topics_list) "; } return $ret; } function za_vi_simple_filter($where='') { global $za_vi_hidden_forums_list; $prefix = ''; // CHECK if($za_vi_hidden_forums_list == '') return $where; if(strpos($where,' t.')) $prefix = 't.'; elseif(strpos($where," p.")) $prefix = 'p.'; return $where . (empty($where) ? ' WHERE ' : ' AND ') . "{$prefix}forum_id NOT IN ($za_vi_hidden_forums_list)"; } function za_vi_simple_filter_fixed($where='') { global $za_vi_hidden_forums_list; //if(strpos($where,' t.')) $prefix = 't.'; //elseif(strpos($where," p.")) $prefix = 'p.'; if($za_vi_hidden_forums_list == '') return $where; //return "$where AND {$prefix}forum_id NOT IN ($za_vi_hidden_forums_list)";// AND {$prefix}topic_id NOT IN ($za_vi_hidden_topics_list) "; return "AND forum_id NOT IN ($za_vi_hidden_forums_list)"; } function za_vi_get_label($label, $forum_id, $topic_id) { global $za_vi_settings; if($label == '' || ($forum_id == '' && $topic_id == '')) return ''; if(stripos($label, '%status%') !== FALSE) { $replace = ''; if($forum_id != '') { if(!empty($za_vi_settings['fhr'][$forum_id])) $replace .= '+HR'; if(!empty($za_vi_settings['fhu'][$forum_id])) $replace .= '+HU'; if(!empty($za_vi_settings['fehu'][$forum_id])) $replace .= '-HU'; if(!empty($za_vi_settings['flr'][$forum_id])) $replace .= '+LR'; if(!empty($za_vi_settings['flu'][$forum_id])) $replace .= '+LU'; if(!empty($za_vi_settings['felu'][$forum_id])) $replace .= '-LU'; } if($topic_id != '') { if(!empty($za_vi_settings['thr'][$topic_id])) $replace .= '+gr'; if(!empty($za_vi_settings['thu'][$topic_id])) $replace .= '+hu'; if(!empty($za_vi_settings['tehu'][$topic_id])) $replace .= '-hu'; if(!empty($za_vi_settings['tlr'][$topic_id])) $replace .= '+lr'; if(!empty($za_vi_settings['tlu'][$topic_id])) $replace .= '+lu'; if(!empty($za_vi_settings['telu'][$topic_id])) $replace .= '-lu'; } if($replace != '') $label = str_ireplace('%status%', $replace, $label); } /*$hr = $topic_id != '' ? $za_vi_settings['thr'][$topic_id] : $za_vi_settings['fhr'][$forum_id]; $lr = $topic_id != '' ? $za_vi_settings['tlr'][$topic_id] : $za_vi_settings['flr'][$forum_id]; if(stripos($label, '%hide_roles%') !== FALSE) { $label = str_ireplace('%hide_roles%', !empty($hr) ? implode(',', $hr) : '', $label); } if(stripos($label, '%lock_roles%') !== FALSE) { $label = str_ireplace('%lock_roles%', !empty($lr) ? implode(',', $lr) : '', $label); }*/ if(!empty($label)) $label .= ' '; return $label; } function za_vi_label_forum($title, $id) { global $za_vi_settings; if(!isset($_GET['action']) && (za_vi_forum_has_visibility($id))) return za_vi_get_label($za_vi_settings['fp'], $id, '') . $title; else return $title; } function za_vi_label_topic($title, $id) { global $topic, $za_vi_settings; if($id == $topic->topic_id) $forum_id = $topic->forum_id; else { $get_topic = get_topic($id); $forum_id = $get_topic->forum_id; } if(za_vi_topic_has_visibility($id)) return za_vi_get_label($za_vi_settings['tp'], $forum_id, $id) . $title; else return $title; } function za_vi_label_topic_stop() { remove_filter('topic_title', 'za_vi_label_topic', 11); } function za_vi_hide_link($args = '') { global $za_vi_settings; $defaults = array('id' => 0, 'before' => '[', 'after' => ']'); extract(wp_parse_args($args, $defaults), EXTR_SKIP); $id = (int)$id; $topic = get_topic(get_topic_id($id)); if(!$topic || !bb_current_user_can('stick_topic', $topic->topic_id)) return; $uri = za_vi_admin_get_request(array('id' => $topic->topic_id), 'za-vi-update'); /* Translators: `Status' of a forum topic */ $ret = __('Modify Hide/Lock Status', ZA_VI_ID); return "$before$ret$after"; } function za_vi_topic_admin($parts) { $parts['hide'] = za_vi_hide_link(); return $parts; } function za_vi_user_has_caps($allcaps, $caps, $args) { global $za_vi_settings, $za_vi_current_user_role, $za_vi_locked_forums_count; $message = ''; if($caps[1] == 'write_posts' && $args[0] == 'write_post') { $denied = 'write_posts'; $rl = $za_vi_settings['tlr'][$args[2]]; $ul = $za_vi_settings['tlu'][$args[2]]; $uel = $za_vi_settings['telu'][$args[2]]; if(!empty($za_vi_settings['tlm'])) $message = $za_vi_settings['tlm']; } elseif($caps[1] == 'write_topics' && $args[0] == 'write_topic') { $denied = 'write_topics'; if($args[2] == 0) { if($za_vi_locked_forums_count == get_total_forums()) $no_forums = true; } else { $rl = $za_vi_settings['flr'][$args[2]]; $ul = $za_vi_settings['flu'][$args[2]]; $uel = $za_vi_settings['felu'][$args[2]]; if(!empty($za_vi_settings['flm']) && !(bb_is_tag() || bb_is_front())) $message = $za_vi_settings['flm']; } } elseif($caps[1] == 'edit_tags' && $args[0] == 'edit_tag_by_on') { $denied = 'edit_tags'; $rl = $za_vi_settings['tlr'][$args[3]]; $ul = $za_vi_settings['tlu'][$args[3]]; $uel = $za_vi_settings['telu'][$args[2]]; if(!empty($za_vi_settings['tlm'])) $message = $za_vi_settings['tlm']; } if(isset($denied) && (isset($no_forums) || (isset($rl) && in_array($za_vi_current_user_role, $rl)) || (isset($uel) && !in_array($args[1], $uel)) || (isset($ul) && in_array($args[1], $ul)))) { if($message != '') echo $message; $allcaps[$denied] = 0; } return $allcaps; } function za_vi_template_hook($args) { add_filter('user_has_cap', 'za_vi_user_has_caps', 10, 3); } function za_vi_filter_tags(&$tags) { global $bbdb, $za_vi_hidden_forums_list, $za_vi_hidden_topics_list; $min = min($tags) - 1; $query = "SELECT name,count FROM $bbdb->terms AS t INNER JOIN $bbdb->term_taxonomy AS tt ON t.term_id = tt.term_id INNER JOIN $bbdb->term_relationships AS tr ON tt.term_taxonomy_id = tr.term_taxonomy_id INNER JOIN $bbdb->topics as tp ON object_id=topic_id WHERE tt.taxonomy='bb_topic_tag' AND tt.count >= $min AND ("; $have_t = $za_vi_hidden_topics_list != ''; if($za_vi_hidden_forums_list != '') { $query .= "forum_id IN($za_vi_hidden_forums_list)"; if($have_t) $query .= ' OR '; } if($have_t) $query .= " topic_id IN($za_vi_hidden_topics_list)"; $query .= ')'; $results = $bbdb->get_results($query); if(empty($results) || !is_array($results)) return; foreach($results as $result) { if(isset($tags[$result->name])) { $tags[$result->name] -= $result->count; if($tags[$result->name] < 1) unset($tags[$result->name]); } } unset($results); } function za_vi_configuration_page() { global $za_vi_settings, $wp_roles; $roles = $wp_roles->get_names(); ?>
get_names(); $changed = FALSE; if('post' == strtolower($_SERVER['REQUEST_METHOD'])) { bb_check_admin_referer('options-za-vi-update'); $goback = remove_query_arg(array('za-visibility-updated', 'za-zero-forums'), wp_get_referer()); if($_POST['action'] == 'update-za-vi-settings') { if(isset($_POST['za_vi_forum_prefix'])) { $value = stripslashes_deep(trim($_POST['za_vi_forum_prefix'])); $za_vi_settings['fp'] = $value; } if(isset($_POST['za_vi_topic_prefix'])) { $value = stripslashes_deep(trim($_POST['za_vi_topic_prefix'])); $za_vi_settings['tp'] = $value; } if(isset($_POST['za_vi_forum_message'])) { $value = stripslashes_deep(trim($_POST['za_vi_forum_message'])); $za_vi_settings['flm'] = $value; } if(isset($_POST['za_vi_topic_message'])) { $value = stripslashes_deep(trim($_POST['za_vi_topic_message'])); $za_vi_settings['tlm'] = $value; } if(isset($_POST['za_vi_tag_message'])) { $value = stripslashes_deep(trim($_POST['za_vi_tag_message'])); $za_vi_settings['tlm'] = $value; } $new_super_roles = array(); foreach($roles as $i => $v) { if(isset($_POST["za_vi_super_role_$i"]) && $_POST["za_vi_super_role_$i"] == 'on') $new_super_roles[] = $i; } $za_vi_settings['sr'] = $new_super_roles; $za_vi_settings['su'] = za_vi_explode_user_list($_POST['za_vi_super_users']); bb_update_option('za_visibility', $za_vi_settings); $goback = add_query_arg('za-visibility-updated', 'true', $goback); bb_safe_redirect($goback); exit; } else { $is_forum = $_POST['action'] == 'update-za-vi-forum-settings'; if(isset($_POST['entity_id'])) $id = absint($_POST['entity_id']); if(!isset($id) || !is_numeric($id)) { wp_redirect(bb_get_uri(null, null, BB_URI_CONTEXT_HEADER)); exit; } if($is_forum) { $forum = get_forum($id); if(!$forum) bb_die(__('There is a problem with that forum, pardner.', ZA_VI_ID)); } else { $topic = get_topic($id); if(!$topic) bb_die(__('There is a problem with that topic, pardner.', ZA_VI_ID)); } $new_hide_roles = array(); $new_lock_roles = array(); foreach($roles as $i => $v) { if($_POST["za_vi_hide_$i"] == 'on') $new_hide_roles[] = $i; if($_POST["za_vi_lock_$i"] == 'on') $new_lock_roles[] = $i; } // Save new hide roles if(!empty($new_hide_roles)) { $za_vi_settings[$is_forum ? 'fhr' : 'thr'][$id] = $new_hide_roles; } else unset($za_vi_settings[$is_forum ? 'fhr' : 'thr'][$id]); // Save new hide users $list1 = za_vi_explode_user_list($_POST['za_vi_hidden_users']); if(!empty($list1)) $za_vi_settings[$is_forum ? 'fhu' : 'thu'][$id] = $list1; else unset($za_vi_settings[$is_forum ? 'fhu' : 'thu'][$id]); // Save new hide exception users $list2 = za_vi_explode_user_list($_POST['za_vi_ex_hidden_users']); if(!empty($list2)) $za_vi_settings[$is_forum ? 'fehu' : 'tehu'][$id] = $list2; else unset($za_vi_settings[$is_forum ? 'fehu' : 'tehu'][$id]); if($is_forum) { za_vi_reset_subforums($id); //$subforums = bb_get_forums($id); /*if($subforums !== FALSE) { foreach($subforums as $f) { if(isset($za_vi_settings['fhr'][$id])) $za_vi_settings['fhr'][$f->forum_id] = $za_vi_settings['fhr'][$id]; else unset($za_vi_settings['fhr'][$f->forum_id]); if(isset($za_vi_settings['fhu'][$id])) $za_vi_settings['fhu'][$f->forum_id] = $za_vi_settings['fhu'][$id]; else unset($za_vi_settings['fhu'][$f->forum_id]); if(isset($za_vi_settings['fehu'][$id])) $za_vi_settings['fehu'][$f->forum_id] = $za_vi_settings['fehu'][$id]; else unset($za_vi_settings['fehu'][$f->forum_id]); } }*/ } // Save new lock roles if(!empty($new_lock_roles)) { $za_vi_settings[$is_forum ? 'flr' : 'tlr'][$id] = $new_lock_roles; } else unset($za_vi_settings[$is_forum ? 'flr' : 'tlr'][$id]); // Save new lock users $list = za_vi_explode_user_list($_POST['za_vi_locked_users']); if(!empty($list)) $za_vi_settings[$is_forum ? 'flu' : 'tlu'][$id] = $list; else unset($za_vi_settings[$is_forum ? 'flu' : 'tlu'][$id]); // Save new lock exception users $list = za_vi_explode_user_list($_POST['za_vi_ex_locked_users']); if(!empty($list)) $za_vi_settings[$is_forum ? 'felu' : 'telu'][$id] = $list; else unset($za_vi_settings[$is_forum ? 'felu' : 'telu'][$id]); if($is_forum) { if(!za_vi_forum_has_visibility($id)) { za_vi_reset_forum($id); $goback = add_query_arg('za-forum-reset', 'true', $goback); } else { // zero forums aren't allowed if(get_total_forums() == 1 && (!empty($za_vi_settings['fhu'][$id]) || !empty($za_vi_settings['fhr'][$id]))) { unset($za_vi_settings['fhu'][$id]); unset($za_vi_settings['fhr'][$id]); $goback = add_query_arg('za-zero-forums', 'true', $goback); } else $goback = add_query_arg('za-visibility-updated', 'true', $goback); } } else { if(!za_vi_topic_has_visibility($id)) { za_vi_reset_topic($id); $goback = add_query_arg('za-topic-reset', 'true', $goback); } else $goback = add_query_arg('za-visibility-updated', 'true', $goback); } bb_update_option('za_visibility', $za_vi_settings); bb_safe_redirect($goback); exit; } } if(!empty($_GET['za-visibility-updated'])) bb_admin_notice('' . __('Settings saved.', ZA_VI_ID) . ''); elseif(!empty($_GET['za-zero-forums'])) bb_admin_notice(__('You have only one forum and you can\'t hide it. bbPress assumes that there is at least one forum and it spawns an error when there are no forums to display. In order to avoid this problem the hide rules that you have specified have not been registered.', ZA_VI_ID) . '', 'error'); elseif(!empty($_GET['za-forum-reset'])) bb_admin_notice('' . __('Forum hide/lock status erased.', ZA_VI_ID) . ''); elseif(!empty($_GET['za-topic-reset'])) bb_admin_notice('' . __('Topic hide/lock status erased.', ZA_VI_ID) . ''); elseif(isset($_GET['id']) || isset($_GET['fid'])) { bb_check_admin_referer('za-vi-update'); $goback = remove_query_arg(array('za-visibility-updated', 'za-forum-reset', 'za-topic-reset', 'za-zero-forums', 'id', 'fid', 'action'), wp_get_referer()); global $bb_current_user; if(isset($_GET['id'])) $id = absint($_GET['id']); else $id = absint($_GET['fid']); if(!isset($id) || !is_numeric($id) || !isset($bb_current_user) || !$bb_current_user->has_cap('administrate')) { wp_redirect(bb_get_uri(null, null, BB_URI_CONTEXT_HEADER)); exit; } //bb_check_admin_referer('manage-topic_' . $id); $is_reset = (bool)(isset($_GET['action']) && strtolower($_GET['action']) == 'reset'); if(isset($_GET['id'])) { $topic = get_topic($id); if(!$topic) bb_die(__('There is a problem with that topic, pardner.', ZA_VI_ID)); if($is_reset) { za_vi_reset_topic($id); bb_update_option('za_visibility', $za_vi_settings); $goback = add_query_arg('za-topic-reset', 'true', $goback); bb_safe_redirect($goback); exit; } } else { $forum = get_forum($id); if(!$forum) bb_die(__('There is a problem with that forum, pardner.', ZA_VI_ID)); if($is_reset) { za_vi_reset_forum($id); bb_update_option('za_visibility', $za_vi_settings); $goback = add_query_arg('za-forum-reset', 'true', $goback); bb_safe_redirect($goback); exit; } } } global $bb_admin_body_class; $bb_admin_body_class = ' bb-admin-settings'; } ?>