0, 'title' => __( 'Recent Topics', 'wpforo' ), 'forumids' => [], 'orderby' => 'created', 'order' => 'DESC', 'count' => 9, 'display_avatar' => true, 'forumids_filter' => false, 'current_forumid_filter' => false, 'goto_unread' => false, 'refresh_interval' => 0, ]; $allowed_orderby = [ 'created', 'modified', 'posts', 'views' ]; $allowed_order = [ 'DESC', 'ASC', 'RAND' ]; $instance = wp_parse_args( $attributes, $default_instance ); if( ! is_string( $instance['orderby'] ) || ! in_array( $instance['orderby'], $allowed_orderby, true ) ) { $instance['orderby'] = $default_instance['orderby']; } if( ! is_string( $instance['order'] ) || ! in_array( $instance['order'], $allowed_order, true ) ) { $instance['order'] = $default_instance['order']; } // wpForo Recent Topics widget logic wp_enqueue_script( 'wpforo-widgets-js' ); if( $instance['current_forumid_filter'] && $instance['boardid'] === WPF()->board->get_current( 'boardid' ) && $current_forumid = wpfval( WPF()->current_object, 'forumid' ) ) { $instance['forumids'] = (array) $current_forumid; } $data = [ 'boardid' => (int) $instance['boardid'], 'action' => 'wpforo_load_ajax_widget_RecentTopics', 'instance' => $instance, 'topic_args' => [ 'forumids' => ( $instance['forumids'] ?: [] ), 'orderby' => $instance['orderby'], 'order' => $instance['order'], 'row_count' => (int) $instance['count'], ], ]; $recentTopicsWidget = new \wpforo\widgets\RecentTopics(); if( WPF()->board->get_current( 'boardid' ) === (int) $instance['boardid'] ) { $html = $recentTopicsWidget->get_widget( $data['instance'], $data['topic_args'] ); $onload = false; } else { $html = '
'; $onload = true; $data['referer'] = home_url(); } $json = json_encode( $data ); ?>