PluginProbe ʕ •ᴥ•ʔ
The Post Grid – Shortcode, Gutenberg Blocks and Elementor Addon for Post Grid / 4.2.2
The Post Grid – Shortcode, Gutenberg Blocks and Elementor Addon for Post Grid v4.2.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
default.php 4 years ago grid-hover-layout-archive.php 4 years ago grid-hover-layout.php 4 years ago grid-layout-archive.php 4 years ago grid-layout.php 4 years ago list-layout-archive.php 4 years ago list-layout.php 4 years ago related-post.php 4 years ago slider-layout-archive.php 4 years ago slider-layout.php 4 years ago
grid-hover-layout-archive.php
279 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', [ Fns::class, '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 = Fns::get_render_data_set( $data, $query->max_num_pages, $posts_per_page, $_prefix );
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 = Fns::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 Fns::get_section_title( $data );
244 echo "</div>";
245
246 ?>
247
248 <div data-title="Loading ..." class="rt-row rt-content-loader <?php echo esc_attr( implode( ' ', $wrapper_class ) ); ?>">
249 <?php
250 if ( $query->have_posts() ) {
251 $pCount = 1;
252
253 while ( $query->have_posts() ) {
254 $query->the_post();
255 set_query_var( 'tpg_post_count', $pCount );
256 set_query_var( 'tpg_total_posts', $query->post_count );
257 Fns::tpg_template( $post_data );
258 $pCount ++;
259 }
260 } else {
261 if ( $data['no_posts_found_text_archive'] ) {
262 printf( "<div class='no_posts_found_text'>%s</div>", esc_html( $data['no_posts_found_text_archive'] ) );
263 } else {
264 printf( "<div class='no_posts_found_text'>%s</div>", esc_html__( 'No post found', 'the-post-grid' ) );
265 }
266 }
267 wp_reset_postdata();
268 ?>
269 </div>
270
271 <?php Fns::print_html( Fns::get_pagination_markup( $query, $data ) ); ?>
272 </div>
273
274 <?php
275 do_action( 'tpg_elementor_script' );
276 }
277
278 }
279