PluginProbe
ElasticPress / 4.7.2
ElasticPress v4.7.2
5.3.5 5.3.4 3.6.5 3.6.6 4.0.0 4.0.1 4.1.0 4.2.0 4.2.1 4.2.2 4.3.0 4.3.1 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.6.0 4.6.1 4.7.0 4.7.1 4.7.2 5.0.0 5.0.1 5.0.2 All 108 releases
elasticpress / includes / partials / dashboard-page.php

dashboard-page.php in ElasticPress 4.7.2, at includes/partials/dashboard-page.php

107 lines 3.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Template for ElasticPress dashboard page
4 *
5 * @since 2.1
6 * @package elasticpress
7 */
8
9 use ElasticPress\Elasticsearch;
10 use ElasticPress\Features;
11 use ElasticPress\Utils;
12
13 if ( ! defined( 'ABSPATH' ) ) {
14 exit; // Exit if accessed directly.
15 }
16
17 $index_meta = Utils\get_option( 'ep_index_meta', [] );
18 ?>
19
20 <?php require_once __DIR__ . '/header.php'; ?>
21
22 <div class="error-overlay <?php if ( ! empty( $index_meta ) ) : ?>syncing<?php endif; ?> <?php if ( ! Elasticsearch::factory()->get_elasticsearch_version() ) : ?>cant-connect<?php endif; ?>"></div>
23 <div class="wrap">
24 <h2 class="ep-list-features"><?php esc_html_e( 'List of features', 'elasticpress' ); // We use this since WP inserts warnings after the first h2. This will be hidden. ?></h2>
25 <div class="ep-features metabox-holder">
26 <?php
27 $features = array_filter(
28 Features::factory()->registered_features,
29 function ( $feature ) {
30 return $feature->is_visible();
31 }
32 );
33 uasort(
34 $features,
35 function( $feature_a, $feature_b ) {
36 $order_feature_a = (int) $feature_a->order;
37 $order_feature_b = (int) $feature_b->order;
38
39 if ( $order_feature_a === $order_feature_b ) {
40 return 0;
41 }
42
43 return $order_feature_a < $order_feature_b ? -1 : 1;
44 }
45 );
46 ?>
47
48 <?php
49 $left = '';
50 $right = '';
51 $i = 0;
52 foreach ( $features as $feature ) :
53 $i++;
54 $requirements_status = $feature->requirements_status();
55 $active = $feature->is_active();
56
57 $feature_classes = 'feature-requirements-status-' . (int) $requirements_status->code;
58
59 if ( ! empty( $active ) ) {
60 $feature_classes .= ' feature-active';
61 }
62
63 if ( ! empty( $index_meta ) && ! empty( $index_meta['feature_sync'] ) && $feature->slug === $index_meta['feature_sync'] ) {
64 $feature_classes .= ' feature-syncing';
65 }
66
67 ob_start();
68 ?>
69 <div class="<?php if ( $feature->requires_install_reindex && defined( 'EP_DASHBOARD_SYNC' ) && ! EP_DASHBOARD_SYNC ) : ?>dash-sync-disabled<?php endif; ?> ep-feature ep-feature-<?php echo esc_attr( $feature->slug ); ?> <?php echo esc_attr( $feature_classes ); ?>">
70 <div class="postbox">
71 <h2 class="hndle">
72 <span><?php echo wp_kses_post( $feature->get_title() ); ?></span>
73 <button aria-expanded="false" type="button" class="settings-button"><?php esc_html_e( 'settings', 'elasticpress' ); ?></button>
74 </h2>
75
76 <div class="description inside">
77
78 <?php $feature->output_feature_box(); ?>
79
80 </div>
81
82 <div class="settings inside">
83 <?php $feature->output_settings_box(); ?>
84 </div>
85 </div>
86 </div>
87 <?php
88 if ( 'right' === $feature->group_order || 'left' === $feature->group_order ) {
89 ${$feature->group_order} .= ob_get_clean();
90 } else {
91 if ( 0 === $i % 2 ) {
92 $right .= ob_get_clean();
93 } else {
94 $left .= ob_get_clean();
95 }
96 }
97 ?>
98 <?php endforeach; ?>
99 <div class="left">
100 <?php echo wp_kses( $left, 'ep-html' ); ?>
101 </div>
102 <div class="right">
103 <?php echo wp_kses( $right, 'ep-html' ); ?>
104 </div>
105 </div>
106 </div>
107