PluginProbe ʕ •ᴥ•ʔ
The Post Grid – Shortcode, Gutenberg Blocks and Elementor Addon for Post Grid / trunk
The Post Grid – Shortcode, Gutenberg Blocks and Elementor Addon for Post Grid vtrunk
7.9.3 7.9.2 trunk 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.1.5 4.2.0 4.2.1 4.2.2 4.2.3 5.0.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 6.0.0 7.0.0 7.0.1 7.0.2 7.1.0 7.2.0 7.2.1 7.2.10 7.2.11 7.2.2 7.2.3 7.2.4 7.2.5 7.2.6 7.2.7 7.2.8 7.2.9 7.3.0 7.3.1 7.4.0 7.4.1 7.4.2 7.4.3 7.5.0 7.6.0 7.6.1 7.7.0 7.7.1 7.7.10 7.7.11 7.7.12 7.7.13 7.7.14 7.7.15 7.7.16 7.7.17 7.7.18 7.7.19 7.7.2 7.7.20 7.7.21 7.7.22 7.7.3 7.7.4 7.7.5 7.7.6 7.7.7 7.7.8 7.7.9 7.8.0 7.8.1 7.8.2 7.8.3 7.8.4 7.8.5 7.8.6 7.8.7 7.8.8 7.8.9 7.9.0 7.9.1
the-post-grid / app / Widgets / TPGWidget.php
the-post-grid / app / Widgets Last commit date
elementor 3 months ago ElementorWidget.php 2 years ago TPGWidget.php 2 years ago
TPGWidget.php
92 lines
1 <?php
2 /**
3 * TPG Widget Class
4 *
5 * @package RT_TPG
6 */
7
8 namespace RT\ThePostGrid\Widgets;
9
10 use RT\ThePostGrid\Helpers\Fns;
11 use WP_Widget;
12
13 // Do not allow directly accessing this file.
14 if ( ! defined( 'ABSPATH' ) ) {
15 exit( 'This script cannot be accessed directly.' );
16 }
17
18 /**
19 * TPG Widget Class
20 *
21 * @package RT_TPG
22 */
23 class TPGWidget extends WP_Widget {
24
25 public function __construct() {
26 $widget_ops = [
27 'classname' => 'widget_tpg_post_grid',
28 'description' => esc_html__( 'Display the post grid.', 'the-post-grid' ),
29 ];
30
31 parent::__construct( 'widget_tpg_post_grid', esc_html__( 'The Post Grid', 'the-post-grid' ), $widget_ops );
32 }
33
34 /**
35 * display the widgets on the screen.
36 */
37 public function widget( $args, $instance ) {
38 $id = ( ! empty( $instance['id'] ) ? absint( $instance['id'] ) : null );
39
40 echo $args['before_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
41
42 if ( ! empty( $instance['title'] ) ) {
43 echo $args['before_title'] . apply_filters( 'widget_title', ( isset( $instance['title'] ) ? $instance['title'] : 'The Post Grid' ) ) . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
44 }
45
46 if ( ! empty( $id ) ) {
47 echo do_shortcode( '[the-post-grid id="' . absint( $id ) . '" ]' );
48 }
49
50 echo $args['after_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
51 }
52
53 public function form( $instance ) {
54
55 $scList = Fns::getAllTPGShortCodeList();
56 $defaults = [
57 'title' => 'The Post Grid',
58 'id' => null,
59 ];
60 $instance = wp_parse_args( (array) $instance, $defaults ); ?>
61
62 <p><label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"> <?php esc_html_e( 'Title:', 'the-post-grid' ); ?></label>
63 <input type="text" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"
64 name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" value="<?php echo esc_attr( $instance['title'] ); ?>"
65 style="width:100%;"/></p>
66
67 <p><label for="<?php echo esc_attr( $this->get_field_id( 'id' ) ); ?>"><?php esc_html_e( 'Select post grid', 'the-post-grid' ); ?></label>
68 <select id="<?php echo esc_attr( $this->get_field_id( 'id' ) ); ?>"
69 name="<?php echo esc_attr( $this->get_field_name( 'id' ) ); ?>">
70 <option value="">Select one</option>
71 <?php
72 if ( ! empty( $scList ) ) {
73 foreach ( $scList as $scId => $sc ) {
74 $selected = ( $scId == $instance['id'] ? 'selected' : null );
75 echo '<option value="' . absint( $scId ) . '" ' . esc_attr( $selected ) . '>' . esc_html( $sc ) . '</option>';
76 }
77 }
78 ?>
79 </select></p>
80 <?php
81 }
82
83 public function update( $new_instance, $old_instance ) {
84 $instance = [];
85 $instance['title'] = ( ! empty( $new_instance['title'] ) ) ? wp_strip_all_tags( $new_instance['title'] ) : '';
86 $instance['id'] = ( ! empty( $new_instance['id'] ) ) ? absint( $new_instance['id'] ) : '';
87
88 return $instance;
89 }
90
91 }
92