PluginProbe
wpForo Forum / 3.1.5
wpForo Forum v3.1.5
3.1.5 3.1.4 3.1.2 3.1.1 3.1.0 3.0.9 3.0.8 3.0.7 trunk 1.0.0 1.0.1 1.0.2 1.1.0 1.1.1 1.1.2 1.2.0 1.3.0 1.3.1 1.4.0 1.4.1 1.4.10 1.4.11 1.4.12 1.4.13 1.4.2 All 137 releases
wpforo / blocks / forums / render.php

render.php in wpForo Forum 3.1.5, at blocks/forums/render.php

77 lines 2.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if( ! defined( 'ABSPATH' ) ) exit;
3
4 /**
5 * @var array $attributes The block attributes.
6 * @var string $content The block default content.
7 * @var WP_Block $block The block instance.
8 */
9
10 $instance = wp_parse_args( $attributes, [
11 'boardid' => 0,
12 'title' => __( 'Forums', 'wpforo' ),
13 'dropdown' => false,
14 ] );
15
16 // Logic from wpforo\widgets\Forums::get_widget
17 if( ! function_exists( 'wpforo_block_forums_get_widget' ) ) {
18 function wpforo_block_forums_get_widget( $instance ) {
19 ob_start();
20
21 if( wpfval( $instance, 'dropdown' ) ) {
22 $forum_urls = [];
23 $forums = array_filter( WPF()->forum->get_forums(), function( $forum ) {
24 return WPF()->perm->forum_can( 'vf', $forum['forumid'] );
25 } );
26 if( ! empty( $forums ) ) {
27 foreach( $forums as $forum ) {
28 $forum_urls[ 'forum_' . $forum['forumid'] ] = wpforo_home_url( $forum['slug'] );
29 }
30 }
31 if( ! empty( $forum_urls ) ) {
32 echo '<select onchange="window.location.href = wpf_forum_urls[\'forum_\' + this.value]">';
33 WPF()->forum->tree( 'select_box', true, WPF()->current_object['forumid'] );
34 echo '</select>';
35 ?>
36 <script>
37 var wpf_forum_json = '<?php echo json_encode( $forum_urls ) ?>';
38 var wpf_forum_urls = JSON.parse(wpf_forum_json);
39 </script>
40 <?php
41 }
42 } else {
43 WPF()->forum->tree( 'front_list', true, WPF()->current_object['forumid'], false );
44 }
45
46 return ob_get_clean();
47 }
48 }
49
50 wp_enqueue_script( 'wpforo-widgets-js' );
51
52 $data = [
53 'boardid' => $instance['boardid'],
54 'action' => 'wpforo_load_ajax_widget_Forums',
55 'instance' => $instance,
56 ];
57
58 if( WPF()->board->get_current( 'boardid' ) === $instance['boardid'] ) {
59 $html = wpforo_block_forums_get_widget( $data['instance'] );
60 $onload = false;
61 } else {
62 $html = '<div style="text-align: center; font-size: 20px;"><i class="fas fa-spinner fa-spin"></i></div>';
63 $onload = true;
64 $data['referer'] = home_url();
65 }
66
67 $json = json_encode( $data );
68 ?>
69 <div id="wpf-widget-forums" class="wpforo-block-forums wpforo-widget-wrap">
70 <?php if( $instance['title'] ) : ?>
71 <h3 class="widget-title"><?php echo apply_filters( 'widget_title', $instance['title'] ); ?></h3>
72 <?php endif; ?>
73 <div class="wpforo-widget-content wpforo-ajax-widget <?php echo( ! $onload ? 'wpforo-ajax-widget-onload-false' : '' ); ?>" data-json="<?php echo esc_attr( $json ); ?>">
74 <?php echo $html; ?>
75 </div>
76 </div>
77