PluginProbe ʕ •ᴥ•ʔ
The Post Grid – Shortcode, Gutenberg Blocks and Elementor Addon for Post Grid / 7.0.2
The Post Grid – Shortcode, Gutenberg Blocks and Elementor Addon for Post Grid v7.0.2
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
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
280 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, 'rttpg-block-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-flaticon' );
54 array_push( $style, 'rt-tpg-block' );
55 }
56
57 return $style;
58 }
59
60 protected function register_controls() {
61 /**
62 * Content Tab
63 * ===========
64 */
65
66 // Layout.
67 rtTPGElementorHelper::grid_layouts( $this, 'archive' );
68
69 // Query.
70 rtTPGElementorHelper::query_builder( $this, 'archive' );
71
72 // Filter Settings.
73 // rtTPGElementorHelper::filter_settings( $this );
74
75 // Pagination Settings.
76 rtTPGElementorHelper::pagination_settings( $this, 'archive' );
77
78 // Links.
79 rtTPGElementorHelper::links( $this );
80
81 /**
82 * Settings Tab
83 * =============
84 */
85
86 // Field Selection.
87 rtTPGElementorHelper::field_selection( $this );
88
89 // Section Title Settings.
90 rtTPGElementorHelper::section_title_settings( $this, 'archive' );
91
92 // Title Settings.
93 rtTPGElementorHelper::post_title_settings( $this );
94
95 // Thumbnail Settings.
96 rtTPGElementorHelper::post_thumbnail_settings( $this );
97
98 // Excerpt Settings.
99 rtTPGElementorHelper::post_excerpt_settings( $this );
100
101 // Meta Settings.
102 rtTPGElementorHelper::post_meta_settings( $this );
103
104 // Advanced Custom Field ACF Settings.
105 rtTPGElementorHelper::tpg_acf_settings( $this );
106
107 // Readmore Settings.
108 rtTPGElementorHelper::post_readmore_settings( $this );
109
110 /**
111 * Style Tab
112 * ==========
113 */
114
115 // Section Title Style.
116 rtTPGElementorHelper::sectionTitle( $this, 'archive' );
117
118 // Title Style.
119 rtTPGElementorHelper::titleStyle( $this );
120
121 // Thumbnail Style.
122 rtTPGElementorHelper::thumbnailStyle( $this );
123
124 // Content Style.
125 rtTPGElementorHelper::contentStyle( $this );
126
127 // Meta Info Style.
128 rtTPGElementorHelper::metaInfoStyle( $this );
129
130 // Box Style.
131 rtTPGElementorHelper::socialShareStyle( $this );
132
133 // ACF Style.
134 rtTPGElementorHelper::tpg_acf_style( $this );
135
136 // Read More Style.
137 rtTPGElementorHelper::readmoreStyle( $this );
138
139 // Link Style.
140 rtTPGElementorHelper::linkStyle( $this );
141
142 // Pagination - Loadmore Style.
143 rtTPGElementorHelper::paginationStyle( $this );
144
145 // Box Style.
146 rtTPGElementorHelper::articlBoxSettings( $this );
147
148 // Promotions Style.
149 rtTPGElementorHelper::promotions( $this );
150 }
151
152 protected function render() {
153 $data = $this->get_settings();
154 $_prefix = $this->prefix;
155 $data['post_type'] = 'post';
156
157 if ( ! rtTPG()->hasPro() && ! in_array( $data[ $_prefix . '_layout' ], [ 'grid_hover-layout1', 'grid_hover-layout2', 'grid_hover-layout3' ] ) ) {
158 $data[ $_prefix . '_layout' ] = 'grid_hover-layout1';
159 }
160
161 if ( rtTPG()->hasPro() && ( 'popup' == $data['post_link_type'] || 'multi_popup' == $data['post_link_type'] ) ) {
162 wp_enqueue_style( 'rt-magnific-popup' );
163 wp_enqueue_script( 'rt-scrollbar' );
164 wp_enqueue_script( 'rt-magnific-popup' );
165 add_action( 'wp_footer', [ Fns::class, 'get_modal_markup' ] );
166 }
167
168 if ( 'show' == $data['show_pagination'] && 'pagination_ajax' == $data['pagination_type'] ) {
169 wp_enqueue_script( 'rt-pagination' );
170 }
171
172 // Query.
173 $query_args = rtTPGElementorQuery::post_query_builder( $data, $_prefix );
174 $query = new WP_Query( $query_args );
175 $rand = wp_rand();
176 $layoutID = 'rt-tpg-container-' . $rand;
177 $posts_per_page = $data['post_limit'];
178
179 //TODO: Get Post Data for render post
180 $post_data = Fns::get_render_data_set( $data, $query->max_num_pages, $posts_per_page, $_prefix );
181
182 // Post type render.
183 $post_types = Fns::get_post_types();
184
185 foreach ( $post_types as $post_type => $label ) {
186 $_taxonomies = get_object_taxonomies( $post_type, 'object' );
187
188 if ( empty( $_taxonomies ) ) {
189 continue;
190 }
191
192 $post_data[ $data['post_type'] . '_taxonomy' ] = isset( $data[ $data['post_type'] . '_taxonomy' ] ) ? $data[ $data['post_type'] . '_taxonomy' ] : '';
193 $post_data[ $data['post_type'] . '_tags' ] = isset( $data[ $data['post_type'] . '_tags' ] ) ? $data[ $data['post_type'] . '_tags' ] : '';
194 }
195 $template_path = Fns::tpg_template_path( $post_data );
196 $_layout = $data[ $_prefix . '_layout' ];
197 ?>
198
199 <div class="rt-container-fluid rt-tpg-container tpg-el-main-wrapper <?php echo esc_attr( $_layout . '-main' ); ?>"
200 id="<?php echo esc_attr( $layoutID ); ?>"
201 data-layout="<?php echo esc_attr( $data[ $_prefix . '_layout' ] ); ?>"
202 data-sc-id="elementor"
203 data-el-settings='<?php Fns::print_html( htmlspecialchars( wp_json_encode( $post_data, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES ) ), true ); ?>'
204 data-el-query='<?php Fns::print_html( htmlspecialchars( wp_json_encode( $query_args ) ), true ); ?>'
205 data-el-path='<?php echo esc_attr( $template_path ); ?>'
206 >
207 <?php
208 $settings = get_option( rtTPG()->options['settings'] );
209 if ( isset( $settings['tpg_load_script'] ) && isset( $settings['tpg_enable_preloader'] ) ) {
210 ?>
211 <div id="bottom-script-loader" class="bottom-script-loader">
212 <div class="rt-ball-clip-rotate">
213 <div></div>
214 </div>
215 </div>
216 <?php
217 }
218
219 $wrapper_class = [];
220 if ( in_array(
221 $_layout,
222 [
223 'grid_hover-layout6',
224 'grid_hover-layout7',
225 'grid_hover-layout8',
226 'grid_hover-layout9',
227 'grid_hover-layout10',
228 'grid_hover-layout11',
229 'grid_hover-layout5-2',
230 'grid_hover-layout6-2',
231 'grid_hover-layout7-2',
232 'grid_hover-layout9-2',
233 ]
234 )
235 ) {
236 $wrapper_class[] = 'grid_hover-layout5';
237 }
238 $wrapper_class[] = str_replace( '-2', null, $_layout );
239 $wrapper_class[] = 'tpg-even grid-behaviour';
240 $wrapper_class[] = $_prefix . '_layout_wrapper';
241
242 // section title settings.
243 echo "<div class='tpg-header-wrapper'>";
244 Fns::get_section_title( $data );
245 echo "</div>";
246
247 ?>
248
249 <div data-title="Loading ..." class="rt-row rt-content-loader <?php echo esc_attr( implode( ' ', $wrapper_class ) ); ?>">
250 <?php
251 if ( $query->have_posts() ) {
252 $pCount = 1;
253
254 while ( $query->have_posts() ) {
255 $query->the_post();
256 set_query_var( 'tpg_post_count', $pCount );
257 set_query_var( 'tpg_total_posts', $query->post_count );
258 Fns::tpg_template( $post_data );
259 $pCount ++;
260 }
261 } else {
262 if ( $data['no_posts_found_text_archive'] ) {
263 printf( "<div class='no_posts_found_text'>%s</div>", esc_html( $data['no_posts_found_text_archive'] ) );
264 } else {
265 printf( "<div class='no_posts_found_text'>%s</div>", esc_html__( 'No post found', 'the-post-grid' ) );
266 }
267 }
268 wp_reset_postdata();
269 ?>
270 </div>
271
272 <?php Fns::print_html( Fns::get_pagination_markup( $query, $data ) ); ?>
273 </div>
274
275 <?php
276 do_action( 'tpg_elementor_script' );
277 }
278
279 }
280