bbp_get_form_topic_type_dropdown( $args = '' )
Returns topic type select box (normal/sticky/super sticky)
Description
Parameters
- $args
-
(Optional) This function supports these arguments: - select_id: Select id. Defaults to bbp_stick_topic - tab: Tabindex - topic_id: Topic id - selected: Override the selected option
Default value: ''
Source
File: bp-forums/topics/template.php
function bbp_get_form_topic_type_dropdown( $args = '' ) {
// Parse arguments against default values
$r = bbp_parse_args( $args, array(
'select_id' => 'bbp_stick_topic',
'tab' => bbp_get_tab_index(),
'topic_id' => 0,
'selected' => false
), 'topic_type_select' );
// No specific selected value passed
if ( empty( $r['selected'] ) ) {
// Post value is passed
if ( bbp_is_post_request() && isset( $_POST[ $r['select_id'] ] ) ) {
$r['selected'] = $_POST[ $r['select_id'] ];
// No Post value passed
} else {
// Edit topic
if ( bbp_is_single_topic() || bbp_is_topic_edit() ) {
// Get current topic id
$topic_id = bbp_get_topic_id( $r['topic_id'] );
// Topic is super sticky
if ( bbp_is_topic_super_sticky( $topic_id ) ) {
$r['selected'] = 'super';
// Topic is sticky or normal
} else {
$r['selected'] = bbp_is_topic_sticky( $topic_id, false ) ? 'stick' : 'unstick';
}
}
}
}
// Used variables
$tab = !empty( $r['tab'] ) ? ' tabindex="' . (int) $r['tab'] . '"' : '';
// Start an output buffer, we'll finish it after the select loop
ob_start(); ?>
<select name="<?php echo esc_attr( $r['select_id'] ); ?>" id="<?php echo esc_attr( $r['select_id'] ); ?>_select"<?php echo $tab; ?>>
<?php foreach ( bbp_get_topic_types() as $key => $label ) : ?>
<option value="<?php echo esc_attr( $key ); ?>"<?php selected( $key, $r['selected'] ); ?>><span><?php _e( 'Type: ', 'buddyboss' ) ?></span><?php echo esc_html( $label ); ?></option>
<?php endforeach; ?>
</select>
<?php
// Return the results
return apply_filters( 'bbp_get_form_topic_type_dropdown', ob_get_clean(), $r );
}
Changelog
| Version | Description |
|---|---|
| bbPress (r5059) | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.