function form($args = null) { $_post = 'post' == $this->type; $defaults = array('search' => true, 'forum' => true, 'tag' => false, 'open' => false, 'topic_author' => false, 'post_author' => false, 'topic_status' => false, 'post_status' => false, 'topic_title' => false, 'poster_ip' => false, 'method' => 'get', 'submit' => __('Search »'), 'action' => ''); $defaults['id'] = $_post ? 'post-search-form' : 'topic-search-form'; $args = wp_parse_args($args, $defaults); extract($args, EXTR_SKIP); $id = esc_attr($id); $method = 'get' == strtolower($method) ? 'get' : 'post'; $submit = esc_attr($submit); if (!($action = esc_url($action))) { $action = ''; } if ($this->query_vars) { $query_vars =& $this->query_vars; } else { $query_vars = $this->fill_query_vars($this->defaults); } extract($query_vars, EXTR_PREFIX_ALL, 'q'); $r = "<form action='{$action}' method='{$method}' id='{$id}' class='search-form'>\n"; $r .= "\t<fieldset>\n"; if ($search) { if ($_post) { $s_value = esc_attr($q_post_text); $s_name = 'post_text'; $s_id = 'post-text'; } else { $s_value = esc_attr($q_search); $s_name = $s_id = 'search'; } $r .= "\t<div><label for=\"{$s_id}\">" . __('Search term') . "</label>\n"; $r .= "\t\t<div><input name='{$s_name}' id='{$s_id}' type='text' class='text-input' value='{$s_value}' /></div>\n"; $r .= "\t</div>\n\n"; } if ($forum) { $r .= "\t<div><label for=\"forum-id\">" . __('Forum') . "</label>\n"; $r .= "\t\t<div>" . bb_get_forum_dropdown(array('selected' => $q_forum_id, 'none' => __('Any'))) . "</div>\n"; $r .= "\t</div>\n\n"; } if ($tag) { $q_tag = esc_attr($q_tag); $r .= "\t<div><label for=\"topic-tag\">" . __('Tag') . "</label>\n"; $r .= "\t\t<div><input name='tag' id='topic-tag' type='text' class='text-input' value='{$q_tag}' /></div>\n"; $r .= "\t</div>\n\n"; } if ($topic_author) { $q_topic_author = esc_attr($q_topic_author); $r .= "\t<div><label for=\"topic-author\">" . __('Topic author') . "</label>\n"; $r .= "\t\t<div><input name='topic_author' id='topic-author' type='text' class='text-input' value='{$q_topic_author}' /></div>\n"; $r .= "\t</div>\n\n"; } if ($post_author) { $q_post_author = esc_attr($q_post_author); $r .= "\t<div><label for=\"post-author\">" . __('Post author') . "</label>\n"; $r .= "\t\t<div><input name='post_author' id='post-author' type='text' class='text-input' value='{$q_post_author}' /></div>\n"; $r .= "\t</div>\n\n"; } $stati = apply_filters('bb_query_form_post_status', array('all' => _x('All', 'post status'), '0' => __('Normal'), '1' => __('Deleted')), $this->type); if ($topic_status) { $r .= "\t<div><label for=\"topic-status\">" . __('Topic status') . "</label>\n"; $r .= "\t\t<div><select name='topic_status' id='topic-status'>\n"; foreach ($stati as $status => $label) { $selected = (string) $status == (string) $q_topic_status ? " selected='selected'" : ''; $r .= "\t\t\t<option value='{$status}'{$selected}>{$label}</option>\n"; } $r .= "\t\t</select></div>\n"; $r .= "\t</div>\n\n"; } if ($post_status) { $r .= "\t<div><label for=\"post-status\">" . __('Post status') . "</label>\n"; $r .= "\t\t<div><select name='post_status' id='post-status'>\n"; foreach ($stati as $status => $label) { $selected = (string) $status == (string) $q_post_status ? " selected='selected'" : ''; $r .= "\t\t\t<option value='{$status}'{$selected}>{$label}</option>\n"; } $r .= "\t\t</select></div>\n"; $r .= "\t</div>\n\n"; } if ($poster_ip) { $r .= "\t<div><label for=\"poster-ip\">" . __('Poster IP address') . "</label>\n"; $r .= "\t\t<div><input name='poster_ip' id='poster-ip' type='text' class='text-input' value='{$q_poster_ip}' /></div>\n"; $r .= "\t</div>\n\n"; } if ($open) { $r .= "\t<div><label for=\"topic-open\">" . __('Open?') . "</label>\n"; $r .= "\t\t<div><select name='open' id='topic-open'>\n"; foreach (array('all' => _x('All', 'posting status'), '1' => _x('Open', 'posting status'), '0' => __('Closed')) as $status => $label) { $label = esc_html($label); $selected = (string) $status == (string) $q_open ? " selected='selected'" : ''; $r .= "\t\t\t<option value='{$status}'{$selected}>{$label}</option>\n"; } $r .= "\t\t</select></div>\n"; $r .= "\t</div>\n\n"; } if ($topic_title) { $q_topic_title = esc_attr($q_topic_title); $r .= "\t<div><label for=\"topic-title\">" . __('Title') . "</label>\n"; $r .= "\t\t<div><input name='topic_title' id='topic-title' type='text' class='text-input' value='{$q_topic_title}' /></div>\n"; $r .= "\t</div>\n\n"; } $r .= apply_filters('bb_query_form_inputs', '', $args, $query_vars); $r .= "\t<div class=\"submit\"><label for=\"{$id}-submit\">" . __('Search') . "</label>\n"; $r .= "\t\t<div><input type='submit' class='button submit-input' value='{$submit}' id='{$id}-submit' /></div>\n"; $r .= "\t</div>\n"; $r .= "\t</fieldset>\n\n"; do_action('bb_query_form', $args, $query_vars); $r .= "</form>\n\n"; echo $r; }
function bb_forum_dropdown($args = '') { if ($args && is_string($args) && false === strpos($args, '=')) { $args = array('callback' => $args); } if (1 < func_num_args()) { $args['callback_args'] = func_get_arg(1); } echo bb_get_forum_dropdown($args); }
function bb_forum_form($forum_id = 0) { $forum_id = (int) $forum_id; if ($forum_id && !($forum = bb_get_forum($forum_id))) { return; } $forum_name = ''; $forum_slug = ''; $forum_description = ''; $forum_position = ''; if ($forum_id) { $forum_name = get_forum_name($forum_id); $forum_slug = apply_filters('editable_slug', $forum->forum_slug); $forum_description = get_forum_description($forum_id); $forum_position = get_forum_position($forum_id); $legend = __('Edit Forum'); $submit = __('Save Changes'); $action = 'update'; } else { $legend = __('Add Forum'); $submit = __('Add Forum'); $action = 'add'; } $forum_options = array('forum_name' => array('title' => __('Name'), 'value' => $forum_name), 'forum_slug' => array('title' => __('Slug'), 'value' => $forum_slug), 'forum_desc' => array('title' => __('Description'), 'value' => $forum_description, 'class' => 'long'), 'forum_parent' => array('title' => __('Parent'), 'type' => 'select', 'options' => bb_get_forum_dropdown(array('cut_branch' => $forum_id, 'id' => 'forum_parent', 'none' => true, 'selected' => $forum_id ? get_forum_parent($forum_id) : 0, 'disable_categories' => 0, 'options_only' => true))), 'forum_order' => array('title' => __('Position'), 'value' => $forum_position, 'class' => 'short'), 'forum_is_category' => array('title' => __('Category'), 'type' => 'checkbox', 'options' => array(1 => array('label' => __('Make this forum a category'), 'value' => bb_get_forum_is_category($forum_id))), 'note' => __('Categories are forums where new topics cannot be created. Categories usually contain a group of sub-forums.'))); if (!$forum_id) { unset($forum_options['forum_slug']); unset($forum_options['forum_order']); } ?> <form class="settings" method="post" id="<?php echo $action; ?> -forum" action="<?php bb_uri('bb-admin/bb-forum.php', null, BB_URI_CONTEXT_FORM_ACTION + BB_URI_CONTEXT_BB_ADMIN); ?> " class="add:forum-list: forum-form"> <fieldset> <legend><?php echo $legend; ?> </legend> <?php foreach ($forum_options as $option => $args) { bb_option_form_element($option, $args); } ?> <fieldset class="submit"> <?php if ($forum_id) { ?> <input type="hidden" name="forum_id" value="<?php echo $forum_id; ?> " /> <?php } ?> <?php bb_nonce_field('order-forums', 'order-nonce'); ?> <?php bb_nonce_field($action . '-forum'); ?> <input type="hidden" name="action" value="<?php echo $action; ?> " /> <input class="submit" type="submit" name="submit" value="<?php echo $submit; ?> " /> </fieldset> </fieldset> </form> <?php }
function topic_move_dropdown($id = 0) { $topic = get_topic(get_topic_id($id)); if (!bb_current_user_can('move_topic', $topic->topic_id)) { return; } $dropdown = bb_get_forum_dropdown(array('callback' => 'bb_current_user_can', 'callback_args' => array('move_topic', $topic->topic_id), 'selected' => $topic->forum_id)); if (!$dropdown) { return; } echo '<form id="topic-move" method="post" action="' . bb_get_uri('bb-admin/topic-move.php', null, BB_URI_CONTEXT_FORM_ACTION + BB_URI_CONTEXT_BB_ADMIN) . '">' . "\n\t"; echo "<input type='hidden' name='topic_id' value='{$topic->topic_id}' />\n\t"; echo $dropdown; bb_nonce_field('move-topic_' . $topic->topic_id); echo "<input class='button-secondary' type='submit' name='Submit' value='" . __('Move') . "' />\n</form>"; }