PluginProbe ʕ •ᴥ•ʔ
The Post Grid – Shortcode, Gutenberg Blocks and Elementor Addon for Post Grid / 4.2.0
The Post Grid – Shortcode, Gutenberg Blocks and Elementor Addon for Post Grid v4.2.0
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 / elementor / widgets / grid-hover-layout-archive.php
the-post-grid / app / Widgets / elementor / widgets Last commit date
default.php 3 years ago grid-hover-layout-archive.php 3 years ago grid-hover-layout.php 3 years ago grid-layout-archive.php 3 years ago grid-layout.php 3 years ago list-layout-archive.php 3 years ago list-layout.php 3 years ago related-post.php 3 years ago slider-layout-archive.php 3 years ago slider-layout.php 3 years ago
grid-hover-layout-archive.php
277 lines
1 <?php
2 /**
3 * Grid Hover Layout Archive Class
4 *
5 * @package RT_TPG
6 */
7
8 use RT\ThePostGrid\Helpers\Fns;
9
10 // Do not allow directly accessing this file.
11 if ( ! defined( 'ABSPATH' ) ) {
12 exit( 'This script cannot be accessed directly.' );
13 }
14
15 /**
16 * Grid Hover Layout Archive Class
17 */
18 class TPGGridHoverLayoutArchive extends Custom_Widget_Base {
19
20 /**
21 * GridLayout constructor.
22 *
23 * @param array $data
24 * @param null $args
25 *
26 * @throws \Exception
27 */
28
29 public function __construct( $data = [], $args = null ) {
30 parent::__construct( $data, $args );
31 $this->prefix = 'grid_hover';
32 $this->tpg_name = esc_html__( 'TPG - Grid Hover Layout', 'the-post-grid' );
33 $this->tpg_base = 'tpg-grid-hover-layout-archive';
34 $this->tpg_icon = 'eicon-image-rollover tpg-grid-icon'; // .tpg-grid-icon class for just style
35 $this->tpg_category = $this->tpg_archive_category;
36 }
37
38 public function get_script_depends() {
39 $scripts = [];
40 array_push( $scripts, 'imagesloaded' );
41 array_push( $scripts, 'rt-tpg' );
42 array_push( $scripts, 'rt-tpg-el-pro' );
43
44 return $scripts;
45 }
46
47 public function get_style_depends() {
48 $settings = get_option( rtTPG()->options['settings'] );
49 $style = [];
50
51 if ( isset( $settings['tpg_load_script'] ) ) {
52 array_push( $style, 'rt-fontawsome' );
53 array_push( $style, 'rt-tpg-elementor' );
54 }
55
56 return $style;
57 }
58
59 protected function register_controls() {
60 /**
61 * Content Tab
62 * ===========
63 */
64
65 // Layout.
66 rtTPGElementorHelper::grid_layouts( $this, 'archive' );
67
68 // Query.
69 rtTPGElementorHelper::query_builder( $this, 'archive' );
70
71 // Filter Settings.
72 // rtTPGElementorHelper::filter_settings( $this );
73
74 // Pagination Settings.
75 rtTPGElementorHelper::pagination_settings( $this, 'archive' );
76
77 // Links.
78 rtTPGElementorHelper::links( $this );
79
80 /**
81 * Settings Tab
82 * =============
83 */
84
85 // Field Selection.
86 rtTPGElementorHelper::field_selection( $this );
87
88 // Section Title Settings.
89 rtTPGElementorHelper::section_title_settings( $this, 'archive' );
90
91 // Title Settings.
92 rtTPGElementorHelper::post_title_settings( $this );
93
94 // Thumbnail Settings.
95 rtTPGElementorHelper::post_thumbnail_settings( $this );
96
97 // Excerpt Settings.
98 rtTPGElementorHelper::post_excerpt_settings( $this );
99
100 // Meta Settings.
101 rtTPGElementorHelper::post_meta_settings( $this );
102
103 // Advanced Custom Field ACF Settings.
104 rtTPGElementorHelper::tpg_acf_settings( $this );
105
106 // Readmore Settings.
107 rtTPGElementorHelper::post_readmore_settings( $this );
108
109 /**
110 * Style Tab
111 * ==========
112 */
113
114 // Section Title Style.
115 rtTPGElementorHelper::sectionTitle( $this, 'archive' );
116
117 // Title Style.
118 rtTPGElementorHelper::titleStyle( $this );
119
120 // Thumbnail Style.
121 rtTPGElementorHelper::thumbnailStyle( $this );
122
123 // Content Style.
124 rtTPGElementorHelper::contentStyle( $this );
125
126 // Meta Info Style.
127 rtTPGElementorHelper::metaInfoStyle( $this );
128
129 // Box Style.
130 rtTPGElementorHelper::socialShareStyle( $this );
131
132 // ACF Style.
133 rtTPGElementorHelper::tpg_acf_style( $this );
134
135 // Read More Style.
136 rtTPGElementorHelper::readmoreStyle( $this );
137
138 // Link Style.
139 rtTPGElementorHelper::linkStyle( $this );
140
141 // Pagination - Loadmore Style.
142 rtTPGElementorHelper::paginationStyle( $this );
143
144 // Box Style.
145 rtTPGElementorHelper::articlBoxSettings( $this );
146
147 // Promotions Style.
148 rtTPGElementorHelper::promotions( $this );
149 }
150
151 protected function render() {
152 $data = $this->get_settings();
153 $_prefix = $this->prefix;
154 $data['post_type'] = 'post';
155
156 if ( ! rtTPG()->hasPro() && ! in_array( $data[ $_prefix . '_layout' ], [ 'grid_hover-layout1', 'grid_hover-layout2', 'grid_hover-layout3' ] ) ) {
157 $data[ $_prefix . '_layout' ] = 'grid_hover-layout1';
158 }
159
160 if ( rtTPG()->hasPro() && ( 'popup' == $data['post_link_type'] || 'multi_popup' == $data['post_link_type'] ) ) {
161 wp_enqueue_style( 'rt-magnific-popup' );
162 wp_enqueue_script( 'rt-scrollbar' );
163 wp_enqueue_script( 'rt-magnific-popup' );
164 add_action( 'wp_footer', [ $this, 'get_modal_markup' ] );
165 }
166
167 if ( 'show' == $data['show_pagination'] && 'pagination_ajax' == $data['pagination_type'] ) {
168 wp_enqueue_script( 'rt-pagination' );
169 }
170
171 // Query.
172 $query_args = rtTPGElementorQuery::post_query_builder( $data, $_prefix );
173 $query = new WP_Query( $query_args );
174 $rand = wp_rand();
175 $layoutID = 'rt-tpg-container-' . $rand;
176 $posts_per_page = $data['post_limit'];
177
178 // TODO: Get Post Data for render post.
179 $post_data = $this->get_render_data_set( $data, $query->max_num_pages, $posts_per_page );
180
181 // Post type render.
182 $post_types = Fns::get_post_types();
183
184 foreach ( $post_types as $post_type => $label ) {
185 $_taxonomies = get_object_taxonomies( $post_type, 'object' );
186
187 if ( empty( $_taxonomies ) ) {
188 continue;
189 }
190
191 $post_data[ $data['post_type'] . '_taxonomy' ] = isset( $data[ $data['post_type'] . '_taxonomy' ] ) ? $data[ $data['post_type'] . '_taxonomy' ] : '';
192 $post_data[ $data['post_type'] . '_tags' ] = isset( $data[ $data['post_type'] . '_tags' ] ) ? $data[ $data['post_type'] . '_tags' ] : '';
193 }
194 $template_path = $this->tpg_template_path( $post_data );
195 $_layout = $data[ $_prefix . '_layout' ];
196 ?>
197
198 <div class="rt-container-fluid rt-tpg-container tpg-el-main-wrapper <?php echo esc_attr( $_layout . '-main' ); ?>"
199 id="<?php echo esc_attr( $layoutID ); ?>"
200 data-layout="<?php echo esc_attr( $data[ $_prefix . '_layout' ] ); ?>"
201 data-sc-id="elementor"
202 data-el-settings='<?php Fns::print_html( htmlspecialchars( wp_json_encode( $post_data ) ), true ); ?>'
203 data-el-query='<?php Fns::print_html( htmlspecialchars( wp_json_encode( $query_args ) ), true ); ?>'
204 data-el-path='<?php echo esc_attr( $template_path ); ?>'
205 >
206 <?php
207 $settings = get_option( rtTPG()->options['settings'] );
208 if ( isset( $settings['tpg_load_script'] ) && isset( $settings['tpg_enable_preloader'] ) ) {
209 ?>
210 <div id="bottom-script-loader" class="bottom-script-loader">
211 <div class="rt-ball-clip-rotate">
212 <div></div>
213 </div>
214 </div>
215 <?php
216 }
217
218 $wrapper_class = [];
219 if ( in_array(
220 $_layout,
221 [
222 'grid_hover-layout6',
223 'grid_hover-layout7',
224 'grid_hover-layout8',
225 'grid_hover-layout9',
226 'grid_hover-layout10',
227 'grid_hover-layout11',
228 'grid_hover-layout5-2',
229 'grid_hover-layout6-2',
230 'grid_hover-layout7-2',
231 'grid_hover-layout9-2',
232 ]
233 )
234 ) {
235 $wrapper_class[] = 'grid_hover-layout5';
236 }
237 $wrapper_class[] = str_replace( '-2', null, $_layout );
238 $wrapper_class[] = 'tpg-even grid-behaviour';
239 $wrapper_class[] = $_prefix . '_layout_wrapper';
240
241 // section title settings.
242 echo "<div class='tpg-header-wrapper'>";
243 $this->get_section_title( $data );
244 echo '</div>';
245 ?>
246
247 <div data-title="Loading ..." class="rt-row rt-content-loader <?php echo esc_attr( implode( ' ', $wrapper_class ) ); ?>">
248 <?php
249 if ( $query->have_posts() ) {
250 $pCount = 1;
251
252 while ( $query->have_posts() ) {
253 $query->the_post();
254 set_query_var( 'tpg_post_count', $pCount );
255 set_query_var( 'tpg_total_posts', $query->post_count );
256 $this->tpg_template( $post_data );
257 $pCount ++;
258 }
259 } else {
260 if ( $data['no_posts_found_text_archive'] ) {
261 printf( "<div class='no_posts_found_text'>%s</div>", esc_html( $data['no_posts_found_text_archive'] ) );
262 } else {
263 printf( "<div class='no_posts_found_text'>%s</div>", esc_html__( 'No post found', 'the-post-grid' ) );
264 }
265 }
266 wp_reset_postdata();
267 ?>
268 </div>
269
270 <?php Fns::print_html( $this->get_pagination_markup( $query, $data ) ); ?>
271 </div>
272 <?php
273 do_action( 'tpg_elementor_script' );
274 }
275
276 }
277