Skip to:
Content

bbPress.org

Changeset 5837


Ignore:
Timestamp:
07/15/2015 05:29:22 PM (10 years ago)
Author:
johnjamesjacoby
Message:

Terms: Update functions for getting terms & term names to be more flexible & reusable by other functions. See #459.

Location:
trunk/src/includes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/includes/forums/functions.php

    r5829 r5837  
    129129    $forum_parent_id = $forum_author = 0;
    130130    $forum_title = $forum_content = '';
     131    $terms = array( bbp_get_forum_mod_tax_id() => array() );
    131132
    132133    /** Forum Author **********************************************************/
     
    237238    if ( ! bbp_check_for_moderation( $anonymous_data, $forum_author, $forum_title, $forum_content ) ) {
    238239        $post_status = bbp_get_pending_status_id();
     240    }
     241
     242    /** Forum Mods ************************************************************/
     243
     244    if ( bbp_allow_forum_mods() && ! empty( $_POST['bbp_forum_mods'] ) ) {
     245
     246        // Escape tag input
     247        $terms = sanitize_text_field( $_POST['bbp_forum_mods'] );
     248
     249        // Explode by comma
     250        if ( strstr( $terms, ',' ) ) {
     251            $terms = explode( ',', $terms );
     252        }
     253
     254        // Add forum_mod ID as main key
     255        $terms = array( bbp_get_forum_mod_tax_id() => $terms );
    239256    }
    240257
     
    259276        'post_status'    => $post_status,
    260277        'post_type'      => bbp_get_forum_post_type(),
     278        'tax_input'      => $terms,
    261279        'comment_status' => 'closed'
    262280    ) );
     
    495513    }
    496514
     515    /** Forum Mods ************************************************************/
     516
     517    // Either replace terms
     518    if ( bbp_allow_forum_mods() && current_user_can( 'assign_forum_mods' ) && ! empty( $_POST['bbp_forum_mods'] ) ) {
     519
     520        // Escape tag input
     521        $terms = sanitize_text_field( $_POST['bbp_forum_mods'] );
     522
     523        // Explode by comma
     524        if ( strstr( $terms, ',' ) ) {
     525            $terms = explode( ',', $terms );
     526        }
     527
     528        // Add forum mod ID as main key
     529        $terms = array( bbp_get_forum_mod_tax_id() => $terms );
     530
     531    // ...or remove them.
     532    } elseif ( isset( $_POST['bbp_forum_mods'] ) ) {
     533        $terms = array( bbp_get_forum_mod_tax_id() => array() );
     534
     535    // Existing terms
     536    } else {
     537        $terms = array( bbp_get_forum_mod_tax_id() => explode( ',', bbp_get_forum_mod_names( $forum_id, ',' ) ) );
     538    }
     539
    497540    /** Additional Actions (Before Save) **************************************/
    498541
     
    16611704}
    16621705
     1706/** Forum Mods ****************************************************************/
     1707
     1708/**
     1709 * Get forum mods for a specific forum ID
     1710 *
     1711 * @since bbPress (r5836)
     1712 *
     1713 * @param int $forum_id
     1714 *
     1715 * @return string
     1716 */
     1717function bbp_get_forum_mods( $forum_id = 0 ) {
     1718    $forum_id   = bbp_get_forum_id( $forum_id );
     1719    $terms      = (array) get_the_terms( $forum_id, bbp_get_forum_mod_tax_id() );
     1720    $forum_mods = array_filter( $terms );
     1721
     1722    return apply_filters( 'bbp_get_forum_mods', $forum_mods, $forum_id );
     1723}
     1724
     1725/**
     1726 * Get forum mods for a specific forum ID
     1727 *
     1728 * @since bbPress (r4165)
     1729 *
     1730 * @param int    $forum_id
     1731 * @param string $sep
     1732 *
     1733 * @return string
     1734 */
     1735function bbp_get_forum_mod_names( $forum_id = 0, $sep = ', ' ) {
     1736    $forum_mods = bbp_get_topic_tags( $forum_id );
     1737    $pluck      = wp_list_pluck( $forum_mods, 'name' );
     1738    $terms      = ! empty( $pluck ) ? implode( $sep, $pluck ) : '';
     1739
     1740    return apply_filters( 'bbp_get_forum_mod_names', $terms, $forum_id, $sep );
     1741}
     1742
    16631743/** Helpers *******************************************************************/
    16641744
  • trunk/src/includes/topics/functions.php

    r5829 r5837  
    36823682 * Get topic tags for a specific topic ID
    36833683 *
     3684 * @since bbPress (r5836)
     3685 *
     3686 * @param int $topic_id
     3687 *
     3688 * @return string
     3689 */
     3690function bbp_get_topic_tags( $topic_id = 0 ) {
     3691    $topic_id   = bbp_get_topic_id( $topic_id );
     3692    $terms      = (array) get_the_terms( $topic_id, bbp_get_topic_tag_tax_id() );
     3693    $topic_tags = array_filter( $terms );
     3694
     3695    return apply_filters( 'bbp_get_topic_tags', $topic_tags, $topic_id );
     3696}
     3697
     3698/**
     3699 * Get topic tags for a specific topic ID
     3700 *
    36843701 * @since bbPress (r4165)
    36853702 *
    3686  * @param int $topic_id
     3703 * @param int    $topic_id
    36873704 * @param string $sep
     3705 *
    36883706 * @return string
    36893707 */
    36903708function bbp_get_topic_tag_names( $topic_id = 0, $sep = ', ' ) {
    3691     $topic_id   = bbp_get_topic_id( $topic_id );
    3692     $topic_tags = array_filter( (array) get_the_terms( $topic_id, bbp_get_topic_tag_tax_id() ) );
    3693     $terms      = array();
    3694     foreach ( $topic_tags as $term ) {
    3695         $terms[] = $term->name;
    3696     }
    3697     $terms = ! empty( $terms ) ? implode( $sep, $terms ) : '';
    3698 
    3699     return apply_filters( 'bbp_get_topic_tags', $terms, $topic_id );
     3709    $topic_tags = bbp_get_topic_tags( $topic_id );
     3710    $pluck      = wp_list_pluck( $topic_tags, 'name' );
     3711    $terms      = ! empty( $pluck ) ? implode( $sep, $pluck ) : '';
     3712
     3713    return apply_filters( 'bbp_get_topic_tag_names', $terms, $topic_id, $sep );
    37003714}
    37013715
Note: See TracChangeset for help on using the changeset viewer.