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 
}
Example #4
0
 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>";
 }