'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 = '
'; $onload = true; $data['referer'] = home_url(); } $json = wp_json_encode( $data ); echo $args['before_widget'] . '
'; if ( $instance['title'] ) echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title']; echo '
' . $html . '
' . $args['after_widget']; } public function form( $instance ) { $instance = wpforo_parse_args( $instance, $this->default_instance ); $boardid = (int) $instance['boardid']; $title = (string) $instance['title']; $dropdown = (bool) $instance['dropdown']; WPF()->change_board( $boardid ); ?>

: type="radio" name="get_field_name( 'dropdown' ) ); ?>"> type="radio" name="get_field_name( 'dropdown' ) ); ?>">

default_instance ); $instance = []; $instance['boardid'] = (int) $new_instance['boardid']; $instance['title'] = strip_tags( (string) $new_instance['title'] ); $instance['dropdown'] = (bool) (int) $new_instance['dropdown']; return $instance; } }