XylotrechusZ
<?php
/**
* Integrate bbPress
*
* @since ????
*/
if( ! defined( 'ABSPATH' ) ) { exit; } // Exit if accessed directly
//check if the plugin is enabled, otherwise stop the script
if( ! class_exists( 'bbPress' ) )
{
return false;
}
//global $avia_config;
if( ! function_exists( 'avia_bbpress_deregister_default_assets' ) )
{
/**
* Deregister to register my own styles
*
* @param array $styles
* @return array
*/
function avia_bbpress_deregister_default_assets( $styles )
{
return array();
}
add_filter( 'bbp_default_styles', 'avia_bbpress_deregister_default_assets', 10, 1 );
}
if( ! function_exists( 'avia_bbpress_register_assets' ) )
{
function avia_bbpress_register_assets()
{
$vn = avia_get_theme_version();
$min_css = avia_minify_extension( 'css' );
wp_enqueue_style( 'avia-bbpress', AVIA_BASE_URL . "config-bbpress/bbpress-mod{$min_css}.css", [], $vn );
}
if( ! is_admin() )
{
add_action( 'bbp_enqueue_scripts', 'avia_bbpress_register_assets', 15 );
}
}
if( ! function_exists( 'avia_bbpress_add_topic_class' ) )
{
/**
* Add classnames to topic class for even nicer icon display
*
* @param array $classes
* @return array
*/
function avia_bbpress_add_topic_class( $classes )
{
$voices = bbp_get_topic_voice_count() > 1 ? 'multi' : 'single';
$classes[] = 'topic-voices-' . $voices;
return $classes;
}
add_filter( 'bbp_get_topic_class', 'avia_bbpress_add_topic_class' );
}
if( ! function_exists( 'avia_bbpress_filter_form_message' ) )
{
/**
* remove forum and single topic summaries at the top of the page
*
* @param string $retstr
* @param array $args
* @return boolean
*/
function avia_bbpress_filter_form_message( $retstr, $args )
{
//removes forum summary, voices count etc
return false;
}
add_filter( 'bbp_get_single_forum_description', 'avia_bbpress_filter_form_message',10,2 );
add_filter( 'bbp_get_single_topic_description', 'avia_bbpress_filter_form_message',10,2 );
}
if( ! function_exists( 'avia_bbpress_forum_colors' ) )
{
/**
* add some color modifications to the forum table items
*
* @param array $config
* @return array
*/
function avia_bbpress_forum_colors( array $config )
{
return $config;
}
add_filter( 'avia_style_filter', 'avia_bbpress_forum_colors', 10, 1 );
}
if( ! function_exists( 'avia_fetch_bb_trail' ) )
{
/**
* modify default breadcrumb to work better with bb forums
* fetch bb trail and set the bb breadcrum output to false
*
* @param string $trail
* @param array $breadcrumbs
* @param array $r
* @return boolean
*/
function avia_fetch_bb_trail( $trail, $breadcrumbs, $r )
{
global $avia_config;
$avia_config['bbpress_trail'] = $breadcrumbs;
return false;
}
add_filter( 'bbp_get_breadcrumb', 'avia_fetch_bb_trail', 10, 3 );
}
if( ! function_exists( 'avia_bbpress_breadcrumb' ) )
{
/**
* If we are viewing a forum page set the avia breadcrumb output to match the forum breadcrumb output
*
* @param array $trail
* @return array
*/
function avia_bbpress_breadcrumb( $trail )
{
global $avia_config;
if( ( isset( $avia_config['currently_viewing'] ) && $avia_config['currently_viewing'] == 'forum' ) || get_post_type() === "forum" || get_post_type() === "topic" )
{
$bc = bbp_get_breadcrumb();
if( isset( $avia_config['bbpress_trail'] ) )
{
$trail_zero = $trail[0];
$trail = $avia_config['bbpress_trail'] ;
$trail[0] = $trail_zero;
}
if( ( bbp_is_single_user_edit() || bbp_is_single_user() ) )
{
$user_info = get_userdata( bbp_get_displayed_user_id() );
$title = __( "Profile for User:", "avia_framework" ) . " " . $user_info->display_name;
array_pop( $trail );
$trail[] = $title;
}
}
return $trail;
}
add_filter( 'avia_breadcrumbs_trail', 'avia_bbpress_breadcrumb' );
}
register_sidebar( array(
'name' => 'Forum',
'before_widget' => '<div id="%1$s" class="widget clearfix %2$s">',
'after_widget' => '<span class="seperator extralight-border"></span></div>',
'before_title' => '<h3 class="widgettitle">',
'after_title' => '</h3>',
'id' => 'av_forum'
));
/*
add_filter( 'bbp_view_widget_title', 'avia_widget_title' );
add_filter( 'bbp_login_widget_title', 'avia_widget_title' );
add_filter( 'bbp_forum_widget_title', 'avia_widget_title' );
add_filter( 'bbp_topic_widget_title', 'avia_widget_title' );
add_filter( 'bbp_replies_widget_title', 'avia_widget_title' );
*/
if( ! function_exists( 'avia_remove_bbpress_post_type_options' ) )
{
/**
*
* @param array $post_type_option
* @param array $args
* @return array
*/
function avia_remove_bbpress_post_type_options( $post_type_option, $args )
{
if( ! empty( $post_type_option ) )
{
foreach( $post_type_option as $key => $post_type )
{
if( $post_type == 'forum' || $post_type == 'topic' || $post_type == 'reply' )
{
unset( $post_type_option[ $key ] );
}
}
}
return $post_type_option;
}
add_filter( 'avf_registered_post_type_array', 'avia_remove_bbpress_post_type_options', 10, 2 );
}
if( ! function_exists( 'avia_remove_bbpress_post_type_from_query' ) )
{
function avia_remove_bbpress_post_type_from_query( $query, $params )
{
if( ! empty( $query['post_type'] ) && is_array( $query['post_type'] ) )
{
foreach( $query['post_type'] as $key => $post_type )
{
if( $post_type == 'forum' || $post_type == 'topic' || $post_type == 'reply' )
{
unset( $query['post_type'][ $key ] );
}
}
}
return $query;
}
add_filter( 'avia_masonry_entries_query', 'avia_remove_bbpress_post_type_from_query', 10, 2 );
add_filter( 'avia_post_grid_query', 'avia_remove_bbpress_post_type_from_query', 10, 2 );
add_filter( 'avia_post_slide_query', 'avia_remove_bbpress_post_type_from_query', 10, 2 );
add_filter( 'avia_blog_post_query', 'avia_remove_bbpress_post_type_from_query', 10, 2 );
add_filter( 'avf_magazine_entries_query', 'avia_remove_bbpress_post_type_from_query', 10, 2 );
add_filter( 'avf_accordion_entries_query', 'avia_remove_bbpress_post_type_from_query', 10, 2 );
}
if( ! function_exists( 'avia_bbpress_avf_post_nav_settings' ) )
{
/**
* Remove bbPress pottpes from post nav links
*
* @since 4.5.6
* @param array $settings
* @return array
*/
function avia_bbpress_avf_post_nav_settings( array $settings )
{
if( in_array( $settings['type'], array( 'topic', 'reply' ) ) )
{
$settings['skip_output'] = true;
}
return $settings;
}
add_filter( 'avf_post_nav_settings', 'avia_bbpress_avf_post_nav_settings', 10, 1 );
}
if( ! function_exists( 'avia_bbpress_before_page_in_footer_compile' ) )
{
/**
* BBPress alters the content filter on its pages. We need to reset this to allow our shortcodes to run
*
* @since 4.5.6.1
* @param WP_Post $footer_page
* @param int $post_id
*/
function avia_bbpress_before_page_in_footer_compile( WP_Post $footer_page, $post_id )
{
$current = get_post( $post_id );
$forum_page = false;
if( bbp_is_single_user() || bbp_is_single_user_edit() || bbp_is_user_home() || bbp_is_user_home_edit() )
{
$forum_page = true;
}
else if( bbp_is_topics_created() || bbp_is_replies_created() || bbp_is_favorites() || bbp_is_subscriptions() )
{
$forum_page = true;
}
else if( bbp_is_forum_archive() )
{
$forum_page = true;
}
else
{
if( ! $current instanceof WP_Post )
{
return;
}
}
/**
* https://kriesi.at/support/topic/bbpress-enfold-custom-footer-issue/#post-1195677
*
* @since 4.7.4.1
*/
$classes = get_body_class();
if( in_array( 'bbpress', $classes ) )
{
$forum_page = true;
}
$bbp_post_types = array(
bbp_get_forum_post_type(),
bbp_get_topic_post_type(),
bbp_get_reply_post_type()
);
if( $forum_page || in_array( $current->post_type, $bbp_post_types ) )
{
bbp_restore_all_filters( 'the_content' );
}
}
add_action( 'ava_before_page_in_footer_compile', 'avia_bbpress_before_page_in_footer_compile', 10, 2 );
}