'Forum tree.' ] ); $this->init_local_vars(); add_action( 'wp_ajax_wpforo_load_ajax_widget_Forums', [ $this, 'load_ajax_widget' ] ); add_action( 'wp_ajax_nopriv_wpforo_load_ajax_widget_Forums', [ $this, 'load_ajax_widget' ] ); } private function init_local_vars() { $this->default_instance = [ 'boardid' => 0, 'title' => __( 'Forums', 'wpforo' ), 'dropdown' => false, ]; } public function get_widget( $instance ) { ob_start(); if ( wpfval( $instance, 'dropdown' ) ) { $forum_urls = []; $forums = array_filter( WPF()->forum->get_forums(), function ( $forum ) { return WPF()->perm->forum_can( 'vf', $forum['forumid'] ); } ); if ( ! empty( $forums ) ) { foreach ( $forums as $forum ) { $forum_urls[ 'forum_' . $forum['forumid'] ] = wpforo_home_url( $forum['slug'] ); } } if ( ! empty( $forum_urls ) ) { echo ''; ?> forum->tree( 'front_list', true, WPF()->current_object['forumid'], false ); } return ob_get_clean(); } public function load_ajax_widget() { $_POST = wp_unslash( $_POST ); $instance = json_decode( (string) wpfval( $_POST, 'instance' ), true ); wp_send_json_success( [ 'html' => $this->get_widget( $instance ) ] ); } public function widget( $args, $instance ) { wp_enqueue_script( 'wpforo-widgets-js' ); $instance = wpforo_parse_args( $instance, $this->default_instance ); $data = [ 'boardid' => $instance['boardid'], 'action' => 'wpforo_load_ajax_widget_Forums', 'instance' => $instance, ]; if( WPF()->board->get_current( 'boardid' ) === $instance['boardid'] ){ $html = $this->get_widget( $data['instance'] ); $onload = false; }else{ $html = '
: type="radio" name="get_field_name( 'dropdown' ) ); ?>"> type="radio" name="get_field_name( 'dropdown' ) ); ?>">