The Post Grid - Version 3.1.0

Version Description

  • Updated UI
  • Added 4 New Layout
  • Added New Settings
  • Added Offset Option
Download this release

Release Info

Developer techlabpro1
Plugin Icon 128x128 The Post Grid
Version 3.1.0
Comparing to
See all releases

Code changes from version 3.0.5 to 3.1.0

Files changed (113) hide show
  1. README.txt +9 -3
  2. assets/css/admin-preview.css +12 -0
  3. assets/css/admin.css +787 -282
  4. assets/css/thepostgrid.css +1487 -119
  5. assets/images/edd.png +0 -0
  6. assets/images/grid.png +0 -0
  7. assets/images/grid_hover.png +0 -0
  8. assets/images/icon-128x128.png +0 -0
  9. assets/images/isotope.png +0 -0
  10. assets/images/layouts/carousel1.png +0 -0
  11. assets/images/layouts/carousel10.png +0 -0
  12. assets/images/layouts/carousel11.png +0 -0
  13. assets/images/layouts/carousel12.png +0 -0
  14. assets/images/layouts/carousel2.png +0 -0
  15. assets/images/layouts/carousel3.png +0 -0
  16. assets/images/layouts/carousel4.png +0 -0
  17. assets/images/layouts/carousel5.png +0 -0
  18. assets/images/layouts/carousel6.png +0 -0
  19. assets/images/layouts/carousel7.png +0 -0
  20. assets/images/layouts/carousel8.png +0 -0
  21. assets/images/layouts/carousel9.png +0 -0
  22. assets/images/layouts/edd1.png +0 -0
  23. assets/images/layouts/edd2.png +0 -0
  24. assets/images/layouts/edd3.png +0 -0
  25. assets/images/layouts/edd_isotope1.png +0 -0
  26. assets/images/layouts/edd_isotope2.png +0 -0
  27. assets/images/layouts/edd_slider1.png +0 -0
  28. assets/images/layouts/edd_slider2.png +0 -0
  29. assets/images/layouts/gallery.png +0 -0
  30. assets/images/layouts/grid1.png +0 -0
  31. assets/images/layouts/grid10.png +0 -0
  32. assets/images/layouts/grid11.png +0 -0
  33. assets/images/layouts/grid12.png +0 -0
  34. assets/images/layouts/grid13.png +0 -0
  35. assets/images/layouts/grid14.png +0 -0
  36. assets/images/layouts/grid15.png +0 -0
  37. assets/images/layouts/grid16.png +0 -0
  38. assets/images/layouts/grid2.png +0 -0
  39. assets/images/layouts/grid3.png +0 -0
  40. assets/images/layouts/grid4.png +0 -0
  41. assets/images/layouts/grid5.png +0 -0
  42. assets/images/layouts/grid6.png +0 -0
  43. assets/images/layouts/grid7.png +0 -0
  44. assets/images/layouts/grid8.png +0 -0
  45. assets/images/layouts/grid9.png +0 -0
  46. assets/images/layouts/grid_hover10.png +0 -0
  47. assets/images/layouts/grid_hover11.png +0 -0
  48. assets/images/layouts/grid_hover12.png +0 -0
  49. assets/images/layouts/grid_hover13.png +0 -0
  50. assets/images/layouts/grid_hover14.png +0 -0
  51. assets/images/layouts/grid_hover15.png +0 -0
  52. assets/images/layouts/grid_hover16.png +0 -0
  53. assets/images/layouts/grid_layout10.png +0 -0
  54. assets/images/layouts/grid_layout8.png +0 -0
  55. assets/images/layouts/grid_layout9.png +0 -0
  56. assets/images/layouts/isotope1.png +0 -0
  57. assets/images/layouts/isotope10.png +0 -0
  58. assets/images/layouts/isotope11.png +0 -0
  59. assets/images/layouts/isotope12.png +0 -0
  60. assets/images/layouts/isotope2.png +0 -0
  61. assets/images/layouts/isotope3.png +0 -0
  62. assets/images/layouts/isotope4.png +0 -0
  63. assets/images/layouts/isotope5.png +0 -0
  64. assets/images/layouts/isotope6.png +0 -0
  65. assets/images/layouts/isotope7.png +0 -0
  66. assets/images/layouts/isotope8.png +0 -0
  67. assets/images/layouts/isotope9.png +0 -0
  68. assets/images/layouts/list1.png +0 -0
  69. assets/images/layouts/list2.png +0 -0
  70. assets/images/layouts/list3.png +0 -0
  71. assets/images/layouts/list4.png +0 -0
  72. assets/images/layouts/list_layout1.png +0 -0
  73. assets/images/layouts/list_layout2.png +0 -0
  74. assets/images/layouts/wc1.png +0 -0
  75. assets/images/layouts/wc2.png +0 -0
  76. assets/images/layouts/wc3.png +0 -0
  77. assets/images/layouts/wc4.png +0 -0
  78. assets/images/layouts/wc_filter1.png +0 -0
  79. assets/images/layouts/wc_filter2.png +0 -0
  80. assets/images/layouts/wc_slider1.png +0 -0
  81. assets/images/layouts/wc_slider2.png +0 -0
  82. assets/images/list.png +0 -0
  83. assets/images/slider.png +0 -0
  84. assets/images/woocommerce.png +0 -0
  85. assets/js/admin-preview.js +60 -33
  86. assets/js/admin.js +118 -18
  87. assets/js/rttpg.js +2 -2
  88. assets/vendor/actual-height/jquery.actual.min.js +0 -14
  89. languages/the-post-grid.pot +368 -124
  90. lib/classes/rtTPGAjaxResponse.php +1 -0
  91. lib/classes/rtTPGHelper.php +1454 -1172
  92. lib/classes/rtTPGInit.php +1 -8
  93. lib/classes/rtTPGMeta.php +9 -3
  94. lib/classes/rtTPGNotice.php +83 -0
  95. lib/classes/rtTPGOptions.php +1471 -1060
  96. lib/classes/rtTPGPreview.php +180 -110
  97. lib/classes/rtTPGShortCode.php +203 -135
  98. lib/init.php +1 -1
  99. lib/models/rtTPGField.php +328 -2
  100. lib/templates/layouts/isotope1.php +52 -22
  101. lib/templates/layouts/layout1.php +56 -25
  102. lib/templates/layouts/layout12.php +85 -0
  103. lib/templates/layouts/layout2.php +45 -25
  104. lib/templates/layouts/layout3.php +46 -19
  105. lib/templates/layouts/layout5.php +79 -0
  106. lib/templates/layouts/layout6.php +75 -0
  107. lib/templates/layouts/layout7.php +87 -0
  108. lib/views/settings/layout-settings.php +4 -0
  109. lib/views/settings/post-source.php +19 -239
  110. lib/views/settings/sc-settings.php +44 -0
  111. lib/views/settings/settings.php +1 -1
  112. lib/views/settings/style.php +30 -3
  113. the-post-grid.php +1 -1
README.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: techlabpro1
3
  Donate link:
4
  Tags: post grid, content grid, post display, post format, post view, blog display, news display, post
5
  Requires at least: 4.5
6
- Tested up to: 5.8.1
7
- Stable tag: 3.0.5
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -12,7 +12,7 @@ Fast & Easy way to display WordPress post in Grid, List & Isotope view ( filter
12
 
13
  == Description ==
14
 
15
- [Plugin Demo](https://www.radiustheme.com/demo/plugins/the-post-grid/) | [Documentation](https://radiustheme.com/how-to-setup-configure-the-post-grid-free-version-for-wordpress/) | [Get Pro](https://www.radiustheme.com/downloads/the-post-grid-pro-for-wordpress/)
16
 
17
  The Post Grid is a fully Responsive & Mobile friendly plugin to display your page/post in Grid, List and Isotope View without any line of coding. It is fast and easy to generate grid from admin end and insert into page/post. You can Display posts by any category(s), tag(s), author(s), keyword(s) also Order posts by Id, Title, Created date, Modified date and Menu order.
18
 
@@ -141,6 +141,12 @@ For any bug or suggestion please mail support@radiustheme.com
141
 
142
  == Changelog ==
143
 
 
 
 
 
 
 
144
  = 3.0.5 =
145
  * Updated missing URL
146
 
3
  Donate link:
4
  Tags: post grid, content grid, post display, post format, post view, blog display, news display, post
5
  Requires at least: 4.5
6
+ Tested up to: 5.8.2
7
+ Stable tag: 3.1.0
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
12
 
13
  == Description ==
14
 
15
+ [Plugin Demo](https://www.radiustheme.com/demo/plugins/the-post-grid/) | [Documentation](https://www.radiustheme.com/docs/the-post-grid/) | [Get Pro](https://www.radiustheme.com/downloads/the-post-grid-pro-for-wordpress/)
16
 
17
  The Post Grid is a fully Responsive & Mobile friendly plugin to display your page/post in Grid, List and Isotope View without any line of coding. It is fast and easy to generate grid from admin end and insert into page/post. You can Display posts by any category(s), tag(s), author(s), keyword(s) also Order posts by Id, Title, Created date, Modified date and Menu order.
18
 
141
 
142
  == Changelog ==
143
 
144
+ = 3.1.0 =
145
+ * Updated UI
146
+ * Added 4 New Layout
147
+ * Added New Settings
148
+ * Added Offset Option
149
+
150
  = 3.0.5 =
151
  * Updated missing URL
152
 
assets/css/admin-preview.css CHANGED
@@ -15,4 +15,16 @@
15
  .rt-tpg-container a{ text-decoration: none; }
16
  .rt-tpg-container .layout11 .rt-holder h3 {
17
  font-size: 24px;
 
 
 
 
 
 
 
 
 
 
 
 
18
  }
15
  .rt-tpg-container a{ text-decoration: none; }
16
  .rt-tpg-container .layout11 .rt-holder h3 {
17
  font-size: 24px;
18
+ }
19
+ .rt-tpg-container .rt-img-holder img,
20
+ .rt-tpg-container .rt-holder img {
21
+ max-width: 100%;
22
+ height: auto;
23
+ }
24
+ .tpg-widget-heading-wrapper.center .tpg-widget-heading {
25
+ font-size: 30px;
26
+ font-weight: bold;
27
+ }
28
+ #rttpg_sc_preview_meta {
29
+ overflow: hidden;
30
  }
assets/css/admin.css CHANGED
@@ -1,4 +1,165 @@
1
  /* tab css */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  #tpg-loading {
3
  position: fixed;
4
  width: 100%;
@@ -23,7 +184,7 @@
23
  .tpg-form-item-wrap {
24
  margin-top: 15px;
25
  margin-bottom: 25px;
26
- max-width: 500px;
27
  }
28
 
29
  .tpg-form-item-wrap:after {
@@ -34,14 +195,16 @@
34
 
35
  .tpg-form-item-wrap label {
36
  float: left;
37
- width: 30%;
38
  font-weight: bold;
39
  min-width: 140px;
 
 
40
  }
41
 
42
  .tpg-form-item {
43
- width: 70%;
44
- float: right;
45
  }
46
 
47
  ul#order-target {
@@ -106,17 +269,17 @@ ul.rt-tab-nav {
106
  padding: 0;
107
  display: inline-block;
108
  width: 100%;
109
- margin-bottom: -4px;
 
 
 
110
  }
111
 
112
  ul.rt-tab-nav li {
113
  cursor: pointer;
114
  display: inline-block;
115
  margin-bottom: -1px;
116
- }
117
-
118
- ul.rt-tab-nav li:nth-child(4) {
119
- margin-right: 3px;
120
  }
121
 
122
  ul.rt-tab-nav li:focus {
@@ -126,41 +289,45 @@ ul.rt-tab-nav li:focus {
126
  ul.rt-tab-nav li a {
127
  position: relative;
128
  font-size: 15px;
129
- color: #ffffff;
130
- background-color: #ffffff;
131
  padding: 10px 25px;
132
  border-radius: 4px 4px 0 0;
133
  display: inline-block;
134
  text-decoration: none;
135
  z-index: 2;
136
  transition: all 0.3s ease-in-out;
 
 
 
 
137
  }
138
 
139
  ul.rt-tab-nav li a:after {
140
  content: "";
141
- height: 100%;
142
  width: 100%;
143
- background-color: #5d3dfd;
144
- border-radius: 4px 4px 0 0;
145
  position: absolute;
146
- top: 0;
 
147
  left: 0;
148
  right: 0;
149
  z-index: -1;
150
  transition: all 0.3s ease-in-out;
151
  }
152
 
 
153
  ul.rt-tab-nav li.active a,
154
  ul.rt-tab-nav li.active a:after {
155
- color: #5d3dfd;
 
156
  }
157
 
 
158
  ul.rt-tab-nav li.active a:after {
159
- height: 10%;
160
- }
161
-
162
- ul.rt-tab-nav li:last-child a {
163
- border-right: 0;
164
  }
165
 
166
  ul.rt-tab-nav li a:focus {
@@ -170,7 +337,6 @@ ul.rt-tab-nav li a:focus {
170
 
171
  .rt-tab-content {
172
  display: none;
173
- border: 1px solid #e7e7e7;
174
  background: #fff;
175
  }
176
 
@@ -184,10 +350,17 @@ body .meta-box-sortables .field-holder select {
184
  }
185
 
186
  .rt-tab-content .field-holder {
187
- margin-bottom: 15px;
188
  padding-top: 10px;
189
  }
190
 
 
 
 
 
 
 
 
 
191
  .rt-tab-content .field-holder:first-child {
192
  border-top: none;
193
  padding-top: 15px;
@@ -198,31 +371,17 @@ body .meta-box-sortables .field-holder select {
198
  }
199
 
200
  .rt-tpg-filter.taxonomy {
201
- background: #5d3dfd3b;
202
  }
203
 
204
  .term-filter-item-container > .field-holder.term-filter-item-operator {
205
  border-top: none;
206
  }
207
 
208
- .term-filter-item-container {
209
- border: 1px solid #5ba2d2;
210
- }
211
-
212
  .term-filter-item-container {
213
  border-top: none;
214
  }
215
 
216
- .term-filter-item-container:first-child {
217
- border-top: 1px solid #5ba2d2;
218
- }
219
-
220
- .rt-tab-content .field-holder,
221
- .rt-tpg-filter.taxonomy .rt-tpg-filter-item .field-holder:first-child,
222
- .rt-tpg-filter-container > .field-holder:first-child {
223
- border-top: 1px solid #e7e7e7;
224
- }
225
-
226
  .rt-tpg-filter.taxonomy .rt-tpg-filter-item .field-holder:first-child,
227
  .rt-tpg-filter-container > .field-holder:first-child,
228
  div#sc-post-post-source > .field-holder > .field > .field-holder:first-child {
@@ -231,11 +390,11 @@ div#sc-post-post-source > .field-holder > .field > .field-holder:first-child {
231
 
232
  .rt-tpg-filter-container .field-holder,
233
  .rt-tpg-filter-holder > h3 {
234
- border-bottom: 1px solid #e7e7e7;
235
  }
236
 
237
  .rt-tpg-filter-holder > h3 {
238
- background: #5d3dfd;
239
  color: #fff;
240
  padding: 10px;
241
  margin: 0;
@@ -250,25 +409,137 @@ div#sc-post-post-source > .field-holder > .field > .field-holder:first-child {
250
  .rt-tab-content .field-holder .field-label {
251
  float: left;
252
  width: 200px;
 
 
253
  }
254
 
255
  .rt-tab-content .field-holder .field {
256
  float: right;
257
- width: calc(100% - 200px);
 
 
 
 
 
 
258
  }
259
 
260
- .rt-tab-content .field-holder .field-label label {
261
- font-weight: bold;
262
  }
263
 
264
- .rt-tab-content .field-holder.full > .field-label{
265
- width: 100%;
266
- display: block;
267
- max-width: 100%;
268
- margin-bottom: 15px;
269
  }
270
- .rt-tab-content .field-holder.full .field {
271
- width: 100%;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
272
  }
273
 
274
  .rt-tab-content .field-holder:after {
@@ -283,11 +554,29 @@ div#sc-post-post-source > .field-holder > .field > .field-holder:first-child {
283
  padding: 10px;
284
  }
285
 
 
 
 
 
 
 
286
  .rt-setting-holder .field-holder .field-label {
287
  margin-bottom: 10px;
288
  font-weight: bold;
289
  }
290
 
 
 
 
 
 
 
 
 
 
 
 
 
291
  .field-holder .checkbox-group > label {
292
  margin-right: 15px;
293
  }
@@ -329,9 +618,13 @@ div#sc-post-post-source > .field-holder > .field > .field-holder:first-child {
329
  margin-bottom: 5px;
330
  }
331
 
 
 
 
 
332
  input.large-text.code.rt-code-sc {
333
  color: #fff;
334
- background: #5d3dfd;
335
  font-weight: bold;
336
  }
337
 
@@ -346,15 +639,20 @@ input.large-text.code.rt-code-sc {
346
  -webkit-border-radius: 3px;
347
  border-radius: 3px;
348
  width: 100%;
349
- max-width: 800px;
350
  height: 150px;
351
  position: relative;
352
  }
 
353
  /*----- Column -------*/
354
 
355
- .rt-3-column {
356
  display: inline-block;
357
- width: 193px;
 
 
 
 
 
358
  }
359
 
360
  .rt-tab-content .field-holder.rt-3-column .field-label label {
@@ -364,12 +662,12 @@ input.large-text.code.rt-code-sc {
364
 
365
  .rt-tab-content .field-holder.rt-3-column .field {
366
  float: none;
 
367
  }
368
 
369
  div#column_holder {
370
  position: relative;
371
  padding-left: 210px;
372
- width: 194px;
373
  }
374
 
375
  div#column_holder:before {
@@ -379,204 +677,63 @@ div#column_holder:before {
379
  left: 10px;
380
  width: 100px;
381
  font-weight: 700;
382
- font-size: 13px;
383
  line-height: 1.4;
384
  }
385
 
386
- div#column_holder .field-label,
387
- div#tpg_mobile_column_holder .field-label,
388
- div#tpg_tab_column_holder .field-label,
389
- div#column_holder .field,
390
- div#tpg_mobile_column_holder .field,
391
- div#tpg_tab_column_holder .field {
392
- display: block;
393
- width: 100%;
394
- }
395
-
396
- @media all and (min-width: 992px) and (max-width: 1199px) {
397
  div#column_holder {
398
- padding-left: 160px;
399
- width: 165px;
400
  }
 
401
  div#tpg_mobile_column_holder {
402
- padding-left: 160px;
403
  border-top: none;
404
  }
405
  }
406
 
407
- /*----- Button -------*/
408
-
409
- div#button_bg_color_holder {
410
- position: relative;
411
- padding-left: 210px;
412
- width: 194px;
413
- }
414
-
415
- div#button_text_bg_color_holder,
416
- div#button_border_color_holder {
417
- padding-left: 210px;
418
- }
419
-
420
- div#button_border_color_holder + div#button_text_bg_color_holder {
421
- padding-left: 10px;
422
- }
423
-
424
- div#button_bg_color_holder:before {
425
- content: 'Button Color';
426
- position: absolute;
427
- top: 10px;
428
- left: 10px;
429
- width: 100px;
430
- font-weight: 700;
431
- font-size: 13px;
432
- line-height: 1.4;
433
- }
434
-
435
- .rt-tab-content .field-holder#button_bg_color_holder .field-label,
436
- .rt-tab-content .field-holder#button_hover_bg_color_holder .field-label,
437
- .rt-tab-content .field-holder#button_border_color_holder .field-label,
438
- .rt-tab-content .field-holder#button_text_bg_color_holder .field-label,
439
- .rt-tab-content .field-holder#button_hover_text_color_holder .field-label,
440
- .rt-tab-content .field-holder#button_active_bg_color_holder .field-label {
441
- width: 100%;
442
- max-width: none;
443
- }
444
-
445
- .rt-tab-content .field-holder#button_border_color_holder,
446
- .rt-tab-content .field-holder#button_text_bg_color_holder,
447
- .rt-tab-content .field-holder#button_hover_text_color_holder {
448
- border-top: none;
449
- }
450
-
451
- #button_border_color_holder,
452
- #button_hover_text_color_holder,
453
- #button_text_bg_color_holder,
454
- #button_bg_color_holder,
455
- #button_active_bg_color_holder,
456
- #button_hover_bg_color_holder {
457
- position: relative;
458
- height: 60px;
459
- }
460
-
461
- #button_border_color_holder .wp-picker-container,
462
- #button_hover_text_color_holder .wp-picker-container,
463
- #button_text_bg_color_holder .wp-picker-container,
464
- #button_bg_color_holder .wp-picker-container,
465
- #button_active_bg_color_holder .wp-picker-container,
466
- #button_hover_bg_color_holder .wp-picker-container {
467
- position: absolute;
468
- top: 40px;
469
- left: 10px;
470
- z-index: 10;
471
- }
472
-
473
- .rt-tab-content .field-holder .wp-picker-container.wp-picker-active {
474
- z-index: 99 !important;
475
- }
476
 
477
- #button_border_color_holder .wp-picker-container,
478
- #button_text_bg_color_holder .wp-picker-container,
479
- #button_bg_color_holder .wp-picker-container {
480
- left: 210px;
481
- }
482
-
483
- #button_border_color_holder + #button_text_bg_color_holder .wp-picker-container {
484
- left: 10px;
485
- }
486
 
487
- @media all and (min-width: 1600px) {
488
- div#button_text_bg_color_holder,
489
- div#button_border_color_holder {
490
- padding-left: 15px;
491
- }
492
- #button_border_color_holder .wp-picker-container,
493
- #button_text_bg_color_holder .wp-picker-container {
494
- left: 15px;
495
- }
496
- .rt-tab-content .field-holder#button_border_color_holder,
497
- .rt-tab-content .field-holder#button_text_bg_color_holder,
498
- .rt-tab-content .field-holder#button_hover_text_color_holder {
499
- border-top: 1px solid #e1e1e1;
500
  }
501
- div#button_border_color_holder + div,
502
- div#button_border_color_holder {
503
- width: 150px;
504
- }
505
- }
506
 
507
- @media all and (max-width: 1199px) {
508
  .rt-tab-content .field-holder .field-label {
509
- width: 150px;
510
  }
511
- .rt-tab-content .field-holder .field {
512
- width: calc(100% - 150px);
513
- }
514
- div#button_hover_text_color_holder,
515
- div#button_border_color_holder,
516
- div#button_bg_color_holder {
517
- padding-left: 160px;
518
- }
519
- div#button_border_color_holder,
520
- div#button_text_bg_color_holder {
521
- padding-left: 10px;
522
- }
523
- #button_border_color_holder .wp-picker-container,
524
- #button_text_bg_color_holder .wp-picker-container {
525
- left: 10px;
526
  }
527
- div#button_hover_text_color_holder .wp-picker-container,
528
- div#button_active_bg_color_holder .wp-picker-container,
529
- #button_bg_color_holder .wp-picker-container {
530
- left: 160px;
 
 
 
531
  }
 
532
  .rt-3-column {
533
  width: 165px;
534
  }
535
- div#button_bg_color_holder {
536
- width: 165px;
537
- }
538
- div#button_active_bg_color_holder {
539
- padding-left: 160px;
540
- border-top: none;
541
- }
542
- div#button_border_color_holder + div#button_text_bg_color_holder {
543
- padding-left: 160px;
544
- }
545
- #button_border_color_holder + div#button_text_bg_color_holder .wp-picker-container {
546
- left: 160px;
547
- }
548
- div#button_border_color_holder + div#button_text_bg_color_holder + div#button_hover_text_color_holder {
549
- padding-left: 10px;
550
- }
551
- #button_border_color_holder + div#button_text_bg_color_holder + div#button_hover_text_color_holder .wp-picker-container {
552
- left: 10px;
553
  }
554
  }
555
 
556
  @media all and (max-width: 991px) {
557
- div#button_active_bg_color_holder {
558
- padding-left: 10px;
559
- }
560
- div#button_active_bg_color_holder .wp-picker-container {
561
- left: 10px;
562
- }
563
  .rt-3-column {
564
  width: 160px !important;
565
  }
566
- div#button_border_color_holder,
567
- div#button_text_bg_color_holder {
568
- padding-left: 160px;
569
- }
570
- div#button_border_color_holder .wp-picker-container,
571
- div#button_text_bg_color_holder .wp-picker-container {
572
- left: 160px;
573
- }
574
- div#button_border_color_holder + div#button_text_bg_color_holder {
575
- padding-left: 10px;
576
- }
577
- #button_border_color_holder + div#button_text_bg_color_holder .wp-picker-container {
578
- left: 10px;
579
- }
580
  }
581
 
582
  /* settings page */
@@ -617,7 +774,8 @@ div#button_bg_color_holder:before {
617
  }
618
 
619
  .select2-results__option[aria-selected=true] {
620
- background: #f3f3f3;
 
621
  }
622
 
623
  /* date range */
@@ -662,23 +820,36 @@ div#button_bg_color_holder:before {
662
  margin: 0;
663
  }
664
 
665
- .field-inner-container .wp-picker-container,
666
- .field-inner-container .wp-picker-container:active {
667
- position: relative;
668
- }
669
-
670
- .field-inner-container .wp-picker-holder {
671
- position: absolute;
672
- z-index: 2;
673
  }
674
 
675
  .rt-image-preview {
676
  width: 150px;
677
  height: 150px;
678
  display: inline-block;
679
- background: #f7f7f7;
680
  position: relative;
681
- padding: 10px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
682
  }
683
 
684
  /* image size field */
@@ -698,21 +869,25 @@ div#button_bg_color_holder:before {
698
  display: block;
699
  }
700
 
701
- span.dashicons.dashicons-plus-alt.rtAddImage, span.dashicons.dashicons-trash.rtRemoveImage {
 
702
  position: absolute;
703
  cursor: pointer;
 
 
 
 
 
704
  }
705
 
706
  span.dashicons.dashicons-trash.rtRemoveImage {
707
- color: red;
708
- left: -10px;
709
- top: -10px;
710
  }
711
 
712
  span.dashicons.dashicons-plus-alt.rtAddImage {
713
- right: -10px;
714
- top: -10px;
715
- color: green;
716
  }
717
 
718
  .pro-field .field-label {
@@ -721,7 +896,7 @@ span.dashicons.dashicons-plus-alt.rtAddImage {
721
 
722
  .pro-field .rttpg-tooltip {
723
  display: inline-block;
724
- color: red;
725
  line-height: 1.3;
726
  font-weight: 600;
727
  font-size: 14px;
@@ -782,7 +957,7 @@ span.dashicons.dashicons-plus-alt.rtAddImage {
782
 
783
  .rt-document-box .rt-box-icon i {
784
  font-size: 20px;
785
- color: #5d3dfd;
786
  }
787
 
788
  .rt-document-box .rt-box-content {
@@ -846,7 +1021,7 @@ body .rt-admin-btn {
846
  display: inline-block;
847
  font-size: 15px;
848
  font-weight: 400;
849
- color: #5d3dfd;
850
  text-decoration: none;
851
  padding: 9px 18px;
852
  border-radius: 4px;
@@ -855,7 +1030,7 @@ body .rt-admin-btn {
855
  line-height: 1.4;
856
  transition: all 0.3s ease-in-out;
857
  height: auto;
858
- border: 2px solid #5d3dfd;
859
  }
860
 
861
  body .rt-admin-btn:hover {
@@ -863,26 +1038,13 @@ body .rt-admin-btn:hover {
863
  color: #ffffff;
864
  text-decoration: none;
865
  }
866
- .field-holder.pro-field .wp-picker-container {
867
- position: relative;
868
- }
869
- .field-holder.pro-field .wp-picker-container:after {
870
- position: absolute;
871
- top: 0;
872
- left: 0;
873
- bottom: 0;
874
- z-index: 99;
875
- width: 100%;
876
- content: "";
877
- cursor: pointer;
878
- }
879
 
880
  #custom_css_holder .description {
881
  color: red;
882
  }
883
 
884
  #rt-tpg-settings-form .rtSaveButton {
885
- background-color: #5d3dfd;
886
  padding: 8px 15px;
887
  font-size: 15px;
888
  font-weight: 500;
@@ -910,8 +1072,8 @@ body .rt-admin-btn:hover {
910
  color: #000000;
911
  background-color: #ffffff;
912
  border-radius: 4px;
913
- padding: 20px;
914
- margin-bottom: 20px;
915
  }
916
 
917
  #rttpg_meta,
@@ -928,26 +1090,117 @@ body .rt-admin-btn:hover {
928
 
929
  /* ============== MetaBox END ================ */
930
 
931
- /* media */
932
 
933
- @media (max-width: 1200px) {
934
- .field-inner.col-4 {
935
- width: 50%;
936
- }
937
  }
938
 
939
- @media (max-width: 768px) {
940
- .rt-tab-content .field-holder .field-label,
941
- .rt-tab-content .field-holder .field {
942
- float: none;
943
- display: block;
944
- width: auto;
945
- max-width: inherit;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
946
  }
 
947
 
948
- .rt-setting-holder .field-holder {
949
- float: none;
950
- width: auto;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
951
  }
952
  }
953
 
@@ -966,6 +1219,74 @@ body .rt-admin-btn:hover {
966
  }
967
  }
968
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
969
  /*The rttm-switch - the box around the rttm-switch-slider*/
970
  .rttm-switch {
971
  position: relative;
@@ -989,7 +1310,7 @@ body .rt-admin-btn:hover {
989
  left: 0;
990
  right: 0;
991
  bottom: 0;
992
- background-color: #ccc;
993
  -webkit-transition: .4s;
994
  transition: .4s;
995
  }
@@ -1007,11 +1328,11 @@ body .rt-admin-btn:hover {
1007
  }
1008
 
1009
  input:checked + .rttm-switch-slider {
1010
- background-color: #5d3dfd;
1011
  }
1012
 
1013
  input:focus + .rttm-switch-slider {
1014
- box-shadow: 0 0 1px #5d3dfd;
1015
  }
1016
 
1017
  input:checked + .rttm-switch-slider:before {
@@ -1027,4 +1348,188 @@ input:checked + .rttm-switch-slider:before {
1027
 
1028
  .rttm-switch-slider.round:before {
1029
  border-radius: 50%;
1030
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  /* tab css */
2
+ :root {
3
+ /*--rt-primary-color: #5d3dfd;*/
4
+ --rt-primary-color: #4C6FFF;
5
+ --rt-primary-rgb: 76, 111, 255;
6
+ --rt-primary-dark: #3d5cd7;
7
+ --rt-primary-light: #6885fd;
8
+ --rt-secondary-color: #212121;
9
+ --rt-bg-light: #F7FAFC;
10
+ }
11
+
12
+ input.rt-code-sc::selection {
13
+ background: var(--rt-bg-light);
14
+ color: var(--rt-primary-color);
15
+ }
16
+
17
+ input.rt-code-sc::-moz-selection {
18
+ background: var(--rt-bg-light);
19
+ color: var(--rt-primary-color);
20
+ }
21
+
22
+ /*Default Global CSS for */
23
+ .post-type-rttpg #rttpg_meta label {
24
+ position: relative;
25
+ }
26
+
27
+ .post-type-rttpg.wp-core-ui .button-group {
28
+ white-space: inherit;
29
+ }
30
+
31
+ .post-type-rttpg #tpg-post-type-wrapper,
32
+ .post-type-rttpg #rttpg_meta {
33
+ background-color: #ffffff;
34
+ padding: 20px;
35
+ }
36
+
37
+ .post-type-rttpg.wp-core-ui #rttpg_meta select {
38
+ min-height: 40px;
39
+ border-color: #dee5e9;
40
+ }
41
+
42
+ .post-type-rttpg.wp-core-ui #rttpg_meta select:focus {
43
+ outline: none;
44
+ /*border: none;*/
45
+ box-shadow: none;
46
+ }
47
+
48
+ .post-type-rttpg .select2-container--classic .select2-selection--single,
49
+ .post-type-rttpg .meta-box-sortables select,
50
+ .post-type-rttpg .select2-container--classic .select2-selection--multiple,
51
+ .post-type-rttpg input[type=time],
52
+ .post-type-rttpg input[type=url],
53
+ .post-type-rttpg input[type=number],
54
+ .post-type-rttpg input[type=text] {
55
+ min-height: 40px;
56
+ transition: 0.4s;
57
+ border-color: #dee5e9;
58
+ background: #ffffff;
59
+ }
60
+
61
+ .post-type-rttpg input[type=time],
62
+ .post-type-rttpg input[type=url],
63
+ .post-type-rttpg input[type=number],
64
+ .post-type-rttpg input[type=text] {
65
+ width: 100%;
66
+ }
67
+
68
+ .post-type-rttpg .tablenav-pages .current-page {
69
+ width: auto;
70
+ min-height: inherit;
71
+ }
72
+
73
+ .post-type-rttpg .select2-container--classic:not(.select2-container--open) .select2-selection--multiple:hover,
74
+ .post-type-rttpg .select2-container--classic:not(.select2-container--open) .select2-selection--single:hover,
75
+ .post-type-rttpg.wp-core-ui select:focus,
76
+ .post-type-rttpg.wp-core-ui select:hover,
77
+ .post-type-rttpg input:focus,
78
+ .post-type-rttpg input:hover {
79
+ border-color: #A3B1DE !important;
80
+ outline: none;
81
+ box-shadow: none;
82
+ }
83
+
84
+ .post-type-rttpg input[type=checkbox],
85
+ .post-type-rttpg input[type=radio] {
86
+ box-shadow: none;
87
+ border: 2px solid #A3B1DE;
88
+ padding-top: 1px;
89
+ }
90
+
91
+ .post-type-rttpg input[type=checkbox]:hover,
92
+ .post-type-rttpg input[type=radio]:hover {
93
+ border-color: var(--rt-primary-color) !important;
94
+ }
95
+
96
+ .post-type-rttpg input[type=radio] {
97
+ width: 20px;
98
+ height: 20px;
99
+ }
100
+
101
+ .post-type-rttpg input[type=radio]:checked::before {
102
+ width: 12px;
103
+ height: 12px;
104
+ background: var(--rt-primary-color);
105
+ top: 4px;
106
+ left: 4px;
107
+ position: absolute;
108
+ float: none;
109
+ margin: 0;
110
+ }
111
+
112
+ .post-type-rttpg .postbox-container input[type=checkbox],
113
+ .post-type-rttpg .postbox-container input[type=radio] {
114
+ margin: -0.1rem .50em 0 0;
115
+ }
116
+
117
+ .post-type-rttpg input[type=checkbox]:checked {
118
+ background-color: var(--rt-primary-color);
119
+ border: none;
120
+ position: relative;
121
+ }
122
+
123
+ .post-type-rttpg input[type=checkbox]:checked:hover {
124
+ background-color: var(--rt-primary-dark);
125
+ }
126
+
127
+ .post-type-rttpg input[type=checkbox]:checked::before {
128
+ content: url('data:image/svg+xml;utf8,<svg width="9" height="7" viewBox="0 0 9 7" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M7.66667 1L3.08333 5.58333L1 3.5" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg>');
129
+ margin: 0;
130
+ width: 100%;
131
+ height: 100%;
132
+ display: flex;
133
+ justify-content: center;
134
+ align-items: center;
135
+ }
136
+
137
+ .post-type-rttpg .postbox-header {
138
+ background-color: #ffffff;
139
+ }
140
+
141
+ .post-type-rttpg #rttpg_meta .postbox-header {
142
+ border: none;
143
+ }
144
+
145
+ .post-type-rttpg .field-holder span.rt-loading {
146
+ position: absolute;
147
+ background-color: #f7fafc;
148
+ left: -4px;
149
+ top: 0;
150
+ }
151
+
152
+ .post-type-rttpg .form-wrap p, p.description {
153
+ color: #7c8387;
154
+ }
155
+
156
+ .rt-tab-content .wp-picker-holder {
157
+ position: absolute;
158
+ z-index: 999;
159
+ }
160
+
161
+ /*End Global CSS*/
162
+
163
  #tpg-loading {
164
  position: fixed;
165
  width: 100%;
184
  .tpg-form-item-wrap {
185
  margin-top: 15px;
186
  margin-bottom: 25px;
187
+ max-width: 100%;
188
  }
189
 
190
  .tpg-form-item-wrap:after {
195
 
196
  .tpg-form-item-wrap label {
197
  float: left;
198
+ width: 200px;
199
  font-weight: bold;
200
  min-width: 140px;
201
+ margin-bottom: 15px;
202
+ margin-top: 3px;
203
  }
204
 
205
  .tpg-form-item {
206
+ width: 300px;
207
+ float: left;
208
  }
209
 
210
  ul#order-target {
269
  padding: 0;
270
  display: inline-block;
271
  width: 100%;
272
+ margin-bottom: 0;
273
+ padding-top: 5px;
274
+ overflow: hidden;
275
+ border-bottom: 1px solid #cfdde5;
276
  }
277
 
278
  ul.rt-tab-nav li {
279
  cursor: pointer;
280
  display: inline-block;
281
  margin-bottom: -1px;
282
+ margin-right: 2px;
 
 
 
283
  }
284
 
285
  ul.rt-tab-nav li:focus {
289
  ul.rt-tab-nav li a {
290
  position: relative;
291
  font-size: 15px;
292
+ color: var(--rt-primary-color);
 
293
  padding: 10px 25px;
294
  border-radius: 4px 4px 0 0;
295
  display: inline-block;
296
  text-decoration: none;
297
  z-index: 2;
298
  transition: all 0.3s ease-in-out;
299
+ border: 1px solid rgba(var(--rt-primary-rgb), .3);
300
+ background: #f4f9fc;
301
+ overflow: hidden;
302
+ margin-bottom: -5px;
303
  }
304
 
305
  ul.rt-tab-nav li a:after {
306
  content: "";
307
+ height: 0;
308
  width: 100%;
309
+ background-color: var(--rt-primary-color);
 
310
  position: absolute;
311
+ top: auto;
312
+ bottom: 0;
313
  left: 0;
314
  right: 0;
315
  z-index: -1;
316
  transition: all 0.3s ease-in-out;
317
  }
318
 
319
+ ul.rt-tab-nav li:hover a,
320
  ul.rt-tab-nav li.active a,
321
  ul.rt-tab-nav li.active a:after {
322
+ color: #ffffff;
323
+ border-color: var(--rt-primary-color);
324
  }
325
 
326
+ ul.rt-tab-nav li:hover a:after,
327
  ul.rt-tab-nav li.active a:after {
328
+ height: 100%;
329
+ top: 0;
330
+ bottom: auto;
 
 
331
  }
332
 
333
  ul.rt-tab-nav li a:focus {
337
 
338
  .rt-tab-content {
339
  display: none;
 
340
  background: #fff;
341
  }
342
 
350
  }
351
 
352
  .rt-tab-content .field-holder {
 
353
  padding-top: 10px;
354
  }
355
 
356
+ .rt-tab-content .field-holder:not(:last-child) {
357
+ margin-bottom: -7px;
358
+ }
359
+
360
+ #settings-tabs .rt-tab-content .field-holder:not(:last-child) {
361
+ margin-bottom: 15px;
362
+ }
363
+
364
  .rt-tab-content .field-holder:first-child {
365
  border-top: none;
366
  padding-top: 15px;
371
  }
372
 
373
  .rt-tpg-filter.taxonomy {
374
+ background: var(--rt-primary-color) 3 b;
375
  }
376
 
377
  .term-filter-item-container > .field-holder.term-filter-item-operator {
378
  border-top: none;
379
  }
380
 
 
 
 
 
381
  .term-filter-item-container {
382
  border-top: none;
383
  }
384
 
 
 
 
 
 
 
 
 
 
 
385
  .rt-tpg-filter.taxonomy .rt-tpg-filter-item .field-holder:first-child,
386
  .rt-tpg-filter-container > .field-holder:first-child,
387
  div#sc-post-post-source > .field-holder > .field > .field-holder:first-child {
390
 
391
  .rt-tpg-filter-container .field-holder,
392
  .rt-tpg-filter-holder > h3 {
393
+ position: relative;
394
  }
395
 
396
  .rt-tpg-filter-holder > h3 {
397
+ background: var(--rt-primary-color);
398
  color: #fff;
399
  padding: 10px;
400
  margin: 0;
409
  .rt-tab-content .field-holder .field-label {
410
  float: left;
411
  width: 200px;
412
+ font-size: 15px;
413
+ color: #222222;
414
  }
415
 
416
  .rt-tab-content .field-holder .field {
417
  float: right;
418
+ width: calc(100% - 235px);
419
+ background: var(--rt-bg-light);
420
+ padding: 15px;
421
+ position: relative;
422
+ z-index: 10;
423
+ border-radius: 4px;
424
+ border: 1px solid #d9e3ed;
425
  }
426
 
427
+ #sc-style.rt-tab-content .field-holder .field {
428
+ z-index: inherit;
429
  }
430
 
431
+ .rt-tab-content #tpg_taxonomy_holder {
432
+ padding-top: 0;
 
 
 
433
  }
434
+
435
+ .rt-tab-content #tpg_taxonomy_holder .checkbox-group {
436
+ margin-left: -10px;
437
+ }
438
+
439
+ @media (max-width: 1449px) {
440
+ .rt-tab-content #tpg_taxonomy_holder .checkbox-group {
441
+ margin-left: 0;
442
+ }
443
+ }
444
+
445
+ .rt-tab-content .field-holder .field-holder .field-label {
446
+ width: 150px;
447
+ }
448
+
449
+ .rt-tab-content .field-holder .field-holder .field {
450
+ width: calc(100% - 180px);
451
+ }
452
+
453
+ .rt-tab-content .field-holder .taxonomy-field {
454
+ position: relative;
455
+ }
456
+
457
+ .rt-tab-content .field .checkbox-filter-field .tpg-hidden {
458
+ position: relative;
459
+ margin-left: -24px;
460
+ }
461
+
462
+ @media (max-width: 1449px) {
463
+ .rt-tab-content .field .checkbox-filter-field .tpg-hidden {
464
+ margin-left: 0;
465
+ }
466
+ }
467
+
468
+ .rt-tab-content .field .checkbox-filter-field .tpg-hidden .tpg-hidden {
469
+ margin-left: 0;
470
+ }
471
+
472
+ .rt-tab-content .field .checkbox-filter-field .tpg-hidden::before,
473
+ .rt-tab-content .field-holder .taxonomy-field::before {
474
+ content: '';
475
+ position: absolute;
476
+ height: 1px;
477
+ background-color: #D0DDE5;
478
+ bottom: -5px;
479
+ }
480
+
481
+ .rt-tab-content .field .checkbox-filter-field .tpg-hidden::before {
482
+ left: -18px;
483
+ width: calc(100% + 34px);
484
+ }
485
+
486
+ .rt-tab-content .field-holder .taxonomy-field::before {
487
+ left: -18px;
488
+ width: calc(100% + 34px);
489
+ }
490
+
491
+ .rt-tab-content .field .checkbox-filter-field:last-child .tpg-hidden::before {
492
+ content: none;
493
+ }
494
+
495
+ @media (min-width: 1450px) {
496
+ #sc-settings .field-holder .field::before,
497
+ #sc-post-post-source .field-holder .field::before {
498
+ content: "";
499
+ z-index: -1;
500
+ position: absolute;
501
+ top: 0;
502
+ left: 0;
503
+ width: 188px;
504
+ height: 100%;
505
+ opacity: 0.2;
506
+ background-image: linear-gradient(to left, #D0DDE5, #ECF7FE);
507
+ }
508
+
509
+ #sc-settings .field-holder .field .field::before,
510
+ #sc-settings #tpg_post_type_holder .field .field::before,
511
+ #sc-settings #tpg_post_type_holder .field .field::before,
512
+ #sc-post-post-source #ignore_sticky_posts_holder .field::before,
513
+ #sc-post-post-source .field-holder .field .field::before,
514
+ #sc-post-post-source #tpg_post_type_holder .field::before {
515
+ background-image: none;
516
+ }
517
+ }
518
+
519
+ .rt-tab-content .field-holder .field .field {
520
+ background: none !important;
521
+ padding: 0;
522
+ border: none;
523
+ }
524
+
525
+ .rt-tab-content .field-holder .field .field::before,
526
+ .rt-tab-content .field-holder .field .field::after {
527
+ content: none;
528
+ }
529
+
530
+ @media (max-width: 1450px) {
531
+ .rt-tab-content .field-holder .field .field {
532
+ width: 100%;
533
+ float: left;
534
+ }
535
+ }
536
+
537
+ .rt-tab-content .checkbox-filter-field .field-holder .field-holder {
538
+ padding: 0;
539
+ }
540
+
541
+ .rt-tab-content .field-holder .field-label label {
542
+ font-weight: bold;
543
  }
544
 
545
  .rt-tab-content .field-holder:after {
554
  padding: 10px;
555
  }
556
 
557
+ @media (max-width: 1449px) {
558
+ .rt-setting-holder .field-holder {
559
+ padding-left: 0;
560
+ }
561
+ }
562
+
563
  .rt-setting-holder .field-holder .field-label {
564
  margin-bottom: 10px;
565
  font-weight: bold;
566
  }
567
 
568
+ .rt-setting-holder .field-holder .field-label {
569
+ color: #212121;
570
+ }
571
+
572
+ .rt-setting-holder .field-holder .field-holder .field-label {
573
+ font-size: 14px;
574
+ }
575
+
576
+ .rt-setting-holder .field-holder .field-holder .field-holder .field-label {
577
+ font-size: 14px;
578
+ }
579
+
580
  .field-holder .checkbox-group > label {
581
  margin-right: 15px;
582
  }
618
  margin-bottom: 5px;
619
  }
620
 
621
+ input.medium-text {
622
+ width: 100px;
623
+ }
624
+
625
  input.large-text.code.rt-code-sc {
626
  color: #fff;
627
+ background: var(--rt-primary-color);
628
  font-weight: bold;
629
  }
630
 
639
  -webkit-border-radius: 3px;
640
  border-radius: 3px;
641
  width: 100%;
 
642
  height: 150px;
643
  position: relative;
644
  }
645
+
646
  /*----- Column -------*/
647
 
648
+ .rd-responsive-column .rt-3-column {
649
  display: inline-block;
650
+ width: calc(100% / 3 - 118px);
651
+ margin-right: 31px;
652
+ }
653
+
654
+ .rd-responsive-column .rt-3-column .field-label {
655
+ display: none;
656
  }
657
 
658
  .rt-tab-content .field-holder.rt-3-column .field-label label {
662
 
663
  .rt-tab-content .field-holder.rt-3-column .field {
664
  float: none;
665
+ width: 100%;
666
  }
667
 
668
  div#column_holder {
669
  position: relative;
670
  padding-left: 210px;
 
671
  }
672
 
673
  div#column_holder:before {
677
  left: 10px;
678
  width: 100px;
679
  font-weight: 700;
680
+ font-size: 16px;
681
  line-height: 1.4;
682
  }
683
 
684
+ @media (max-width: 1199px) {
 
 
 
 
 
 
 
 
 
 
685
  div#column_holder {
686
+ padding-left: 0;
 
687
  }
688
+
689
  div#tpg_mobile_column_holder {
690
+ padding-left: 0;
691
  border-top: none;
692
  }
693
  }
694
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
695
 
696
+ @media all and (max-width: 1199px) {
 
 
 
 
 
 
 
 
697
 
698
+ .rd-responsive-column .rt-3-column {
699
+ width: calc(100% / 3 - 31px);
 
 
 
 
 
 
 
 
 
 
 
700
  }
 
 
 
 
 
701
 
 
702
  .rt-tab-content .field-holder .field-label {
703
+ width: 100%;
704
  }
705
+
706
+ .rt-setting-holder .field-holder {
707
+ padding-left: 0;
708
+ padding-right: 0;
 
 
 
 
 
 
 
 
 
 
 
709
  }
710
+
711
+ .rt-tab-content .field-holder .field {
712
+ width: 100%;
713
+ float: left;
714
+ border: none;
715
+ padding: 0;
716
+ background: none;
717
  }
718
+
719
  .rt-3-column {
720
  width: 165px;
721
  }
722
+
723
+ }
724
+
725
+ @media (max-width: 767px) {
726
+ .rd-responsive-column .rt-3-column {
727
+ padding: 0;
728
+ margin: 0;
 
 
 
 
 
 
 
 
 
 
 
729
  }
730
  }
731
 
732
  @media all and (max-width: 991px) {
733
+
 
 
 
 
 
734
  .rt-3-column {
735
  width: 160px !important;
736
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
737
  }
738
 
739
  /* settings page */
774
  }
775
 
776
  .select2-results__option[aria-selected=true] {
777
+ background: #d5d9db;
778
+ border-bottom: 1px solid #ffffff;
779
  }
780
 
781
  /* date range */
820
  margin: 0;
821
  }
822
 
823
+ #default_preview_image_holder .field {
824
+ background: none;
825
+ padding: 0;
826
+ border: none;
827
+ margin-left: 4px;
828
+ float: left;
829
+ padding-top: 9px;
 
830
  }
831
 
832
  .rt-image-preview {
833
  width: 150px;
834
  height: 150px;
835
  display: inline-block;
836
+ background: #e7edf1;
837
  position: relative;
838
+ border: 1px solid #d9e3ed;
839
+ }
840
+
841
+ .rt-image-preview::before {
842
+ content: "\f128";
843
+ font: normal 40px/45px dashicons;
844
+ font-size: 60px;
845
+ color: #ededed;
846
+ position: absolute;
847
+ z-index: -1;
848
+ height: calc(100% - 20px);
849
+ width: calc(100% - 20px);
850
+ display: flex;
851
+ justify-content: center;
852
+ align-items: center;
853
  }
854
 
855
  /* image size field */
869
  display: block;
870
  }
871
 
872
+ span.dashicons.dashicons-plus-alt.rtAddImage,
873
+ span.dashicons.dashicons-trash.rtRemoveImage {
874
  position: absolute;
875
  cursor: pointer;
876
+ top: 0;
877
+ z-index: 99;
878
+ font-size: 15px;
879
+ padding: 4px 10px 2px;
880
+ color: #ffffff;
881
  }
882
 
883
  span.dashicons.dashicons-trash.rtRemoveImage {
884
+ background-color: #de0000;
885
+ right: 0;
 
886
  }
887
 
888
  span.dashicons.dashicons-plus-alt.rtAddImage {
889
+ background: green;
890
+ left: 0;
 
891
  }
892
 
893
  .pro-field .field-label {
896
 
897
  .pro-field .rttpg-tooltip {
898
  display: inline-block;
899
+ color: #de0000;
900
  line-height: 1.3;
901
  font-weight: 600;
902
  font-size: 14px;
957
 
958
  .rt-document-box .rt-box-icon i {
959
  font-size: 20px;
960
+ color: var(--rt-primary-color);
961
  }
962
 
963
  .rt-document-box .rt-box-content {
1021
  display: inline-block;
1022
  font-size: 15px;
1023
  font-weight: 400;
1024
+ color: var(--rt-primary-color);
1025
  text-decoration: none;
1026
  padding: 9px 18px;
1027
  border-radius: 4px;
1030
  line-height: 1.4;
1031
  transition: all 0.3s ease-in-out;
1032
  height: auto;
1033
+ border: 2px solid var(--rt-primary-color);
1034
  }
1035
 
1036
  body .rt-admin-btn:hover {
1038
  color: #ffffff;
1039
  text-decoration: none;
1040
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
1041
 
1042
  #custom_css_holder .description {
1043
  color: red;
1044
  }
1045
 
1046
  #rt-tpg-settings-form .rtSaveButton {
1047
+ background-color: var(--rt-primary-color);
1048
  padding: 8px 15px;
1049
  font-size: 15px;
1050
  font-weight: 500;
1072
  color: #000000;
1073
  background-color: #ffffff;
1074
  border-radius: 4px;
1075
+ padding: 0 0 13px;
1076
+ margin-bottom: 0;
1077
  }
1078
 
1079
  #rttpg_meta,
1090
 
1091
  /* ============== MetaBox END ================ */
1092
 
1093
+ /*--------- Layout -----------*/
1094
 
1095
+ .rt-tpg-radio-layout {
1096
+ margin-right: 10px;
1097
+ display: inline-block;
1098
+ margin-bottom: 10px;
1099
  }
1100
 
1101
+ .rttpg-radio-image [type=radio] {
1102
+ position: absolute;
1103
+ opacity: 0;
1104
+ width: 0;
1105
+ height: 0;
1106
+ }
1107
+
1108
+ .rttpg-radio-image [type=radio] + div.rttpg-radio-image-wrap {
1109
+ cursor: pointer;
1110
+ }
1111
+
1112
+ .rttpg-radio-image-wrap {
1113
+ position: relative;
1114
+ display: inline-flex;
1115
+ border: 1px solid #dfdfdf;
1116
+ }
1117
+
1118
+ .rttpg-radio-image-wrap img {
1119
+ max-width: 130px;
1120
+ }
1121
+
1122
+ .rttpg-radio-image [type=radio]:checked + div.rttpg-radio-image-wrap .rttpg-checked {
1123
+ display: block;
1124
+ }
1125
+
1126
+ .rttpg-checked {
1127
+ display: none;
1128
+ z-index: 99;
1129
+ background: #5d3dfd;
1130
+ height: auto;
1131
+ color: white;
1132
+ width: auto;
1133
+ position: absolute;
1134
+ top: 5px;
1135
+ right: 5px;
1136
+ border-radius: 50%;
1137
+ padding: 3px;
1138
+ }
1139
+
1140
+ #layout_holder {
1141
+ animation: fade-in 3s;
1142
+ }
1143
+
1144
+ #layout_holder .radio-image {
1145
+ animation: fade-in 0.4s;
1146
+ }
1147
+
1148
+ @keyframes fade-in {
1149
+ from {
1150
+ opacity: 0;
1151
+ }
1152
+ to {
1153
+ opacity: 1;
1154
  }
1155
+ }
1156
 
1157
+ .rttpg-radio-image .rttpg-demo-name {
1158
+ text-align: center;
1159
+ }
1160
+
1161
+ .rttpg-radio-image .rttpg-demo-name,
1162
+ .rttpg-radio-image .rttpg-demo-name a {
1163
+ color: #7c8387;
1164
+ text-decoration: none;
1165
+ }
1166
+
1167
+ .rttpg-radio-image .rttpg-demo-name a:hover {
1168
+ text-decoration: underline;
1169
+ }
1170
+
1171
+ .rt-tpg-layout-tag {
1172
+ position: absolute;
1173
+ right: 0;
1174
+ top: 0;
1175
+ z-index: 1;
1176
+ overflow: hidden;
1177
+ width: 50px;
1178
+ height: 50px;
1179
+ }
1180
+
1181
+ .rt-tpg-layout-tag span {
1182
+ font-size: 10px;
1183
+ font-weight: 700;
1184
+ color: #fff;
1185
+ text-transform: uppercase;
1186
+ text-align: center;
1187
+ line-height: 20px;
1188
+ transform: rotate(45deg);
1189
+ -webkit-transform: rotate(45deg);
1190
+ width: 67px;
1191
+ display: block;
1192
+ background: linear-gradient(#f70505,#8f0808);
1193
+ box-shadow: 0 3px 10px -5px #000;
1194
+ position: absolute;
1195
+ top: 7px;
1196
+ right: -17px;
1197
+ }
1198
+
1199
+ /* media */
1200
+
1201
+ @media (max-width: 1200px) {
1202
+ .field-inner.col-4 {
1203
+ width: 50%;
1204
  }
1205
  }
1206
 
1219
  }
1220
  }
1221
 
1222
+ @media (min-width: 1450px) {
1223
+ .checkbox-filter-field {
1224
+ display: flex;
1225
+ }
1226
+ }
1227
+
1228
+ @media (min-width: 1449px) {
1229
+ .checkbox-filter-field {
1230
+ padding-left: 15px;
1231
+ }
1232
+ }
1233
+
1234
+ #post_filter .checkbox-filter-field {
1235
+ margin-top: 10px;
1236
+ }
1237
+
1238
+ .checkbox-filter-field > label {
1239
+ width: 200px;
1240
+ font-size: 15px;
1241
+ color: #212121;
1242
+ }
1243
+
1244
+ .checkbox-filter-field .rt-tpg-filter {
1245
+ flex: 1;
1246
+ }
1247
+
1248
+ .checkbox-filter-field .rt-tpg-filter.taxonomy {
1249
+ display: inline-block;
1250
+ width: 100%;
1251
+ margin-bottom: 15px;
1252
+ }
1253
+
1254
+ .checkbox-filter-field .rt-tpg-filter.taxonomy .field-holder .field-holder {
1255
+ padding: 0;
1256
+ }
1257
+
1258
+ .checkbox-filter-field .rt-tpg-filter.taxonomy .field-holder .field-holder .field-label {
1259
+ color: #484848;
1260
+ float: none;
1261
+ font-weight: normal;
1262
+ }
1263
+
1264
+ .checkbox-filter-field .rt-tpg-filter.taxonomy .field-holder .field-holder .field {
1265
+ width: 100%;
1266
+ }
1267
+
1268
+ @media (max-width: 1449px) {
1269
+ .checkbox-filter-field .rt-tpg-filter.taxonomy .field-holder .field-holder {
1270
+ margin-bottom: 10px;
1271
+ }
1272
+ }
1273
+
1274
+ .checkbox-filter-field .rt-tpg-filter.taxonomy .field-holder.term-filter-item-relation {
1275
+ margin-bottom: 0;
1276
+ }
1277
+
1278
+ .checkbox-filter-field .rt-tpg-filter.order .rt-tpg-filter-item > .field-holder > .field,
1279
+ .checkbox-filter-field .rt-tpg-filter.date_range .field-holder .field,
1280
+ .checkbox-filter-field .rt-tpg-filter.author .field-holder .field,
1281
+ .checkbox-filter-field .rt-tpg-filter.tpg_post_status .field-holder .field {
1282
+ float: none;
1283
+ width: 100%;
1284
+ }
1285
+
1286
+ .checkbox-filter-field .rt-tpg-filter.date_range .field-holder {
1287
+ margin-bottom: 0;
1288
+ }
1289
+
1290
  /*The rttm-switch - the box around the rttm-switch-slider*/
1291
  .rttm-switch {
1292
  position: relative;
1310
  left: 0;
1311
  right: 0;
1312
  bottom: 0;
1313
+ background-color: #d3d6df;
1314
  -webkit-transition: .4s;
1315
  transition: .4s;
1316
  }
1328
  }
1329
 
1330
  input:checked + .rttm-switch-slider {
1331
+ background-color: var(--rt-primary-color);
1332
  }
1333
 
1334
  input:focus + .rttm-switch-slider {
1335
+ box-shadow: 0 0 1px var(--rt-primary-color);
1336
  }
1337
 
1338
  input:checked + .rttm-switch-slider:before {
1348
 
1349
  .rttm-switch-slider.round:before {
1350
  border-radius: 50%;
1351
+ }
1352
+
1353
+ .rt-setting-holder .rt-tab-content .tpg-multiple-field-group {
1354
+ display: flex;
1355
+ flex-wrap: wrap;
1356
+ }
1357
+
1358
+ .rt-setting-holder #sc-style .field-holder .field .field-label label,
1359
+ .rt-setting-holder #sc-style .field-holder .field .field-inner-container span.label {
1360
+ font-weight: 500 !important;
1361
+ color: #5e5e5e;
1362
+ }
1363
+
1364
+ .rt-setting-holder .rt-tab-content .tpg-multiple-field-group > div {
1365
+ flex: 0 0 calc(33.3333% - 15px);
1366
+ padding: 5px 15px 5px 0;
1367
+ margin-bottom: 0;
1368
+ border: none;
1369
+ position: relative;
1370
+ }
1371
+
1372
+ @media (min-width: 1200px) {
1373
+ .rt-setting-holder .rt-tab-content .category-style-wrapper .tpg-multiple-field-group > div,
1374
+ .rt-setting-holder .rt-tab-content .content-style-wrapper .tpg-multiple-field-group > div {
1375
+ flex: 0 0 calc(25% - 15px);
1376
+ }
1377
+
1378
+ .rt-setting-holder .rt-tab-content .content-style-wrapper .tpg-multiple-field-group #tpg_content_wrap_border_color_holder {
1379
+ flex-basis: 45%;
1380
+ }
1381
+
1382
+ .rt-setting-holder .rt-tab-content .category-style-wrapper .tpg-multiple-field-group #tpg_category_color_holder {
1383
+ flex-basis: 70%;
1384
+ }
1385
+ }
1386
+
1387
+ @media (max-width: 1724px) {
1388
+ .rt-setting-holder .rt-tab-content .tpg-multiple-field-group > div {
1389
+ flex: 0 0 calc(50% - 15px);
1390
+ }
1391
+ }
1392
+
1393
+ @media (max-width: 1199px) {
1394
+ .rt-setting-holder .rt-tab-content .tpg-multiple-field-group > div {
1395
+ flex: 0 0 100%;
1396
+ }
1397
+ }
1398
+
1399
+ .rt-setting-holder .rt-tab-content .tpg-multiple-field-group > div .field-label {
1400
+ float: none;
1401
+ width: auto;
1402
+ }
1403
+
1404
+ .rt-setting-holder .rt-tab-content .tpg-multiple-field-group > div .field-label label {
1405
+ font-weight: normal;
1406
+ }
1407
+
1408
+ .rt-setting-holder .rt-tab-content .tpg-multiple-field-group > div .field {
1409
+ float: none;
1410
+ width: auto;
1411
+ }
1412
+
1413
+
1414
+ /*==========================
1415
+ ## Select 2 style overwrite
1416
+ ============================*/
1417
+
1418
+ .post-type-rttpg .select2-container--classic .select2-selection--multiple .select2-selection__choice {
1419
+ background-color: #f7fafc;
1420
+ border: 1px solid #a2b1de;
1421
+ border-radius: 3px;
1422
+ padding: 3px 6px;
1423
+ transition: 0.4s;
1424
+ }
1425
+
1426
+ .post-type-rttpg .select2-container--classic .select2-selection--multiple .select2-selection__choice:hover {
1427
+ background-color: #ecf0f3;
1428
+ }
1429
+
1430
+ .post-type-rttpg .select2-container--classic.select2-container--open .select2-dropdown {
1431
+ border-color: #dde5e9;
1432
+ }
1433
+
1434
+ .post-type-rttpg .select2-container--classic .select2-selection--single .select2-selection__arrow {
1435
+ background-color: #E4EAFF;
1436
+ border: none !important;
1437
+ border-radius: 4px !important;
1438
+ height: 26px;
1439
+ width: 23px;
1440
+ background-image: none !important;
1441
+ top: 6px;
1442
+ right: 8px;
1443
+ transition: 0.4s;
1444
+ }
1445
+
1446
+ .post-type-rttpg .select2-container--classic .select2-selection--single .select2-selection__arrow:hover {
1447
+ background-color: var(--rt-primary-color);
1448
+ }
1449
+
1450
+ .post-type-rttpg .select2-container--classic .select2-selection--single .select2-selection__arrow:hover b {
1451
+ border-top-color: #ffffff;
1452
+ }
1453
+
1454
+ .post-type-rttpg .select2-container--classic .select2-selection--single .select2-selection__arrow b {
1455
+ border-top-color: var(--rt-primary-color);
1456
+ }
1457
+
1458
+ .post-type-rttpg .select2-container--classic .select2-selection--single,
1459
+ .post-type-rttpg .select2-container--classic.select2-container--open.select2-container--below .select2-selection--single {
1460
+ background-image: none !important;
1461
+ }
1462
+
1463
+ .post-type-rttpg .select2-container--classic .select2-selection--single .select2-selection__rendered {
1464
+ line-height: 36px;
1465
+ }
1466
+
1467
+ .post-type-rttpg .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {
1468
+ color: #d11111;
1469
+ }
1470
+
1471
+ /*WP Color Picker*/
1472
+
1473
+ .post-type-rttpg .wp-picker-container .wp-color-result.button {
1474
+ border: 1px solid #B8CAD6 !important;
1475
+ height: 40px;
1476
+ padding: 0;
1477
+ text-align: left;
1478
+ position: relative;
1479
+ width: 140px;
1480
+ overflow: hidden;
1481
+ transition: 0.3s;
1482
+ }
1483
+
1484
+ .post-type-rttpg .wp-picker-container .wp-color-result.button .wp-color-result-text {
1485
+ background: transparent;
1486
+ border-radius: 0;
1487
+ border: none;
1488
+ color: #50575e;
1489
+ position: absolute;
1490
+ background-image: url('data:image/svg+xml;utf8,<svg width="141" height="40" viewBox="0 0 141 40" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M141 0H0V40H141V0ZM98.7091 8C97.0522 8 95.7091 9.34315 95.7091 11V29C95.7091 30.6569 97.0522 32 98.7091 32H131.164C132.82 32 134.164 30.6569 134.164 29V11C134.164 9.34315 132.82 8 131.164 8H98.7091Z" fill="white"/></svg> ');
1491
+ top: 0;
1492
+ left: 0;
1493
+ width: 100%;
1494
+ height: 100%;
1495
+ background-size: contain;
1496
+ text-align: left;
1497
+ line-height: 36px;
1498
+ padding-left: 9px;
1499
+ font-size: 13px;
1500
+ font-weight: 500;
1501
+ z-index: 1;
1502
+ }
1503
+
1504
+ .post-type-rttpg .wp-picker-container .wp-color-result.button .wp-color-result-text::before {
1505
+ content: "";
1506
+ width: 87px;
1507
+ background-color: #fff;
1508
+ height: 100%;
1509
+ left: 0;
1510
+ top: 0;
1511
+ z-index: -1;
1512
+ display: block;
1513
+ position: absolute;
1514
+ }
1515
+
1516
+ .post-type-rttpg .wp-picker-container .wp-color-result.button .wp-color-result-text::after {
1517
+ content: "";
1518
+ left: 90px;
1519
+ top: 7px;
1520
+ display: block;
1521
+ position: absolute;
1522
+ width: 36px;
1523
+ height: 22px;
1524
+ border: .5px solid #95a1a9;
1525
+ border-radius: 5px;
1526
+ opacity: 0.2;
1527
+ mix-blend-mode: inherit;
1528
+ }
1529
+
1530
+ .post-type-rttpg .wp-picker-input-wrap .button.wp-picker-clear,
1531
+ .post-type-rttpg .wp-picker-container input[type=text].wp-color-picker {
1532
+ min-height: 40px;
1533
+ border: 1px solid #b8cad6;
1534
+ background: white;
1535
+ }
assets/css/thepostgrid.css CHANGED
@@ -416,7 +416,10 @@ body.rt-model-open,
416
  display: table;
417
  }
418
 
419
- .clearfix:after, .rt-container:after, .rt-container-fluid:after, .rt-row:after {
 
 
 
420
  clear: both;
421
  }
422
 
@@ -425,6 +428,31 @@ body.rt-model-open,
425
  margin-right: -15px;
426
  }
427
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
428
  .rt-col-xs-1, .rt-col-sm-1, .rt-col-md-1, .rt-col-lg-1, .rt-col-xs-2, .rt-col-sm-2, .rt-col-md-2, .rt-col-lg-2, .rt-col-xs-3, .rt-col-sm-3, .rt-col-md-3, .rt-col-lg-3, .rt-col-xs-4, .rt-col-sm-4, .rt-col-md-4, .rt-col-lg-4, .rt-col-xs-5, .rt-col-sm-5, .rt-col-md-5, .rt-col-lg-5, .rt-col-xs-6, .rt-col-sm-6, .rt-col-md-6, .rt-col-lg-6, .rt-col-xs-7, .rt-col-sm-7, .rt-col-md-7, .rt-col-lg-7, .rt-col-xs-8, .rt-col-sm-8, .rt-col-md-8, .rt-col-lg-8, .rt-col-xs-9, .rt-col-sm-9, .rt-col-md-9, .rt-col-lg-9, .rt-col-xs-10, .rt-col-sm-10, .rt-col-md-10, .rt-col-lg-10, .rt-col-xs-11, .rt-col-sm-11, .rt-col-md-11, .rt-col-lg-11, .rt-col-xs-12, .rt-col-sm-12, .rt-col-md-12, .rt-col-lg-12, .rt-col-xs-24, .rt-col-sm-24, .rt-col-md-24, .rt-col-lg-24 {
429
  position: relative;
430
  min-height: 1px;
@@ -497,10 +525,55 @@ body.rt-model-open,
497
  margin: 0px 0px 12px;
498
  }
499
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
500
  .rt-tpg-container .offset-big h3.entry-title {
501
  margin: 20px 0px 15px;
502
  }
503
 
 
 
 
 
 
504
  .rt-tpg-container .owl-controls .owl-dots {
505
  margin-top: 15px;
506
  }
@@ -511,10 +584,26 @@ body.rt-model-open,
511
 
512
  /************************ Common ***************************/
513
 
514
- .rt-tpg-container .rt-equal-height, .rt-tpg-container .masonry-grid-item, .rt-tpg-container .even-grid-item {
 
515
  margin-bottom: 30px;
516
  }
517
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
518
  .rt-tpg-container button {
519
  border: none;
520
  padding: 10px 15px;
@@ -542,6 +631,17 @@ body.rt-model-open,
542
  height: auto;
543
  }
544
 
 
 
 
 
 
 
 
 
 
 
 
545
  .rt-tpg-container .no-margin {
546
  margin: 0px !important;
547
  padding: 0px !important;
@@ -559,17 +659,48 @@ span.more-loading {
559
  margin: 30px 0 20px;
560
  }
561
 
562
- .post-meta-user, .post-meta-tags {
 
563
  padding: 0px;
564
  margin-bottom: 10px;
565
  line-height: 1.5;
566
  font-size: 95%;
567
  }
568
 
 
 
 
 
 
 
 
 
 
 
 
569
  .post-meta-user span, .post-meta-tags span {
570
  display: inline-block;
571
  padding-right: 8px;
572
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
573
  .post-meta-user span.rt-separator, .post-meta-tags span.rt-separator {
574
  display: inline-block;
575
  padding-right: 5px;
@@ -606,7 +737,7 @@ span.more-loading {
606
  }
607
 
608
  .rt-tpg-container .rt-holder .read-more a {
609
- padding: 8px 15px;
610
  font-size: 15px;
611
  display: inline-block;
612
  line-height: 1.5;
@@ -616,6 +747,16 @@ span.more-loading {
616
  margin-bottom: 10px;
617
  }
618
 
 
 
 
 
 
 
 
 
 
 
619
  /* isotope Buttons */
620
 
621
  .rt-tpg-container .tpg-iso-filter {
@@ -659,23 +800,80 @@ span.more-loading {
659
  text-shadow: none !important;
660
  }
661
 
662
- .rt-tpg-container .owl-theme .owl-nav {
663
- margin-top: 0;
 
 
 
 
 
 
664
  }
665
 
666
- .rt-tpg-container .owl-nav {
667
- position: absolute;
668
- top: -40px !important;
669
- right: 0;
 
 
 
 
 
 
 
 
 
 
 
670
  }
671
 
672
- .rt-tpg-container .owl-theme .owl-controls .owl-nav > div {
673
- padding: 4px 10px;
 
674
 
 
 
 
675
  }
676
 
677
- .rt-tpg-container .owl-theme .owl-controls i {
678
- margin-right: 0px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
679
  }
680
 
681
  /* loader */
@@ -1069,6 +1267,7 @@ body > .rt-tooltip {
1069
  padding: 5px 10px;
1070
  border-width: 2px;
1071
  opacity: 0;
 
1072
  -webkit-transition: opacity 1s ease-in-out;
1073
  -moz-transition: opacity 1s ease-in-out;
1074
  -ms-transition: opacity 1s ease-in-out;
@@ -1082,7 +1281,7 @@ body > .rt-tooltip .rt-tooltip-content {
1082
 
1083
  body > .rt-tooltip,
1084
  body > .rt-tooltip .rt-tooltip-bottom:after {
1085
- background: #666;
1086
  border-radius: 2px;
1087
  }
1088
 
@@ -1114,6 +1313,15 @@ body > .rt-tooltip .rt-tooltip-bottom:after {
1114
  text-decoration: none;
1115
  }
1116
 
 
 
 
 
 
 
 
 
 
1117
  /*********************************************************************
1118
  /********************************* Layout 1 *************************/
1119
  /**********************************************************************/
@@ -1146,11 +1354,36 @@ body > .rt-tooltip .rt-tooltip-bottom:after {
1146
  transform: scale(1.1);
1147
  }
1148
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1149
  .rt-tpg-container .layout1 .rt-holder .rt-detail,
1150
  .rt-tpg-container .isotope1 .rt-holder .rt-detail,
1151
  .rt-tpg-container .carousel1 .rt-holder .rt-detail {
1152
  background: #fff;
1153
- padding: 15px 0 0;
1154
  }
1155
 
1156
  .rt-tpg-container .layout1 .rt-holder .rt-detail h2,
@@ -1177,7 +1410,11 @@ body > .rt-tooltip .rt-tooltip-bottom:after {
1177
  .rt-tpg-container .carousel1 .rt-holder .rt-detail.rt-with-title h2,
1178
  .rt-tpg-container .carousel1 .rt-holder .rt-detail.rt-with-title h3,
1179
  .rt-tpg-container .carousel1 .rt-holder .rt-detail.rt-with-title h4 {
1180
- margin-bottom: 5px;
 
 
 
 
1181
  }
1182
 
1183
  .rt-tpg-container .layout1 .rt-detail .tpg-excerpt,
@@ -1199,6 +1436,7 @@ body > .rt-tooltip .rt-tooltip-bottom:after {
1199
  display: inline-block;
1200
  font-size: 15px;
1201
  line-height: 1.8;
 
1202
  }
1203
 
1204
  .rt-tpg-container .layout1 .rt-holder .rt-detail .read-more a,
@@ -1215,6 +1453,10 @@ body > .rt-tooltip .rt-tooltip-bottom:after {
1215
  text-align: center;
1216
  }
1217
 
 
 
 
 
1218
  /**********************************************************************/
1219
  /********************************* Layout 2 *************************/
1220
  /**********************************************************************/
@@ -1241,6 +1483,31 @@ body > .rt-tooltip .rt-tooltip-bottom:after {
1241
  transform: scale(1.1);
1242
  }
1243
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1244
  .rt-tpg-container .layout2 .rt-holder .rt-detail h2,
1245
  .rt-tpg-container .layout2 .rt-holder .rt-detail h3,
1246
  .rt-tpg-container .layout2 .rt-holder .rt-detail h4 {
@@ -1255,7 +1522,6 @@ body > .rt-tooltip .rt-tooltip-bottom:after {
1255
  }
1256
 
1257
  .rt-tpg-container .layout2 .rt-holder .rt-detail .read-more a {
1258
- padding: 8px 15px;
1259
  line-height: 1.8;
1260
  border-radius: 5px;
1261
  display: inline-block;
@@ -1319,13 +1585,14 @@ body > .rt-tooltip .rt-tooltip-bottom:after {
1319
  }
1320
 
1321
  .rt-tpg-container .layout3 .rt-holder .rt-detail .read-more a {
1322
- padding: 8px 15px;
1323
  line-height: 1.8;
1324
  display: inline-block;
1325
  }
1326
 
 
1327
  .rt-tpg-container .layout3 .rt-holder .rt-img-holder > a.rounded img {
1328
  border-radius: 50%;
 
1329
  }
1330
 
1331
  .rt-tpg-container .layout3 .rt-holder .rt-detail .read-more {
@@ -1346,133 +1613,809 @@ body > .rt-tooltip .rt-tooltip-bottom:after {
1346
  }
1347
 
1348
  /**********************************************************************/
1349
- /********************************* pagination *************************/
1350
  /**********************************************************************/
1351
- .rt-tpg-container .rt-pagination-wrap .rt-cb-page-prev-next > * {
1352
- margin-left: 1px;
1353
- margin-right: 1px;
1354
- font-size: 16px;
1355
- line-height: 1.55;
1356
- display: inline-block;
1357
- width: 30px;
1358
- height: 30px;
1359
- text-align: center;
1360
- font-size: 18px;
1361
- background-color: #bcbcbc;
1362
- color: #fff;
1363
- line-height: 30px;
1364
- bottom: auto;
1365
- cursor: pointer;
1366
- transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out, opacity 0.2s ease-in-out, visibility 0.2s ease-in-out;
1367
- -webkit-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out, opacity 0.2s ease-in-out, visibility 0.2s ease-in-out;
1368
- -ms-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out, opacity 0.2s ease-in-out, visibility 0.2s ease-in-out;
1369
  }
1370
 
1371
- .rt-tpg-container .rt-pagination-wrap .rt-cb-page-prev-next > * i {
1372
- line-height: 1;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1373
  }
1374
 
1375
- .rt-tpg-container .rt-pagination-wrap .rt-cb-page-prev-next > .rt-disabled {
1376
- opacity: 0.5;
1377
- pointer-events: none;
 
 
 
 
 
 
1378
  }
1379
 
1380
- .rt-cb-page-prev-next {
1381
- text-align: left;
 
 
 
1382
  }
1383
 
1384
- .rt-tpg-container .rt-pagination-wrap .rt-loadmore-style .rt-loadmore-loading {
 
1385
  color: #fff;
1386
- position: absolute;
1387
- top: 50%;
1388
- left: 50%;
1389
- margin-top: -32px;
1390
- margin-left: -32px;
1391
- visibility: hidden;
1392
  opacity: 0;
 
1393
  }
1394
 
1395
- .rt-ball-scale-multiple.rt-2x {
1396
- width: 64px;
1397
- height: 64px;
1398
  }
1399
 
1400
- .rt-ball-scale-multiple.rt-2x > div {
1401
- width: 64px;
1402
- height: 64px;
 
 
 
 
 
 
1403
  }
1404
 
1405
- .rt-ball-scale-multiple, .rt-ball-scale-multiple > div {
1406
- position: relative;
1407
- -webkit-box-sizing: border-box;
1408
- -moz-box-sizing: border-box;
1409
- box-sizing: border-box;
 
 
 
 
 
 
 
 
 
 
 
 
1410
  }
1411
 
1412
- .rt-ball-scale-multiple > div {
1413
- display: inline-block;
1414
- float: none;
1415
- background-color: currentColor;
1416
- border: 0 solid currentColor;
 
 
 
 
 
 
 
 
1417
  }
1418
 
1419
- .rt-ball-scale-multiple > div:nth-child(2) {
1420
- -webkit-animation-delay: .2s;
1421
- -moz-animation-delay: .2s;
1422
- -o-animation-delay: .2s;
1423
- animation-delay: .2s;
 
1424
  }
1425
 
1426
- .rt-ball-scale-multiple > div {
1427
- position: absolute;
1428
- top: 0;
1429
- left: 0;
1430
- width: 32px;
1431
- height: 32px;
1432
- border-radius: 100%;
1433
- opacity: 0;
1434
- -webkit-animation: ball-scale-multiple 1s 0s linear infinite;
1435
- -moz-animation: ball-scale-multiple 1s 0s linear infinite;
1436
- -o-animation: ball-scale-multiple 1s 0s linear infinite;
1437
- animation: ball-scale-multiple 1s 0s linear infinite;
1438
  }
1439
 
1440
- .rt-tpg-container .rt-pagination-wrap {
1441
- text-align: center;
1442
- margin-top: 10px;
 
 
1443
  }
1444
 
1445
- .rt-tpg-container .rt-pagination-wrap .rt-loadmore-style {
1446
- cursor: pointer;
1447
- position: relative;
1448
- user-select: none;
1449
- -webkit-user-select: none;
1450
  }
1451
 
1452
- .rt-tpg-container .rt-pagination-wrap .rt-loadmore-style.rt-hidden-elm,
1453
- .rt-tpg-container .rt-pagination-wrap .rt-infinite-action.rt-hidden-elm,
1454
- .rt-tpg-container .rt-pagination-wrap .rt-page-numbers.rt-hidden-elm,
1455
- .rt-tpg-container .rt-pagination-wrap .rt-cb-page-prev-next.rt-hidden-elm {
1456
- display: none !important;
1457
  }
1458
 
1459
- .rt-tpg-container .rt-pagination-wrap .rt-loadmore-style.rt-lm-loading .rt-loadmore-text {
 
 
 
 
 
1460
  opacity: 0;
1461
- visibility: hidden;
1462
  }
1463
 
1464
- .rt-tpg-container .rt-pagination-wrap .rt-loadmore-style.rt-lm-loading .rt-loadmore-loading {
 
 
 
1465
  opacity: 1;
1466
- visibility: visible;
1467
  }
1468
 
1469
- .rt-tpg-container .rt-pagination-wrap .rt-loadmore-btn {
1470
- font-size: 13px;
1471
- letter-spacing: 0.1em;
1472
- text-transform: uppercase;
1473
- margin-top: 30px;
1474
- color: #fff;
1475
- background-color: #fb4c35;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1476
  text-decoration: none;
1477
  padding: 9px 20px 8px 20px;
1478
  display: inline-block;
@@ -1721,9 +2664,6 @@ body > .rt-tooltip .rt-tooltip-bottom:after {
1721
  width: 8.33333333%;
1722
  }
1723
 
1724
- .rt-carousel-holder.owl-carousel.owl-theme [class*='rt-col-sm-'] {
1725
- width: 100%;
1726
- }
1727
  }
1728
 
1729
  @media (min-width: 992px) {
@@ -1783,9 +2723,6 @@ body > .rt-tooltip .rt-tooltip-bottom:after {
1783
  width: 8.33333333%;
1784
  }
1785
 
1786
- .rt-carousel-holder.owl-carousel.owl-theme [class*='rt-col-md-'] {
1787
- width: 100%;
1788
- }
1789
  }
1790
 
1791
  @media (min-width: 1200px) {
@@ -1845,9 +2782,6 @@ body > .rt-tooltip .rt-tooltip-bottom:after {
1845
  width: 8.33333333%;
1846
  }
1847
 
1848
- .rt-carousel-holder.owl-carousel.owl-theme [class*='rt-col-lg-'] {
1849
- width: 100%;
1850
- }
1851
  }
1852
 
1853
  /**********************************************************************/
@@ -1989,16 +2923,19 @@ body > .rt-tooltip .rt-tooltip-bottom:after {
1989
  transform: rotate(360deg);
1990
  }
1991
  }
 
1992
  .rt-container-fluid {
1993
  position: relative;
1994
  }
 
1995
  #bottom-script-loader {
1996
  position: absolute;
1997
  width: 100%;
1998
  height: 100%;
1999
  z-index: 99999;
2000
- background: rgba(255,255,255,0.8);
2001
  }
 
2002
  #bottom-script-loader .rt-ball-clip-rotate {
2003
  color: #fb4c35;
2004
  position: absolute;
@@ -2006,4 +2943,435 @@ body > .rt-tooltip .rt-tooltip-bottom:after {
2006
  left: 50%;
2007
  margin-left: -16px;
2008
  z-index: 2;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2009
  }
416
  display: table;
417
  }
418
 
419
+ .clearfix:after,
420
+ .rt-container:after,
421
+ .rt-container-fluid:after,
422
+ .rt-row:after {
423
  clear: both;
424
  }
425
 
428
  margin-right: -15px;
429
  }
430
 
431
+ .rt-row > .rt-row {
432
+ padding-left: 15px;
433
+ padding-right: 15px;
434
+ }
435
+
436
+ .grid_hover6.rt-row {
437
+ margin-left: -2px;
438
+ margin-right: -2px;
439
+ }
440
+
441
+ .rt-tpg-container .grid_hover6 .rt-grid-item {
442
+ padding: 0 2px;
443
+ margin-bottom: 4px;
444
+ }
445
+
446
+ .rt-tpg-container .grid_hover7 .rt-grid-item .post-img img,
447
+ .rt-tpg-container .grid_hover6 .rt-grid-item .post-img img {
448
+ min-height: 350px;
449
+ object-fit: cover;
450
+ }
451
+
452
+ .grid_hover4 .rt-grid-item {
453
+ padding: 0;
454
+ }
455
+
456
  .rt-col-xs-1, .rt-col-sm-1, .rt-col-md-1, .rt-col-lg-1, .rt-col-xs-2, .rt-col-sm-2, .rt-col-md-2, .rt-col-lg-2, .rt-col-xs-3, .rt-col-sm-3, .rt-col-md-3, .rt-col-lg-3, .rt-col-xs-4, .rt-col-sm-4, .rt-col-md-4, .rt-col-lg-4, .rt-col-xs-5, .rt-col-sm-5, .rt-col-md-5, .rt-col-lg-5, .rt-col-xs-6, .rt-col-sm-6, .rt-col-md-6, .rt-col-lg-6, .rt-col-xs-7, .rt-col-sm-7, .rt-col-md-7, .rt-col-lg-7, .rt-col-xs-8, .rt-col-sm-8, .rt-col-md-8, .rt-col-lg-8, .rt-col-xs-9, .rt-col-sm-9, .rt-col-md-9, .rt-col-lg-9, .rt-col-xs-10, .rt-col-sm-10, .rt-col-md-10, .rt-col-lg-10, .rt-col-xs-11, .rt-col-sm-11, .rt-col-md-11, .rt-col-lg-11, .rt-col-xs-12, .rt-col-sm-12, .rt-col-md-12, .rt-col-lg-12, .rt-col-xs-24, .rt-col-sm-24, .rt-col-md-24, .rt-col-lg-24 {
457
  position: relative;
458
  min-height: 1px;
525
  margin: 0px 0px 12px;
526
  }
527
 
528
+ .rt-tpg-container .offset-small-wrap .rt-holder .overlay {
529
+ min-height: 60px !important;
530
+ }
531
+
532
+ .rt-tpg-container .offset-small-wrap .rt-holder .rt-img-responsive {
533
+ height: auto;
534
+ width: 100%;
535
+ object-fit: cover;
536
+ }
537
+
538
+ .rt-tpg-container .offset-small-wrap .rt-col-md-6 .rt-holder .rt-img-responsive {
539
+ height: auto;
540
+ }
541
+
542
+ .rt-tpg-container .offset-small-wrap .rt-holder .overlay h3 a {
543
+ overflow: hidden !important;
544
+ text-overflow: ellipsis !important;
545
+ display: -webkit-box !important;
546
+ -webkit-line-clamp: 1 !important;
547
+ -webkit-box-orient: vertical;
548
+ }
549
+
550
+ @media (max-width: 991px) {
551
+ .rt-tpg-container h3.entry-title a {
552
+ overflow: hidden !important;
553
+ text-overflow: ellipsis !important;
554
+ display: -webkit-box !important;
555
+ -webkit-line-clamp: 2 !important;
556
+ -webkit-box-orient: vertical;
557
+ }
558
+ }
559
+
560
+ .rt-tpg-container .offset-big .post-meta-user.above_title {
561
+ margin-top: 15px;
562
+ }
563
+
564
+ .rt-tpg-container .offset-big .post-meta-user.above_title + h3.entry-title {
565
+ margin-top: 0;
566
+ }
567
+
568
  .rt-tpg-container .offset-big h3.entry-title {
569
  margin: 20px 0px 15px;
570
  }
571
 
572
+ .rt-tpg-container .offset-big .cat-above-title {
573
+ margin-bottom: -15px;
574
+ padding-top: 10px;
575
+ }
576
+
577
  .rt-tpg-container .owl-controls .owl-dots {
578
  margin-top: 15px;
579
  }
584
 
585
  /************************ Common ***************************/
586
 
587
+ .rt-tpg-container .masonry-grid-item,
588
+ .rt-tpg-container .even-grid-item {
589
  margin-bottom: 30px;
590
  }
591
 
592
+ .rt-tpg-container .list_layout1 .masonry-grid-item,
593
+ .rt-tpg-container .list_layout1 .even-grid-item,
594
+ .rt-tpg-container .grid_hover5 .masonry-grid-item,
595
+ .rt-tpg-container .grid_hover5 .even-grid-item,
596
+ .rt-tpg-container .grid_hover4 .masonry-grid-item,
597
+ .rt-tpg-container .grid_hover4 .even-grid-item,
598
+ .rt-tpg-container .grid_hover3 .masonry-grid-item,
599
+ .rt-tpg-container .grid_hover3 .even-grid-item,
600
+ .rt-tpg-container .grid_hover2 .masonry-grid-item,
601
+ .rt-tpg-container .grid_hover2 .even-grid-item,
602
+ .rt-tpg-container .grid_hover1 .masonry-grid-item,
603
+ .rt-tpg-container .grid_hover1 .even-grid-item {
604
+ margin-bottom: initial;
605
+ }
606
+
607
  .rt-tpg-container button {
608
  border: none;
609
  padding: 10px 15px;
631
  height: auto;
632
  }
633
 
634
+ .layout3 .rt-img-responsive {
635
+ display: inline-block;
636
+ }
637
+
638
+ @media (max-width: 991px) {
639
+ .rt-img-holder > a,
640
+ .rt-img-responsive {
641
+ width: 100%;
642
+ }
643
+ }
644
+
645
  .rt-tpg-container .no-margin {
646
  margin: 0px !important;
647
  padding: 0px !important;
659
  margin: 30px 0 20px;
660
  }
661
 
662
+ .post-meta-user,
663
+ .post-meta-tags {
664
  padding: 0px;
665
  margin-bottom: 10px;
666
  line-height: 1.5;
667
  font-size: 95%;
668
  }
669
 
670
+ .list_layout2 .post-meta-user,
671
+ .list_layout2 .post-meta-tags {
672
+ font-size: 14px;
673
+ color: #A5A6AA;
674
+ }
675
+
676
+ .rt-content-loader.layout14 .post-meta-user,
677
+ .rt-content-loader.layout14 .post-meta-tags {
678
+ margin-bottom: 0;
679
+ }
680
+
681
  .post-meta-user span, .post-meta-tags span {
682
  display: inline-block;
683
  padding-right: 8px;
684
  }
685
+
686
+ .offset06 .post-meta-user span,
687
+ .offset06 .post-meta-tags span {
688
+ font-weight: 500;
689
+ padding-right: 15px;
690
+ font-size: 14px;
691
+ color: #A5A6AA;
692
+ }
693
+
694
+ .offset06 .post-meta-user span a,
695
+ .offset06 .post-meta-tags span a {
696
+ color: #444444;
697
+ }
698
+
699
+ .offset06 .post-meta-user span a:hover,
700
+ .offset06 .post-meta-tags span a:hover {
701
+ color: #2962ff;
702
+ }
703
+
704
  .post-meta-user span.rt-separator, .post-meta-tags span.rt-separator {
705
  display: inline-block;
706
  padding-right: 5px;
737
  }
738
 
739
  .rt-tpg-container .rt-holder .read-more a {
740
+ /*padding: 8px 15px;*/
741
  font-size: 15px;
742
  display: inline-block;
743
  line-height: 1.5;
747
  margin-bottom: 10px;
748
  }
749
 
750
+ @media (max-width: 991px) {
751
+ .rt-tpg-container .rt-holder .tpg-excerpt {
752
+ overflow: hidden !important;
753
+ text-overflow: ellipsis !important;
754
+ display: -webkit-box !important;
755
+ -webkit-line-clamp: 3 !important;
756
+ -webkit-box-orient: vertical;
757
+ }
758
+ }
759
+
760
  /* isotope Buttons */
761
 
762
  .rt-tpg-container .tpg-iso-filter {
800
  text-shadow: none !important;
801
  }
802
 
803
+ /* --------------------------
804
+ Social share List View
805
+ -----------------*/
806
+ .rt-tpg-social-share {
807
+ display: inline-block;
808
+ margin: 0px 0;
809
+ float: left;
810
+ font-weight: bold;
811
  }
812
 
813
+ .rt-tpg-social-share:after {
814
+ display: block;
815
+ clear: both;
816
+ content: '';
817
+ }
818
+
819
+ .rt-tpg-social-share a {
820
+ display: inline-block;
821
+ padding: 3px 6px;
822
+ margin-right: 0px;
823
+ outline: none;
824
+ }
825
+
826
+ .rt-tpg-social-share a:first-child {
827
+ padding-left: 0;
828
  }
829
 
830
+ .rt-tpg-social-share a:first-child {
831
+ padding-right: 0;
832
+ }
833
 
834
+ .rt-tpg-social-share a i {
835
+ font-size: 16px;
836
+ outline: none;
837
  }
838
 
839
+ .rt-tpg-container .rt-tpg-social-share a.facebook i {
840
+ color: #3b5998;
841
+ }
842
+
843
+ .rt-tpg-container .rt-tpg-social-share a.facebook:hover i {
844
+ color: #456dc2;
845
+ }
846
+
847
+ .rt-tpg-container .rt-tpg-social-share a.twitter i {
848
+ color: #00aced;
849
+ }
850
+
851
+ .rt-tpg-container .rt-tpg-social-share a.twitter:hover i {
852
+ color: #1ab8f5;
853
+ }
854
+
855
+ .rt-tpg-container .rt-tpg-social-share a.linkedin i {
856
+ color: #007bb6;
857
+ }
858
+
859
+ .rt-tpg-container .layout16 .rt-tpg-social-share a.linkedin i {
860
+ color: #289bd3;
861
+ }
862
+
863
+ .rt-tpg-container .rt-tpg-social-share a.linkedin:hover i {
864
+ color: #289bd3;
865
+ }
866
+
867
+ .rt-tpg-container .rt-tpg-social-share a.pinterest i {
868
+ color: #cb2027;
869
+ }
870
+
871
+ .rt-tpg-container .rt-tpg-social-share a.reddit i {
872
+ color: rgb(255, 69, 0);
873
+ }
874
+
875
+ .rt-tpg-container .rt-tpg-social-share a.email i {
876
+ color: #0489c9;
877
  }
878
 
879
  /* loader */
1267
  padding: 5px 10px;
1268
  border-width: 2px;
1269
  opacity: 0;
1270
+ pointer-events: none;
1271
  -webkit-transition: opacity 1s ease-in-out;
1272
  -moz-transition: opacity 1s ease-in-out;
1273
  -ms-transition: opacity 1s ease-in-out;
1281
 
1282
  body > .rt-tooltip,
1283
  body > .rt-tooltip .rt-tooltip-bottom:after {
1284
+ background: #000;
1285
  border-radius: 2px;
1286
  }
1287
 
1313
  text-decoration: none;
1314
  }
1315
 
1316
+ .categories-links {
1317
+ display: inline-block;
1318
+ line-height: 1.3;
1319
+ }
1320
+
1321
+ .rt-tpg-container .rt-holder {
1322
+ overflow: hidden;
1323
+ }
1324
+
1325
  /*********************************************************************
1326
  /********************************* Layout 1 *************************/
1327
  /**********************************************************************/
1354
  transform: scale(1.1);
1355
  }
1356
 
1357
+ .rt-tpg-container .layout1 .img_zoom_out .rt-holder .rt-img-holder img {
1358
+ -webkit-transform: scale(1.1);
1359
+ -moz-transform: scale(1.1);
1360
+ -ms-transform: scale(1.1);
1361
+ -o-transform: scale(1.1);
1362
+ transform: scale(1.1);
1363
+ }
1364
+
1365
+ .rt-tpg-container .layout1 .img_no_effect .rt-holder .rt-img-holder:hover img,
1366
+ .rt-tpg-container .layout1 .img_zoom_out .rt-holder .rt-img-holder:hover img {
1367
+ -webkit-transform: scale(1);
1368
+ -moz-transform: scale(1);
1369
+ -ms-transform: scale(1);
1370
+ -o-transform: scale(1);
1371
+ transform: scale(1);
1372
+ }
1373
+
1374
+ .rt-tpg-container .layout1 .rt-holder,
1375
+ .rt-tpg-container .isotope1 .rt-holder,
1376
+ .rt-tpg-container .carousel1 .rt-holder {
1377
+ box-shadow: 0px 0px 2px 0px rgba(0, 0, 0, 0.3);
1378
+ -webkit-box-shadow: 0px 0px 2px 0px rgba(0, 0, 0, 0.3);
1379
+ -moz-box-shadow: 0px 0px 2px 0px rgba(0, 0, 0, 0.3);
1380
+ }
1381
+
1382
  .rt-tpg-container .layout1 .rt-holder .rt-detail,
1383
  .rt-tpg-container .isotope1 .rt-holder .rt-detail,
1384
  .rt-tpg-container .carousel1 .rt-holder .rt-detail {
1385
  background: #fff;
1386
+ padding: 15px;
1387
  }
1388
 
1389
  .rt-tpg-container .layout1 .rt-holder .rt-detail h2,
1410
  .rt-tpg-container .carousel1 .rt-holder .rt-detail.rt-with-title h2,
1411
  .rt-tpg-container .carousel1 .rt-holder .rt-detail.rt-with-title h3,
1412
  .rt-tpg-container .carousel1 .rt-holder .rt-detail.rt-with-title h4 {
1413
+ margin-bottom: 15px;
1414
+ }
1415
+
1416
+ .rt-tpg-container .rt-holder .rt-detail.rt-with-title {
1417
+ padding-top: 0;
1418
  }
1419
 
1420
  .rt-tpg-container .layout1 .rt-detail .tpg-excerpt,
1436
  display: inline-block;
1437
  font-size: 15px;
1438
  line-height: 1.8;
1439
+ border: 1px solid rgb(203 203 203 / 40%)
1440
  }
1441
 
1442
  .rt-tpg-container .layout1 .rt-holder .rt-detail .read-more a,
1453
  text-align: center;
1454
  }
1455
 
1456
+ .tpg-img-circle .rt-img-holder img {
1457
+ border-radius: 50% !important;
1458
+ }
1459
+
1460
  /**********************************************************************/
1461
  /********************************* Layout 2 *************************/
1462
  /**********************************************************************/
1483
  transform: scale(1.1);
1484
  }
1485
 
1486
+ .rt-tpg-container .layout2 .img_zoom_out .rt-holder .rt-img-holder img {
1487
+ -webkit-transform: scale(1.1);
1488
+ -moz-transform: scale(1.1);
1489
+ -ms-transform: scale(1.1);
1490
+ -o-transform: scale(1.1);
1491
+ transform: scale(1.1);
1492
+ }
1493
+
1494
+ .rt-tpg-container .layout2 .img_zoom_out .rt-holder .rt-img-holder:hover img {
1495
+ -webkit-transform: scale(1);
1496
+ -moz-transform: scale(1);
1497
+ -ms-transform: scale(1);
1498
+ -o-transform: scale(1);
1499
+ transform: scale(1);
1500
+ }
1501
+
1502
+ .rt-tpg-container .layout2 .img_no_effect .rt-holder .rt-img-holder img,
1503
+ .rt-tpg-container .layout2 .img_no_effect .rt-holder .rt-img-holder:hover img {
1504
+ -webkit-transform: scale(1);
1505
+ -moz-transform: scale(1);
1506
+ -ms-transform: scale(1);
1507
+ -o-transform: scale(1);
1508
+ transform: scale(1);
1509
+ }
1510
+
1511
  .rt-tpg-container .layout2 .rt-holder .rt-detail h2,
1512
  .rt-tpg-container .layout2 .rt-holder .rt-detail h3,
1513
  .rt-tpg-container .layout2 .rt-holder .rt-detail h4 {
1522
  }
1523
 
1524
  .rt-tpg-container .layout2 .rt-holder .rt-detail .read-more a {
 
1525
  line-height: 1.8;
1526
  border-radius: 5px;
1527
  display: inline-block;
1585
  }
1586
 
1587
  .rt-tpg-container .layout3 .rt-holder .rt-detail .read-more a {
 
1588
  line-height: 1.8;
1589
  display: inline-block;
1590
  }
1591
 
1592
+ .rt-tpg-container .layout3 .rt-holder .rt-img-holder,
1593
  .rt-tpg-container .layout3 .rt-holder .rt-img-holder > a.rounded img {
1594
  border-radius: 50%;
1595
+ overflow: hidden;
1596
  }
1597
 
1598
  .rt-tpg-container .layout3 .rt-holder .rt-detail .read-more {
1613
  }
1614
 
1615
  /**********************************************************************/
1616
+ /********************************* Layout 5 *************************/
1617
  /**********************************************************************/
1618
+
1619
+ .rt-tpg-container .layout5 .rt-holder,
1620
+ .rt-tpg-container .isotope2 .rt-holder,
1621
+ .rt-tpg-container .carousel2 .rt-holder,
1622
+ .rt-tpg-container .offset03 .rt-holder {
1623
+ position: relative;
1624
+ overflow: hidden;
 
 
 
 
 
 
 
 
 
 
 
1625
  }
1626
 
1627
+ .rt-tpg-container .layout5 .rt-holder .overlay,
1628
+ .rt-tpg-container .isotope2 .rt-holder .overlay,
1629
+ .rt-tpg-container .carousel2 .rt-holder .overlay,
1630
+ .rt-tpg-container .offset03 .rt-holder .overlay {
1631
+ left: 0;
1632
+ bottom: 0;
1633
+ display: block;
1634
+ background: rgba(235, 0, 0, 0.8);
1635
+ position: absolute;
1636
+ z-index: 1;
1637
+ opacity: 1;
1638
+ padding: 20px;
1639
+ width: 100%;
1640
+ height: 25%;
1641
+ transition: all 1s ease;
1642
+ min-height: 150px;
1643
  }
1644
 
1645
+ .rt-tpg-container .layout5 .rt-holder .overlay .rt-detail,
1646
+ .rt-tpg-container .isotope2 .rt-holder .overlay .rt-detail,
1647
+ .rt-tpg-container .carousel2 .rt-holder .overlay .rt-detail {
1648
+ opacity: 0;
1649
+ visibility: hidden;
1650
+ padding: 0;
1651
+ color: #fff;
1652
+ transition: all 0.8s ease-in-out;
1653
+ max-height: 0;
1654
  }
1655
 
1656
+ .rt-tpg-container .layout5 .rt-holder:hover .overlay .rt-detail,
1657
+ .rt-tpg-container .isotope2 .rt-holder:hover .overlay .rt-detail,
1658
+ .rt-tpg-container .carousel2 .rt-holder:hover .overlay .rt-detail {
1659
+ max-height: 450px;
1660
+ transition: all 1.2s ease-in-out 0.2s;
1661
  }
1662
 
1663
+ .rt-tpg-container .offset03 .rt-holder .overlay .rt-detail {
1664
+ padding: 0 0 15px;
1665
  color: #fff;
1666
+ }
1667
+
1668
+ .rt-tpg-container .offset03 .rt-holder .overlay .rt-detail > *:not(.post-meta-user) {
 
 
 
1669
  opacity: 0;
1670
+ visibility: hidden;
1671
  }
1672
 
1673
+ .rt-tpg-container .offset03 .rt-holder:hover .overlay .rt-detail > *:not(.post-meta-user) {
1674
+ opacity: 1;
1675
+ visibility: visible;
1676
  }
1677
 
1678
+ .rt-tpg-container .layout5 .rt-holder .overlay .post-meta-user,
1679
+ .rt-tpg-container .layout5 .rt-holder .overlay .post-meta-user a,
1680
+ .rt-tpg-container .isotope2 .rt-holder .overlay .post-meta-user,
1681
+ .rt-tpg-container .isotope2 .rt-holder .overlay .post-meta-user a,
1682
+ .rt-tpg-container .offset03 .rt-holder .overlay .post-meta-user,
1683
+ .rt-tpg-container .offset03 .rt-holder .overlay .post-meta-user a,
1684
+ .rt-tpg-container .carousel2 .rt-holder .overlay .post-meta-user,
1685
+ .rt-tpg-container .carousel2 .rt-holder .overlay .post-meta-user a {
1686
+ color: #fff;
1687
  }
1688
 
1689
+ .rt-tpg-container .layout5 .rt-holder .overlay h2,
1690
+ .rt-tpg-container .layout5 .rt-holder .overlay h3,
1691
+ .rt-tpg-container .layout5 .rt-holder .overlay h4,
1692
+ .rt-tpg-container .isotope2 .rt-holder .overlay h2,
1693
+ .rt-tpg-container .isotope2 .rt-holder .overlay h3,
1694
+ .rt-tpg-container .isotope2 .rt-holder .overlay h4,
1695
+ .rt-tpg-container .offset03 .rt-holder .overlay h2,
1696
+ .rt-tpg-container .offset03 .rt-holder .overlay h3,
1697
+ .rt-tpg-container .offset03 .rt-holder .overlay h4,
1698
+ .rt-tpg-container .carousel2 .rt-holder .overlay h2,
1699
+ .rt-tpg-container .carousel2 .rt-holder .overlay h3,
1700
+ .rt-tpg-container .carousel2 .rt-holder .overlay h4 {
1701
+ font-size: 22px;
1702
+ line-height: 1.3;
1703
+ color: #ffffff;
1704
+ margin: 0px 0 10px;
1705
+ font-weight: 400;
1706
  }
1707
 
1708
+ .rt-tpg-container .layout5 .rt-holder .overlay h2 a,
1709
+ .rt-tpg-container .layout5 .rt-holder .overlay h3 a,
1710
+ .rt-tpg-container .layout5 .rt-holder .overlay h4 a,
1711
+ .rt-tpg-container .isotope2 .rt-holder .overlay h2 a,
1712
+ .rt-tpg-container .isotope2 .rt-holder .overlay h3 a,
1713
+ .rt-tpg-container .isotope2 .rt-holder .overlay h4 a,
1714
+ .rt-tpg-container .offset03 .rt-holder .overlay h2 a,
1715
+ .rt-tpg-container .offset03 .rt-holder .overlay h3 a,
1716
+ .rt-tpg-container .offset03 .rt-holder .overlay h4 a,
1717
+ .rt-tpg-container .carousel2 .rt-holder .overlay h2 a,
1718
+ .rt-tpg-container .carousel2 .rt-holder .overlay h3 a,
1719
+ .rt-tpg-container .carousel2 .rt-holder .overlay h4 a {
1720
+ color: #ffffff;
1721
  }
1722
 
1723
+ .rt-tpg-container .layout5 .rt-holder:hover .overlay,
1724
+ .rt-tpg-container .isotope2 .rt-holder:hover .overlay,
1725
+ .rt-tpg-container .offset03 .rt-holder:hover .overlay,
1726
+ .rt-tpg-container .carousel2 .rt-holder:hover .overlay {
1727
+ width: 100%;
1728
+ height: 100%;
1729
  }
1730
 
1731
+ .rt-tpg-container .layout5 .rt-holder:hover .overlay .rt-detail,
1732
+ .rt-tpg-container .isotope2 .rt-holder:hover .overlay .rt-detail,
1733
+ .rt-tpg-container .offset03 .rt-holder:hover .overlay .rt-detail,
1734
+ .rt-tpg-container .carousel2 .rt-holder:hover .overlay .rt-detail {
1735
+ opacity: 1;
1736
+ visibility: visible;
 
 
 
 
 
 
1737
  }
1738
 
1739
+ .rt-tpg-container .layout5 .rt-holder .overlay .post-meta-user,
1740
+ .rt-tpg-container .isotope2 .rt-holder .overlay .post-meta-user,
1741
+ .rt-tpg-container .offset03 .rt-holder .overlay .post-meta-user,
1742
+ .rt-tpg-container .carousel2 .rt-holder .overlay .post-meta-user {
1743
+ display: block;
1744
  }
1745
 
1746
+ .rt-tpg-container .isotope2 .rt-holder .post-meta .rt-tpg-social-share,
1747
+ .rt-tpg-container .isotope2 .rt-holder .post-meta {
1748
+ text-align: center;
 
 
1749
  }
1750
 
1751
+ .rt-tpg-container .isotope2 .rt-holder .post-meta.left {
1752
+ text-align: left;
 
 
 
1753
  }
1754
 
1755
+ .rt-tpg-container .layout7 .rt-holder .overlay > *:not(.entry-title),
1756
+ .rt-tpg-container .layout5 .rt-holder .overlay .rt-detail,
1757
+ .rt-tpg-container .carousel4 .rt-holder .overlay > *:not(.entry-title) {
1758
+ overflow: hidden;
1759
+ max-height: 0;
1760
+ transition: 0.6s !important;
1761
  opacity: 0;
 
1762
  }
1763
 
1764
+ .rt-tpg-container .layout7 .rt-holder:hover .overlay > *:not(.entry-title),
1765
+ .rt-tpg-container .layout5 .rt-holder:hover .overlay .rt-detail,
1766
+ .rt-tpg-container .carousel4 .rt-holder:hover .overlay > *:not(.entry-title) {
1767
+ max-height: 300px;
1768
  opacity: 1;
 
1769
  }
1770
 
1771
+ .rt-tpg-container .layout5 .rt-holder {
1772
+ min-height: 250px;
1773
+ display: flex;
1774
+ }
1775
+
1776
+ .rt-tpg-container .layout5 .rt-holder .rt-img-responsive {
1777
+ height: 100%;
1778
+ object-fit: cover;
1779
+ }
1780
+
1781
+ /**********************************************************************/
1782
+ /********************************* Layout 6 *************************/
1783
+ /**********************************************************************/
1784
+
1785
+ .rt-tpg-container .layout6 .rt-holder,
1786
+ .rt-tpg-container .isotope3 .rt-holder,
1787
+ .rt-tpg-container .carousel3 .rt-holder {
1788
+ position: relative;
1789
+ }
1790
+
1791
+ .rt-tpg-container .layout6 .rt-holder .overlay,
1792
+ .rt-tpg-container .isotope3 .rt-holder .overlay,
1793
+ .rt-tpg-container .carousel3 .rt-holder .overlay {
1794
+ width: 100%;
1795
+ height: 100%;
1796
+ display: flex;
1797
+ background: rgba(0, 0, 0, 0.7);
1798
+ position: absolute;
1799
+ -webkit-transition: all 300ms ease-out;
1800
+ -moz-transition: all 300ms ease-out;
1801
+ -o-transition: all 300ms ease-out;
1802
+ transition: all 300ms ease-out;
1803
+ opacity: 0;
1804
+ text-decoration: none;
1805
+ text-align: center;
1806
+ padding: 15px;
1807
+ z-index: 9;
1808
+ flex-direction: column;
1809
+ justify-content: center;
1810
+ align-items: center;
1811
+ }
1812
+
1813
+ .rt-tpg-container .layout6 .rt-holder .overlay .line,
1814
+ .rt-tpg-container .isotope3 .rt-holder .overlay .line,
1815
+ .rt-tpg-container .carousel3 .rt-holder .overlay .line {
1816
+ height: 2px;
1817
+ min-height: 2px;
1818
+ width: 0%;
1819
+ margin: 12px auto;
1820
+ background-color: #ffffff;
1821
+ -webkit-transition: all 500ms ease-out;
1822
+ -moz-transition: all 500ms ease-out;
1823
+ -o-transition: all 500ms ease-out;
1824
+ transition: all 500ms ease-out;
1825
+ }
1826
+
1827
+ .rt-tpg-container .layout6 .rt-holder .overlay:hover .line,
1828
+ .rt-tpg-container .isotope3 .rt-holder .overlay:hover .line,
1829
+ .rt-tpg-container .carousel3 .rt-holder .overlay:hover .line {
1830
+ width: 40%;
1831
+ }
1832
+
1833
+ .rt-tpg-container .layout6 .rt-holder .overlay h2,
1834
+ .rt-tpg-container .layout6 .rt-holder .overlay h3,
1835
+ .rt-tpg-container .layout6 .rt-holder .overlay h4,
1836
+ .rt-tpg-container .isotope3 .rt-holder .overlay h2,
1837
+ .rt-tpg-container .isotope3 .rt-holder .overlay h3,
1838
+ .rt-tpg-container .isotope3 .rt-holder .overlay h4,
1839
+ .rt-tpg-container .carousel3 .rt-holder .overlay h2,
1840
+ .rt-tpg-container .carousel3 .rt-holder .overlay h3,
1841
+ .rt-tpg-container .carousel3 .rt-holder .overlay h4 {
1842
+ padding-top: 5%;
1843
+ color: #ffffff;
1844
+ font-size: 22px;
1845
+ line-height: 1.25;
1846
+ font-weight: 400;
1847
+ margin: 0px 0 18px 0;
1848
+ }
1849
+
1850
+ .rt-tpg-container .layout6 .rt-holder .overlay h2 a,
1851
+ .rt-tpg-container .layout6 .rt-holder .overlay h3 a,
1852
+ .rt-tpg-container .layout6 .rt-holder .overlay h4 a,
1853
+ .rt-tpg-container .isotope3 .rt-holder .overlay h2 a,
1854
+ .rt-tpg-container .isotope3 .rt-holder .overlay h3 a,
1855
+ .rt-tpg-container .isotope3 .rt-holder .overlay h4 a,
1856
+ .rt-tpg-container .carousel3 .rt-holder .overlay h2 a,
1857
+ .rt-tpg-container .carousel3 .rt-holder .overlay h3 a,
1858
+ .rt-tpg-container .carousel3 .rt-holder .overlay h4 a {
1859
+ color: #ffffff;
1860
+ }
1861
+
1862
+ .rt-tpg-container .layout6 .rt-holder .overlay .post-meta.left,
1863
+ .rt-tpg-container .isotope3 .rt-holder .overlay .post-meta.left,
1864
+ .rt-tpg-container .carousel3 .rt-holder .overlay .post-meta.left {
1865
+ text-align: left;
1866
+ }
1867
+
1868
+ .rt-tpg-container .layout6 .rt-holder .overlay .post-meta.right,
1869
+ .rt-tpg-container .isotope3 .rt-holder .overlay .post-meta.right,
1870
+ .rt-tpg-container .carousel3 .rt-holder .overlay .post-meta.right {
1871
+ text-align: right;
1872
+ }
1873
+
1874
+ .rt-tpg-container .layout6 .rt-holder .overlay .rt-tpg-social-share,
1875
+ .rt-tpg-container .isotope3 .rt-holder .overlay .rt-tpg-social-share,
1876
+ .rt-tpg-container .carousel3 .rt-holder .overlay .rt-tpg-social-share {
1877
+ float: none;
1878
+ text-align: center;
1879
+ }
1880
+
1881
+ .rt-tpg-container .layout6 .rt-holder .read-more,
1882
+ .rt-tpg-container .layout6 .rt-holder .read-more,
1883
+ .rt-tpg-container .carousel3 .rt-holder .read-more {
1884
+ float: none;
1885
+ }
1886
+
1887
+ .rt-tpg-container .layout6 .rt-holder .overlay .post-meta-user,
1888
+ .rt-tpg-container .isotope3 .rt-holder .overlay .post-meta-user,
1889
+ .rt-tpg-container .carousel3 .rt-holder .overlay .post-meta-user {
1890
+ color: #fff;
1891
+ }
1892
+
1893
+ .rt-tpg-container .layout6 .rt-holder .overlay .post-meta-user p,
1894
+ .rt-tpg-container .isotope3 .rt-holder .overlay .post-meta-user p,
1895
+ .rt-tpg-container .carousel3 .rt-holder .overlay .post-meta-user p {
1896
+ margin-bottom: 0;
1897
+ }
1898
+
1899
+ .rt-tpg-container .layout6 .rt-holder .overlay .post-meta-user a,
1900
+ .rt-tpg-container .isotope3 .rt-holder .overlay .post-meta-user a,
1901
+ .rt-tpg-container .carousel3 .rt-holder .overlay .post-meta-user a {
1902
+ color: #fff;
1903
+ }
1904
+
1905
+ .rt-tpg-container .layout6 .rt-holder:hover .overlay .tpg-excerpt,
1906
+ .rt-tpg-container .isotope3 .rt-holder:hover .overlay .tpg-excerpt,
1907
+ .rt-tpg-container .carousel3 .rt-holder:hover .overlay .tpg-excerpt {
1908
+ color: #ffffff;
1909
+ }
1910
+
1911
+ .rt-tpg-container .layout6 .rt-holder:hover .overlay,
1912
+ .rt-tpg-container .isotope3 .rt-holder:hover .overlay,
1913
+ .rt-tpg-container .carousel3 .rt-holder:hover .overlay {
1914
+ opacity: 1;
1915
+ }
1916
+
1917
+ /**********************************************************************/
1918
+ /********************************* Layout 7 *************************/
1919
+ /**********************************************************************/
1920
+
1921
+ .rt-tpg-container .layout7 .rt-holder,
1922
+ .rt-tpg-container .isotope4 .rt-holder,
1923
+ .rt-tpg-container .carousel4 .rt-holder {
1924
+ position: relative;
1925
+ }
1926
+
1927
+ .rt-tpg-container .layout7 .rt-holder img,
1928
+ .rt-tpg-container .isotope4 .rt-holder img,
1929
+ .rt-tpg-container .carousel4 .rt-holder img {
1930
+ opacity: 0.9;
1931
+ -webkit-transition: opacity 0.35s;
1932
+ transition: opacity 0.35s;
1933
+ }
1934
+
1935
+ .rt-tpg-container .layout7 .rt-holder .overlay,
1936
+ .rt-tpg-container .isotope4 .rt-holder .overlay,
1937
+ .rt-tpg-container .carousel4 .rt-holder .overlay {
1938
+ display: flex;
1939
+ justify-content: center;
1940
+ flex-direction: column;
1941
+ align-items: center;
1942
+ position: absolute;
1943
+ top: 0;
1944
+ left: 0;
1945
+ width: 100%;
1946
+ height: 100%;
1947
+ padding: 0 12px;
1948
+ background: rgba(0, 0, 0, 0.3);
1949
+ }
1950
+
1951
+ .rt-tpg-container .layout7 .rt-holder .overlay:hover,
1952
+ .rt-tpg-container .isotope4 .rt-holder .overlay:hover,
1953
+ .rt-tpg-container .carousel4 .rt-holder .overlay:hover {
1954
+ background: rgba(0, 0, 0, 0.5);
1955
+ }
1956
+
1957
+ .rt-tpg-container .layout7 .rt-holder .overlay::before,
1958
+ .rt-tpg-container .isotope4 .rt-holder .overlay::before,
1959
+ .rt-tpg-container .carousel4 .rt-holder .overlay::before {
1960
+ position: absolute;
1961
+ top: 20px;
1962
+ right: 20px;
1963
+ bottom: 20px;
1964
+ left: 20px;
1965
+ border: 2px solid #fff;
1966
+ box-shadow: 0 0 0 30px rgba(255, 255, 255, 0.2);
1967
+ content: '';
1968
+ opacity: 0;
1969
+ -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
1970
+ transition: opacity 0.35s, transform 0.35s;
1971
+ -webkit-transform: scale3d(1.4, 1.4, 1);
1972
+ transform: scale3d(1.4, 1.4, 1);
1973
+ }
1974
+
1975
+
1976
+ .rt-tpg-container .carousel12 .rt-holder .post-info .cat-above-title,
1977
+ .rt-tpg-container .carousel11 .rt-holder .post-info .cat-above-title,
1978
+ .rt-tpg-container .carousel7 .rt-holder .cat-above-title {
1979
+ color: #ffffff;
1980
+ text-align: center;
1981
+ }
1982
+
1983
+ .rt-tpg-container .carousel5 .rt-holder .cat-above-title,
1984
+ .rt-tpg-container .carousel4 .rt-holder .cat-above-title {
1985
+ text-align: center;
1986
+ opacity: 0;
1987
+ margin-top: 30px;
1988
+ color: #ffffff;
1989
+ }
1990
+
1991
+ .rt-tpg-container .carousel12 .rt-holder .post-info .cat-above-title *,
1992
+ .rt-tpg-container .carousel8 .rt-holder .cat-above-title *,
1993
+ .rt-tpg-container .carousel7 .rt-holder .cat-above-title a,
1994
+ .rt-tpg-container .carousel5 .rt-holder .cat-above-title a,
1995
+ .rt-tpg-container .carousel4 .rt-holder .cat-above-title a {
1996
+ color: inherit;
1997
+ }
1998
+
1999
+ .rt-tpg-container .carousel5 .rt-holder:hover .cat-above-title,
2000
+ .rt-tpg-container .carousel4 .rt-holder:hover .cat-above-title {
2001
+ opacity: 1;
2002
+ }
2003
+
2004
+ .rt-tpg-container .carousel12 .rt-holder .post-info .cat-above-title,
2005
+ .rt-tpg-container .carousel11 .rt-holder .post-info .cat-above-title,
2006
+ .rt-tpg-container .carousel5 .rt-holder:hover .cat-above-title + .entry-title {
2007
+ padding-top: 10px;
2008
+ }
2009
+
2010
+ .rt-tpg-container .carousel4 .rt-holder:hover .cat-above-title + .entry-title {
2011
+ margin-top: 10px;
2012
+ }
2013
+
2014
+ .rt-tpg-container .layout7 .rt-holder h2,
2015
+ .rt-tpg-container .layout7 .rt-holder h3,
2016
+ .rt-tpg-container .layout7 .rt-holder h4,
2017
+ .rt-tpg-container .isotope4 .rt-holder h2,
2018
+ .rt-tpg-container .isotope4 .rt-holder h3,
2019
+ .rt-tpg-container .isotope4 .rt-holder h4,
2020
+ .rt-tpg-container .carousel4 .rt-holder h2,
2021
+ .rt-tpg-container .carousel4 .rt-holder h3,
2022
+ .rt-tpg-container .carousel4 .rt-holder h4 {
2023
+ color: #ffffff;
2024
+ font-size: 22px;
2025
+ font-weight: 400;
2026
+ line-height: 1.25;
2027
+ margin: 30% 0 10px 0;
2028
+ text-align: center;
2029
+ -webkit-transition: -webkit-transform 0.35s;
2030
+ transition: transform 0.35s;
2031
+ }
2032
+
2033
+ .rt-tpg-container .layout7 .rt-holder h2 a,
2034
+ .rt-tpg-container .layout7 .rt-holder h3 a,
2035
+ .rt-tpg-container .layout7 .rt-holder h4 a,
2036
+ .rt-tpg-container .isotope4 .rt-holder h2 a,
2037
+ .rt-tpg-container .isotope4 .rt-holder h3 a,
2038
+ .rt-tpg-container .isotope4 .rt-holder h4 a,
2039
+ .rt-tpg-container .carousel4 .rt-holder h2 a,
2040
+ .rt-tpg-container .carousel4 .rt-holder h3 a,
2041
+ .rt-tpg-container .carousel4 .rt-holder h4 a {
2042
+ color: #ffffff;
2043
+ }
2044
+
2045
+ .rt-tpg-container .layout7 .rt-holder p,
2046
+ .rt-tpg-container .isotope4 .rt-holder p,
2047
+ .rt-tpg-container .carousel4 .rt-holder p,
2048
+ .rt-tpg-container .layout7 .rt-holder .tpg-excerpt,
2049
+ .rt-tpg-container .isotope4 .rt-holder .tpg-excerpt,
2050
+ .rt-tpg-container .carousel4 .rt-holder .tpg-excerpt {
2051
+ color: #ffffff;
2052
+ padding: 0 15px;
2053
+ opacity: 0;
2054
+ text-align: center;
2055
+ -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
2056
+ transition: opacity 0.35s, transform 0.35s;
2057
+ -webkit-transform: scale(1.5);
2058
+ transform: scale(1.5);
2059
+ }
2060
+
2061
+ .rt-tpg-container .layout7 .rt-holder .post-meta-user p,
2062
+ .rt-tpg-container .isotope4 .rt-holder .post-meta-user p,
2063
+ .rt-tpg-container .carousel4 .rt-holder .post-meta-user p {
2064
+ margin-bottom: 0;
2065
+ }
2066
+
2067
+ .rt-tpg-container .layout7 .rt-holder .post-meta-user a,
2068
+ .rt-tpg-container .isotope4 .rt-holder .post-meta-user a,
2069
+ .rt-tpg-container .carousel4 .rt-holder .post-meta-user a {
2070
+ color: #ffffff;
2071
+ }
2072
+
2073
+ .rt-tpg-container .layout7 .rt-holder:hover h3,
2074
+ .rt-tpg-container .isotope4 .rt-holder:hover h3,
2075
+ .rt-tpg-container .carousel4 .rt-holder:hover h3 {
2076
+ margin: 7% 0 10px 0;
2077
+ -webkit-transform: scale(0.9);
2078
+ transform: scale(0.9);
2079
+ }
2080
+
2081
+ .rt-tpg-container .layout7 .rt-holder:hover .overlay::before,
2082
+ .rt-tpg-container .isotope4 .rt-holder:hover .overlay::before,
2083
+ .rt-tpg-container .carousel4 .rt-holder:hover .overlay::before,
2084
+ .rt-tpg-container .layout7 .rt-holder:hover .tpg-excerpt,
2085
+ .rt-tpg-container .isotope4 .rt-holder:hover .tpg-excerpt,
2086
+ .rt-tpg-container .carousel4 .rt-holder:hover .tpg-excerpt,
2087
+ .rt-tpg-container .layout7 .rt-holder:hover p,
2088
+ .rt-tpg-container .isotope4 .rt-holder:hover p,
2089
+ .rt-tpg-container .carousel4 .rt-holder:hover p {
2090
+ opacity: 1;
2091
+ -webkit-transform: scale3d(1, 1, 1);
2092
+ transform: scale3d(1, 1, 1);
2093
+ }
2094
+
2095
+ .rt-tpg-container .layout7 .rt-holder .cat-above-title,
2096
+ .rt-tpg-container .layout7 .rt-holder .overlay .post-meta,
2097
+ .rt-tpg-container .isotope4 .rt-holder .overlay .post-meta,
2098
+ .rt-tpg-container .carousel4 .rt-holder .overlay .post-meta {
2099
+ color: #ffffff;
2100
+ text-align: center;
2101
+ overflow: hidden;
2102
+ opacity: 0;
2103
+ }
2104
+
2105
+ .rt-tpg-container .layout7 .rt-holder .overlay .post-meta.left,
2106
+ .rt-tpg-container .isotope4 .rt-holder .overlay .post-meta.left,
2107
+ .rt-tpg-container .carousel4 .rt-holder .overlay .post-meta.left {
2108
+ text-align: left;
2109
+ }
2110
+
2111
+ .rt-tpg-container .layout7 .rt-holder .overlay .post-meta.right,
2112
+ .rt-tpg-container .isotope4 .rt-holder .overlay .post-meta.right,
2113
+ .rt-tpg-container .carousel4 .rt-holder .overlay .post-meta.right {
2114
+ text-align: right;
2115
+ }
2116
+
2117
+ .rt-tpg-container .layout7 .rt-holder:hover .cat-above-title,
2118
+ .rt-tpg-container .layout7 .rt-holder:hover .overlay .post-meta,
2119
+ .rt-tpg-container .isotope4 .rt-holder:hover .overlay .post-meta,
2120
+ .rt-tpg-container .carousel4 .rt-holder:hover .overlay .post-meta {
2121
+ opacity: 1;
2122
+ -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
2123
+ transition: opacity 0.35s, transform 0.35s;
2124
+ -webkit-transform: scale(1);
2125
+ transform: scale(1);
2126
+ }
2127
+
2128
+ .rt-tpg-container .layout7 .rt-holder .overlay .rt-tpg-social-share,
2129
+ .rt-tpg-container .isotope4 .rt-holder .overlay .rt-tpg-social-share,
2130
+ .rt-tpg-container .carousel4 .rt-holder .overlay .rt-tpg-social-share {
2131
+ float: none;
2132
+ text-align: center;
2133
+ }
2134
+
2135
+ .rt-tpg-container .layout7 .rt-holder .read-more,
2136
+ .rt-tpg-container .isotope4 .rt-holder .read-more,
2137
+ .rt-tpg-container .carousel4 .rt-holder .read-more {
2138
+ float: none;
2139
+ }
2140
+
2141
+ .rt-tpg-container .layout7 .rt-holder .overlay .entry-title,
2142
+ .rt-tpg-container .carousel4 .rt-holder h3 {
2143
+ margin: 0 !important;
2144
+ transition: 0.4s;
2145
+ }
2146
+
2147
+ /**********************************************************************/
2148
+ /********************************* Layout 12 *************************/
2149
+ /**********************************************************************/
2150
+
2151
+ .rt-tpg-container .layout12 .rt-holder,
2152
+ .rt-tpg-container .isotope8 .rt-holder,
2153
+ .rt-tpg-container .carousel8 .rt-holder {
2154
+ background: #fff;
2155
+ -webkit-box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.22);
2156
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.22);
2157
+ }
2158
+
2159
+ .rt-tpg-container .layout12 .rt-holder .rt-img-holder,
2160
+ .rt-tpg-container .isotope8 .rt-holder .rt-img-holder,
2161
+ .rt-tpg-container .carousel8 .rt-holder .rt-img-holder {
2162
+ position: relative;
2163
+ overflow: hidden;
2164
+ }
2165
+
2166
+ .rt-tpg-container .layout12 .rt-holder:hover img,
2167
+ .rt-tpg-container .isotope8 .rt-holder:hover img,
2168
+ .rt-tpg-container .carousel8 .rt-holder:hover img {
2169
+ -webkit-transition: all 0.25s ease-in-out;
2170
+ transform: scale(1.05, 1.05);
2171
+ -webkit-transform: scale(1.05, 1.05);
2172
+ -moz-transform: scale(1.05, 1.05);
2173
+ -ms-transform: scale(1.05, 1.05);
2174
+ -o-transform: scale(1.05, 1.05);
2175
+ }
2176
+
2177
+ .rt-tpg-container .layout12 .rt-holder .rt-detail,
2178
+ .rt-tpg-container .isotope8 .rt-holder .rt-detail,
2179
+ .rt-tpg-container .carousel8 .rt-holder .rt-detail {
2180
+ background: #fff;
2181
+ padding: 25px;
2182
+ -webkit-transition: all 0.3s ease-out 0s;
2183
+ -moz-transition: all 0.3s ease-out 0s;
2184
+ -ms-transition: all 0.3s ease-out 0s;
2185
+ -o-transition: all 0.3s ease-out 0s;
2186
+ transition: all 0.3s ease-out 0s;
2187
+ display: inline-block;
2188
+ width: 100%;
2189
+ }
2190
+
2191
+ .rt-tpg-container .layout12 .rt-holder .rt-detail.rt-with-title,
2192
+ .rt-tpg-container .isotope8 .rt-holder .rt-detail.rt-with-title,
2193
+ .rt-tpg-container .carousel8 .rt-holder .rt-detail.rt-with-title {
2194
+ padding-top: 0;
2195
+ padding-bottom: 0;
2196
+ }
2197
+
2198
+ .rt-tpg-container .layout12 .rt-holder.rt-with-title-below h2.entry-title,
2199
+ .rt-tpg-container .layout12 .rt-holder.rt-with-title-below h3.entry-title,
2200
+ .rt-tpg-container .layout12 .rt-holder.rt-with-title-below h4.entry-title,
2201
+ .rt-tpg-container .isotope8 .rt-holder.rt-with-title-below h2.entry-title,
2202
+ .rt-tpg-container .isotope8 .rt-holder.rt-with-title-below h3.entry-title,
2203
+ .rt-tpg-container .isotope8 .rt-holder.rt-with-title-below h4.entry-title,
2204
+ .rt-tpg-container .carousel8 .rt-holder.rt-with-title-below h2.entry-title,
2205
+ .rt-tpg-container .carousel8 .rt-holder.rt-with-title-below h3.entry-title,
2206
+ .rt-tpg-container .carousel8 .rt-holder.rt-with-title-below h4.entry-title {
2207
+ margin-top: 0;
2208
+ }
2209
+
2210
+ .rt-tpg-container .layout12 .rt-holder .rt-detail.rt-with-title .entry-title,
2211
+ .rt-tpg-container .isotope8 .rt-holder .rt-detail.rt-with-title .entry-title,
2212
+ .rt-tpg-container .carousel8 .rt-holder .rt-detail.rt-with-title .entry-title {
2213
+ display: inline-block;
2214
+ }
2215
+
2216
+ .rt-tpg-container .layout12 .rt-holder.rt-with-title .post-meta-user,
2217
+ .rt-tpg-container .isotope8 .rt-holder.rt-with-title .post-meta-user,
2218
+ .rt-tpg-container .carousel8 .rt-holder.rt-with-title .post-meta-user {
2219
+ margin-bottom: 15px;
2220
+ }
2221
+
2222
+ .rt-tpg-container .layout12 .rt-holder .rt-detail h2,
2223
+ .rt-tpg-container .layout12 .rt-holder .rt-detail h3,
2224
+ .rt-tpg-container .layout12 .rt-holder .rt-detail h4,
2225
+ .rt-tpg-container .isotope8 .rt-holder .rt-detail h2,
2226
+ .rt-tpg-container .isotope8 .rt-holder .rt-detail h3,
2227
+ .rt-tpg-container .isotope8 .rt-holder .rt-detail h4,
2228
+ .rt-tpg-container .carousel8 .rt-holder .rt-detail h2,
2229
+ .rt-tpg-container .carousel8 .rt-holder .rt-detail h3,
2230
+ .rt-tpg-container .carousel8 .rt-holder .rt-detail h4 {
2231
+ font-size: 22px;
2232
+ line-height: 1.25;
2233
+ margin: 15px 0px 15px;
2234
+ font-weight: 400;
2235
+ }
2236
+
2237
+ .rt-tpg-container .layout12 .rt-holder .rt-detail h2 a,
2238
+ .rt-tpg-container .layout12 .rt-holder .rt-detail h3 a,
2239
+ .rt-tpg-container .layout12 .rt-holder .rt-detail h4 a,
2240
+ .rt-tpg-container .isotope8 .rt-holder .rt-detail h2 a,
2241
+ .rt-tpg-container .isotope8 .rt-holder .rt-detail h3 a,
2242
+ .rt-tpg-container .isotope8 .rt-holder .rt-detail h4 a,
2243
+ .rt-tpg-container .carousel8 .rt-holder .rt-detail h2 a,
2244
+ .rt-tpg-container .carousel8 .rt-holder .rt-detail h3 a,
2245
+ .rt-tpg-container .carousel8 .rt-holder .rt-detail h4 a {
2246
+ color: #000;
2247
+ }
2248
+
2249
+ .rt-tpg-container .layout12 .rt-holder .rt-detail h2 a:hover,
2250
+ .rt-tpg-container .layout12 .rt-holder .rt-detail h3 a:hover,
2251
+ .rt-tpg-container .layout12 .rt-holder .rt-detail h4 a:hover,
2252
+ .rt-tpg-container .isotope8 .rt-holder .rt-detail h2 a:hover,
2253
+ .rt-tpg-container .isotope8 .rt-holder .rt-detail h3 a:hover,
2254
+ .rt-tpg-container .isotope8 .rt-holder .rt-detail h4 a:hover,
2255
+ .rt-tpg-container .carousel8 .rt-holder .rt-detail h2 a:hover,
2256
+ .rt-tpg-container .carousel8 .rt-holder .rt-detail h3 a:hover,
2257
+ .rt-tpg-container .carousel8 .rt-holder .rt-detail h4 a:hover {
2258
+ color: #fff;
2259
+ }
2260
+
2261
+ .rt-tpg-container .layout12 .rt-holder:hover .rt-detail,
2262
+ .rt-tpg-container .isotope8 .rt-holder:hover .rt-detail,
2263
+ .rt-tpg-container .carousel8 .rt-holder:hover .rt-detail {
2264
+ background: #0850d0;
2265
+ color: #fff;
2266
+ }
2267
+
2268
+ .rt-tpg-container .layout12 .rt-holder .rt-detail .read-more,
2269
+ .rt-tpg-container .isotope8 .rt-holder .rt-detail .read-more,
2270
+ .rt-tpg-container .carousel8 .rt-holder .rt-detail .read-more {
2271
+ text-align: right;
2272
+ }
2273
+
2274
+ .rt-tpg-container .carousel8 .rt-holder:hover .rt-detail .post-meta-user,
2275
+ .rt-tpg-container .carousel8 .rt-holder:hover .rt-detail .post-meta-user .meta-data,
2276
+ .rt-tpg-container .carousel8 .rt-holder:hover .rt-detail .post-meta-user a,
2277
+ .rt-tpg-container .carousel8 .rt-holder:hover .rt-detail .post-meta-user i[class^='fa'],
2278
+ .rt-tpg-container .carousel8 .rt-holder:hover .rt-detail h3 a,
2279
+ .rt-tpg-container .isotope8 .rt-holder:hover .rt-detail .post-meta-user,
2280
+ .rt-tpg-container .isotope8 .rt-holder:hover .rt-detail .post-meta-user .meta-data,
2281
+ .rt-tpg-container .isotope8 .rt-holder:hover .rt-detail .post-meta-user i[class^='fa'],
2282
+ .rt-tpg-container .isotope8 .rt-holder:hover .rt-detail .post-meta-user a,
2283
+ .rt-tpg-container .layout12 .rt-holder:hover .rt-detail .post-meta-user,
2284
+ .rt-tpg-container .layout12 .rt-holder:hover .rt-detail i,
2285
+ .rt-tpg-container .layout12 .rt-holder:hover .rt-detail .post-meta-user a {
2286
+ color: #fff !important;
2287
+ }
2288
+
2289
+ /**********************************************************************/
2290
+ /********************************* pagination *************************/
2291
+ /**********************************************************************/
2292
+ .rt-tpg-container .rt-pagination-wrap .rt-cb-page-prev-next > * {
2293
+ margin-left: 1px;
2294
+ margin-right: 1px;
2295
+ font-size: 16px;
2296
+ line-height: 1.55;
2297
+ display: inline-block;
2298
+ width: 30px;
2299
+ height: 30px;
2300
+ text-align: center;
2301
+ font-size: 18px;
2302
+ background-color: #bcbcbc;
2303
+ color: #fff;
2304
+ line-height: 30px;
2305
+ bottom: auto;
2306
+ cursor: pointer;
2307
+ transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out, opacity 0.2s ease-in-out, visibility 0.2s ease-in-out;
2308
+ -webkit-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out, opacity 0.2s ease-in-out, visibility 0.2s ease-in-out;
2309
+ -ms-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out, opacity 0.2s ease-in-out, visibility 0.2s ease-in-out;
2310
+ }
2311
+
2312
+ .rt-tpg-container .rt-pagination-wrap .rt-cb-page-prev-next > * i {
2313
+ line-height: 1;
2314
+ }
2315
+
2316
+ .rt-tpg-container .rt-pagination-wrap .rt-cb-page-prev-next > .rt-disabled {
2317
+ opacity: 0.5;
2318
+ pointer-events: none;
2319
+ }
2320
+
2321
+ .rt-cb-page-prev-next {
2322
+ text-align: left;
2323
+ }
2324
+
2325
+ .rt-tpg-container .rt-pagination-wrap .rt-loadmore-style .rt-loadmore-loading {
2326
+ color: #fff;
2327
+ position: absolute;
2328
+ top: 50%;
2329
+ left: 50%;
2330
+ margin-top: -32px;
2331
+ margin-left: -32px;
2332
+ visibility: hidden;
2333
+ opacity: 0;
2334
+ }
2335
+
2336
+ .rt-ball-scale-multiple.rt-2x {
2337
+ width: 64px;
2338
+ height: 64px;
2339
+ }
2340
+
2341
+ .rt-ball-scale-multiple.rt-2x > div {
2342
+ width: 64px;
2343
+ height: 64px;
2344
+ }
2345
+
2346
+ .rt-ball-scale-multiple, .rt-ball-scale-multiple > div {
2347
+ position: relative;
2348
+ -webkit-box-sizing: border-box;
2349
+ -moz-box-sizing: border-box;
2350
+ box-sizing: border-box;
2351
+ }
2352
+
2353
+ .rt-ball-scale-multiple > div {
2354
+ display: inline-block;
2355
+ float: none;
2356
+ background-color: currentColor;
2357
+ border: 0 solid currentColor;
2358
+ }
2359
+
2360
+ .rt-ball-scale-multiple > div:nth-child(2) {
2361
+ -webkit-animation-delay: .2s;
2362
+ -moz-animation-delay: .2s;
2363
+ -o-animation-delay: .2s;
2364
+ animation-delay: .2s;
2365
+ }
2366
+
2367
+ .rt-ball-scale-multiple > div {
2368
+ position: absolute;
2369
+ top: 0;
2370
+ left: 0;
2371
+ width: 32px;
2372
+ height: 32px;
2373
+ border-radius: 100%;
2374
+ opacity: 0;
2375
+ -webkit-animation: ball-scale-multiple 1s 0s linear infinite;
2376
+ -moz-animation: ball-scale-multiple 1s 0s linear infinite;
2377
+ -o-animation: ball-scale-multiple 1s 0s linear infinite;
2378
+ animation: ball-scale-multiple 1s 0s linear infinite;
2379
+ }
2380
+
2381
+ .rt-tpg-container .rt-pagination-wrap {
2382
+ text-align: center;
2383
+ margin-top: 10px;
2384
+ display: inline-block;
2385
+ width: 100%;
2386
+ }
2387
+
2388
+ .rt-tpg-container .rt-pagination-wrap .rt-loadmore-style {
2389
+ cursor: pointer;
2390
+ position: relative;
2391
+ user-select: none;
2392
+ -webkit-user-select: none;
2393
+ }
2394
+
2395
+ .rt-tpg-container .rt-pagination-wrap .rt-loadmore-style.rt-hidden-elm,
2396
+ .rt-tpg-container .rt-pagination-wrap .rt-infinite-action.rt-hidden-elm,
2397
+ .rt-tpg-container .rt-pagination-wrap .rt-page-numbers.rt-hidden-elm,
2398
+ .rt-tpg-container .rt-pagination-wrap .rt-cb-page-prev-next.rt-hidden-elm {
2399
+ display: none !important;
2400
+ }
2401
+
2402
+ .rt-tpg-container .rt-pagination-wrap .rt-loadmore-style.rt-lm-loading .rt-loadmore-text {
2403
+ opacity: 0;
2404
+ visibility: hidden;
2405
+ }
2406
+
2407
+ .rt-tpg-container .rt-pagination-wrap .rt-loadmore-style.rt-lm-loading .rt-loadmore-loading {
2408
+ opacity: 1;
2409
+ visibility: visible;
2410
+ }
2411
+
2412
+ .rt-tpg-container .rt-pagination-wrap .rt-loadmore-btn {
2413
+ font-size: 13px;
2414
+ letter-spacing: 0.1em;
2415
+ text-transform: uppercase;
2416
+ margin-top: 30px;
2417
+ color: #fff;
2418
+ background-color: #fb4c35;
2419
  text-decoration: none;
2420
  padding: 9px 20px 8px 20px;
2421
  display: inline-block;
2664
  width: 8.33333333%;
2665
  }
2666
 
 
 
 
2667
  }
2668
 
2669
  @media (min-width: 992px) {
2723
  width: 8.33333333%;
2724
  }
2725
 
 
 
 
2726
  }
2727
 
2728
  @media (min-width: 1200px) {
2782
  width: 8.33333333%;
2783
  }
2784
 
 
 
 
2785
  }
2786
 
2787
  /**********************************************************************/
2923
  transform: rotate(360deg);
2924
  }
2925
  }
2926
+
2927
  .rt-container-fluid {
2928
  position: relative;
2929
  }
2930
+
2931
  #bottom-script-loader {
2932
  position: absolute;
2933
  width: 100%;
2934
  height: 100%;
2935
  z-index: 99999;
2936
+ background: rgba(255, 255, 255, 0.8);
2937
  }
2938
+
2939
  #bottom-script-loader .rt-ball-clip-rotate {
2940
  color: #fb4c35;
2941
  position: absolute;
2943
  left: 50%;
2944
  margin-left: -16px;
2945
  z-index: 2;
2946
+ }
2947
+
2948
+ /*--------- Settings Style -----------*/
2949
+
2950
+ /* Category */
2951
+ .cat-above-title .rt-separator {
2952
+ margin-right: 4px;
2953
+ display: inline-block;
2954
+ }
2955
+
2956
+ /*.category-have-bg .cat-above-title .categories-links .rt-separator,
2957
+ .category-have-bg .cat-over-image .categories-links .rt-separator,
2958
+ .category-have-bg .cat-above-title .categories-links > i,
2959
+ .category-have-bg .cat-over-image .categories-links > i {
2960
+ display: none;
2961
+ }
2962
+ .category-have-bg .categories-links a {
2963
+ margin-right: 4px;
2964
+ }*/
2965
+ .cat-above-title.style2 .categories-links .rt-separator,
2966
+ .cat-above-title.style3 .categories-links .rt-separator,
2967
+ .cat-over-image.style2 .categories-links .rt-separator,
2968
+ .cat-over-image.style3 .categories-links .rt-separator {
2969
+ display: none;
2970
+ }
2971
+
2972
+ .cat-above-title.style2 .categories-links a,
2973
+ .cat-above-title.style3 .categories-links a,
2974
+ .cat-over-image.style2 .categories-links a,
2975
+ .cat-over-image.style3 .categories-links a {
2976
+ margin-right: 4px;
2977
+ background-color: #1e73be;
2978
+ color: #fff;
2979
+ padding: 3px 8px;
2980
+ letter-spacing: 0.03em;
2981
+ display: inline-block;
2982
+ position: relative;
2983
+ }
2984
+
2985
+ .cat-above-title.style3 .categories-links a,
2986
+ .cat-over-image.style3 .categories-links a {
2987
+ margin-right: 12px;
2988
+ }
2989
+
2990
+ .cat-over-image.style3 .categories-links a {
2991
+ margin-top: 2px;
2992
+ margin-bottom: 2px;
2993
+ }
2994
+
2995
+ .cat-above-title.style3 .categories-links a:after,
2996
+ .cat-over-image.style3 .categories-links a:after {
2997
+ content: "";
2998
+ position: absolute;
2999
+ top: 0;
3000
+ right: -7px;
3001
+ border-top: 8px solid #1e73be;
3002
+ border-right: 8px solid transparent;
3003
+ }
3004
+
3005
+ .cat-over-image {
3006
+ position: absolute;
3007
+ z-index: 5;
3008
+ }
3009
+
3010
+ .cat-over-image.top_left {
3011
+ top: 10px;
3012
+ left: 10px;
3013
+ }
3014
+
3015
+ .cat-over-image.top_right {
3016
+ top: 10px;
3017
+ right: 10px;
3018
+ }
3019
+
3020
+ .cat-over-image.bottom_left {
3021
+ bottom: 10px;
3022
+ left: 10px;
3023
+ }
3024
+
3025
+ .cat-over-image.bottom_right {
3026
+ bottom: 10px;
3027
+ right: 10px;
3028
+ }
3029
+
3030
+ .cat-over-image.image_center {
3031
+ top: 50%;
3032
+ left: 50%;
3033
+ transform: translate(-50%, -50%);
3034
+ }
3035
+
3036
+ /*----------- Widget Heading -------------*/
3037
+ .tpg-widget-heading-wrapper {
3038
+ position: relative;
3039
+ margin-bottom: 20px;
3040
+ display: flex;
3041
+ }
3042
+
3043
+ .tpg-widget-heading-wrapper .tpg-widget-heading {
3044
+ position: relative;
3045
+ padding-right: 15px;
3046
+ margin-bottom: 0;
3047
+ margin-top: 0;
3048
+ padding-top: 0;
3049
+ }
3050
+
3051
+ .tpg-widget-heading-wrapper.center .tpg-widget-heading {
3052
+ margin: 0;
3053
+ padding: 0;
3054
+ }
3055
+
3056
+ .tpg-widget-heading-wrapper.heading-style1 .tpg-widget-heading::before {
3057
+ content: '';
3058
+ position: absolute;
3059
+ top: 50%;
3060
+ right: -7.5px;
3061
+ width: 8px;
3062
+ height: 8px;
3063
+ margin-top: -4px;
3064
+ border-radius: 50%;
3065
+ background-color: #1e73be;
3066
+ margin-right: 7px;
3067
+ display: inline-block;
3068
+ }
3069
+
3070
+ .tpg-widget-heading-wrapper.heading-style1.center .tpg-widget-heading::before {
3071
+ display: none;
3072
+ }
3073
+
3074
+ .tpg-widget-heading-wrapper.heading-style1 .tpg-widget-heading-line.line-left {
3075
+ display: none;
3076
+ }
3077
+
3078
+ .tpg-widget-heading-wrapper.heading-style1.center .tpg-widget-heading-line.line-left {
3079
+ display: block;
3080
+ margin-left: 0;
3081
+ margin-right: 15px;
3082
+ }
3083
+
3084
+ .tpg-widget-heading-wrapper.heading-style1 .tpg-widget-heading-line-left,
3085
+ .tpg-widget-heading-wrapper.heading-style1 .tpg-widget-heading-line {
3086
+ /*border: 1px solid;*/
3087
+ border-style: solid;
3088
+ border-color: #e5e5e5;
3089
+ border-width: 1px 0;
3090
+ -webkit-box-flex: 1;
3091
+ align-self: center;
3092
+ margin-left: 15px;
3093
+ -ms-flex-positive: 1;
3094
+ flex-grow: 1;
3095
+ height: 4px;
3096
+ }
3097
+
3098
+ .tpg-widget-heading-wrapper.heading-style2 .tpg-widget-heading,
3099
+ .tpg-widget-heading-wrapper.heading-style3 .tpg-widget-heading {
3100
+ background-color: #1e73be;
3101
+ color: #fff;
3102
+ line-height: 1.4;
3103
+ padding: 5px 15px;
3104
+ }
3105
+
3106
+ .tpg-widget-heading-wrapper.heading-style2 .tpg-widget-heading a,
3107
+ .tpg-widget-heading-wrapper.heading-style3 .tpg-widget-heading a {
3108
+ color: inherit;
3109
+ }
3110
+
3111
+ .tpg-widget-heading-wrapper.center {
3112
+ justify-content: center;
3113
+ }
3114
+
3115
+ .tpg-widget-heading-wrapper.right {
3116
+ flex-direction: row-reverse;
3117
+ }
3118
+
3119
+ .tpg-widget-heading-wrapper.right .tpg-widget-heading {
3120
+ padding-left: 15px;
3121
+ padding-right: 0;
3122
+ }
3123
+
3124
+ .tpg-widget-heading-wrapper.right .tpg-widget-heading::before {
3125
+ left: 0;
3126
+ right: auto;
3127
+ }
3128
+
3129
+ .tpg-widget-heading-wrapper.right .tpg-widget-heading-line {
3130
+ margin-left: 0;
3131
+ margin-right: 15px;
3132
+ }
3133
+
3134
+ .tpg-widget-heading-wrapper.heading-style2 .tpg-widget-heading::after {
3135
+ content: "";
3136
+ position: absolute;
3137
+ top: 0;
3138
+ right: -11px;
3139
+ border-width: 12px 12px 0 0;
3140
+ border-style: solid;
3141
+ border-color: #1e73be transparent;
3142
+ }
3143
+
3144
+ .tpg-widget-heading-wrapper.heading-style2.right .tpg-widget-heading::after {
3145
+ left: -11px;
3146
+ right: auto;
3147
+ border-width: 12px 0 0 12px;
3148
+ }
3149
+
3150
+ .tpg-widget-heading-wrapper.heading-style2.center .tpg-widget-heading::after {
3151
+ content: none;
3152
+ }
3153
+
3154
+ .tpg-widget-heading-wrapper.heading-style2,
3155
+ .tpg-widget-heading-wrapper.heading-style3 {
3156
+ border-bottom: 2px solid #1e73be;
3157
+ }
3158
+
3159
+ /* Separator */
3160
+ .post-meta-user.hypen > span,
3161
+ .post-meta-user.hypen .meta-data > span,
3162
+ .post-meta-user.v_pipe > span,
3163
+ .post-meta-user.v_pipe .meta-data > span,
3164
+ .post-meta-user.d_slash > span,
3165
+ .post-meta-user.d_slash .meta-data > span,
3166
+ .post-meta-user.s_slash > span,
3167
+ .post-meta-user.s_slash .meta-data > span,
3168
+ .post-meta-user.dot > span,
3169
+ .post-meta-user.dot .meta-data > span {
3170
+ position: relative;
3171
+ margin-right: 12px;
3172
+ padding-right: 12px;
3173
+ }
3174
+
3175
+ .post-meta-user.hypen > span::after,
3176
+ .post-meta-user.hypen .meta-data > span::after,
3177
+ .post-meta-user.v_pipe > span::after,
3178
+ .post-meta-user.v_pipe .meta-data > span::after,
3179
+ .post-meta-user.d_slash > span::after,
3180
+ .post-meta-user.d_slash .meta-data > span::after,
3181
+ .post-meta-user.s_slash > span::after,
3182
+ .post-meta-user.s_slash .meta-data > span::after,
3183
+ .post-meta-user.dot > span::after,
3184
+ .post-meta-user.dot .meta-data > span::after {
3185
+ position: absolute;
3186
+ font-size: 0.875rem;
3187
+ bottom: 0;
3188
+ }
3189
+
3190
+ .post-meta-user.dot .meta-data > span::after,
3191
+ .post-meta-user.dot > span::after {
3192
+ content: ".";
3193
+ right: 0;
3194
+ }
3195
+
3196
+ .post-meta-user.s_slash .meta-data > span::after,
3197
+ .post-meta-user.s_slash > span::after {
3198
+ content: "/";
3199
+ right: -1px;
3200
+ }
3201
+
3202
+ .post-meta-user.d_slash .meta-data > span::after,
3203
+ .post-meta-user.d_slash > span::after {
3204
+ content: "//";
3205
+ right: -3px;
3206
+ }
3207
+
3208
+ .post-meta-user.v_pipe .meta-data > span::after,
3209
+ .post-meta-user.v_pipe > span::after {
3210
+ content: "|";
3211
+ right: -1px;
3212
+ }
3213
+
3214
+ .post-meta-user.hypen .meta-data > span::after,
3215
+ .post-meta-user.hypen > span::after {
3216
+ content: "-";
3217
+ right: -1px;
3218
+ }
3219
+
3220
+ .post-meta-user .meta-data > span:last-child:after,
3221
+ .post-meta-user > span:last-child:after {
3222
+ content: none;
3223
+ }
3224
+
3225
+ /*Image ZoomIn Effect*/
3226
+ .rt-img-holder {
3227
+ overflow: hidden;
3228
+ }
3229
+
3230
+ .layout4 .rt-img-holder,
3231
+ .layout4 .rt-img-holder a,
3232
+ .layout4 .rt-img-holder img {
3233
+ height: 100%;
3234
+ }
3235
+
3236
+ .img_zoom_out img.rt-img-responsive,
3237
+ .img_zoom_in img.rt-img-responsive {
3238
+ transition: all 1s !important;
3239
+ min-width: 100%;
3240
+ }
3241
+
3242
+ .img_zoom_in:hover img.rt-img-responsive {
3243
+ transform: scale(1.2) !important;
3244
+ }
3245
+
3246
+ .img_zoom_out img.rt-img-responsive {
3247
+ transform: scale(1.2) !important;
3248
+ }
3249
+
3250
+ .img_zoom_out:hover img.rt-img-responsive {
3251
+ transform: scale(1) !important;
3252
+ }
3253
+
3254
+ .rt-tpg-container .img_no_effect:hover img.rt-img-responsive {
3255
+ transform: none;
3256
+ }
3257
+
3258
+ /*TPG EVEN Style */
3259
+
3260
+ .tpg-even {
3261
+ display: -ms-flexbox;
3262
+ display: flex;
3263
+ -ms-flex-wrap: wrap;
3264
+ flex-wrap: wrap;
3265
+ }
3266
+
3267
+ .tpg-even .rt-holder {
3268
+ display: flex;
3269
+ height: 100%;
3270
+ }
3271
+
3272
+ .tpg-even.layout12 .rt-holder,
3273
+ .tpg-even.edd1 .rt-holder,
3274
+ .tpg-even.layout1 .rt-holder,
3275
+ .tpg-even.offset02 .offset-big .rt-holder,
3276
+ .tpg-even.offset01 .offset-big .rt-holder {
3277
+ flex-direction: column;
3278
+ }
3279
+
3280
+ .tpg-even.layout1 .rt-holder .rt-img-holder,
3281
+ .tpg-even.edd1 .rt-holder .rt-img-holder,
3282
+ .tpg-even.layout11 .rt-holder .rt-img-holder,
3283
+ .tpg-even.layout11 .rt-holder .rt-img-holder * {
3284
+ height: auto;
3285
+ }
3286
+
3287
+ @media (max-width: 767px) {
3288
+ .tpg-even .even-grid-item {
3289
+ width: 100%;
3290
+ }
3291
+ }
3292
+
3293
+ @media (min-width: 768px) and (max-width: 991px) {
3294
+ .tpg-even.layout4 .even-grid-item:nth-of-type(4n+2) .rt-holder [class*='rt-col']:first-child {
3295
+ order: 2;
3296
+ }
3297
+
3298
+ .tpg-even.layout4 .even-grid-item:nth-of-type(4n+3) .rt-holder [class*='rt-col']:first-child {
3299
+ order: 2;
3300
+ }
3301
+ }
3302
+
3303
+ @media (max-width: 767px) {
3304
+ .tpg-even .rt-holder {
3305
+ flex-direction: column;
3306
+ }
3307
+
3308
+ .tpg-even.layout4 .even-grid-item .rt-holder .layoutInner-img {
3309
+ order: -1 !important;
3310
+ }
3311
+ }
3312
+
3313
+ .rt-tpg-container .rt-holder .overlay,
3314
+ .rt-tpg-container .rt-holder .overlay > a[data-id],
3315
+ .rt-tpg-container .rt-holder > a[data-id] {
3316
+ width: 100%;
3317
+ }
3318
+
3319
+ .rt-tpg-container .layout5 .rt-holder .overlay,
3320
+ .rt-tpg-container .carousel12 .rt-holder .post-info,
3321
+ .rt-tpg-container .carousel11 .rt-holder .post-info,
3322
+ .rt-tpg-container .carousel7 .rt-holder .overlay .post-info,
3323
+ .rt-tpg-container .carousel5 .rt-holder .overlay,
3324
+ .rt-tpg-container .carousel2 .rt-holder .overlay,
3325
+ .rt-tpg-container .isotope12 .rt-holder .post-info,
3326
+ .rt-tpg-container .isotope9 .rt-holder .overlay .post-info,
3327
+ .rt-tpg-container .isotope7 .rt-holder .post-info,
3328
+ .rt-tpg-container .isotope5 .rt-holder .overlay,
3329
+ .rt-tpg-container .isotope2 .rt-holder:hover .overlay,
3330
+ .rt-tpg-container .layout16 .rt-holder .overlay .post-info,
3331
+ .rt-tpg-container .layout15 .rt-holder .overlay .post-info,
3332
+ .rt-tpg-container .isotope11 .rt-holder .overlay .post-info,
3333
+ .rt-tpg-container .carousel11 .rt-holder .overlay .post-info
3334
+ .rt-tpg-container .layout13 .rt-holder .overlay .post-info,
3335
+ .rt-tpg-container .layout10 .rt-holder .overlay .post-info,
3336
+ .rt-tpg-container .layout8 .rt-holder .overlay {
3337
+ display: flex;
3338
+ flex-direction: column;
3339
+ justify-content: center;
3340
+ }
3341
+
3342
+ .rt-tpg-container .carousel9 .rt-holder .overlay .post-info .read-more a,
3343
+ .rt-tpg-container .isotope5 .rt-holder .overlay .post-meta .read-more a,
3344
+ .rt-tpg-container .isotope4 .rt-holder .post-meta .read-more a,
3345
+ .rt-tpg-container .isotope2 .rt-holder .overlay .post-meta .read-more a,
3346
+ .rt-tpg-container .layout5 .rt-holder .overlay .read-more a,
3347
+ .rt-tpg-container .carousel12 .rt-holder .post-info .read-more a,
3348
+ .rt-tpg-container .carousel11 .rt-holder .post-info .read-more a,
3349
+ .rt-tpg-container .carousel7 .rt-holder .overlay .post-info .read-more a,
3350
+ .rt-tpg-container .carousel5 .rt-holder .overlay .post-info .read-more a,
3351
+ .rt-tpg-container .carousel4 .rt-holder .read-more a,
3352
+ .rt-tpg-container .carousel2 .rt-holder .overlay .read-more a,
3353
+ .rt-tpg-container .isotope12 .rt-holder .post-info .read-more a,
3354
+ .rt-tpg-container .isotope11 .rt-holder .overlay .post-info .read-more a,
3355
+ .rt-tpg-container .isotope9 .rt-holder .overlay .post-info .read-more a,
3356
+ .rt-tpg-container .offset03 .rt-holder .post-meta .read-more a,
3357
+ .rt-tpg-container .layout16 .rt-holder .read-more a,
3358
+ .rt-tpg-container .layout15 .rt-holder .read-more a,
3359
+ .rt-tpg-container .layout13 .rt-holder .read-more a,
3360
+ .rt-tpg-container .layout10 .rt-holder .read-more a,
3361
+ .rt-tpg-container .layout8 .rt-holder .read-more a,
3362
+ .rt-tpg-container .layout7 .rt-holder .read-more a,
3363
+ .rt-tpg-container .layout6 .rt-holder .overlay .read-more a,
3364
+ .rt-tpg-container .isotope3 .rt-holder .overlay .read-more a,
3365
+ .rt-tpg-container .carousel3 .rt-holder .overlay .read-more a {
3366
+ border: 1px solid rgba(255, 255, 255, .4);
3367
+ padding: 8px 15px;
3368
+ }
3369
+
3370
+ .rt-tpg-container .isotope12 .rt-holder .post-info .post-meta .rt-tpg-social-share,
3371
+ .rt-tpg-container .layout6 .rt-holder .overlay .post-meta,
3372
+ .rt-tpg-container .isotope3 .rt-holder .overlay .post-meta,
3373
+ .rt-tpg-container .carousel3 .rt-holder .overlay .post-meta {
3374
+ color: #ffffff;
3375
+ text-align: center;
3376
+ overflow: hidden;
3377
  }
assets/images/edd.png ADDED
Binary file
assets/images/grid.png ADDED
Binary file
assets/images/grid_hover.png ADDED
Binary file
assets/images/icon-128x128.png ADDED
Binary file
assets/images/isotope.png ADDED
Binary file
assets/images/layouts/carousel1.png ADDED
Binary file
assets/images/layouts/carousel10.png ADDED
Binary file
assets/images/layouts/carousel11.png ADDED
Binary file
assets/images/layouts/carousel12.png ADDED
Binary file
assets/images/layouts/carousel2.png ADDED
Binary file
assets/images/layouts/carousel3.png ADDED
Binary file
assets/images/layouts/carousel4.png ADDED
Binary file
assets/images/layouts/carousel5.png ADDED
Binary file
assets/images/layouts/carousel6.png ADDED
Binary file
assets/images/layouts/carousel7.png ADDED
Binary file
assets/images/layouts/carousel8.png ADDED
Binary file
assets/images/layouts/carousel9.png ADDED
Binary file
assets/images/layouts/edd1.png ADDED
Binary file
assets/images/layouts/edd2.png ADDED
Binary file
assets/images/layouts/edd3.png ADDED
Binary file
assets/images/layouts/edd_isotope1.png ADDED
Binary file
assets/images/layouts/edd_isotope2.png ADDED
Binary file
assets/images/layouts/edd_slider1.png ADDED
Binary file
assets/images/layouts/edd_slider2.png ADDED
Binary file
assets/images/layouts/gallery.png ADDED
Binary file
assets/images/layouts/grid1.png ADDED
Binary file
assets/images/layouts/grid10.png ADDED
Binary file
assets/images/layouts/grid11.png ADDED
Binary file
assets/images/layouts/grid12.png ADDED
Binary file
assets/images/layouts/grid13.png ADDED
Binary file
assets/images/layouts/grid14.png ADDED
Binary file
assets/images/layouts/grid15.png ADDED
Binary file
assets/images/layouts/grid16.png ADDED
Binary file
assets/images/layouts/grid2.png ADDED
Binary file
assets/images/layouts/grid3.png ADDED
Binary file
assets/images/layouts/grid4.png ADDED
Binary file
assets/images/layouts/grid5.png ADDED
Binary file
assets/images/layouts/grid6.png ADDED
Binary file
assets/images/layouts/grid7.png ADDED
Binary file
assets/images/layouts/grid8.png ADDED
Binary file
assets/images/layouts/grid9.png ADDED
Binary file
assets/images/layouts/grid_hover10.png ADDED
Binary file
assets/images/layouts/grid_hover11.png ADDED
Binary file
assets/images/layouts/grid_hover12.png ADDED
Binary file
assets/images/layouts/grid_hover13.png ADDED
Binary file
assets/images/layouts/grid_hover14.png ADDED
Binary file
assets/images/layouts/grid_hover15.png ADDED
Binary file
assets/images/layouts/grid_hover16.png ADDED
Binary file
assets/images/layouts/grid_layout10.png ADDED
Binary file
assets/images/layouts/grid_layout8.png ADDED
Binary file
assets/images/layouts/grid_layout9.png ADDED
Binary file
assets/images/layouts/isotope1.png ADDED
Binary file
assets/images/layouts/isotope10.png ADDED
Binary file
assets/images/layouts/isotope11.png ADDED
Binary file
assets/images/layouts/isotope12.png ADDED
Binary file
assets/images/layouts/isotope2.png ADDED
Binary file
assets/images/layouts/isotope3.png ADDED
Binary file
assets/images/layouts/isotope4.png ADDED
Binary file
assets/images/layouts/isotope5.png ADDED
Binary file
assets/images/layouts/isotope6.png ADDED
Binary file
assets/images/layouts/isotope7.png ADDED
Binary file
assets/images/layouts/isotope8.png ADDED
Binary file
assets/images/layouts/isotope9.png ADDED
Binary file
assets/images/layouts/list1.png ADDED
Binary file
assets/images/layouts/list2.png ADDED
Binary file
assets/images/layouts/list3.png ADDED
Binary file
assets/images/layouts/list4.png ADDED
Binary file
assets/images/layouts/list_layout1.png ADDED
Binary file
assets/images/layouts/list_layout2.png ADDED
Binary file
assets/images/layouts/wc1.png ADDED
Binary file
assets/images/layouts/wc2.png ADDED
Binary file
assets/images/layouts/wc3.png ADDED
Binary file
assets/images/layouts/wc4.png ADDED
Binary file
assets/images/layouts/wc_filter1.png ADDED
Binary file
assets/images/layouts/wc_filter2.png ADDED
Binary file
assets/images/layouts/wc_slider1.png ADDED
Binary file
assets/images/layouts/wc_slider2.png ADDED
Binary file
assets/images/list.png ADDED
Binary file
assets/images/slider.png ADDED
Binary file
assets/images/woocommerce.png ADDED
Binary file
assets/js/admin-preview.js CHANGED
@@ -2,11 +2,11 @@
2
  'use strict';
3
 
4
  $(window).resize(function () {
5
- tgpHeightResize();
6
  overlayIconResizeTpg();
7
  });
8
  $(window).load(function () {
9
- tgpHeightResize();
10
  overlayIconResizeTpg();
11
  });
12
  $("#tpg-preview-container").on('click', 'a.tpg-zoom', function (e) {
@@ -172,7 +172,7 @@
172
  isIsotop = $(".rt-tpg-isotope", container),
173
  IsoButton = $(".rt-tpg-isotope-buttons", container),
174
  IsoDropdownFilter = $("select.isotope-dropdown-filter", container),
175
- isCarousel = $('.rt-carousel-holder', container),
176
  placeholder_loading = function () {
177
  if (loader.find('.rt-loading-overlay').length == 0) {
178
  loader.addClass('tpg-pre-loader');
@@ -464,37 +464,64 @@
464
 
465
  if (isCarousel.length) {
466
  isCarousel.imagesLoaded(function () {
467
- var item = parseInt(isCarousel.data('item'), 10),
468
- dItem = parseInt(container.attr('data-desktop-col'), 10),
469
- tItem = parseInt(container.attr('data-tab-col'), 10),
470
- mItem = parseInt(container.attr('data-tab-col'), 10),
471
- options = isCarousel.data('rtowl-options');
472
- isCarousel.owlCarousel({
473
- nav: options.nav,
474
- dots: options.dots,
475
- autoplay: options.autoPlay,
476
- autoplayHoverPause: options.stopOnHover,
477
- loop: options.loop,
478
- autoHeight: options.autoHeight,
479
- lazyLoad: options.lazyLoad,
480
- rtl: options.rtl,
481
- navText: ["<i class=\'fa fa-chevron-left\'></i>", "<i class=\'fa fa-chevron-right\'></i>"],
482
- responsiveClass: true,
483
- autoplayTimeout: options.autoPlayTimeOut,
484
- smartSpeed: options.speed,
485
- responsive: {
486
- 0: {
487
- items: mItem ? mItem : 1
488
- },
489
- 767: {
490
- items: tItem ? tItem : 2
491
- },
492
- 991: {
493
- items: dItem ? dItem : 3
494
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
495
  }
 
 
 
496
  });
497
- remove_placeholder_loading();
498
  });
499
  } else if (isIsotop.length) {
500
  var IsoURL = IsoButton.attr('data-url'),
@@ -658,7 +685,7 @@
658
  }
659
 
660
  function preFunction() {
661
- tgpHeightResize();
662
  overlayIconResizeTpg();
663
  }
664
 
2
  'use strict';
3
 
4
  $(window).resize(function () {
5
+ //tgpHeightResize();
6
  overlayIconResizeTpg();
7
  });
8
  $(window).load(function () {
9
+ //tgpHeightResize();
10
  overlayIconResizeTpg();
11
  });
12
  $("#tpg-preview-container").on('click', 'a.tpg-zoom', function (e) {
172
  isIsotop = $(".rt-tpg-isotope", container),
173
  IsoButton = $(".rt-tpg-isotope-buttons", container),
174
  IsoDropdownFilter = $("select.isotope-dropdown-filter", container),
175
+ isCarousel = $('.rt-swiper-holder', container),
176
  placeholder_loading = function () {
177
  if (loader.find('.rt-loading-overlay').length == 0) {
178
  loader.addClass('tpg-pre-loader');
464
 
465
  if (isCarousel.length) {
466
  isCarousel.imagesLoaded(function () {
467
+ $(".rt-swiper-holder").each(function() {
468
+
469
+ var rtSwiperSlider = $(this).get(0),
470
+ prevButton = $(this).parent().children().find(".swiper-button-prev").get(0),
471
+ nextButton = $(this).parent().children().find(".swiper-button-next").get(0),
472
+ dotPagination = $(this).parent().children().find(".swiper-pagination").get(0),
473
+ dItem = parseInt(container.attr('data-desktop-col'), 10),
474
+ tItem = parseInt(container.attr('data-tab-col'), 10),
475
+ mItem = parseInt(container.attr('data-mobile-col'), 10),
476
+ options = isCarousel.data('rtowl-options'),
477
+ rtSwiperData = {
478
+ slidesPerView: mItem ? mItem : 1,
479
+ spaceBetween: 24,
480
+ loop: options.loop,
481
+ slideToClickedSlide: true,
482
+ speed: options.speed,
483
+ autoHeight: options.autoHeight,
484
+ breakpoints: {
485
+ 0: {
486
+ slidesPerView: mItem ? mItem : 1,
487
+ },
488
+ 768: {
489
+ slidesPerView: tItem ? tItem : 2,
490
+ },
491
+ 992: {
492
+ slidesPerView: dItem ? dItem : 3,
493
+ },
494
+ }
495
+ };
496
+
497
+ if (options.autoPlay) {
498
+ Object.assign(rtSwiperData, {
499
+ autoplay: {
500
+ delay: options.autoPlayTimeOut,
501
+ }
502
+ });
503
+ }
504
+ if (options.nav) {
505
+ Object.assign(rtSwiperData, {
506
+ navigation: {
507
+ nextEl: nextButton,
508
+ prevEl: prevButton,
509
+ }
510
+ });
511
+ }
512
+ if (options.dots) {
513
+ Object.assign(rtSwiperData, {
514
+ pagination: {
515
+ el: dotPagination,
516
+ clickable: true,
517
+ dynamicBullets: true,
518
+ }
519
+ });
520
  }
521
+
522
+ new Swiper(rtSwiperSlider, rtSwiperData);
523
+ remove_placeholder_loading();
524
  });
 
525
  });
526
  } else if (isIsotop.length) {
527
  var IsoURL = IsoButton.attr('data-url'),
685
  }
686
 
687
  function preFunction() {
688
+ //tgpHeightResize();
689
  overlayIconResizeTpg();
690
  }
691
 
assets/js/admin.js CHANGED
@@ -100,15 +100,19 @@
100
  $("#rt-tpg-feature-image").on('change', function () {
101
  featureImageEffect();
102
  });
 
103
  $("#tgp_filter-_taxonomy_filter").on('change', function () {
104
  tpgTaxonomyFilterTrigger();
105
  });
 
106
  $("#order_by").on('change', function () {
107
  tpgOrderByEffect();
108
  });
109
 
110
- $("#rt-tpg-sc-layout").on("change", function (e) {
 
111
  tlpShowHideScMeta();
 
112
  });
113
 
114
  $("#rt-sc-post-type").on("change", function (e) {
@@ -160,8 +164,30 @@
160
  }
161
  });
162
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
163
  });
164
 
 
 
 
 
 
 
 
165
  function setGetParameter(paramName, paramValue) {
166
  let url = window.location.href;
167
  let hash = location.hash;
@@ -202,12 +228,14 @@
202
  }
203
  });
204
 
 
205
  detailLinkEffect();
206
  customImageSize();
 
207
  preLoaderEffect();
208
  featureImageEffect();
209
  tpgOrderByEffect();
210
- $("#link_to_detail_page_holder").on("click", "input[type='radio']", function () {
211
  detailLinkEffect();
212
  });
213
  $("#detail_page_link_type_holder").on("click", "input[type='radio']", function () {
@@ -228,6 +256,10 @@
228
  customImageSize();
229
  });
230
 
 
 
 
 
231
  $("#tpg_load_script").on('change', function () {
232
  preLoaderEffect();
233
  });
@@ -251,6 +283,61 @@
251
  }
252
  }
253
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
254
  function rtTPGIsotopTaxonomyFilter($this) {
255
  var arg = "post_type=" + $this.val();
256
  var bindElement = $this;
@@ -267,7 +354,6 @@
267
  });
268
  }
269
 
270
-
271
  function tpgTaxonomyFilterTrigger() {
272
  var target = $(".field-holder.sc-tpg-filter");
273
  if ($("#tgp_filter-_taxonomy_filter").is(':checked')) {
@@ -292,16 +378,26 @@
292
 
293
  function tlpShowHideScMeta() {
294
  tpgTaxonomyFilterTrigger();
295
- var layout = $("#rt-tpg-sc-layout").val(),
 
 
 
296
  isIsotope = false,
297
  isCarousel = false,
298
  isWc = false,
299
  isWcIsotope = false,
300
  isWcCarousel = false,
301
  isGrid = false,
 
302
  isLOffset = false;
 
 
 
 
 
303
  if (layout) {
304
- isGrid = layout.match(/^layout/i);
 
305
  isCarousel = layout.match(/^carousel/i);
306
  isIsotope = layout.match(/^isotope/i);
307
  isWc = layout.match(/^wc/i) || layout.match(/^edd/i);
@@ -319,10 +415,11 @@
319
  var plType = $("#posts_loading_type");
320
  plType.find("label[for='posts_loading_type-pagination'],label[for='posts_loading_type-pagination_ajax']").show();
321
  $("#tgp_layout2_image_column_holder").hide();
322
- if (isGrid || (isWc && !isWcCarousel && !isWcIsotope)) {
 
323
  $("#tgp_filter_holder").show();
324
  taxonomyFilterEffect();
325
- if (layout == "layout2" || layout == "layout3") {
326
  $("#tgp_layout2_image_column_holder").show();
327
  }
328
  $(".field-holder.isotope-item").hide();
@@ -372,7 +469,7 @@
372
  }
373
 
374
  var pagination = $("#rt-tpg-pagination").is(':checked');
375
- if (pagination && (isGrid || isIsotope)) {
376
  $(".field-holder.pagination-item").show();
377
  } else if (pagination && (isLOffset)) {
378
  $(".field-holder.posts-per-page").show();
@@ -577,7 +674,7 @@
577
 
578
  function detailLinkEffect() {
579
  var detailPageLink = $("#link_to_detail_page_holder input[name='link_to_detail_page']:checked").val();
580
- if (detailPageLink == "yes") {
581
  $(".field-holder.detail-page-link-type").show();
582
  } else {
583
  $(".field-holder.detail-page-link-type,.field-holder.popup-type,.field-holder.tpg-link-target").hide();
@@ -588,19 +685,15 @@
588
  function linkTypeEffect() {
589
  var linkType = $("#detail_page_link_type_holder input[name='detail_page_link_type']:checked").val(),
590
  detailPageLink = $("#link_to_detail_page_holder input[name='link_to_detail_page']:checked").val();
591
- if (linkType == "popup" && detailPageLink == 'yes') {
592
  $(".field-holder.popup-type").show();
 
593
  } else {
594
  $(".field-holder.popup-type").hide();
595
- }
596
- if (detailPageLink == 'yes') {
597
  $(".field-holder.tpg-link-target").show();
598
- } else {
599
- $(".field-holder.tpg-link-target").hide();
600
  }
601
  }
602
 
603
-
604
  function tpgAjaxCall(element, action, arg, handle) {
605
  var data;
606
  if (action) data = "action=" + action;
@@ -702,6 +795,15 @@
702
  function rtTgpFilter() {
703
  $("#post_filter input[type=checkbox]:checked").each(function () {
704
  var id = $(this).val();
 
 
 
 
 
 
 
 
 
705
  $(".rt-tpg-filter." + id).show();
706
  });
707
 
@@ -719,6 +821,4 @@
719
  });
720
  }
721
 
722
- })(this, jQuery);
723
-
724
-
100
  $("#rt-tpg-feature-image").on('change', function () {
101
  featureImageEffect();
102
  });
103
+
104
  $("#tgp_filter-_taxonomy_filter").on('change', function () {
105
  tpgTaxonomyFilterTrigger();
106
  });
107
+
108
  $("#order_by").on('change', function () {
109
  tpgOrderByEffect();
110
  });
111
 
112
+ $("#rttpg-layout_type input[name=layout_type], #rttpg-layout input[name=layout]").on('change', function () {
113
+ $('#layout_holder').show();
114
  tlpShowHideScMeta();
115
+ rtTPGSelectedlayoutType();
116
  });
117
 
118
  $("#rt-sc-post-type").on("change", function (e) {
164
  }
165
  });
166
  }
167
+
168
+ $('.tpg-spacing-field').on('change, keyup', function() {
169
+ var marginInput = $(this).val();
170
+ var marginValue = marginInput.replace(/[^\d,]+/g, '');
171
+ $(this).val(marginValue);
172
+ });
173
+
174
+ if ($("#tpg_image_type").length) {
175
+ setImageBorderRadius();
176
+ }
177
+
178
+ $('#tpg_image_type').on('change', function() {
179
+ setImageBorderRadius();
180
+ });
181
+
182
  });
183
 
184
+ function setImageBorderRadius() {
185
+ var img_type = $("#tpg_image_type input[name='tpg_image_type']:checked").val(),
186
+ img_border_radius = $("#tpg_image_border_radius").val(),
187
+ img_border_radius = (img_type == 'circle') ? 50 : img_border_radius;
188
+ $("#tpg_image_border_radius").val(img_border_radius);
189
+ }
190
+
191
  function setGetParameter(paramName, paramValue) {
192
  let url = window.location.href;
193
  let hash = location.hash;
228
  }
229
  });
230
 
231
+ rtTPGlayoutType();
232
  detailLinkEffect();
233
  customImageSize();
234
+ customSmallImageSize();
235
  preLoaderEffect();
236
  featureImageEffect();
237
  tpgOrderByEffect();
238
+ $("#link_to_detail_page_holder").on("change", "input[type='checkbox']", function () {
239
  detailLinkEffect();
240
  });
241
  $("#detail_page_link_type_holder").on("click", "input[type='radio']", function () {
256
  customImageSize();
257
  });
258
 
259
+ $("#featured_small_image_size").on('change', function () {
260
+ customSmallImageSize();
261
+ });
262
+
263
  $("#tpg_load_script").on('change', function () {
264
  preLoaderEffect();
265
  });
283
  }
284
  }
285
 
286
+ function customSmallImageSize() {
287
+ /* custom image size jquery */
288
+ var fImageSize = $("#featured_small_image_size").val();
289
+ if (fImageSize == "rt_custom") {
290
+ $(".rt-sc-custom-small-image-size-holder").show();
291
+ } else {
292
+ $(".rt-sc-custom-small-image-size-holder").hide();
293
+ }
294
+ }
295
+
296
+ function rtTPGlayoutType() {
297
+ var $layout = $("#rttpg-layout input[name=layout]:checked"),
298
+ layoutType = $layout.parent('.radio-image').attr('data-type'),
299
+ selector = ".rt-tpg-radio-layout." + layoutType;
300
+
301
+ $('#rttpg-layout .rt-tpg-radio-layout').hide();
302
+ $('#layout_holder').hide();
303
+
304
+ if (layoutType) {
305
+ $("#rttpg-layout_type input[id=" + layoutType + "]").prop('checked', true);
306
+ $('#layout_holder').show();
307
+ $(selector).show();
308
+ }
309
+ }
310
+
311
+ function rtTPGSelectedlayoutType() {
312
+ var layout_type = $("#rttpg-layout_type input[name=layout_type]:checked"),
313
+ layout_type_value = layout_type.val(),
314
+ selector = ".rt-tpg-radio-layout." + layout_type_value;
315
+ $('#rttpg-layout .rt-tpg-radio-layout').hide();
316
+
317
+ if (layout_type_value == 'grid_hover') {
318
+ $('#featured_small_image_size_holder').show();
319
+ customSmallImageSize();
320
+ } else {
321
+ $('#featured_small_image_size_holder').hide();
322
+ $('.rt-sc-custom-small-image-size-holder').hide();
323
+ }
324
+
325
+ if( ! layout_type_value ) {
326
+ var selectChildByValue = $("#rttpg-layout input[name=layout]:checked"),
327
+ ownParent = selectChildByValue.parent('.radio-image'),
328
+ parentId = ownParent.attr('data-type');
329
+
330
+ $("#rttpg-layout_type input[id=" + parentId + "]").prop('checked', true);
331
+ selector = ".rt-tpg-radio-layout." + parentId ;
332
+ if( ! selectChildByValue.val() ) {
333
+ $('#layout_holder').hide();
334
+ } else {
335
+ $('#layout_holder').show();
336
+ }
337
+ }
338
+ $(selector).show();
339
+ }
340
+
341
  function rtTPGIsotopTaxonomyFilter($this) {
342
  var arg = "post_type=" + $this.val();
343
  var bindElement = $this;
354
  });
355
  }
356
 
 
357
  function tpgTaxonomyFilterTrigger() {
358
  var target = $(".field-holder.sc-tpg-filter");
359
  if ($("#tgp_filter-_taxonomy_filter").is(':checked')) {
378
 
379
  function tlpShowHideScMeta() {
380
  tpgTaxonomyFilterTrigger();
381
+ //var layout = $("#rt-tpg-sc-layout").val(),
382
+ var layout_type = $("#rttpg-layout_type input[name=layout_type]:checked"),
383
+ layout = layout_type.val(),
384
+ selectedLayout = '',
385
  isIsotope = false,
386
  isCarousel = false,
387
  isWc = false,
388
  isWcIsotope = false,
389
  isWcCarousel = false,
390
  isGrid = false,
391
+ isList = false,
392
  isLOffset = false;
393
+
394
+ if ($("#rttpg-layout input[name=layout]").length) {
395
+ selectedLayout = $("#rttpg-layout input[name=layout]:checked").val();
396
+ }
397
+
398
  if (layout) {
399
+ isGrid = layout.match(/^grid/i);
400
+ isList = layout.match(/^list/i);
401
  isCarousel = layout.match(/^carousel/i);
402
  isIsotope = layout.match(/^isotope/i);
403
  isWc = layout.match(/^wc/i) || layout.match(/^edd/i);
415
  var plType = $("#posts_loading_type");
416
  plType.find("label[for='posts_loading_type-pagination'],label[for='posts_loading_type-pagination_ajax']").show();
417
  $("#tgp_layout2_image_column_holder").hide();
418
+
419
+ if (isGrid || isList || (isWc && !isWcCarousel && !isWcIsotope)) {
420
  $("#tgp_filter_holder").show();
421
  taxonomyFilterEffect();
422
+ if (selectedLayout == "layout2" || selectedLayout == "layout3") {
423
  $("#tgp_layout2_image_column_holder").show();
424
  }
425
  $(".field-holder.isotope-item").hide();
469
  }
470
 
471
  var pagination = $("#rt-tpg-pagination").is(':checked');
472
+ if (pagination && (isGrid || isList || isIsotope)) {
473
  $(".field-holder.pagination-item").show();
474
  } else if (pagination && (isLOffset)) {
475
  $(".field-holder.posts-per-page").show();
674
 
675
  function detailLinkEffect() {
676
  var detailPageLink = $("#link_to_detail_page_holder input[name='link_to_detail_page']:checked").val();
677
+ if (detailPageLink) {
678
  $(".field-holder.detail-page-link-type").show();
679
  } else {
680
  $(".field-holder.detail-page-link-type,.field-holder.popup-type,.field-holder.tpg-link-target").hide();
685
  function linkTypeEffect() {
686
  var linkType = $("#detail_page_link_type_holder input[name='detail_page_link_type']:checked").val(),
687
  detailPageLink = $("#link_to_detail_page_holder input[name='link_to_detail_page']:checked").val();
688
+ if (linkType == "popup" && detailPageLink) {
689
  $(".field-holder.popup-type").show();
690
+ $(".field-holder.tpg-link-target").hide()
691
  } else {
692
  $(".field-holder.popup-type").hide();
 
 
693
  $(".field-holder.tpg-link-target").show();
 
 
694
  }
695
  }
696
 
 
697
  function tpgAjaxCall(element, action, arg, handle) {
698
  var data;
699
  if (action) data = "action=" + action;
795
  function rtTgpFilter() {
796
  $("#post_filter input[type=checkbox]:checked").each(function () {
797
  var id = $(this).val();
798
+ if (id == 'tpg_taxonomy') {
799
+ if (this.checked) {
800
+ rtTPGTaxonomyListByPostType(postType, $(this));
801
+ } else {
802
+ $('.rt-tpg-filter.taxonomy > .taxonomy-field').hide('slow').html('');
803
+ $('.rt-tpg-filter.taxonomy > .rt-tpg-filter-item .term-filter-holder').hide('slow').html('');
804
+ $('.rt-tpg-filter.taxonomy > .rt-tpg-filter-item .term-filter-item-relation').hide('slow');
805
+ }
806
+ }
807
  $(".rt-tpg-filter." + id).show();
808
  });
809
 
821
  });
822
  }
823
 
824
+ })(this, jQuery);
 
 
assets/js/rttpg.js CHANGED
@@ -100,7 +100,7 @@
100
 
101
  $(window).on('load resize', function () {
102
  tpgBottomScriptLoader();
103
- HeightResize();
104
  overlayIconResizeTpg();
105
  });
106
 
@@ -165,7 +165,7 @@
165
  }
166
 
167
  function preFunction() {
168
- HeightResize();
169
  overlayIconResizeTpg();
170
  }
171
 
100
 
101
  $(window).on('load resize', function () {
102
  tpgBottomScriptLoader();
103
+ //HeightResize();
104
  overlayIconResizeTpg();
105
  });
106
 
165
  }
166
 
167
  function preFunction() {
168
+ //HeightResize();
169
  overlayIconResizeTpg();
170
  }
171
 
assets/vendor/actual-height/jquery.actual.min.js DELETED
@@ -1,14 +0,0 @@
1
- /*! Copyright 2012, Ben Lin (http://dreamerslab.com/)
2
- * Licensed under the MIT License (LICENSE.txt).
3
- *
4
- * Version: 1.0.19
5
- *
6
- * Requires: jQuery >= 1.2.3
7
- */
8
- (function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a);
9
- }else{a(jQuery);}}(function(a){a.fn.addBack=a.fn.addBack||a.fn.andSelf;a.fn.extend({actual:function(b,l){if(!this[b]){throw'$.actual => The jQuery method "'+b+'" you called does not exist';
10
- }var f={absolute:false,clone:false,includeMargin:false,display:"block"};var i=a.extend(f,l);var e=this.eq(0);var h,j;if(i.clone===true){h=function(){var m="position: absolute !important; top: -1000 !important; ";
11
- e=e.clone().attr("style",m).appendTo("body");};j=function(){e.remove();};}else{var g=[];var d="";var c;h=function(){c=e.parents().addBack().filter(":hidden");
12
- d+="visibility: hidden !important; display: "+i.display+" !important; ";if(i.absolute===true){d+="position: absolute !important; ";}c.each(function(){var m=a(this);
13
- var n=m.attr("style");g.push(n);m.attr("style",n?n+";"+d:d);});};j=function(){c.each(function(m){var o=a(this);var n=g[m];if(n===undefined){o.removeAttr("style");
14
- }else{o.attr("style",n);}});};}h();var k=/(outer)/.test(b)?e[b](i.includeMargin):e[b]();j();return k;}});}));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
languages/the-post-grid.pot CHANGED
@@ -25,46 +25,50 @@ msgstr ""
25
  msgid "Upgrade to pro"
26
  msgstr ""
27
 
28
- #: ../lib/classes/rtTPGAjaxResponse.php:38
29
  msgid "Server Error !!"
30
  msgstr ""
31
 
32
- #: ../lib/classes/rtTPGAjaxResponse.php:71, ../lib/classes/rtTPGAjaxResponse.php:98, ../lib/classes/rtTPGPreview.php:939
33
  msgid "Session Error !!"
34
  msgstr ""
35
 
36
- #: ../lib/classes/rtTPGAjaxResponse.php:61
37
  msgid "Success"
38
  msgstr ""
39
 
40
- #: ../lib/classes/rtTPGAjaxResponse.php:62, ../lib/classes/rtTPGOptions.php:373
41
  msgid "Show All"
42
  msgstr ""
43
 
44
- #: ../lib/classes/rtTPGAjaxResponse.php:93
45
  msgid "Settings successfully updated"
46
  msgstr ""
47
 
48
- #: ../lib/classes/rtTPGAjaxResponse.php:129, ../lib/classes/rtTPGAjaxResponse.php:148, ../lib/classes/rtTPGAjaxResponse.php:189
49
  msgid "Security error"
50
  msgstr ""
51
 
52
- #: ../lib/classes/rtTPGAjaxResponse.php:125
53
  msgid "<div class=\"field-holder\">No Taxonomy found</div>"
54
  msgstr ""
55
 
56
- #: ../lib/classes/rtTPGAjaxResponse.php:215
57
  msgid "No shortCode found."
58
  msgstr ""
59
 
60
- #: ../lib/classes/rtTPGAjaxResponse.php:204
61
  msgid "Select Short code"
62
  msgstr ""
63
 
64
- #: ../lib/classes/rtTPGAjaxResponse.php:206, ../lib/classes/rtTPGOptions.php:814, ../lib/classes/rtTPGOptions.php:826
65
  msgid "Default"
66
  msgstr ""
67
 
 
 
 
 
68
  #: ../lib/classes/rtTPGHook.php:35
69
  msgid "Facing issue?"
70
  msgstr ""
@@ -113,7 +117,7 @@ msgstr ""
113
  msgid "No Post Grids found in Trash"
114
  msgstr ""
115
 
116
- #: ../lib/classes/rtTPGInit.php:168
117
  msgid "Settings"
118
  msgstr ""
119
 
@@ -121,182 +125,186 @@ msgstr ""
121
  msgid "Shortcode"
122
  msgstr ""
123
 
124
- #: ../lib/classes/rtTPGMeta.php:90
125
  msgid "Short Code Generator"
126
  msgstr ""
127
 
128
- #: ../lib/classes/rtTPGMeta.php:98
129
  msgid "Layout Preview"
130
  msgstr ""
131
 
132
- #: ../lib/classes/rtTPGMeta.php:106, ../lib/classes/rtTPGMeta.php:134, ../lib/views/settings/settings.php:7
133
  msgid "Documentation"
134
  msgstr ""
135
 
136
- #: ../lib/classes/rtTPGMeta.php:119
137
  msgid "Update Pro To Get More Features"
138
  msgstr ""
139
 
140
- #: ../lib/classes/rtTPGMeta.php:135
141
  msgid "Get started by spending some time with the documentation we included step by step process with screenshots with video."
142
  msgstr ""
143
 
144
- #: ../lib/classes/rtTPGMeta.php:144
145
  msgid "Get Support"
146
  msgstr ""
147
 
148
  #: ../lib/classes/rtTPGMeta.php:195
149
- msgid "Post Source"
150
  msgstr ""
151
 
152
  #: ../lib/classes/rtTPGMeta.php:197
153
  msgid "Layout Settings"
154
  msgstr ""
155
 
156
- #: ../lib/classes/rtTPGMeta.php:199
157
  msgid "Field Selection"
158
  msgstr ""
159
 
160
- #: ../lib/classes/rtTPGMeta.php:201
161
  msgid "Style"
162
  msgstr ""
163
 
164
- #: ../lib/classes/rtTPGOptions.php:26
165
  msgid "Ascending"
166
  msgstr ""
167
 
168
- #: ../lib/classes/rtTPGOptions.php:27
169
  msgid "Descending"
170
  msgstr ""
171
 
172
- #: ../lib/classes/rtTPGOptions.php:33
173
  msgid "IN — show posts which associate with one or more of selected terms"
174
  msgstr ""
175
 
176
- #: ../lib/classes/rtTPGOptions.php:35
177
  msgid "NOT IN — show posts which do not associate with any of selected terms"
178
  msgstr ""
179
 
180
- #: ../lib/classes/rtTPGOptions.php:37
181
  msgid "AND — show posts which associate with all of selected terms"
182
  msgstr ""
183
 
184
- #: ../lib/classes/rtTPGOptions.php:43
185
  msgid "AND — show posts which match all settings"
186
  msgstr ""
187
 
188
- #: ../lib/classes/rtTPGOptions.php:44
189
  msgid "OR — show posts which match one or more settings"
190
  msgstr ""
191
 
192
- #: ../lib/classes/rtTPGOptions.php:50, ../lib/classes/rtTPGPreview.php:656, ../lib/classes/rtTPGShortCode.php:708
193
  msgid "Meta value"
194
  msgstr ""
195
 
196
- #: ../lib/classes/rtTPGOptions.php:51
197
  msgid "Meta value number"
198
  msgstr ""
199
 
200
- #: ../lib/classes/rtTPGOptions.php:52
201
  msgid "Meta value datetime"
202
  msgstr ""
203
 
204
- #: ../lib/classes/rtTPGOptions.php:58
205
  msgid "ID"
206
  msgstr ""
207
 
208
- #: ../lib/classes/rtTPGOptions.php:59
209
  msgid "Title"
210
  msgstr ""
211
 
212
- #: ../lib/classes/rtTPGOptions.php:60
213
  msgid "Created date"
214
  msgstr ""
215
 
216
- #: ../lib/classes/rtTPGOptions.php:61
217
  msgid "Modified date"
218
  msgstr ""
219
 
220
- #: ../lib/classes/rtTPGOptions.php:62
221
  msgid "Menu Order"
222
  msgstr ""
223
 
224
- #: ../lib/classes/rtTPGOptions.php:73
225
- msgid "Custom CSS"
226
- msgstr ""
227
-
228
- #: ../lib/classes/rtTPGOptions.php:81
229
  msgid "Script before item load"
230
  msgstr ""
231
 
232
- #: ../lib/classes/rtTPGOptions.php:88
233
  msgid "Script After item load"
234
  msgstr ""
235
 
236
- #: ../lib/classes/rtTPGOptions.php:95
237
  msgid "After Loaded script"
238
  msgstr ""
239
 
240
- #: ../lib/classes/rtTPGOptions.php:111
241
  msgid "Load Script only ShortCode page"
242
  msgstr ""
243
 
244
- #: ../lib/classes/rtTPGOptions.php:112
245
  msgid "If you enable this, script will be loaded only ShortCode page."
246
  msgstr ""
247
 
248
- #: ../lib/classes/rtTPGOptions.php:118
249
  msgid "Enable Pre-loader"
250
  msgstr ""
251
 
252
- #: ../lib/classes/rtTPGOptions.php:125
253
  msgid "Disable Font Awesome Script"
254
  msgstr ""
255
 
256
- #: ../lib/classes/rtTPGOptions.php:126
257
  msgid "If Font Awesome 5 exist with theme, don't need to load twice."
258
  msgstr ""
259
 
260
- #: ../lib/classes/rtTPGOptions.php:188
261
  msgid "Deactivate License"
262
  msgstr ""
263
 
264
- #: ../lib/classes/rtTPGOptions.php:189
265
  msgid "Activate License"
266
  msgstr ""
267
 
268
- #: ../lib/classes/rtTPGOptions.php:197
269
  msgid "Enter your license key"
270
  msgstr ""
271
 
272
- #: ../lib/classes/rtTPGOptions.php:403, ../lib/classes/rtTPGOptions.php:409, ../lib/classes/rtTPGPreview.php:69, ../lib/classes/rtTPGShortCode.php:150
 
 
 
 
 
 
 
 
 
 
 
 
273
  msgid "Show all"
274
  msgstr ""
275
 
276
- #: ../lib/classes/rtTPGOptions.php:408
277
  msgid "Show all text"
278
  msgstr ""
279
 
280
- #: ../lib/classes/rtTPGOptions.php:455
281
  msgid "Speed"
282
  msgstr ""
283
 
284
- #: ../lib/classes/rtTPGOptions.php:459
285
  msgid "Auto play Speed in milliseconds"
286
  msgstr ""
287
 
288
- #: ../lib/classes/rtTPGOptions.php:462
289
  msgid "Autoplay timeout"
290
  msgstr ""
291
 
292
- #: ../lib/classes/rtTPGOptions.php:466
293
  msgid "Autoplay interval timeout"
294
  msgstr ""
295
 
296
- #: ../lib/classes/rtTPGOptions.php:470
297
- msgid "Image column"
298
- msgstr ""
299
-
300
  #: ../lib/classes/rtTPGOptions.php:479
301
  msgid "Desktop"
302
  msgstr ""
@@ -309,183 +317,399 @@ msgstr ""
309
  msgid "Mobile"
310
  msgstr ""
311
 
312
- #: ../lib/classes/rtTPGOptions.php:566
313
- msgid "Image Type"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
314
  msgstr ""
315
 
316
- #: ../lib/classes/rtTPGOptions.php:574
 
 
 
 
 
 
 
 
317
  msgid "Title limit"
318
  msgstr ""
319
 
320
- #: ../lib/classes/rtTPGOptions.php:575
321
  msgid "Title limit only integer number is allowed, Leave it blank for full title."
322
  msgstr ""
323
 
324
- #: ../lib/classes/rtTPGOptions.php:579
325
  msgid "Title limit type"
326
  msgstr ""
327
 
328
- #: ../lib/classes/rtTPGOptions.php:586
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
329
  msgid "Excerpt limit"
330
  msgstr ""
331
 
332
- #: ../lib/classes/rtTPGOptions.php:587
333
  msgid "Excerpt limit only integer number is allowed, Leave it blank for full excerpt."
334
  msgstr ""
335
 
336
- #: ../lib/classes/rtTPGOptions.php:591
337
  msgid "Excerpt Type"
338
  msgstr ""
339
 
340
- #: ../lib/classes/rtTPGOptions.php:607
341
- msgid "Title tag"
342
  msgstr ""
343
 
344
- #: ../lib/classes/rtTPGOptions.php:807
345
- msgid "Read more button border radius"
346
  msgstr ""
347
 
348
- #: ../lib/classes/rtTPGOptions.php:808
349
- msgid "Leave it blank for default"
350
  msgstr ""
351
 
352
- #: ../lib/classes/rtTPGOptions.php:813
353
- msgid "Read more button alignment"
354
  msgstr ""
355
 
356
- #: ../lib/classes/rtTPGOptions.php:816
357
- msgid "Left"
358
  msgstr ""
359
 
360
- #: ../lib/classes/rtTPGOptions.php:817
361
- msgid "Right"
362
  msgstr ""
363
 
364
- #: ../lib/classes/rtTPGOptions.php:818
365
- msgid "Center"
366
  msgstr ""
367
 
368
- #: ../lib/classes/rtTPGOptions.php:823
369
- msgid "Title Position (Above or Below image)"
370
  msgstr ""
371
 
372
- #: ../lib/classes/rtTPGOptions.php:828
373
- msgid "Above image"
374
  msgstr ""
375
 
376
- #: ../lib/classes/rtTPGOptions.php:829
377
- msgid "Below image"
378
  msgstr ""
379
 
380
- #: ../lib/classes/rtTPGOptions.php:831
381
- msgid "<span style='color:red'>Only Layout 1, Layout 12, Layout 14, Isotope1, Isotope8, Isotope10, Carousel Layout 1, Carousel Layout 8, Carousel Layout 10</span>"
 
 
 
 
 
 
 
 
 
 
 
 
382
  msgstr ""
383
 
384
- #: ../lib/classes/rtTPGOptions.php:914
 
 
 
 
385
  msgid "Character"
386
  msgstr ""
387
 
388
- #: ../lib/classes/rtTPGOptions.php:915
389
  msgid "Word"
390
  msgstr ""
391
 
392
- #: ../lib/classes/rtTPGOptions.php:918
393
  msgid "Full Content"
394
  msgstr ""
395
 
396
- #: ../lib/classes/rtTPGOptions.php:937
397
  msgid "Taxonomy filter"
398
  msgstr ""
399
 
400
- #: ../lib/classes/rtTPGOptions.php:938
401
  msgid "Author filter"
402
  msgstr ""
403
 
404
- #: ../lib/classes/rtTPGOptions.php:939
405
  msgid "Order - Sort retrieved posts by parameter"
406
  msgstr ""
407
 
408
- #: ../lib/classes/rtTPGOptions.php:940
409
  msgid "Sort Order - Designates the ascending or descending order of the \"orderby\" parameter"
410
  msgstr ""
411
 
412
- #: ../lib/classes/rtTPGOptions.php:941
413
  msgid "Search filter"
414
  msgstr ""
415
 
416
- #: ../lib/classes/rtTPGOptions.php:961
417
- msgid "Layout 1"
418
  msgstr ""
419
 
420
- #: ../lib/classes/rtTPGOptions.php:962
421
- msgid "Layout 2"
422
  msgstr ""
423
 
424
- #: ../lib/classes/rtTPGOptions.php:963
425
- msgid "Layout 3"
426
  msgstr ""
427
 
428
- #: ../lib/classes/rtTPGOptions.php:964
429
- msgid "Isotope Layout"
430
  msgstr ""
431
 
432
- #: ../lib/classes/rtTPGOptions.php:1089
433
- msgid "Get Pro Version"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
434
  msgstr ""
435
 
436
- #: ../lib/classes/rtTPGPreview.php:67, ../lib/classes/rtTPGShortCode.php:148
 
 
 
 
 
 
 
 
437
  msgid "Read More"
438
  msgstr ""
439
 
440
- #: ../lib/classes/rtTPGPreview.php:420, ../lib/classes/rtTPGShortCode.php:475
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
441
  msgid "All"
442
  msgstr ""
443
 
444
- #: ../lib/classes/rtTPGPreview.php:654, ../lib/classes/rtTPGPreview.php:661, ../lib/classes/rtTPGShortCode.php:706, ../lib/classes/rtTPGShortCode.php:713
445
  msgid "Sort By None"
446
  msgstr ""
447
 
448
- #: ../lib/classes/rtTPGPreview.php:679, ../lib/classes/rtTPGShortCode.php:731
449
  msgid "Search..."
450
  msgstr ""
451
 
452
- #: ../lib/classes/rtTPGPreview.php:687, ../lib/classes/rtTPGShortCode.php:739
453
  msgid "Loading ..."
454
  msgstr ""
455
 
456
- #: ../lib/classes/rtTPGPreview.php:868, ../lib/classes/rtTPGShortCode.php:911
457
  msgid "No post found"
458
  msgstr ""
459
 
460
- #: ../lib/classes/rtTPGPreview.php:771, ../lib/classes/rtTPGShortCode.php:820
461
  msgid "Search"
462
  msgstr ""
463
 
464
- #: ../lib/classes/rtTPGPreview.php:902, ../lib/classes/rtTPGPreview.php:897, ../lib/classes/rtTPGShortCode.php:937
465
  msgid "Load More"
466
  msgstr ""
467
 
468
- #: ../lib/classes/rtTPGShortCode.php:975
469
  msgid "No shortCode found"
470
  msgstr ""
471
 
472
- #: ../lib/classes/rtTPGShortCode.php:995
473
  msgid "This is a restricted content, you need to logged in to view this content."
474
  msgstr ""
475
 
476
- #: ../lib/classes/rtTPGShortCode.php:989
477
  msgid "You are not permitted to view this content."
478
  msgstr ""
479
 
480
- #: ../lib/models/rtTPGField.php:82
481
  msgid "Premium Option"
482
  msgstr ""
483
 
484
- #: ../lib/models/rtTPGField.php:369
 
 
 
 
485
  msgid "Start"
486
  msgstr ""
487
 
488
- #: ../lib/models/rtTPGField.php:378
489
  msgid "End"
490
  msgstr ""
491
 
@@ -505,8 +729,20 @@ msgstr ""
505
  msgid "Select post grid"
506
  msgstr ""
507
 
508
- #: ../lib/views/settings/post-source.php:140
509
- msgid "If \"Meta value\", \"Meta value Number\" or \"Meta value datetime\" is chosen then meta key is required."
 
 
 
 
 
 
 
 
 
 
 
 
510
  msgstr ""
511
 
512
  #: ../lib/views/settings/settings.php:3
@@ -532,3 +768,11 @@ msgstr ""
532
  #: ../lib/views/settings/settings.php:31
533
  msgid "Other Settings"
534
  msgstr ""
 
 
 
 
 
 
 
 
25
  msgid "Upgrade to pro"
26
  msgstr ""
27
 
28
+ #: ../lib/classes/rtTPGAjaxResponse.php:39
29
  msgid "Server Error !!"
30
  msgstr ""
31
 
32
+ #: ../lib/classes/rtTPGAjaxResponse.php:72, ../lib/classes/rtTPGAjaxResponse.php:99, ../lib/classes/rtTPGPreview.php:1009
33
  msgid "Session Error !!"
34
  msgstr ""
35
 
36
+ #: ../lib/classes/rtTPGAjaxResponse.php:62
37
  msgid "Success"
38
  msgstr ""
39
 
40
+ #: ../lib/classes/rtTPGAjaxResponse.php:63, ../lib/classes/rtTPGOptions.php:378
41
  msgid "Show All"
42
  msgstr ""
43
 
44
+ #: ../lib/classes/rtTPGAjaxResponse.php:94
45
  msgid "Settings successfully updated"
46
  msgstr ""
47
 
48
+ #: ../lib/classes/rtTPGAjaxResponse.php:130, ../lib/classes/rtTPGAjaxResponse.php:149, ../lib/classes/rtTPGAjaxResponse.php:190
49
  msgid "Security error"
50
  msgstr ""
51
 
52
+ #: ../lib/classes/rtTPGAjaxResponse.php:126
53
  msgid "<div class=\"field-holder\">No Taxonomy found</div>"
54
  msgstr ""
55
 
56
+ #: ../lib/classes/rtTPGAjaxResponse.php:216
57
  msgid "No shortCode found."
58
  msgstr ""
59
 
60
+ #: ../lib/classes/rtTPGAjaxResponse.php:205
61
  msgid "Select Short code"
62
  msgstr ""
63
 
64
+ #: ../lib/classes/rtTPGAjaxResponse.php:207, ../lib/classes/rtTPGOptions.php:712, ../lib/classes/rtTPGOptions.php:723, ../lib/classes/rtTPGOptions.php:746, ../lib/classes/rtTPGOptions.php:761, ../lib/classes/rtTPGOptions.php:785, ../lib/classes/rtTPGOptions.php:826, ../lib/classes/rtTPGOptions.php:842, ../lib/classes/rtTPGOptions.php:906, ../lib/classes/rtTPGOptions.php:962
65
  msgid "Default"
66
  msgstr ""
67
 
68
+ #: ../lib/classes/rtTPGHelper.php:487
69
+ msgid "Full Size"
70
+ msgstr ""
71
+
72
  #: ../lib/classes/rtTPGHook.php:35
73
  msgid "Facing issue?"
74
  msgstr ""
117
  msgid "No Post Grids found in Trash"
118
  msgstr ""
119
 
120
+ #: ../lib/classes/rtTPGInit.php:161, ../lib/classes/rtTPGMeta.php:199
121
  msgid "Settings"
122
  msgstr ""
123
 
125
  msgid "Shortcode"
126
  msgstr ""
127
 
128
+ #: ../lib/classes/rtTPGMeta.php:89
129
  msgid "Short Code Generator"
130
  msgstr ""
131
 
132
+ #: ../lib/classes/rtTPGMeta.php:97
133
  msgid "Layout Preview"
134
  msgstr ""
135
 
136
+ #: ../lib/classes/rtTPGMeta.php:105, ../lib/classes/rtTPGMeta.php:133, ../lib/views/settings/settings.php:7
137
  msgid "Documentation"
138
  msgstr ""
139
 
140
+ #: ../lib/classes/rtTPGMeta.php:118
141
  msgid "Update Pro To Get More Features"
142
  msgstr ""
143
 
144
+ #: ../lib/classes/rtTPGMeta.php:134
145
  msgid "Get started by spending some time with the documentation we included step by step process with screenshots with video."
146
  msgstr ""
147
 
148
+ #: ../lib/classes/rtTPGMeta.php:143
149
  msgid "Get Support"
150
  msgstr ""
151
 
152
  #: ../lib/classes/rtTPGMeta.php:195
153
+ msgid "Query Build"
154
  msgstr ""
155
 
156
  #: ../lib/classes/rtTPGMeta.php:197
157
  msgid "Layout Settings"
158
  msgstr ""
159
 
160
+ #: ../lib/classes/rtTPGMeta.php:201
161
  msgid "Field Selection"
162
  msgstr ""
163
 
164
+ #: ../lib/classes/rtTPGMeta.php:203, ../lib/classes/rtTPGOptions.php:711, ../lib/classes/rtTPGOptions.php:760
165
  msgid "Style"
166
  msgstr ""
167
 
168
+ #: ../lib/classes/rtTPGOptions.php:24
169
  msgid "Ascending"
170
  msgstr ""
171
 
172
+ #: ../lib/classes/rtTPGOptions.php:25
173
  msgid "Descending"
174
  msgstr ""
175
 
176
+ #: ../lib/classes/rtTPGOptions.php:31
177
  msgid "IN — show posts which associate with one or more of selected terms"
178
  msgstr ""
179
 
180
+ #: ../lib/classes/rtTPGOptions.php:33
181
  msgid "NOT IN — show posts which do not associate with any of selected terms"
182
  msgstr ""
183
 
184
+ #: ../lib/classes/rtTPGOptions.php:35
185
  msgid "AND — show posts which associate with all of selected terms"
186
  msgstr ""
187
 
188
+ #: ../lib/classes/rtTPGOptions.php:41
189
  msgid "AND — show posts which match all settings"
190
  msgstr ""
191
 
192
+ #: ../lib/classes/rtTPGOptions.php:42
193
  msgid "OR — show posts which match one or more settings"
194
  msgstr ""
195
 
196
+ #: ../lib/classes/rtTPGOptions.php:48, ../lib/classes/rtTPGPreview.php:704, ../lib/classes/rtTPGShortCode.php:752
197
  msgid "Meta value"
198
  msgstr ""
199
 
200
+ #: ../lib/classes/rtTPGOptions.php:49
201
  msgid "Meta value number"
202
  msgstr ""
203
 
204
+ #: ../lib/classes/rtTPGOptions.php:50
205
  msgid "Meta value datetime"
206
  msgstr ""
207
 
208
+ #: ../lib/classes/rtTPGOptions.php:56
209
  msgid "ID"
210
  msgstr ""
211
 
212
+ #: ../lib/classes/rtTPGOptions.php:57, ../lib/classes/rtTPGOptions.php:1383, ../lib/views/settings/sc-settings.php:16
213
  msgid "Title"
214
  msgstr ""
215
 
216
+ #: ../lib/classes/rtTPGOptions.php:58
217
  msgid "Created date"
218
  msgstr ""
219
 
220
+ #: ../lib/classes/rtTPGOptions.php:59
221
  msgid "Modified date"
222
  msgstr ""
223
 
224
+ #: ../lib/classes/rtTPGOptions.php:60
225
  msgid "Menu Order"
226
  msgstr ""
227
 
228
+ #: ../lib/classes/rtTPGOptions.php:71
 
 
 
 
229
  msgid "Script before item load"
230
  msgstr ""
231
 
232
+ #: ../lib/classes/rtTPGOptions.php:78
233
  msgid "Script After item load"
234
  msgstr ""
235
 
236
+ #: ../lib/classes/rtTPGOptions.php:85
237
  msgid "After Loaded script"
238
  msgstr ""
239
 
240
+ #: ../lib/classes/rtTPGOptions.php:101
241
  msgid "Load Script only ShortCode page"
242
  msgstr ""
243
 
244
+ #: ../lib/classes/rtTPGOptions.php:102
245
  msgid "If you enable this, script will be loaded only ShortCode page."
246
  msgstr ""
247
 
248
+ #: ../lib/classes/rtTPGOptions.php:108
249
  msgid "Enable Pre-loader"
250
  msgstr ""
251
 
252
+ #: ../lib/classes/rtTPGOptions.php:115
253
  msgid "Disable Font Awesome Script"
254
  msgstr ""
255
 
256
+ #: ../lib/classes/rtTPGOptions.php:116
257
  msgid "If Font Awesome 5 exist with theme, don't need to load twice."
258
  msgstr ""
259
 
260
+ #: ../lib/classes/rtTPGOptions.php:179
261
  msgid "Deactivate License"
262
  msgstr ""
263
 
264
+ #: ../lib/classes/rtTPGOptions.php:181
265
  msgid "Activate License"
266
  msgstr ""
267
 
268
+ #: ../lib/classes/rtTPGOptions.php:190
269
  msgid "Enter your license key"
270
  msgstr ""
271
 
272
+ #: ../lib/classes/rtTPGOptions.php:261
273
+ msgid "Offset"
274
+ msgstr ""
275
+
276
+ #: ../lib/classes/rtTPGOptions.php:333
277
+ msgid "Layout Type"
278
+ msgstr ""
279
+
280
+ #: ../lib/classes/rtTPGOptions.php:339
281
+ msgid "Layout"
282
+ msgstr ""
283
+
284
+ #: ../lib/classes/rtTPGOptions.php:408, ../lib/classes/rtTPGOptions.php:414, ../lib/classes/rtTPGPreview.php:73, ../lib/classes/rtTPGShortCode.php:149
285
  msgid "Show all"
286
  msgstr ""
287
 
288
+ #: ../lib/classes/rtTPGOptions.php:413
289
  msgid "Show all text"
290
  msgstr ""
291
 
292
+ #: ../lib/classes/rtTPGOptions.php:457
293
  msgid "Speed"
294
  msgstr ""
295
 
296
+ #: ../lib/classes/rtTPGOptions.php:461
297
  msgid "Auto play Speed in milliseconds"
298
  msgstr ""
299
 
300
+ #: ../lib/classes/rtTPGOptions.php:464
301
  msgid "Autoplay timeout"
302
  msgstr ""
303
 
304
+ #: ../lib/classes/rtTPGOptions.php:468
305
  msgid "Autoplay interval timeout"
306
  msgstr ""
307
 
 
 
 
 
308
  #: ../lib/classes/rtTPGOptions.php:479
309
  msgid "Desktop"
310
  msgstr ""
317
  msgid "Mobile"
318
  msgstr ""
319
 
320
+ #: ../lib/classes/rtTPGOptions.php:702
321
+ msgid "Tag"
322
+ msgstr ""
323
+
324
+ #: ../lib/classes/rtTPGOptions.php:714, ../lib/classes/rtTPGOptions.php:763
325
+ msgid "Style 1"
326
+ msgstr ""
327
+
328
+ #: ../lib/classes/rtTPGOptions.php:715, ../lib/classes/rtTPGOptions.php:764
329
+ msgid "Style 2"
330
+ msgstr ""
331
+
332
+ #: ../lib/classes/rtTPGOptions.php:716, ../lib/classes/rtTPGOptions.php:765
333
+ msgid "Style 3"
334
+ msgstr ""
335
+
336
+ #: ../lib/classes/rtTPGOptions.php:722, ../lib/classes/rtTPGOptions.php:961
337
+ msgid "Alignment"
338
+ msgstr ""
339
+
340
+ #: ../lib/classes/rtTPGOptions.php:725, ../lib/classes/rtTPGOptions.php:964
341
+ msgid "Left"
342
+ msgstr ""
343
+
344
+ #: ../lib/classes/rtTPGOptions.php:726, ../lib/classes/rtTPGOptions.php:965
345
+ msgid "Right"
346
+ msgstr ""
347
+
348
+ #: ../lib/classes/rtTPGOptions.php:727, ../lib/classes/rtTPGOptions.php:966
349
+ msgid "Center"
350
+ msgstr ""
351
+
352
+ #: ../lib/classes/rtTPGOptions.php:732
353
+ msgid "Link"
354
+ msgstr ""
355
+
356
+ #: ../lib/classes/rtTPGOptions.php:745, ../lib/classes/rtTPGOptions.php:823
357
+ msgid "Position"
358
+ msgstr ""
359
+
360
+ #: ../lib/classes/rtTPGOptions.php:748, ../lib/classes/rtTPGOptions.php:828
361
+ msgid "Above Title"
362
+ msgstr ""
363
+
364
+ #: ../lib/classes/rtTPGOptions.php:749
365
+ msgid "Over image (Top Left)"
366
+ msgstr ""
367
+
368
+ #: ../lib/classes/rtTPGOptions.php:750
369
+ msgid "Over image (Top Right)"
370
+ msgstr ""
371
+
372
+ #: ../lib/classes/rtTPGOptions.php:751
373
+ msgid "Over image (Bottom Left)"
374
+ msgstr ""
375
+
376
+ #: ../lib/classes/rtTPGOptions.php:752
377
+ msgid "Over image (Bottom Right)"
378
+ msgstr ""
379
+
380
+ #: ../lib/classes/rtTPGOptions.php:753
381
+ msgid "Over image (Center)"
382
+ msgstr ""
383
+
384
+ #: ../lib/classes/rtTPGOptions.php:770, ../lib/classes/rtTPGOptions.php:835
385
+ msgid "Icon"
386
+ msgstr ""
387
+
388
+ #: ../lib/classes/rtTPGOptions.php:782
389
+ msgid "Title Position (Above or Below image)"
390
+ msgstr ""
391
+
392
+ #: ../lib/classes/rtTPGOptions.php:787
393
+ msgid "Above image"
394
+ msgstr ""
395
+
396
+ #: ../lib/classes/rtTPGOptions.php:788
397
+ msgid "Below image"
398
  msgstr ""
399
 
400
+ #: ../lib/classes/rtTPGOptions.php:790
401
+ msgid "<span style='color:red'>Only Layout 1, Layout 12, Layout 14, Isotope1, Isotope8, Isotope10, Carousel Layout 1, Carousel Layout 8, Carousel Layout 10</span>"
402
+ msgstr ""
403
+
404
+ #: ../lib/classes/rtTPGOptions.php:796
405
+ msgid "Title tag"
406
+ msgstr ""
407
+
408
+ #: ../lib/classes/rtTPGOptions.php:804
409
  msgid "Title limit"
410
  msgstr ""
411
 
412
+ #: ../lib/classes/rtTPGOptions.php:805
413
  msgid "Title limit only integer number is allowed, Leave it blank for full title."
414
  msgstr ""
415
 
416
+ #: ../lib/classes/rtTPGOptions.php:809
417
  msgid "Title limit type"
418
  msgstr ""
419
 
420
+ #: ../lib/classes/rtTPGOptions.php:829
421
+ msgid "Above excerpt"
422
+ msgstr ""
423
+
424
+ #: ../lib/classes/rtTPGOptions.php:830
425
+ msgid "Below excerpt"
426
+ msgstr ""
427
+
428
+ #: ../lib/classes/rtTPGOptions.php:841
429
+ msgid "Separator"
430
+ msgstr ""
431
+
432
+ #: ../lib/classes/rtTPGOptions.php:844
433
+ msgid "Dot ( . )"
434
+ msgstr ""
435
+
436
+ #: ../lib/classes/rtTPGOptions.php:845
437
+ msgid "Single Slash ( / )"
438
+ msgstr ""
439
+
440
+ #: ../lib/classes/rtTPGOptions.php:846
441
+ msgid "Double Slash ( // )"
442
+ msgstr ""
443
+
444
+ #: ../lib/classes/rtTPGOptions.php:847
445
+ msgid "Hypen ( - )"
446
+ msgstr ""
447
+
448
+ #: ../lib/classes/rtTPGOptions.php:848
449
+ msgid "Vertical Pipe ( | )"
450
+ msgstr ""
451
+
452
+ #: ../lib/classes/rtTPGOptions.php:887
453
+ msgid "Image column"
454
+ msgstr ""
455
+
456
+ #: ../lib/classes/rtTPGOptions.php:896
457
+ msgid "Type"
458
+ msgstr ""
459
+
460
+ #: ../lib/classes/rtTPGOptions.php:904
461
+ msgid "Hover Animation"
462
+ msgstr ""
463
+
464
+ #: ../lib/classes/rtTPGOptions.php:908
465
+ msgid "Zoom in"
466
+ msgstr ""
467
+
468
+ #: ../lib/classes/rtTPGOptions.php:909
469
+ msgid "Zoom out"
470
+ msgstr ""
471
+
472
+ #: ../lib/classes/rtTPGOptions.php:910
473
+ msgid "None"
474
+ msgstr ""
475
+
476
+ #: ../lib/classes/rtTPGOptions.php:917, ../lib/classes/rtTPGOptions.php:955
477
+ msgid "Border radius"
478
+ msgstr ""
479
+
480
+ #: ../lib/classes/rtTPGOptions.php:918, ../lib/classes/rtTPGOptions.php:956, ../lib/classes/rtTPGOptions.php:1053, ../lib/classes/rtTPGOptions.php:1117, ../lib/classes/rtTPGOptions.php:1157
481
+ msgid "Leave it blank for default"
482
+ msgstr ""
483
+
484
+ #: ../lib/classes/rtTPGOptions.php:929
485
  msgid "Excerpt limit"
486
  msgstr ""
487
 
488
+ #: ../lib/classes/rtTPGOptions.php:931
489
  msgid "Excerpt limit only integer number is allowed, Leave it blank for full excerpt."
490
  msgstr ""
491
 
492
+ #: ../lib/classes/rtTPGOptions.php:935
493
  msgid "Excerpt Type"
494
  msgstr ""
495
 
496
+ #: ../lib/classes/rtTPGOptions.php:1037, ../lib/classes/rtTPGOptions.php:1101, ../lib/classes/rtTPGOptions.php:1146
497
+ msgid "Background Color"
498
  msgstr ""
499
 
500
+ #: ../lib/classes/rtTPGOptions.php:1042, ../lib/classes/rtTPGOptions.php:1151
501
+ msgid "Text Color"
502
  msgstr ""
503
 
504
+ #: ../lib/classes/rtTPGOptions.php:1047, ../lib/classes/rtTPGOptions.php:1111
505
+ msgid "Border Color"
506
  msgstr ""
507
 
508
+ #: ../lib/classes/rtTPGOptions.php:1052
509
+ msgid "Border Size"
510
  msgstr ""
511
 
512
+ #: ../lib/classes/rtTPGOptions.php:1058, ../lib/classes/rtTPGOptions.php:1082, ../lib/classes/rtTPGOptions.php:1162
513
+ msgid "Margin"
514
  msgstr ""
515
 
516
+ #: ../lib/classes/rtTPGOptions.php:1059, ../lib/classes/rtTPGOptions.php:1083, ../lib/classes/rtTPGOptions.php:1089, ../lib/classes/rtTPGOptions.php:1128, ../lib/classes/rtTPGOptions.php:1134, ../lib/classes/rtTPGOptions.php:1163, ../lib/classes/rtTPGOptions.php:1169
517
+ msgid "Multiple value allowed separated by comma 12,0,5,10"
518
  msgstr ""
519
 
520
+ #: ../lib/classes/rtTPGOptions.php:1064, ../lib/classes/rtTPGOptions.php:1088, ../lib/classes/rtTPGOptions.php:1168
521
+ msgid "Padding"
522
  msgstr ""
523
 
524
+ #: ../lib/classes/rtTPGOptions.php:1065
525
+ msgid "Leave it blank for default, multiple value allowed separated by comma 12,0,5,10"
526
  msgstr ""
527
 
528
+ #: ../lib/classes/rtTPGOptions.php:1077
529
+ msgid "Background"
530
  msgstr ""
531
 
532
+ #: ../lib/classes/rtTPGOptions.php:1106
533
+ msgid "Box Shadow Color"
534
  msgstr ""
535
 
536
+ #: ../lib/classes/rtTPGOptions.php:1116
537
+ msgid "Border Width"
538
+ msgstr ""
539
+
540
+ #: ../lib/classes/rtTPGOptions.php:1122, ../lib/classes/rtTPGOptions.php:1156
541
+ msgid "Border Radius"
542
+ msgstr ""
543
+
544
+ #: ../lib/classes/rtTPGOptions.php:1127
545
+ msgid "Box Padding"
546
+ msgstr ""
547
+
548
+ #: ../lib/classes/rtTPGOptions.php:1133
549
+ msgid "Content Padding"
550
  msgstr ""
551
 
552
+ #: ../lib/classes/rtTPGOptions.php:1174
553
+ msgid "Font Size"
554
+ msgstr ""
555
+
556
+ #: ../lib/classes/rtTPGOptions.php:1257
557
  msgid "Character"
558
  msgstr ""
559
 
560
+ #: ../lib/classes/rtTPGOptions.php:1258
561
  msgid "Word"
562
  msgstr ""
563
 
564
+ #: ../lib/classes/rtTPGOptions.php:1261
565
  msgid "Full Content"
566
  msgstr ""
567
 
568
+ #: ../lib/classes/rtTPGOptions.php:1280
569
  msgid "Taxonomy filter"
570
  msgstr ""
571
 
572
+ #: ../lib/classes/rtTPGOptions.php:1281
573
  msgid "Author filter"
574
  msgstr ""
575
 
576
+ #: ../lib/classes/rtTPGOptions.php:1282
577
  msgid "Order - Sort retrieved posts by parameter"
578
  msgstr ""
579
 
580
+ #: ../lib/classes/rtTPGOptions.php:1283
581
  msgid "Sort Order - Designates the ascending or descending order of the \"orderby\" parameter"
582
  msgstr ""
583
 
584
+ #: ../lib/classes/rtTPGOptions.php:1284
585
  msgid "Search filter"
586
  msgstr ""
587
 
588
+ #: ../lib/classes/rtTPGOptions.php:1305
589
+ msgid "Grid"
590
  msgstr ""
591
 
592
+ #: ../lib/classes/rtTPGOptions.php:1309
593
+ msgid "Grid Hover"
594
  msgstr ""
595
 
596
+ #: ../lib/classes/rtTPGOptions.php:1313
597
+ msgid "List"
598
  msgstr ""
599
 
600
+ #: ../lib/classes/rtTPGOptions.php:1317
601
+ msgid "Isotope"
602
  msgstr ""
603
 
604
+ #: ../lib/classes/rtTPGOptions.php:1328
605
+ msgid "Grid Layout 1"
606
+ msgstr ""
607
+
608
+ #: ../lib/classes/rtTPGOptions.php:1340
609
+ msgid "Grid Hover 1"
610
+ msgstr ""
611
+
612
+ #: ../lib/classes/rtTPGOptions.php:1358
613
+ msgid "List Layout 1"
614
+ msgstr ""
615
+
616
+ #: ../lib/classes/rtTPGOptions.php:1364
617
+ msgid "List Layout 2"
618
+ msgstr ""
619
+
620
+ #: ../lib/classes/rtTPGOptions.php:1370
621
+ msgid "Isotope Layout 1"
622
  msgstr ""
623
 
624
+ #: ../lib/classes/rtTPGOptions.php:1382, ../lib/views/settings/sc-settings.php:2, ../lib/views/settings/style.php:13
625
+ msgid "ShortCode Heading"
626
+ msgstr ""
627
+
628
+ #: ../lib/classes/rtTPGOptions.php:1384, ../lib/views/settings/sc-settings.php:34
629
+ msgid "Excerpt"
630
+ msgstr ""
631
+
632
+ #: ../lib/classes/rtTPGOptions.php:1385, ../lib/classes/rtTPGPreview.php:69, ../lib/classes/rtTPGShortCode.php:146
633
  msgid "Read More"
634
  msgstr ""
635
 
636
+ #: ../lib/classes/rtTPGOptions.php:1386
637
+ msgid "Post Date"
638
+ msgstr ""
639
+
640
+ #: ../lib/classes/rtTPGOptions.php:1387
641
+ msgid "Author"
642
+ msgstr ""
643
+
644
+ #: ../lib/classes/rtTPGOptions.php:1388
645
+ msgid "Categories"
646
+ msgstr ""
647
+
648
+ #: ../lib/classes/rtTPGOptions.php:1389
649
+ msgid "Tags"
650
+ msgstr ""
651
+
652
+ #: ../lib/classes/rtTPGOptions.php:1390
653
+ msgid "Comment count"
654
+ msgstr ""
655
+
656
+ #: ../lib/classes/rtTPGOptions.php:1500
657
+ msgid "Get Pro Version"
658
+ msgstr ""
659
+
660
+ #: ../lib/classes/rtTPGPreview.php:468, ../lib/classes/rtTPGShortCode.php:519
661
  msgid "All"
662
  msgstr ""
663
 
664
+ #: ../lib/classes/rtTPGPreview.php:702, ../lib/classes/rtTPGPreview.php:709, ../lib/classes/rtTPGShortCode.php:750, ../lib/classes/rtTPGShortCode.php:757
665
  msgid "Sort By None"
666
  msgstr ""
667
 
668
+ #: ../lib/classes/rtTPGPreview.php:727, ../lib/classes/rtTPGShortCode.php:775
669
  msgid "Search..."
670
  msgstr ""
671
 
672
+ #: ../lib/classes/rtTPGPreview.php:735, ../lib/classes/rtTPGShortCode.php:783
673
  msgid "Loading ..."
674
  msgstr ""
675
 
676
+ #: ../lib/classes/rtTPGPreview.php:938, ../lib/classes/rtTPGShortCode.php:979
677
  msgid "No post found"
678
  msgstr ""
679
 
680
+ #: ../lib/classes/rtTPGPreview.php:822, ../lib/classes/rtTPGShortCode.php:869
681
  msgid "Search"
682
  msgstr ""
683
 
684
+ #: ../lib/classes/rtTPGPreview.php:972, ../lib/classes/rtTPGPreview.php:967, ../lib/classes/rtTPGShortCode.php:1005
685
  msgid "Load More"
686
  msgstr ""
687
 
688
+ #: ../lib/classes/rtTPGShortCode.php:1043
689
  msgid "No shortCode found"
690
  msgstr ""
691
 
692
+ #: ../lib/classes/rtTPGShortCode.php:1062
693
  msgid "This is a restricted content, you need to logged in to view this content."
694
  msgstr ""
695
 
696
+ #: ../lib/classes/rtTPGShortCode.php:1057
697
  msgid "You are not permitted to view this content."
698
  msgstr ""
699
 
700
+ #: ../lib/models/rtTPGField.php:90
701
  msgid "Premium Option"
702
  msgstr ""
703
 
704
+ #: ../lib/models/rtTPGField.php:505
705
+ msgid "If \"Meta value\", \"Meta value Number\" or \"Meta value datetime\" is chosen then meta key is required."
706
+ msgstr ""
707
+
708
+ #: ../lib/models/rtTPGField.php:695
709
  msgid "Start"
710
  msgstr ""
711
 
712
+ #: ../lib/models/rtTPGField.php:704
713
  msgid "End"
714
  msgstr ""
715
 
729
  msgid "Select post grid"
730
  msgstr ""
731
 
732
+ #: ../lib/views/settings/sc-settings.php:9
733
+ msgid "Category"
734
+ msgstr ""
735
+
736
+ #: ../lib/views/settings/sc-settings.php:22
737
+ msgid "Meta"
738
+ msgstr ""
739
+
740
+ #: ../lib/views/settings/sc-settings.php:28
741
+ msgid "Image"
742
+ msgstr ""
743
+
744
+ #: ../lib/views/settings/sc-settings.php:40
745
+ msgid "Read More Button"
746
  msgstr ""
747
 
748
  #: ../lib/views/settings/settings.php:3
768
  #: ../lib/views/settings/settings.php:31
769
  msgid "Other Settings"
770
  msgstr ""
771
+
772
+ #: ../lib/views/settings/style.php:4
773
+ msgid "Button Color"
774
+ msgstr ""
775
+
776
+ #: ../lib/views/settings/style.php:22
777
+ msgid "Full Area / Section"
778
+ msgstr ""
lib/classes/rtTPGAjaxResponse.php CHANGED
@@ -11,6 +11,7 @@ if (!class_exists('rtTPGAjaxResponse')):
11
  add_action('wp_ajax_rtTPGTermListByTaxonomy', array($this, 'rtTPGTermListByTaxonomy'));
12
  add_action('wp_ajax_defaultFilterItem', array($this, 'defaultFilterItem'));
13
  add_action('wp_ajax_getCfGroupListAsField', array($this, 'getCfGroupListAsField'));
 
14
  }
15
 
16
  function getCfGroupListAsField() {
11
  add_action('wp_ajax_rtTPGTermListByTaxonomy', array($this, 'rtTPGTermListByTaxonomy'));
12
  add_action('wp_ajax_defaultFilterItem', array($this, 'defaultFilterItem'));
13
  add_action('wp_ajax_getCfGroupListAsField', array($this, 'getCfGroupListAsField'));
14
+ //add_action('wp_ajax_rtTPGLayout', [rtTPG(), 'rtTPGLayouts']);
15
  }
16
 
17
  function getCfGroupListAsField() {
lib/classes/rtTPGHelper.php CHANGED
@@ -1,419 +1,433 @@
1
  <?php
2
 
3
- if (!class_exists('rtTPGHelper')):
4
-
5
- class rtTPGHelper {
6
-
7
- function verifyNonce() {
8
- $nonce = isset($_REQUEST[$this->nonceId()]) ? $_REQUEST[$this->nonceId()] : null;
9
- $nonceText = rtTPG()->nonceText();
10
- if (!wp_verify_nonce($nonce, $nonceText)) {
11
- return false;
12
- }
13
-
14
- return true;
15
- }
16
-
17
- function nonceText() {
18
- return "rttpg_nonce_secret";
19
- }
20
-
21
- function nonceId() {
22
- return "rttpg_nonce";
23
- }
24
-
25
- function rtAllOptionFields() {
26
- $fields = array_merge(
27
- rtTPG()->rtTPGCommonFilterFields(),
28
- rtTPG()->rtTPGLayoutSettingFields(),
29
- rtTPG()->rtTPGStyleFields(),
30
- rtTPG()->rtTPGPostType(),
31
- rtTPG()->rtTPAdvanceFilters(),
32
- rtTPG()->itemFields()
33
- );
34
-
35
- return $fields;
36
- }
37
-
38
- function rt_get_all_term_by_taxonomy($taxonomy = null, $count = false, $parent = false) {
39
- $terms = array();
40
- if ($taxonomy) {
41
- $temp_terms = get_terms(array('taxonomy' => $taxonomy, 'hide_empty' => 0));
42
- if (is_array($temp_terms) && !empty($temp_terms) && empty($temp_terms['errors'])) {
43
- foreach ($temp_terms as $term) {
44
- $order = get_term_meta($term->term_id, '_rt_order', true);
45
- if ($order === "") {
46
- update_term_meta($term->term_id, '_rt_order', 0);
47
- }
48
- }
49
- global $wp_version;
50
- $args = array(
51
- 'taxonomy' => $taxonomy,
52
- 'orderby' => 'meta_value_num',
53
- 'meta_key' => '_rt_order',
54
- 'hide_empty' => false,
55
- );
56
- if ($parent >= 0 && $parent !== false) {
57
- $args['parent'] = absint($parent);
58
- }
59
- $args['orderby'] = 'meta_value_num';
60
- $args['meta_key'] = '_rt_order';
61
-
62
- $termObjs = get_terms($args);
63
-
64
- foreach ($termObjs as $term) {
65
- if ($count) {
66
- $terms[$term->term_id] = array('name' => $term->name, 'count' => $term->count);
67
- } else {
68
- $terms[$term->term_id] = $term->name;
69
- }
70
- }
71
- }
72
- }
73
-
74
- return $terms;
75
- }
76
-
77
- function rt_get_selected_term_by_taxonomy($taxonomy = null, $include = [], $count = false, $parent = false) {
78
- $terms = array();
79
- if ($taxonomy) {
80
- $temp_terms = get_terms(array('taxonomy' => $taxonomy, 'hide_empty' => 0));
81
- if (is_array($temp_terms) && !empty($temp_terms) && empty($temp_terms['errors'])) {
82
- foreach ($temp_terms as $term) {
83
- $order = get_term_meta($term->term_id, '_rt_order', true);
84
- if ($order === "") {
85
- update_term_meta($term->term_id, '_rt_order', 0);
86
- }
87
- }
88
- global $wp_version;
89
- $args = array(
90
- 'taxonomy' => $taxonomy,
91
- 'orderby' => 'meta_value_num',
92
- 'meta_key' => '_rt_order',
93
- 'include' => $include,
94
- 'hide_empty' => false,
95
- );
96
- if ($parent >= 0 && $parent !== false) {
97
- $args['parent'] = absint($parent);
98
- }
99
- $args['orderby'] = 'meta_value_num';
100
- $args['meta_key'] = '_rt_order';
101
-
102
- $termObjs = get_terms($args);
103
-
104
- foreach ($termObjs as $term) {
105
- if ($count) {
106
- $terms[$term->term_id] = array('name' => $term->name, 'count' => $term->count);
107
- } else {
108
- $terms[$term->term_id] = $term->name;
109
- }
110
- }
111
- }
112
- }
113
-
114
- return $terms;
115
- }
116
-
117
- function getCurrentUserRoles() {
118
- global $current_user;
119
-
120
- return $current_user->roles;
121
- }
122
-
123
- function rt_get_taxonomy_for_filter($post_type = null) {
124
-
125
- if (!$post_type) {
126
- $post_type = get_post_meta(get_the_ID(), 'tpg_post_type', true);
127
- }
128
- if (!$post_type) {
129
- $post_type = 'post';
130
- }
131
-
132
- return $this->rt_get_all_taxonomy_by_post_type($post_type);
133
- }
134
-
135
- function rt_get_all_taxonomy_by_post_type($post_type = null) {
136
- $taxonomies = array();
137
- if ($post_type && post_type_exists($post_type)) {
138
- $taxObj = get_object_taxonomies($post_type, 'objects');
139
- if (is_array($taxObj) && !empty($taxObj)) {
140
- foreach ($taxObj as $tKey => $taxonomy) {
141
- $taxonomies[$tKey] = $taxonomy->label;
142
- }
143
- }
144
- }
145
- if ($post_type == 'post') {
146
- unset($taxonomies['post_format']);
147
- }
148
-
149
- return $taxonomies;
150
- }
151
-
152
- function rt_get_users() {
153
- $users = array();
154
- $u = get_users(apply_filters('tpg_author_arg', array()));
155
- if (!empty($u)) {
156
- foreach ($u as $user) {
157
- $users[$user->ID] = $user->display_name;
158
- }
159
- }
160
-
161
- return $users;
162
- }
163
-
164
- function rtFieldGenerator($fields = array()) {
165
- $html = null;
166
- if (is_array($fields) && !empty($fields)) {
167
- $tpgField = new rtTPGField();
168
- foreach ($fields as $fieldKey => $field) {
169
- $html .= $tpgField->Field($fieldKey, $field);
170
- }
171
- }
172
-
173
- return $html;
174
- }
175
-
176
- /**
177
- * Sanitize field value
178
- *
179
- * @param array $field
180
- * @param null $value
181
- *
182
- * @return array|null
183
- * @internal param $value
184
- */
185
- function sanitize($field = array(), $value = null) {
186
- $newValue = null;
187
- if (is_array($field)) {
188
- $type = (!empty($field['type']) ? $field['type'] : 'text');
189
- if (empty($field['multiple'])) {
190
- if ($type == 'text' || $type == 'number' || $type == 'select' || $type == 'checkbox' || $type == 'radio') {
191
- $newValue = sanitize_text_field($value);
192
- } else if ($type == 'url') {
193
- $newValue = esc_url($value);
194
- } else if ($type == 'slug') {
195
- $newValue = sanitize_title_with_dashes($value);
196
- } else if ($type == 'textarea') {
197
- $newValue = wp_kses_post($value);
198
- } else if ($type == 'script') {
199
- $newValue = trim($value);
200
- } else if ($type == 'colorpicker') {
201
- $newValue = $this->sanitize_hex_color($value);
202
- } else if ($type == 'image_size') {
203
- $newValue = array();
204
- foreach ($value as $k => $v) {
205
- $newValue[$k] = esc_attr($v);
206
- }
207
- } else if ($type == 'style') {
208
- $newValue = array();
209
- foreach ($value as $k => $v) {
210
- if ($k == 'color') {
211
- $newValue[$k] = $this->sanitize_hex_color($v);
212
- } else {
213
- $newValue[$k] = $this->sanitize(array('type' => 'text'), $v);
214
- }
215
- }
216
- } else {
217
- $newValue = sanitize_text_field($value);
218
- }
219
-
220
- } else {
221
- $newValue = array();
222
- if (!empty($value)) {
223
- if (is_array($value)) {
224
- foreach ($value as $key => $val) {
225
- if ($type == 'style' && $key == 0) {
226
- if (function_exists('sanitize_hex_color')) {
227
- $newValue = sanitize_hex_color($val);
228
- } else {
229
- $newValue[] = $this->sanitize_hex_color($val);
230
- }
231
- } else {
232
- $newValue[] = sanitize_text_field($val);
233
- }
234
- }
235
- } else {
236
- $newValue[] = sanitize_text_field($value);
237
- }
238
- }
239
- }
240
- }
241
-
242
- return $newValue;
243
- }
244
-
245
- function sanitize_hex_color($color) {
246
- if (function_exists('sanitize_hex_color')) {
247
- return sanitize_hex_color($color);
248
- } else {
249
- if ('' === $color) {
250
- return '';
251
- }
252
-
253
- // 3 or 6 hex digits, or the empty string.
254
- if (preg_match('|^#([A-Fa-f0-9]{3}){1,2}$|', $color)) {
255
- return $color;
256
- }
257
- }
258
- }
259
-
260
- function rtFieldGeneratorBackup($fields = array(), $multi = false) {
261
- $html = null;
262
- if (is_array($fields) && !empty($fields)) {
263
- $rtField = new rtTPGField();
264
- if ($multi) {
265
- foreach ($fields as $field) {
266
- $html .= $rtField->Field($field);
267
- }
268
- } else {
269
- $html .= $rtField->Field($fields);
270
- }
271
- }
272
-
273
- return $html;
274
- }
275
-
276
- function rtSmartStyle($fields = array()) {
277
- $h = null;
278
- if (!empty($fields)) {
279
- foreach ($fields as $key => $label) {
280
- $atts = '';
281
- $proText = '';
282
- $class = '';
283
-
284
- $h .= "<div class='field-holder {$class}'>";
285
-
286
- $h .= "<div class='field-label'><label>{$label}{$proText}</label></div>";
287
- $h .= "<div class='field'>";
288
- // color
289
- $h .= "<div class='field-inner col-4'>";
290
- $h .= "<div class='field-inner-container size'>";
291
- $h .= "<span class='label'>Color</span>";
292
- $cValue = get_post_meta(get_the_ID(), $key . "_color", true);
293
- $h .= "<input type='text' value='{$cValue}' class='rt-color' name='{$key}_color'>";
294
- $h .= "</div>";
295
- $h .= "</div>";
296
-
297
- // Font size
298
- $h .= "<div class='field-inner col-4'>";
299
- $h .= "<div class='field-inner-container size'>";
300
- $h .= "<span class='label'>Font size</span>";
301
- $h .= "<select {$atts} name='{$key}_size' class='rt-select2'>";
302
- $fSizes = rtTPG()->scFontSize();
303
- $sValue = get_post_meta(get_the_ID(), $key . "_size", true);
304
- $h .= "<option value=''>Default</option>";
305
- foreach ($fSizes as $size => $sizeLabel) {
306
- $sSlt = ($size == $sValue ? "selected" : null);
307
- $h .= "<option value='{$size}' {$sSlt}>{$sizeLabel}</option>";
308
- }
309
- $h .= "</select>";
310
- $h .= "</div>";
311
- $h .= "</div>";
312
-
313
- // Weight
314
-
315
- $h .= "<div class='field-inner col-4'>";
316
- $h .= "<div class='field-inner-container weight'>";
317
- $h .= "<span class='label'>Weight</span>";
318
- $h .= "<select {$atts} name='{$key}_weight' class='rt-select2'>";
319
- $h .= "<option value=''>Default</option>";
320
- $weights = rtTPG()->scTextWeight();
321
- $wValue = get_post_meta(get_the_ID(), $key . "_weight", true);
322
- foreach ($weights as $weight => $weightLabel) {
323
- $wSlt = ($weight == $wValue ? "selected" : null);
324
- $h .= "<option value='{$weight}' {$wSlt}>{$weightLabel}</option>";
325
- }
326
- $h .= "</select>";
327
- $h .= "</div>";
328
- $h .= "</div>";
329
-
330
- // Alignment
331
-
332
- $h .= "<div class='field-inner col-4'>";
333
- $h .= "<div class='field-inner-container alignment'>";
334
- $h .= "<span class='label'>Alignment</span>";
335
- $h .= "<select {$atts} name='{$key}_alignment' class='rt-select2'>";
336
- $h .= "<option value=''>Default</option>";
337
- $aligns = rtTPG()->scAlignment();
338
- $aValue = get_post_meta(get_the_ID(), $key . "_alignment", true);
339
- foreach ($aligns as $align => $alignLabel) {
340
- $aSlt = ($align == $aValue ? "selected" : null);
341
- $h .= "<option value='{$align}' {$aSlt}>{$alignLabel}</option>";
342
- }
343
- $h .= "</select>";
344
- $h .= "</div>";
345
- $h .= "</div>";
346
-
347
- $h .= "</div>";
348
- $h .= "</div>";
349
- }
350
- }
351
-
352
- return $h;
353
- }
354
-
355
- function custom_variation_price($product) {
356
- $price = '';
357
- $max = $product->get_variation_regular_price('max');
358
- $min = $product->get_variation_regular_price('min');
359
-
360
- if (!$min || $min !== $max) {
361
- $price .= woocommerce_price($product->get_price());
362
- }
363
- if ($max && $max !== $min) {
364
- $price .= woocommerce_price($max);
365
- }
366
-
367
- return $price;
368
- }
369
-
370
- function getTPGShortCodeList() {
371
- $scList = null;
372
- $scQ = get_posts(array(
373
- 'post_type' => rtTPG()->post_type,
374
- 'order_by' => 'title',
375
- 'order' => 'DESC',
376
- 'post_status' => 'publish',
377
- 'posts_per_page' => -1,
378
- 'meta_query' => array(
379
- array(
380
- 'key' => 'layout',
381
- 'value' => 'layout',
382
- 'compare' => 'LIKE',
383
- ),
384
- )
385
- ));
386
- if (!empty($scQ)) {
387
- foreach ($scQ as $sc) {
388
- $scList[$sc->ID] = $sc->post_title;
389
- }
390
- }
391
-
392
- return $scList;
393
- }
394
-
395
- function getAllTPGShortCodeList() {
396
-
397
- $scList = null;
398
- $scQ = get_posts(array(
399
- 'post_type' => rtTPG()->post_type,
400
- 'order_by' => 'title',
401
- 'order' => 'ASC',
402
- 'post_status' => 'publish',
403
- 'posts_per_page' => -1
404
- ));
405
- if (!empty($scQ)) {
406
- foreach ($scQ as $sc) {
407
- $scList[$sc->ID] = $sc->post_title;
408
- }
409
- }
410
-
411
- return $scList;
412
- }
413
-
414
- function socialShare($pLink) {
415
- $html = null;
416
- $html .= "<div class='single-tpg-share'>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
417
  <div class='fb-share'>
418
  <div class='fb-share-button' data-href='{$pLink}' data-layout='button_count'></div>
419
  </div>
@@ -430,7 +444,7 @@ if (!class_exists('rtTPGHelper')):
430
  <a data-pin-do='buttonPin' data-pin-count='beside' href='https://www.pinterest.com/pin/create/button/?url=https%3A%2F%2Fwww.flickr.com%2Fphotos%2Fkentbrew%2F6851755809%2F&media=https%3A%2F%2Ffarm8.staticflickr.com%2F7027%2F6851755809_df5b2051c9_z.jpg&description=Next%20stop%3A%20Pinterest'><img src='//assets.pinterest.com/images/pidgets/pinit_fg_en_rect_gray_20.png' /></a>
431
  </div>
432
  </div>";
433
- $html .= '<div id="fb-root"></div>
434
  <script>(function(d, s, id) {
435
  var js, fjs = d.getElementsByTagName(s)[0];
436
  if (d.getElementById(id)) return;
@@ -438,469 +452,544 @@ if (!class_exists('rtTPGHelper')):
438
  js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.5";
439
  fjs.parentNode.insertBefore(js, fjs);
440
  }(document, "script", "facebook-jssdk"));</script>';
441
- $html .= "<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
442
  <script>window.___gcfg = { lang: 'en-US', parsetags: 'onload', };</script>";
443
- $html .= "<script src='https://apis.google.com/js/platform.js' async defer></script>";
444
- $html .= '<script src="//platform.linkedin.com/in.js" type="text/javascript"> lang: en_US</script>';
445
- $html .= '<script async defer src="//assets.pinterest.com/js/pinit.js"></script>';
446
-
447
- return $html;
448
- }
449
-
450
- function get_image_sizes() {
451
- global $_wp_additional_image_sizes;
452
-
453
- $sizes = array();
454
- $interSizes = get_intermediate_image_sizes();
455
- if (!empty($interSizes)) {
456
- foreach (get_intermediate_image_sizes() as $_size) {
457
- if (in_array($_size, array('thumbnail', 'medium', 'large'))) {
458
- $sizes[$_size]['width'] = get_option("{$_size}_size_w");
459
- $sizes[$_size]['height'] = get_option("{$_size}_size_h");
460
- $sizes[$_size]['crop'] = (bool)get_option("{$_size}_crop");
461
- } elseif (isset($_wp_additional_image_sizes[$_size])) {
462
- $sizes[$_size] = array(
463
- 'width' => $_wp_additional_image_sizes[$_size]['width'],
464
- 'height' => $_wp_additional_image_sizes[$_size]['height'],
465
- 'crop' => $_wp_additional_image_sizes[$_size]['crop'],
466
- );
467
- }
468
- }
469
- }
470
-
471
- $imgSize = array();
472
- if (!empty($sizes)) {
473
- foreach ($sizes as $key => $img) {
474
- $imgSize[$key] = ucfirst($key) . " ({$img['width']}*{$img['height']})";
475
- }
476
- }
477
-
478
- return apply_filters('tpg_image_sizes', $imgSize);
479
- }
480
-
481
- function getFeatureImageSrc(
482
- $post_id = null,
483
- $fImgSize = 'medium',
484
- $mediaSource = 'feature_image',
485
- $defaultImgId = null,
486
- $customImgSize = array()
487
- ) {
488
- global $post;
489
- $imgSrc = null;
490
- $img_class = "rt-img-responsive";
491
- $post_id = ( $post_id ? absint( $post_id ) : $post->ID );
492
- $alt = get_the_title( $post_id );
493
- $image = null;
494
- $cSize = false;
495
- if ($fImgSize == 'rt_custom') {
496
- $fImgSize = 'full';
497
- $cSize = true;
498
- }
499
-
500
- if ($mediaSource == 'feature_image') {
501
- if ($aID = get_post_thumbnail_id($post_id)) {
502
- $image = wp_get_attachment_image($aID, $fImgSize, '', ['class' => $img_class, 'loading' => false]);
503
- $imgSrc = wp_get_attachment_image_src($aID, $fImgSize);
504
- $imgSrc = !empty($imgSrc) ? $imgSrc[0] : $imgSrc;
505
- }
506
- } else if ($mediaSource == 'first_image') {
507
- if ($img = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', get_the_content($post_id),
508
- $matches)
509
- ) {
510
- $imgSrc = $matches[1][0];
511
- $size = '';
512
-
513
- $imgAbs = str_replace(trailingslashit(site_url()),ABSPATH, $imgSrc);
514
-
515
- if (file_exists($imgAbs)) {
516
- $info = getimagesize($imgAbs);
517
- $size = isset($info[3]) ? $info[3] : '';
518
- }
519
-
520
- $image = "<img class='{$img_class}' src='{$imgSrc}' {$size} alt='{$alt}'>";
521
- }
522
- }
523
-
524
- if (!$imgSrc && $defaultImgId) {
525
- $image = wp_get_attachment_image($defaultImgId, $fImgSize);
526
- }
527
-
528
- if ($imgSrc && $cSize) {
529
- $w = (!empty($customImgSize[0]) ? absint($customImgSize[0]) : null);
530
- $h = (!empty($customImgSize[1]) ? absint($customImgSize[1]) : null);
531
- $c = (!empty($customImgSize[2]) && $customImgSize[2] == 'soft' ? false : true);
532
- if ($w && $h) {
533
- $imgSrc = rtTPG()->rtImageReSize($imgSrc, $w, $h, $c);
534
- $image = "<img class='{$img_class}' src='{$imgSrc}' width='{$w}' height='{$h}' alt='{$alt}'>";
535
- }
536
- }
537
-
538
- return $image;
539
- }
540
-
541
- function getFeatureImageUrl($post_id = null, $fImgSize = 'medium') {
542
- $image = $imgSrc = null;
543
-
544
- if ($aID = get_post_thumbnail_id($post_id)) {
545
- $image = wp_get_attachment_image_src($aID, $fImgSize);
546
- }
547
-
548
- if (is_array($image)) {
549
- $imgSrc = $image[0];
550
- }
551
-
552
- return $imgSrc;
553
- }
554
-
555
- function get_the_excerpt($post_id, $data = array()) {
556
- $type = $data['excerpt_type'];
557
- $post = get_post($post_id);
558
- if (empty($post)) {
559
- return '';
560
- }
561
- if ($type == 'full') {
562
- ob_start();
563
- the_content();
564
- $content = ob_get_clean();
565
-
566
- return apply_filters('tpg_content_full', $content, $post_id, $data);
567
- } else {
568
- if (class_exists('ET_GB_Block_Layout')) {
569
- $defaultExcerpt = $post->post_excerpt ?: wp_trim_words($post->post_content, 55);
570
- } else {
571
- $defaultExcerpt = get_the_excerpt($post_id);
572
- }
573
- $limit = isset($data['excerpt_limit']) ? abs($data['excerpt_limit']) : 0;
574
- $more = $data['excerpt_more_text'];
575
- $excerpt = preg_replace('`\[[^\]]*\]`', '', $defaultExcerpt);
576
- $excerpt = strip_shortcodes($excerpt);
577
- $excerpt = preg_replace('`[[^]]*]`', '', $excerpt);
578
- $excerpt = str_replace('', '', $excerpt);
579
- if ($limit) {
580
- $excerpt = wp_filter_nohtml_kses($excerpt);
581
- if ($type == "word") {
582
- $limit = $limit + 1;
583
- $rawExcerpt = $excerpt;
584
- $excerpt = explode(' ', $excerpt, $limit);
585
- if (count($excerpt) >= $limit) {
586
- array_pop($excerpt);
587
- $excerpt = implode(" ", $excerpt);
588
- } else {
589
- $excerpt = $rawExcerpt;
590
- }
591
- } else {
592
- if ($limit > 0 && strlen($excerpt) > $limit) {
593
- $excerpt = mb_substr($excerpt, 0, $limit, "utf-8");
594
- $excerpt = preg_replace('/\W\w+\s*(\W*)$/', '$1', $excerpt);
595
- }
596
- }
597
- $excerpt = stripslashes($excerpt);
598
- } else {
599
- $allowed_html = array(
600
- 'a' => array(
601
- 'href' => array(),
602
- 'title' => array()
603
- ),
604
- 'strong' => array(),
605
- 'b' => array(),
606
- 'br' => array(array()),
607
- );
608
- $excerpt = nl2br(wp_kses($excerpt, $allowed_html));
609
- }
610
-
611
- $excerpt = ($more ? $excerpt . " " . $more : $excerpt);
612
-
613
- return apply_filters('tpg_get_the_excerpt', $excerpt, $post_id, $data, $defaultExcerpt);
614
- }
615
- }
616
-
617
- function get_the_title($post_id, $data = array()) {
618
- $title = $originalTitle = get_the_title($post_id);
619
- $limit = isset($data['title_limit']) ? abs($data['title_limit']) : 0;
620
- $limit_type = isset($data['title_limit_type']) ? trim($data['title_limit_type']) : 'character';
621
- if ($limit) {
622
- if ($limit_type == "word") {
623
- $limit = $limit + 1;
624
- $title = explode(' ', $title, $limit);
625
- if (count($title) >= $limit) {
626
- array_pop($title);
627
- $title = implode(" ", $title);
628
- } else {
629
- $title = $originalTitle;
630
- }
631
- } else {
632
- if ($limit > 0 && strlen($title) > $limit) {
633
- $title = mb_substr($title, 0, $limit, "utf-8");
634
- $title = preg_replace('/\W\w+\s*(\W*)$/', '$1', $title);
635
- }
636
- }
637
- }
638
-
639
- return apply_filters('tpg_get_the_title', $title, $post_id, $data, $originalTitle);
640
- }
641
-
642
-
643
- function rt_pagination($postGrid, $range = 4, $ajax = false) {
644
-
645
- $html = $pages = null;
646
- $showitems = ($range * 2) + 1;
647
-
648
- $wpQuery = $postGrid;
649
- global $wp_query;
650
- if (empty($wpQuery)) {
651
- $wpQuery = $wp_query;
652
- }
653
- $pages = !empty($wpQuery->max_num_pages) ? $wpQuery->max_num_pages : 1;
654
- $paged = !empty($wpQuery->query['paged']) ? $wpQuery->query['paged'] : 1;
655
- if (is_front_page()) {
656
- $paged = !empty($wp_query->query['paged']) ? $wp_query->query['paged'] : 1;
657
- }
658
-
659
-
660
- $ajaxClass = null;
661
- $dataAttr = null;
662
-
663
- if ($ajax) {
664
- $ajaxClass = ' rt-ajax';
665
- $dataAttr = "data-paged='1'";
666
- }
667
-
668
- if (1 != $pages) {
669
-
670
- $html .= '<div class="rt-pagination' . $ajaxClass . '" ' . $dataAttr . '>';
671
- $html .= '<ul class="pagination-list">';
672
- if ($paged > 2 && $paged > $range + 1 && $showitems < $pages && !$ajax) {
673
- $html .= "<li><a data-paged='1' href='" . get_pagenum_link(1) . "' aria-label='First'>&laquo;</a></li>";
674
- }
675
-
676
- if ($paged > 1 && $showitems < $pages && !$ajax) {
677
- $p = $paged - 1;
678
- $html .= "<li><a data-paged='{$p}' href='" . get_pagenum_link($p) . "' aria-label='Previous'>&lsaquo;</a></li>";
679
- }
680
-
681
- if ($ajax) {
682
- for ($i = 1; $i <= $pages; $i++) {
683
- $html .= ($paged == $i) ? "<li class=\"active\"><span>" . $i . "</span>
684
-
685
- </li>" : "<li><a data-paged='{$i}' href='" . get_pagenum_link($i) . "'>" . $i . "</a></li>";
686
- }
687
- } else {
688
-
689
- for ($i = 1; $i <= $pages; $i++) {
690
- if (1 != $pages && (!($i >= $paged + $range + 1 || $i <= $paged - $range - 1) || $pages <= $showitems)) {
691
- $html .= ($paged == $i) ? "<li class=\"active\"><span>" . $i . "</span>
692
-
693
- </li>" : "<li><a data-paged='{$i}' href='" . get_pagenum_link($i) . "'>" . $i . "</a></li>";
694
-
695
- }
696
-
697
- }
698
- }
699
-
700
- if ($paged < $pages && $showitems < $pages && !$ajax) {
701
- $p = $paged + 1;
702
- $html .= "<li><a data-paged='{$p}' href=\"" . get_pagenum_link($paged + 1) . "\" aria-label='Next'>&rsaquo;</a></li>";
703
- }
704
-
705
- if ($paged < $pages - 1 && $paged + $range - 1 < $pages && $showitems < $pages && !$ajax) {
706
- $html .= "<li><a data-paged='{$pages}' href='" . get_pagenum_link($pages) . "' aria-label='Last'>&raquo;</a></li>";
707
- }
708
-
709
- $html .= "</ul>";
710
- $html .= "</div>";
711
- }
712
-
713
- return $html;
714
-
715
- }
716
-
717
-
718
- function rt_pagination_ajax($pages = '', $range = 4, $scID) {
719
- $html = null;
720
-
721
-
722
- $html .= "<div class='rt-tpg-pagination-ajax' data-sc-id='{$scID}' data-paged='1'>";
723
-
724
- $html .= "</div>";
725
-
726
- return $html;
727
- }
728
-
729
- /**
730
- * Call the Image resize model for resize function
731
- *
732
- * @param $url
733
- * @param null $width
734
- * @param null $height
735
- * @param null $crop
736
- * @param bool|true $single
737
- * @param bool|false $upscale
738
- *
739
- * @return array|bool|string
740
- * @throws Exception
741
- * @throws Rt_Exception
742
- */
743
- function rtImageReSize($url, $width = null, $height = null, $crop = null, $single = true, $upscale = false) {
744
- $rtResize = new rtTPGReSizer();
745
-
746
- return $rtResize->process($url, $width, $height, $crop, $single, $upscale);
747
- }
748
-
749
-
750
- /* Convert hexdec color string to rgb(a) string */
751
- function rtHex2rgba($color, $opacity = .5) {
752
-
753
- $default = 'rgb(0,0,0)';
754
-
755
- //Return default if no color provided
756
- if (empty($color)) {
757
- return $default;
758
- }
759
-
760
- //Sanitize $color if "#" is provided
761
- if ($color[0] == '#') {
762
- $color = substr($color, 1);
763
- }
764
-
765
- //Check if color has 6 or 3 characters and get values
766
- if (strlen($color) == 6) {
767
- $hex = array($color[0] . $color[1], $color[2] . $color[3], $color[4] . $color[5]);
768
- } elseif (strlen($color) == 3) {
769
- $hex = array($color[0] . $color[0], $color[1] . $color[1], $color[2] . $color[2]);
770
- } else {
771
- return $default;
772
- }
773
-
774
- //Convert hexadec to rgb
775
- $rgb = array_map('hexdec', $hex);
776
-
777
- //Check if opacity is set(rgba or rgb)
778
- if ($opacity) {
779
- if (abs($opacity) > 1) {
780
- $opacity = 1.0;
781
- }
782
- $output = 'rgba(' . implode(",", $rgb) . ',' . $opacity . ')';
783
- } else {
784
- $output = 'rgb(' . implode(",", $rgb) . ')';
785
- }
786
-
787
- //Return rgb(a) color string
788
- return $output;
789
- }
790
-
791
- function doFlush() {
792
- if (get_option(rtTPG()->options['flash'])) {
793
- rtTPG()->flush_rewrite();
794
- update_option(rtTPG()->options['flash'], false);
795
- }
796
- }
797
-
798
- function meta_exist($post_id = null, $meta_key, $type = "post") {
799
- if (!$post_id) {
800
- return false;
801
- }
802
-
803
- return metadata_exists($type, $post_id, $meta_key);
804
- }
805
-
806
-
807
- function get_offset_col($col) {
808
- $return = array(
809
- 'big' => 6,
810
- 'small' => 6
811
- );
812
- if ($col) {
813
- if ($col == 12) {
814
- $return['big'] = 12;
815
- $return['small'] = 12;
816
- } elseif ($col == 6) {
817
- $return['big'] = 6;
818
- $return['small'] = 6;
819
- } elseif ($col == 4) {
820
- $return['big'] = 4;
821
- $return['small'] = 8;
822
- }
823
- }
824
-
825
- return $return;
826
- }
827
-
828
-
829
- public function layoutStyle($layoutID, $scMeta, $layout, $scId = null) {
830
- $css = null;
831
- $css .= "<style type='text/css' media='all'>";
832
- // primary color
833
- if ($scId) {
834
- $primaryColor = (isset($scMeta['primary_color'][0]) ? $scMeta['primary_color'][0] : null);
835
- $button_bg_color = (isset($scMeta['button_bg_color'][0]) ? $scMeta['button_bg_color'][0] : null);
836
- $button_active_bg_color = (isset($scMeta['button_active_bg_color'][0]) ? $scMeta['button_active_bg_color'][0] : null);
837
- $button_hover_bg_color = (isset($scMeta['button_hover_bg_color'][0]) ? $scMeta['button_hover_bg_color'][0] : null);
838
- $button_text_color = (isset($scMeta['button_text_bg_color'][0]) ? $scMeta['button_text_bg_color'][0] : (isset($scMeta['button_text_color'][0]) ? $scMeta['button_text_color'][0] : null ));
839
- $button_hover_text_color = (isset($scMeta['button_hover_text_color'][0]) ? $scMeta['button_hover_text_color'][0] : null);
840
- $button_border_color = (isset($scMeta['button_border_color'][0]) ? $scMeta['button_border_color'][0] : null);
841
- $overlay_color = (!empty($scMeta['overlay_color'][0]) ? rtTPG()->rtHex2rgba($scMeta['overlay_color'][0],
842
- !empty($scMeta['overlay_opacity'][0]) ? absint($scMeta['overlay_opacity'][0]) / 10 : .8) : null);
843
- $overlay_padding = (!empty($scMeta['overlay_padding'][0]) ? absint($scMeta['overlay_padding'][0]) : null);
844
- $gutter = !empty($scMeta['tgp_gutter'][0]) ? absint($scMeta['tgp_gutter'][0]) : null;
845
- $read_more_button_border_radius = isset($scMeta['tpg_read_more_button_border_radius'][0]) ? $scMeta['tpg_read_more_button_border_radius'][0] : '';
846
-
847
- $title_color = (!empty($scMeta['title_color'][0]) ? $scMeta['title_color'][0] : null);
848
- $title_size = (!empty($scMeta['title_size'][0]) ? absint($scMeta['title_size'][0]) : null);
849
- $title_weight = (!empty($scMeta['title_weight'][0]) ? $scMeta['title_weight'][0] : null);
850
- $title_alignment = (!empty($scMeta['title_alignment'][0]) ? $scMeta['title_alignment'][0] : null);
851
-
852
- $title_hover_color = (!empty($scMeta['title_hover_color'][0]) ? $scMeta['title_hover_color'][0] : null);
853
-
854
- $excerpt_color = (!empty($scMeta['excerpt_color'][0]) ? $scMeta['excerpt_color'][0] : null);
855
- $excerpt_size = (!empty($scMeta['excerpt_size'][0]) ? absint($scMeta['excerpt_size'][0]) : null);
856
- $excerpt_weight = (!empty($scMeta['excerpt_weight'][0]) ? $scMeta['excerpt_weight'][0] : null);
857
- $excerpt_alignment = (!empty($scMeta['excerpt_alignment'][0]) ? $scMeta['excerpt_alignment'][0] : null);
858
-
859
- $meta_data_color = (!empty($scMeta['meta_data_color'][0]) ? $scMeta['meta_data_color'][0] : null);
860
- $meta_data_size = (!empty($scMeta['meta_data_size'][0]) ? absint($scMeta['meta_data_size'][0]) : null);
861
- $meta_data_weight = (!empty($scMeta['meta_data_weight'][0]) ? $scMeta['meta_data_weight'][0] : null);
862
- $meta_data_alignment = (!empty($scMeta['meta_data_alignment'][0]) ? $scMeta['meta_data_alignment'][0] : null);
863
-
864
- } else {
865
- $primaryColor = (isset($scMeta['primary_color']) ? $scMeta['primary_color'] : null);
866
- $button_bg_color = (isset($scMeta['button_bg_color']) ? $scMeta['button_bg_color'] : null);
867
- $button_active_bg_color = (isset($scMeta['button_active_bg_color']) ? $scMeta['button_active_bg_color'] : null);
868
- $button_hover_bg_color = (isset($scMeta['button_hover_bg_color']) ? $scMeta['button_hover_bg_color'] : null);
869
- $btn_text_color = get_post_meta($scMeta['sc_id'], 'button_text_color', true);
870
- $button_text_color = (!empty($scMeta['button_text_bg_color']) ? $scMeta['button_text_bg_color'] : (!empty($btn_text_color) ? $btn_text_color : null ));
871
- $button_border_color = (isset($scMeta['button_border_color']) ? $scMeta['button_border_color'] : null);
872
- $button_hover_text_color = (isset($scMeta['button_hover_text_color']) ? $scMeta['button_hover_text_color'] : null);
873
- $overlay_color = (!empty($scMeta['overlay_color']) ? rtTPG()->rtHex2rgba($scMeta['overlay_color'],
874
- !empty($scMeta['overlay_opacity']) ? absint($scMeta['overlay_opacity']) / 10 : .8) : null);
875
- $overlay_padding = (!empty($scMeta['overlay_padding']) ? absint($scMeta['overlay_padding']) : null);
876
- $gutter = !empty($scMeta['tgp_gutter']) ? absint($scMeta['tgp_gutter']) : null;
877
- $read_more_button_border_radius = isset($scMeta['tpg_read_more_button_border_radius'][0]) ? $scMeta['tpg_read_more_button_border_radius'][0] : '';
878
-
879
- $title_color = (!empty($scMeta['title_color']) ? $scMeta['title_color'] : null);
880
- $title_size = (!empty($scMeta['title_size']) ? absint($scMeta['title_size']) : null);
881
- $title_weight = (!empty($scMeta['title_weight']) ? $scMeta['title_weight'] : null);
882
- $title_alignment = (!empty($scMeta['title_alignment']) ? $scMeta['title_alignment'] : null);
883
-
884
- $title_hover_color = (!empty($scMeta['title_hover_color']) ? $scMeta['title_hover_color'] : null);
885
-
886
- $excerpt_color = (!empty($scMeta['excerpt_color']) ? $scMeta['excerpt_color'] : null);
887
- $excerpt_size = (!empty($scMeta['excerpt_size']) ? absint($scMeta['excerpt_size']) : null);
888
- $excerpt_weight = (!empty($scMeta['excerpt_weight']) ? $scMeta['excerpt_weight'] : null);
889
- $excerpt_alignment = (!empty($scMeta['excerpt_alignment']) ? $scMeta['excerpt_alignment'] : null);
890
-
891
- $meta_data_color = (!empty($scMeta['meta_data_color']) ? $scMeta['meta_data_color'] : null);
892
- $meta_data_size = (!empty($scMeta['meta_data_size']) ? absint($scMeta['meta_data_size']) : null);
893
- $meta_data_weight = (!empty($scMeta['meta_data_weight']) ? $scMeta['meta_data_weight'] : null);
894
- $meta_data_alignment = (!empty($scMeta['meta_data_alignment']) ? $scMeta['meta_data_alignment'] : null);
895
- }
896
-
897
- $id = str_replace('rt-tpg-container-', '', $layoutID);
898
-
899
- if ($primaryColor) {
900
- $css .= "#{$layoutID} .rt-holder .rt-woo-info .price{";
901
- $css .= "color:" . $primaryColor . ";";
902
- $css .= "}";
903
- $css .= "body .rt-tpg-container .rt-tpg-isotope-buttons .selected,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
904
  #{$layoutID} .layout12 .rt-holder:hover .rt-detail,
905
  #{$layoutID} .isotope8 .rt-holder:hover .rt-detail,
906
  #{$layoutID} .carousel8 .rt-holder:hover .rt-detail,
@@ -911,43 +1000,40 @@ if (!class_exists('rtTPGHelper')):
911
  .rt-modal-{$id} .md-content > .rt-md-content-holder .rt-md-content,
912
  .rt-popup-wrap-{$id}.rt-popup-wrap .rt-popup-navigation-wrap,
913
  #{$layoutID} .carousel9 .rt-holder .overlay .post-info{";
914
- $css .= "background-color:" . $primaryColor . ";";
915
- $css .= "}";
916
-
917
- $css .= "#{$layoutID} .rt-detail i,
918
- #{$layoutID} .rt-detail .post-meta-user a,
919
- #{$layoutID} .rt-detail .post-meta-category a{";
920
- $css .= "color:" . $primaryColor . ";";
921
- $css .= "}";
922
-
923
- $ocp = rtTPG()->rtHex2rgba($primaryColor,
924
- !empty($scMeta['overlay_opacity'][0]) ? absint($scMeta['overlay_opacity'][0]) / 10 : .8);
925
- $css .= "#{$layoutID} .layout5 .rt-holder .overlay, #{$layoutID} .isotope2 .rt-holder .overlay, #{$layoutID} .carousel2 .rt-holder .overlay,#{$layoutID} .layout15 .rt-holder h3, #{$layoutID} .isotope11 .rt-holder h3, #{$layoutID} .carousel11 .rt-holder h3, #{$layoutID} .layout16 .rt-holder h3,
926
- #{$layoutID} .isotope12 .rt-holder h3, #{$layoutID} .carousel12 .rt-holder h3 {";
927
- $css .= "background-color:" . $ocp . ";";
928
- $css .= "}";
929
 
930
- }
 
 
 
 
 
 
931
 
932
- // Button color
933
- if ($button_border_color) {
934
- $css .= "#{$layoutID} .rt-filter-item-wrap.rt-filter-button-wrap span.rt-filter-button-item,
935
  #{$layoutID} .rt-layout-filter-container .rt-filter-sub-tax.sub-button-group .rt-filter-button-item,
 
936
  #{$layoutID} .rt-layout-filter-container .rt-filter-wrap .rt-filter-item-wrap.rt-sort-order-action,
937
  #{$layoutID} .rt-layout-filter-container .rt-filter-wrap .rt-filter-item-wrap.rt-filter-dropdown-wrap .rt-filter-dropdown .rt-filter-dropdown-item,
938
  #{$layoutID} .rt-layout-filter-container .rt-filter-wrap .rt-filter-item-wrap.rt-filter-dropdown-wrap{";
939
- $css .= "border-color:" . $button_border_color . ";";
940
- $css .= "}";
941
- }
942
- if ($button_bg_color) {
943
- $css .= "#{$layoutID} .pagination-list li a,
 
 
 
 
944
  {$layoutID} .pagination-list li span,
945
  {$layoutID} .pagination li a,
946
  #{$layoutID} .rt-tpg-isotope-buttons button,
947
- #{$layoutID} .rt-holder .read-more a,
948
  #{$layoutID} .rt-tpg-utility .rt-tpg-load-more button,
949
- #{$layoutID} .owl-theme .owl-controls .owl-nav > div,
950
- #{$layoutID} .owl-theme .owl-controls .owl-dots .owl-dot span,
951
  #{$layoutID} .wc1 .rt-holder .rt-img-holder .overlay .product-more ul li a,
952
  #{$layoutID} .wc2 .rt-detail .rt-wc-add-to-cart,
953
  #{$layoutID} .wc3 .rt-detail .rt-wc-add-to-cart,
@@ -960,46 +1046,51 @@ if (!class_exists('rtTPGHelper')):
960
  #{$layoutID} .rt-filter-item-wrap.rt-filter-button-wrap span.rt-filter-button-item,
961
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-loadmore-btn,
962
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-cb-page-prev-next > *,
 
963
  #rt-tooltip-{$id}, #rt-tooltip-{$id} .rt-tooltip-bottom:after{";
964
- $css .= "background-color:" . $button_bg_color . ";";
965
- $css .= "}";
966
- $css .= "#{$layoutID} .rt-filter-item-wrap.rt-filter-button-wrap span.rt-filter-button-item,
967
  #{$layoutID} .rt-layout-filter-container .rt-filter-sub-tax.sub-button-group .rt-filter-button-item{";
968
- $css .= "border-color:" . $button_bg_color . ";";
969
- $css .= "}";
970
- $css .= "#{$layoutID}.rt-tpg-container .layout17 .rt-holder .overlay a.tpg-zoom .fa{";
971
- $css .= "color:" . $button_bg_color . ";";
972
- $css .= "}";
973
- }
974
-
975
- // button active color
976
- if ($button_active_bg_color) {
977
- $css .= "#{$layoutID} .pagination li.active span,
 
 
 
 
978
  #{$layoutID} .pagination-list li.active span,
979
  #{$layoutID} .rt-tpg-isotope-buttons button.selected,
980
  #{$layoutID} .rt-filter-item-wrap.rt-filter-button-wrap span.rt-filter-button-item.selected,
981
  #{$layoutID} .rt-layout-filter-container .rt-filter-sub-tax.sub-button-group .rt-filter-button-item.selected,
982
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-page-numbers .paginationjs .paginationjs-pages ul li.active>a,
983
- #{$layoutID} .owl-theme .owl-controls .owl-dots .owl-dot.active span{";
984
- $css .= "background-color:" . $button_active_bg_color . ";";
985
- $css .= "}";
986
 
987
- $css .= "#{$layoutID} .rt-filter-item-wrap.rt-filter-button-wrap span.rt-filter-button-item.selected,
988
  #{$layoutID} .rt-layout-filter-container .rt-filter-sub-tax.sub-button-group .rt-filter-button-item.selected,
989
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-page-numbers .paginationjs .paginationjs-pages ul li.active>a{";
990
- $css .= "border-color:" . $button_active_bg_color . ";";
991
- $css .= "}";
992
- }
993
 
994
- // Button hover bg color
995
- if ($button_hover_bg_color) {
996
- $css .= "#{$layoutID} .pagination-list li a:hover,
997
  #{$layoutID} .pagination li a:hover,
998
  #{$layoutID} .rt-tpg-isotope-buttons button:hover,
999
  #{$layoutID} .rt-holder .read-more a:hover,
1000
  #{$layoutID} .rt-tpg-utility .rt-tpg-load-more button:hover,
1001
- #{$layoutID} .owl-theme .owl-controls .owl-dots .owl-dot:hover span,
1002
- #{$layoutID} .owl-theme .owl-controls .owl-nav > div:hover,
1003
  #{$layoutID} .wc1 .rt-holder .rt-img-holder .overlay .product-more ul li a:hover,
1004
  #{$layoutID} .wc2 .rt-detail .rt-wc-add-to-cart:hover,
1005
  #{$layoutID} .wc3 .rt-detail .rt-wc-add-to-cart:hover,
@@ -1013,28 +1104,30 @@ if (!class_exists('rtTPGHelper')):
1013
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-page-numbers .paginationjs .paginationjs-pages ul li>a:hover,
1014
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-cb-page-prev-next > *:hover,
1015
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-loadmore-btn:hover,
 
1016
  #{$layoutID} .rt-tpg-utility .rt-tpg-load-more button:hover{";
1017
- $css .= "background-color:" . $button_hover_bg_color . ";";
1018
- $css .= "}";
1019
 
1020
- $css .= "#{$layoutID} .rt-filter-item-wrap.rt-filter-button-wrap span.rt-filter-button-item:hover,
1021
  #{$layoutID} .rt-layout-filter-container .rt-filter-sub-tax.sub-button-group .rt-filter-button-item:hover,
 
1022
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-page-numbers .paginationjs .paginationjs-pages ul li>a:hover{";
1023
- $css .= "border-color:" . $button_hover_bg_color . ";";
1024
- $css .= "}";
1025
- $css .= "#{$layoutID}.rt-tpg-container .layout17 .rt-holder .overlay a.tpg-zoom:hover .fa{";
1026
- $css .= "color:" . $button_hover_bg_color . ";";
1027
- $css .= "}";
1028
- }
1029
-
1030
- //Button text color
1031
- if ($button_text_color) {
1032
- $css .= "#{$layoutID} .pagination-list li a,
1033
  #{$layoutID} .pagination li a,
1034
  #{$layoutID} .rt-tpg-isotope-buttons button,
1035
  #{$layoutID} .rt-holder .read-more a,
1036
- #{$layoutID} .rt-tpg-utility .rt-tpg-load-more button,
1037
- #{$layoutID} .owl-theme .owl-controls .owl-nav > div,
1038
  #{$layoutID} .wc1 .rt-holder .rt-img-holder .overlay .product-more ul li a,
1039
  #{$layoutID} .edd1 .rt-holder .rt-img-holder .overlay .product-more ul li a,
1040
  #{$layoutID} .wc2 .rt-detail .rt-wc-add-to-cart,
@@ -1053,15 +1146,16 @@ if (!class_exists('rtTPGHelper')):
1053
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-page-numbers .paginationjs .paginationjs-pages ul li>a,
1054
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-cb-page-prev-next > *,
1055
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-loadmore-btn,
 
1056
  #rt-tooltip-{$id} .rt-tooltip-bottom:after{";
1057
- $css .= "color:" . $button_text_color . ";";
1058
- $css .= "}";
1059
-
1060
- }
1061
 
1062
- if ($button_hover_text_color) {
1063
- $css .= "#{$layoutID} .rt-filter-item-wrap.rt-filter-button-wrap span.rt-filter-button-item:hover,
1064
  #{$layoutID} .rt-holder .read-more a:hover,
 
1065
  #{$layoutID} .rt-layout-filter-container .rt-filter-sub-tax.sub-button-group .rt-filter-button-item:hover,
1066
  #{$layoutID} .rt-layout-filter-container .rt-filter-wrap .rt-filter-item-wrap.rt-filter-dropdown-wrap .rt-filter-dropdown .rt-filter-dropdown-item:hover,
1067
  #{$layoutID} .rt-layout-filter-container .rt-filter-wrap .rt-filter-item-wrap.rt-filter-dropdown-wrap .rt-filter-dropdown .rt-filter-dropdown-item.selected,
@@ -1070,66 +1164,180 @@ if (!class_exists('rtTPGHelper')):
1070
  #{$layoutID} .rt-filter-item-wrap.rt-filter-button-wrap span.rt-filter-button-item.selected,
1071
  #{$layoutID} .rt-layout-filter-container .rt-filter-wrap .rt-filter-item-wrap.rt-sort-order-action,
1072
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-loadmore-btn:hover,
 
1073
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-page-numbers .paginationjs .paginationjs-pages ul li.active>a{";
1074
- $css .= "color:" . $button_hover_text_color . ";";
1075
- $css .= "}";
1076
-
1077
- }
1078
-
1079
- if ($overlay_color || $overlay_padding) {
1080
- if (in_array($layout, array('layout15', 'isotope11', 'carousel11'))) {
1081
- $css .= "#{$layoutID} .{$layout} .rt-holder:hover .overlay .post-info{";
1082
- } else if (in_array($layout,
1083
- array('layout10', 'isotope7', 'carousel6', 'carousel7', 'layout9', 'offset04'))) {
1084
- $css .= "#{$layoutID} .{$layout} .rt-holder .post-info{";
1085
- } else if (in_array($layout, array('layout7', 'isotope4', 'carousel4'))) {
1086
- $css .= "#{$layoutID} .{$layout} .rt-holder .overlay:hover{";
1087
- } else if (in_array($layout, array('layout16', 'isotope12', 'carousel12'))) {
1088
- $css .= "#{$layoutID} .{$layout} .rt-holder .overlay .post-info {";
1089
- } else if (in_array($layout, array('offset03', 'carousel5'))) {
1090
- $css .= "#{$layoutID} .{$layout} .rt-holder .overlay{";
1091
- } else {
1092
- $css .= "#{$layoutID} .rt-holder .overlay:hover{";
1093
- }
1094
- if ($overlay_color) {
1095
- $css .= "background-color:" . $overlay_color . ";";
1096
- }
1097
- if ($overlay_padding) {
1098
- $css .= "padding-top:" . $overlay_padding . "%;";
1099
- }
1100
- $css .= "}";
1101
- }
1102
-
1103
- /* gutter */
1104
- if ($gutter) {
1105
- $css .= "#{$layoutID} [class*='rt-col-'] {";
1106
- $css .= "padding-left : {$gutter}px;";
1107
- $css .= "padding-right : {$gutter}px;";
1108
- $css .= "margin-top : {$gutter}px;";
1109
- $css .= "margin-bottom : {$gutter}px;";
1110
- $css .= "}";
1111
- $css .= "#{$layoutID} .rt-row{";
1112
- $css .= "margin-left : -{$gutter}px;";
1113
- $css .= "margin-right : -{$gutter}px;";
1114
- $css .= "}";
1115
- $css .= "#{$layoutID}.rt-container-fluid,#{$layoutID}.rt-container{";
1116
- $css .= "padding-left : {$gutter}px;";
1117
- $css .= "padding-right : {$gutter}px;";
1118
- $css .= "}";
1119
- }
1120
-
1121
- // Read more button border radius
1122
- if (isset($read_more_button_border_radius) || trim($read_more_button_border_radius) !== '') {
1123
- $css .= "#{$layoutID} .read-more a{";
1124
- $css .= "border-radius:" . $read_more_button_border_radius . "px;";
1125
- $css .= "}";
1126
- }
1127
- // .rt-tpg-container .isotope1 .rt-holder .rt-detail .read-more
1128
-
1129
- // Title decoration
1130
-
1131
- if ($title_color || $title_size || $title_weight || $title_alignment) {
1132
- $css .= "#{$layoutID} .{$layout} .rt-holder h2.entry-title,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1133
  #{$layoutID} .{$layout} .rt-holder h3.entry-title,
1134
  #{$layoutID} .{$layout} .rt-holder h4.entry-title,
1135
  #{$layoutID} .{$layout} .rt-holder h2.entry-title a,
@@ -1138,102 +1346,178 @@ if (!class_exists('rtTPGHelper')):
1138
  #{$layoutID} .rt-holder .rt-woo-info h2 a,
1139
  #{$layoutID} .rt-holder .rt-woo-info h3 a,
1140
  #{$layoutID} .rt-holder .rt-woo-info h4 a,
 
 
 
 
1141
  #{$layoutID} .rt-holder .rt-woo-info h2,
1142
  #{$layoutID} .rt-holder .rt-woo-info h3,
1143
  #{$layoutID} .rt-holder .rt-woo-info h4{";
1144
- if ($title_color) {
1145
- $css .= "color:" . $title_color . ";";
1146
- }
1147
- if ($title_size) {
1148
- $css .= "font-size:" . $title_size . "px;";
1149
- }
1150
- if ($title_weight) {
1151
- $css .= "font-weight:" . $title_weight . ";";
1152
- }
1153
- if ($title_alignment) {
1154
- $css .= "text-align:" . $title_alignment . ";";
1155
- }
1156
- $css .= "}";
1157
- }
1158
-
1159
- // Title hover color
1160
- if ($title_hover_color) {
1161
- $css .= "#{$layoutID} .{$layout} .rt-holder h2.entry-title:hover,
 
 
 
 
 
 
 
 
 
 
 
 
 
1162
  #{$layoutID} .{$layout} .rt-holder h3.entry-title:hover,
1163
  #{$layoutID} .{$layout} .rt-holder h4.entry-title:hover,
1164
  #{$layoutID} .{$layout} .rt-holder h2.entry-title a:hover,
1165
  #{$layoutID} .{$layout} .rt-holder h3.entry-title a:hover,
1166
  #{$layoutID} .{$layout} .rt-holder h4.entry-title a:hover,
 
 
1167
  #{$layoutID} .rt-holder .rt-woo-info h2 a:hover,
1168
  #{$layoutID} .rt-holder .rt-woo-info h3 a:hover,
1169
  #{$layoutID} .rt-holder .rt-woo-info h4 a:hover,
1170
  #{$layoutID} .rt-holder .rt-woo-info h2:hover,
1171
  #{$layoutID} .rt-holder .rt-woo-info h3:hover,
1172
  #{$layoutID} .rt-holder .rt-woo-info h4:hover{";
1173
- $css .= "color:" . $title_hover_color . " !important;";
1174
- $css .= "}";
1175
- }
1176
-
1177
- // Excerpt decoration
1178
- if ($excerpt_color || $excerpt_size || $excerpt_weight || $excerpt_alignment) {
1179
- $css .= "#{$layoutID} .{$layout} .rt-holder .tpg-excerpt,#{$layoutID} .{$layout} .rt-holder .post-content,#{$layoutID} .rt-holder .rt-woo-info p{";
1180
- if ($excerpt_color) {
1181
- $css .= "color:" . $excerpt_color . ";";
1182
- }
1183
- if ($excerpt_size) {
1184
- $css .= "font-size:" . $excerpt_size . "px;";
1185
- }
1186
- if ($excerpt_weight) {
1187
- $css .= "font-weight:" . $excerpt_weight . ";";
1188
- }
1189
- if ($excerpt_alignment) {
1190
- $css .= "text-align:" . $excerpt_alignment . ";";
1191
- }
1192
- $css .= "}";
1193
- }
1194
-
1195
- // Post meta decoration
1196
- if ($meta_data_color || $meta_data_size || $meta_data_weight || $meta_data_alignment) {
1197
- if ($meta_data_color) {
1198
- $css .= "#{$layoutID} .rt-detail i{";
1199
- $css .= "color:" . $meta_data_color . ";";
1200
- $css .= "}";
1201
- }
1202
-
1203
- $css .= "#{$layoutID} .{$layout} .rt-holder .post-meta-user,#{$layoutID} .{$layout} .rt-holder .post-meta-user .meta-data, #{$layoutID} .{$layout} .rt-holder .post-meta-user a, #{$layoutID} .{$layout} .rt-holder .rt-detail .post-meta .rt-tpg-social-share {";
1204
- if ($meta_data_color) {
1205
- $css .= "color:" . $meta_data_color . ";";
1206
- }
1207
- if ($meta_data_size) {
1208
- $css .= "font-size:" . $meta_data_size . "px;";
1209
- }
1210
- if ($meta_data_weight) {
1211
- $css .= "font-weight:" . $meta_data_weight . ";";
1212
- }
1213
- if ($meta_data_alignment) {
1214
- $css .= "text-align:" . $meta_data_alignment . ";";
1215
- }
1216
- $css .= "}";
1217
- }
1218
-
1219
- $css .= "</style>";
1220
-
1221
- return $css;
1222
- }
1223
-
1224
- function get_meta_keys($post_type) {
1225
- // $cache = get_transient( 'tpg_' . $post_type . '_meta_keys' );
1226
- // $meta_keys = $cache ? $cache : $this->generate_meta_keys( $post_type );
1227
- $meta_keys = $this->generate_meta_keys($post_type);
1228
-
1229
- return $meta_keys;
1230
- }
1231
-
1232
- function generate_meta_keys($post_type) {
1233
- $meta_keys = array();
1234
- if ($post_type) {
1235
- global $wpdb;
1236
- $query = "SELECT DISTINCT($wpdb->postmeta.meta_key)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1237
  FROM $wpdb->posts
1238
  LEFT JOIN $wpdb->postmeta
1239
  ON $wpdb->posts.ID = $wpdb->postmeta.post_id
@@ -1241,86 +1525,84 @@ if (!class_exists('rtTPGHelper')):
1241
  AND $wpdb->postmeta.meta_key != ''
1242
  AND $wpdb->postmeta.meta_key NOT RegExp '(^[_0-9].+$)'
1243
  AND $wpdb->postmeta.meta_key NOT RegExp '(^[0-9]+$)'";
1244
- $meta_keys = $wpdb->get_col($wpdb->prepare($query, $post_type));
1245
- // set_transient( 'tpg_' . $post_type . '_meta_keys', $meta_keys, 60 * 60 * 24 ); # create 1 Day Expiration
1246
- }
1247
-
1248
- return $meta_keys;
1249
- }
1250
-
1251
- function remove_all_shortcode($content) {
1252
- return preg_replace('#\[[^\]]+\]#', '', $content);
1253
- }
1254
-
1255
- function remove_divi_shortcodes($content) {
1256
- $content = preg_replace('/\[\/?et_pb.*?\]/', '', $content);
1257
-
1258
- return $content;
1259
- }
1260
-
1261
- function checkWhichCustomMetaPluginIsInstalled() {
1262
- $plugin = null;
1263
- if (class_exists('acf')) {
1264
- $plugin = 'acf';
1265
- }
1266
-
1267
- return $plugin;
1268
- }
1269
-
1270
- function get_groups_by_post_type($post_type) {
1271
- $post_type = $post_type ? $post_type : "post";
1272
- $groups = array();
1273
- $plugin = $this->checkWhichCustomMetaPluginIsInstalled();
1274
- switch ($plugin) {
1275
- case 'acf':
1276
- $groups = $this->get_groups_by_post_type_acf($post_type);
1277
- break;
1278
- }
1279
-
1280
- return $groups;
1281
- }
1282
-
1283
- function get_groups_by_post_type_cpt($post_type) {
1284
-
1285
- }
1286
-
1287
- function get_groups_by_post_type_acf($post_type) {
1288
- $groups = array();
1289
- $groups_q = get_posts(array('post_type' => 'acf-field-group', 'posts_per_page' => -1));
1290
- if (!empty($groups_q)) {
1291
- foreach ($groups_q as $group) {
1292
- $c = $group->post_content ? unserialize($group->post_content) : array();
1293
- $flag = false;
1294
- if (!empty($c['location'])) {
1295
- foreach ($c['location'] as $rules) {
1296
- foreach ($rules as $rule) {
1297
- if ($post_type === 'all') {
1298
- if ((!empty($rule['param']) && $rule['param'] == 'post_type')
1299
- && (!empty($rule['operator']) && $rule['operator'] == '==')
1300
- ) {
1301
- $flag = true;
1302
- }
1303
- } else {
1304
- if ((!empty($rule['param']) && $rule['param'] == 'post_type')
1305
- && (!empty($rule['operator']) && $rule['operator'] == '==')
1306
- && (!empty($rule['value']) && $rule['value'] == $post_type)
1307
- ) {
1308
- $flag = true;
1309
- }
1310
- }
1311
-
1312
- }
1313
- }
1314
- }
1315
- if ($flag) {
1316
- $groups[$group->ID] = $group->post_title;
1317
- }
1318
- }
1319
- }
1320
-
1321
- return $groups;
1322
- }
1323
-
1324
- }
1325
 
1326
  endif;
1
  <?php
2
 
3
+ if ( ! class_exists( 'rtTPGHelper' ) ):
4
+
5
+ class rtTPGHelper {
6
+
7
+ function verifyNonce() {
8
+ $nonce = isset( $_REQUEST[ $this->nonceId() ] ) ? $_REQUEST[ $this->nonceId() ] : null;
9
+ $nonceText = rtTPG()->nonceText();
10
+ if ( ! wp_verify_nonce( $nonce, $nonceText ) ) {
11
+ return false;
12
+ }
13
+
14
+ return true;
15
+ }
16
+
17
+ function nonceText() {
18
+ return "rttpg_nonce_secret";
19
+ }
20
+
21
+ function nonceId() {
22
+ return "rttpg_nonce";
23
+ }
24
+
25
+ function rtAllOptionFields() {
26
+ $fields = array_merge(
27
+ rtTPG()->rtTPGCommonFilterFields(),
28
+ rtTPG()->rtTPGLayoutSettingFields(),
29
+ rtTPG()->responsiveSettingsColumn(),
30
+ rtTPG()->layoutMiscSettings(),
31
+ rtTPG()->stickySettings(),
32
+ // settings
33
+ rtTPG()->rtTPGSCHeadingSettings(),
34
+ rtTPG()->rtTPGSCCategorySettings(),
35
+ rtTPG()->rtTPGSCTitleSettings(),
36
+ rtTPG()->rtTPGSCMetaSettings(),
37
+ rtTPG()->rtTPGSCImageSettings(),
38
+ rtTPG()->rtTPGSCExcerptSettings(),
39
+ rtTPG()->rtTPGSCButtonSettings(),
40
+ // style
41
+ rtTPG()->rtTPGStyleFields(),
42
+ rtTPG()->rtTPGStyleHeading(),
43
+ rtTPG()->rtTPGStyleFullArea(),
44
+ rtTPG()->rtTPGStyleContentWrap(),
45
+ rtTPG()->rtTPGStyleCategory(),
46
+ rtTPG()->rtTPGPostType(),
47
+ rtTPG()->rtTPGStyleButtonColorFields(),
48
+ rtTPG()->rtTPAdvanceFilters(),
49
+ rtTPG()->itemFields()
50
+ );
51
+
52
+ return $fields;
53
+ }
54
+
55
+ function rt_get_all_term_by_taxonomy( $taxonomy = null, $count = false, $parent = false ) {
56
+ $terms = [];
57
+ if ( $taxonomy ) {
58
+ $temp_terms = get_terms( [ 'taxonomy' => $taxonomy, 'hide_empty' => 0 ] );
59
+ if ( is_array( $temp_terms ) && ! empty( $temp_terms ) && empty( $temp_terms['errors'] ) ) {
60
+ foreach ( $temp_terms as $term ) {
61
+ $order = get_term_meta( $term->term_id, '_rt_order', true );
62
+ if ( $order === "" ) {
63
+ update_term_meta( $term->term_id, '_rt_order', 0 );
64
+ }
65
+ }
66
+ global $wp_version;
67
+ $args = [
68
+ 'taxonomy' => $taxonomy,
69
+ 'orderby' => 'meta_value_num',
70
+ 'meta_key' => '_rt_order',
71
+ 'hide_empty' => false,
72
+ ];
73
+ if ( $parent >= 0 && $parent !== false ) {
74
+ $args['parent'] = absint( $parent );
75
+ }
76
+ $args['orderby'] = 'meta_value_num';
77
+ $args['meta_key'] = '_rt_order';
78
+
79
+ $termObjs = get_terms( $args );
80
+
81
+ foreach ( $termObjs as $term ) {
82
+ if ( $count ) {
83
+ $terms[ $term->term_id ] = [ 'name' => $term->name, 'count' => $term->count ];
84
+ } else {
85
+ $terms[ $term->term_id ] = $term->name;
86
+ }
87
+ }
88
+ }
89
+ }
90
+
91
+ return $terms;
92
+ }
93
+
94
+ function rt_get_selected_term_by_taxonomy( $taxonomy = null, $include = [], $count = false, $parent = false ) {
95
+ $terms = [];
96
+ if ( $taxonomy ) {
97
+ $temp_terms = get_terms( [ 'taxonomy' => $taxonomy, 'hide_empty' => 0 ] );
98
+ if ( is_array( $temp_terms ) && ! empty( $temp_terms ) && empty( $temp_terms['errors'] ) ) {
99
+ foreach ( $temp_terms as $term ) {
100
+ $order = get_term_meta( $term->term_id, '_rt_order', true );
101
+ if ( $order === "" ) {
102
+ update_term_meta( $term->term_id, '_rt_order', 0 );
103
+ }
104
+ }
105
+ global $wp_version;
106
+ $args = [
107
+ 'taxonomy' => $taxonomy,
108
+ 'orderby' => 'meta_value_num',
109
+ 'meta_key' => '_rt_order',
110
+ 'include' => $include,
111
+ 'hide_empty' => false,
112
+ ];
113
+ if ( $parent >= 0 && $parent !== false ) {
114
+ $args['parent'] = absint( $parent );
115
+ }
116
+ $args['orderby'] = 'meta_value_num';
117
+ $args['meta_key'] = '_rt_order';
118
+
119
+ $termObjs = get_terms( $args );
120
+
121
+ foreach ( $termObjs as $term ) {
122
+ if ( $count ) {
123
+ $terms[ $term->term_id ] = [ 'name' => $term->name, 'count' => $term->count ];
124
+ } else {
125
+ $terms[ $term->term_id ] = $term->name;
126
+ }
127
+ }
128
+ }
129
+ }
130
+
131
+ return $terms;
132
+ }
133
+
134
+ function getCurrentUserRoles() {
135
+ global $current_user;
136
+
137
+ return $current_user->roles;
138
+ }
139
+
140
+ function rt_get_taxonomy_for_filter( $post_type = null ) {
141
+ if ( ! $post_type ) {
142
+ $post_type = get_post_meta( get_the_ID(), 'tpg_post_type', true );
143
+ }
144
+ if ( ! $post_type ) {
145
+ $post_type = 'post';
146
+ }
147
+
148
+ return $this->rt_get_all_taxonomy_by_post_type( $post_type );
149
+ }
150
+
151
+ function rt_get_all_taxonomy_by_post_type( $post_type = null ) {
152
+ $taxonomies = [];
153
+ if ( $post_type && post_type_exists( $post_type ) ) {
154
+ $taxObj = get_object_taxonomies( $post_type, 'objects' );
155
+ if ( is_array( $taxObj ) && ! empty( $taxObj ) ) {
156
+ foreach ( $taxObj as $tKey => $taxonomy ) {
157
+ $taxonomies[ $tKey ] = $taxonomy->label;
158
+ }
159
+ }
160
+ }
161
+ if ( $post_type == 'post' ) {
162
+ unset( $taxonomies['post_format'] );
163
+ }
164
+
165
+ return $taxonomies;
166
+ }
167
+
168
+ function rt_get_users() {
169
+ $users = [];
170
+ $u = get_users( apply_filters( 'tpg_author_arg', [] ) );
171
+ if ( ! empty( $u ) ) {
172
+ foreach ( $u as $user ) {
173
+ $users[ $user->ID ] = $user->display_name;
174
+ }
175
+ }
176
+
177
+ return $users;
178
+ }
179
+
180
+ function rtFieldGenerator( $fields = [] ) {
181
+ $html = null;
182
+ if ( is_array( $fields ) && ! empty( $fields ) ) {
183
+ $tpgField = new rtTPGField();
184
+ foreach ( $fields as $fieldKey => $field ) {
185
+ $html .= $tpgField->Field( $fieldKey, $field );
186
+ }
187
+ }
188
+
189
+ return $html;
190
+ }
191
+
192
+ /**
193
+ * Sanitize field value
194
+ *
195
+ * @param array $field
196
+ * @param null $value
197
+ *
198
+ * @return array|null
199
+ * @internal param $value
200
+ */
201
+ function sanitize( $field = [], $value = null ) {
202
+ $newValue = null;
203
+ if ( is_array( $field ) ) {
204
+ $type = ( ! empty( $field['type'] ) ? $field['type'] : 'text' );
205
+ if ( empty( $field['multiple'] ) ) {
206
+ if ( $type == 'text' || $type == 'number' || $type == 'select' || $type == 'checkbox' || $type == 'radio' ) {
207
+ $newValue = sanitize_text_field( $value );
208
+ } elseif ( $type == 'url' ) {
209
+ $newValue = esc_url( $value );
210
+ } elseif ( $type == 'slug' ) {
211
+ $newValue = sanitize_title_with_dashes( $value );
212
+ } elseif ( $type == 'textarea' ) {
213
+ $newValue = wp_kses_post( $value );
214
+ } elseif ( $type == 'script' ) {
215
+ $newValue = trim( $value );
216
+ } elseif ( $type == 'colorpicker' ) {
217
+ $newValue = $this->sanitize_hex_color( $value );
218
+ } elseif ( $type == 'image_size' ) {
219
+ $newValue = [];
220
+ foreach ( $value as $k => $v ) {
221
+ $newValue[ $k ] = esc_attr( $v );
222
+ }
223
+ } elseif ( $type == 'style' ) {
224
+ $newValue = [];
225
+ foreach ( $value as $k => $v ) {
226
+ if ( $k == 'color' ) {
227
+ $newValue[ $k ] = $this->sanitize_hex_color( $v );
228
+ } else {
229
+ $newValue[ $k ] = $this->sanitize( [ 'type' => 'text' ], $v );
230
+ }
231
+ }
232
+ } else {
233
+ $newValue = sanitize_text_field( $value );
234
+ }
235
+ } else {
236
+ $newValue = [];
237
+ if ( ! empty( $value ) ) {
238
+ if ( is_array( $value ) ) {
239
+ foreach ( $value as $key => $val ) {
240
+ if ( $type == 'style' && $key == 0 ) {
241
+ if ( function_exists( 'sanitize_hex_color' ) ) {
242
+ $newValue = sanitize_hex_color( $val );
243
+ } else {
244
+ $newValue[] = $this->sanitize_hex_color( $val );
245
+ }
246
+ } else {
247
+ $newValue[] = sanitize_text_field( $val );
248
+ }
249
+ }
250
+ } else {
251
+ $newValue[] = sanitize_text_field( $value );
252
+ }
253
+ }
254
+ }
255
+ }
256
+
257
+ return $newValue;
258
+ }
259
+
260
+ function sanitize_hex_color( $color ) {
261
+ if ( function_exists( 'sanitize_hex_color' ) ) {
262
+ return sanitize_hex_color( $color );
263
+ } else {
264
+ if ( '' === $color ) {
265
+ return '';
266
+ }
267
+
268
+ // 3 or 6 hex digits, or the empty string.
269
+ if ( preg_match( '|^#([A-Fa-f0-9]{3}){1,2}$|', $color ) ) {
270
+ return $color;
271
+ }
272
+ }
273
+ }
274
+
275
+ function rtFieldGeneratorBackup( $fields = [], $multi = false ) {
276
+ $html = null;
277
+ if ( is_array( $fields ) && ! empty( $fields ) ) {
278
+ $rtField = new rtTPGField();
279
+ if ( $multi ) {
280
+ foreach ( $fields as $field ) {
281
+ $html .= $rtField->Field( $field );
282
+ }
283
+ } else {
284
+ $html .= $rtField->Field( $fields );
285
+ }
286
+ }
287
+
288
+ return $html;
289
+ }
290
+
291
+ function rtSmartStyle( $fields = [] ) {
292
+ $h = null;
293
+ if ( ! empty( $fields ) ) {
294
+ foreach ( $fields as $key => $label ) {
295
+ $atts = '';
296
+ $proText = '';
297
+ $class = '';
298
+
299
+ $h .= "<div class='field-holder {$class}'>";
300
+
301
+ $h .= "<div class='field-label'><label>{$label}{$proText}</label></div>";
302
+ $h .= "<div class='field'>";
303
+ // color
304
+ $h .= "<div class='field-inner col-4'>";
305
+ $h .= "<div class='field-inner-container size'>";
306
+ $h .= "<span class='label'>Color</span>";
307
+ $cValue = get_post_meta( get_the_ID(), $key . "_color", true );
308
+ $h .= "<input type='text' value='{$cValue}' class='rt-color' name='{$key}_color'>";
309
+ $h .= "</div>";
310
+ $h .= "</div>";
311
+
312
+ // Font size
313
+ $h .= "<div class='field-inner col-4'>";
314
+ $h .= "<div class='field-inner-container size'>";
315
+ $h .= "<span class='label'>Font size</span>";
316
+ $h .= "<select {$atts} name='{$key}_size' class='rt-select2'>";
317
+ $fSizes = rtTPG()->scFontSize();
318
+ $sValue = get_post_meta( get_the_ID(), $key . "_size", true );
319
+ $h .= "<option value=''>Default</option>";
320
+ foreach ( $fSizes as $size => $sizeLabel ) {
321
+ $sSlt = ( $size == $sValue ? "selected" : null );
322
+ $h .= "<option value='{$size}' {$sSlt}>{$sizeLabel}</option>";
323
+ }
324
+ $h .= "</select>";
325
+ $h .= "</div>";
326
+ $h .= "</div>";
327
+
328
+ // Weight
329
+
330
+ $h .= "<div class='field-inner col-4'>";
331
+ $h .= "<div class='field-inner-container weight'>";
332
+ $h .= "<span class='label'>Weight</span>";
333
+ $h .= "<select {$atts} name='{$key}_weight' class='rt-select2'>";
334
+ $h .= "<option value=''>Default</option>";
335
+ $weights = rtTPG()->scTextWeight();
336
+ $wValue = get_post_meta( get_the_ID(), $key . "_weight", true );
337
+ foreach ( $weights as $weight => $weightLabel ) {
338
+ $wSlt = ( $weight == $wValue ? "selected" : null );
339
+ $h .= "<option value='{$weight}' {$wSlt}>{$weightLabel}</option>";
340
+ }
341
+ $h .= "</select>";
342
+ $h .= "</div>";
343
+ $h .= "</div>";
344
+
345
+ // Alignment
346
+
347
+ $h .= "<div class='field-inner col-4'>";
348
+ $h .= "<div class='field-inner-container alignment'>";
349
+ $h .= "<span class='label'>Alignment</span>";
350
+ $h .= "<select {$atts} name='{$key}_alignment' class='rt-select2'>";
351
+ $h .= "<option value=''>Default</option>";
352
+ $aligns = rtTPG()->scAlignment();
353
+ $aValue = get_post_meta( get_the_ID(), $key . "_alignment", true );
354
+ foreach ( $aligns as $align => $alignLabel ) {
355
+ $aSlt = ( $align == $aValue ? "selected" : null );
356
+ $h .= "<option value='{$align}' {$aSlt}>{$alignLabel}</option>";
357
+ }
358
+ $h .= "</select>";
359
+ $h .= "</div>";
360
+ $h .= "</div>";
361
+
362
+ $h .= "</div>";
363
+ $h .= "</div>";
364
+ }
365
+ }
366
+
367
+ return $h;
368
+ }
369
+
370
+ function custom_variation_price( $product ) {
371
+ $price = '';
372
+ $max = $product->get_variation_regular_price( 'max' );
373
+ $min = $product->get_variation_regular_price( 'min' );
374
+
375
+ if ( ! $min || $min !== $max ) {
376
+ $price .= woocommerce_price( $product->get_price() );
377
+ }
378
+ if ( $max && $max !== $min ) {
379
+ $price .= woocommerce_price( $max );
380
+ }
381
+
382
+ return $price;
383
+ }
384
+
385
+ function getTPGShortCodeList() {
386
+ $scList = null;
387
+ $scQ = get_posts( [
388
+ 'post_type' => rtTPG()->post_type,
389
+ 'order_by' => 'title',
390
+ 'order' => 'DESC',
391
+ 'post_status' => 'publish',
392
+ 'posts_per_page' => - 1,
393
+ 'meta_query' => [
394
+ [
395
+ 'key' => 'layout',
396
+ 'value' => 'layout',
397
+ 'compare' => 'LIKE',
398
+ ],
399
+ ],
400
+ ] );
401
+ if ( ! empty( $scQ ) ) {
402
+ foreach ( $scQ as $sc ) {
403
+ $scList[ $sc->ID ] = $sc->post_title;
404
+ }
405
+ }
406
+
407
+ return $scList;
408
+ }
409
+
410
+ function getAllTPGShortCodeList() {
411
+ $scList = null;
412
+ $scQ = get_posts( [
413
+ 'post_type' => rtTPG()->post_type,
414
+ 'order_by' => 'title',
415
+ 'order' => 'ASC',
416
+ 'post_status' => 'publish',
417
+ 'posts_per_page' => - 1,
418
+ ] );
419
+ if ( ! empty( $scQ ) ) {
420
+ foreach ( $scQ as $sc ) {
421
+ $scList[ $sc->ID ] = $sc->post_title;
422
+ }
423
+ }
424
+
425
+ return $scList;
426
+ }
427
+
428
+ function socialShare( $pLink ) {
429
+ $html = null;
430
+ $html .= "<div class='single-tpg-share'>
431
  <div class='fb-share'>
432
  <div class='fb-share-button' data-href='{$pLink}' data-layout='button_count'></div>
433
  </div>
444
  <a data-pin-do='buttonPin' data-pin-count='beside' href='https://www.pinterest.com/pin/create/button/?url=https%3A%2F%2Fwww.flickr.com%2Fphotos%2Fkentbrew%2F6851755809%2F&media=https%3A%2F%2Ffarm8.staticflickr.com%2F7027%2F6851755809_df5b2051c9_z.jpg&description=Next%20stop%3A%20Pinterest'><img src='//assets.pinterest.com/images/pidgets/pinit_fg_en_rect_gray_20.png' /></a>
445
  </div>
446
  </div>";
447
+ $html .= '<div id="fb-root"></div>
448
  <script>(function(d, s, id) {
449
  var js, fjs = d.getElementsByTagName(s)[0];
450
  if (d.getElementById(id)) return;
452
  js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.5";
453
  fjs.parentNode.insertBefore(js, fjs);
454
  }(document, "script", "facebook-jssdk"));</script>';
455
+ $html .= "<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
456
  <script>window.___gcfg = { lang: 'en-US', parsetags: 'onload', };</script>";
457
+ $html .= "<script src='https://apis.google.com/js/platform.js' async defer></script>";
458
+ $html .= '<script src="//platform.linkedin.com/in.js" type="text/javascript"> lang: en_US</script>';
459
+ $html .= '<script async defer src="//assets.pinterest.com/js/pinit.js"></script>';
460
+
461
+ return $html;
462
+ }
463
+
464
+ function get_image_sizes() {
465
+ global $_wp_additional_image_sizes;
466
+
467
+ $sizes = [];
468
+ $interSizes = get_intermediate_image_sizes();
469
+ if ( ! empty( $interSizes ) ) {
470
+ foreach ( get_intermediate_image_sizes() as $_size ) {
471
+ if ( in_array( $_size, [ 'thumbnail', 'medium', 'large' ] ) ) {
472
+ $sizes[ $_size ]['width'] = get_option( "{$_size}_size_w" );
473
+ $sizes[ $_size ]['height'] = get_option( "{$_size}_size_h" );
474
+ $sizes[ $_size ]['crop'] = (bool) get_option( "{$_size}_crop" );
475
+ } elseif ( isset( $_wp_additional_image_sizes[ $_size ] ) ) {
476
+ $sizes[ $_size ] = [
477
+ 'width' => $_wp_additional_image_sizes[ $_size ]['width'],
478
+ 'height' => $_wp_additional_image_sizes[ $_size ]['height'],
479
+ 'crop' => $_wp_additional_image_sizes[ $_size ]['crop'],
480
+ ];
481
+ }
482
+ }
483
+ }
484
+
485
+ $imgSize = [];
486
+ if ( ! empty( $sizes ) ) {
487
+ $imgSize['full'] = __( "Full Size", 'the-post-grid' );
488
+ foreach ( $sizes as $key => $img ) {
489
+ $imgSize[ $key ] = ucfirst( $key ) . " ({$img['width']}*{$img['height']})";
490
+ }
491
+ }
492
+
493
+ return apply_filters( 'tpg_image_sizes', $imgSize );
494
+ }
495
+
496
+ function getFeatureImageSrc(
497
+ $post_id = null,
498
+ $fImgSize = 'medium',
499
+ $mediaSource = 'feature_image',
500
+ $defaultImgId = null,
501
+ $customImgSize = []
502
+ ) {
503
+ global $post;
504
+ $imgSrc = null;
505
+ $img_class = "rt-img-responsive";
506
+ $post_id = ( $post_id ? absint( $post_id ) : $post->ID );
507
+ $alt = get_the_title( $post_id );
508
+ $image = null;
509
+ $cSize = false;
510
+ if ( $fImgSize == 'rt_custom' ) {
511
+ $fImgSize = 'full';
512
+ $cSize = true;
513
+ }
514
+
515
+ if ( $mediaSource == 'feature_image' ) {
516
+ if ( $aID = get_post_thumbnail_id( $post_id ) ) {
517
+ $image = wp_get_attachment_image( $aID, $fImgSize, '', [ 'class' => $img_class, 'loading' => false ] );
518
+ $imgSrc = wp_get_attachment_image_src( $aID, $fImgSize );
519
+ $imgSrc = ! empty( $imgSrc ) ? $imgSrc[0] : $imgSrc;
520
+ }
521
+ } elseif ( $mediaSource == 'first_image' ) {
522
+ if ( $img = preg_match_all( '/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', get_the_content( $post_id ),
523
+ $matches )
524
+ ) {
525
+ $imgSrc = $matches[1][0];
526
+ $size = '';
527
+
528
+ $imgAbs = str_replace( trailingslashit( site_url() ), ABSPATH, $imgSrc );
529
+
530
+ if ( file_exists( $imgAbs ) ) {
531
+ $info = getimagesize( $imgAbs );
532
+ $size = isset( $info[3] ) ? $info[3] : '';
533
+ }
534
+
535
+ $image = "<img class='{$img_class}' src='{$imgSrc}' {$size} alt='{$alt}'>";
536
+ }
537
+ }
538
+
539
+ if ( ! $imgSrc && $defaultImgId ) {
540
+ $image = wp_get_attachment_image( $defaultImgId, $fImgSize );
541
+ }
542
+
543
+ if ( $imgSrc && $cSize ) {
544
+ $w = ( ! empty( $customImgSize[0] ) ? absint( $customImgSize[0] ) : null );
545
+ $h = ( ! empty( $customImgSize[1] ) ? absint( $customImgSize[1] ) : null );
546
+ $c = ( ! empty( $customImgSize[2] ) && $customImgSize[2] == 'soft' ? false : true );
547
+ if ( $w && $h ) {
548
+ $imgSrc = rtTPG()->rtImageReSize( $imgSrc, $w, $h, $c );
549
+ $image = "<img class='{$img_class}' src='{$imgSrc}' width='{$w}' height='{$h}' alt='{$alt}'>";
550
+ }
551
+ }
552
+
553
+ return $image;
554
+ }
555
+
556
+ function getFeatureImageUrl( $post_id = null, $fImgSize = 'medium' ) {
557
+ $image = $imgSrc = null;
558
+
559
+ if ( $aID = get_post_thumbnail_id( $post_id ) ) {
560
+ $image = wp_get_attachment_image_src( $aID, $fImgSize );
561
+ }
562
+
563
+ if ( is_array( $image ) ) {
564
+ $imgSrc = $image[0];
565
+ }
566
+
567
+ return $imgSrc;
568
+ }
569
+
570
+ function get_the_excerpt( $post_id, $data = [] ) {
571
+ $type = $data['excerpt_type'];
572
+ $post = get_post( $post_id );
573
+ if ( empty( $post ) ) {
574
+ return '';
575
+ }
576
+ if ( $type == 'full' ) {
577
+ ob_start();
578
+ the_content();
579
+ $content = ob_get_clean();
580
+
581
+ return apply_filters( 'tpg_content_full', $content, $post_id, $data );
582
+ } else {
583
+ if ( class_exists( 'ET_GB_Block_Layout' ) ) {
584
+ $defaultExcerpt = $post->post_excerpt ?: wp_trim_words( $post->post_content, 55 );
585
+ } else {
586
+ $defaultExcerpt = get_the_excerpt( $post_id );
587
+ }
588
+ $limit = isset( $data['excerpt_limit'] ) ? abs( $data['excerpt_limit'] ) : 0;
589
+ $more = $data['excerpt_more_text'];
590
+ $excerpt = preg_replace( '`\[[^\]]*\]`', '', $defaultExcerpt );
591
+ $excerpt = strip_shortcodes( $excerpt );
592
+ $excerpt = preg_replace( '`[[^]]*]`', '', $excerpt );
593
+ $excerpt = str_replace( '…', '', $excerpt );
594
+ if ( $limit ) {
595
+ $excerpt = wp_filter_nohtml_kses( $excerpt );
596
+ if ( $type == "word" ) {
597
+ $limit = $limit + 1;
598
+ $rawExcerpt = $excerpt;
599
+ $excerpt = explode( ' ', $excerpt, $limit );
600
+ if ( count( $excerpt ) >= $limit ) {
601
+ array_pop( $excerpt );
602
+ $excerpt = implode( " ", $excerpt );
603
+ } else {
604
+ $excerpt = $rawExcerpt;
605
+ }
606
+ } else {
607
+ if ( $limit > 0 && strlen( $excerpt ) > $limit ) {
608
+ $excerpt = mb_substr( $excerpt, 0, $limit, "utf-8" );
609
+ $excerpt = preg_replace( '/\W\w+\s*(\W*)$/', '$1', $excerpt );
610
+ }
611
+ }
612
+ $excerpt = stripslashes( $excerpt );
613
+ } else {
614
+ $allowed_html = [
615
+ 'a' => [
616
+ 'href' => [],
617
+ 'title' => [],
618
+ ],
619
+ 'strong' => [],
620
+ 'b' => [],
621
+ 'br' => [ [] ],
622
+ ];
623
+ $excerpt = nl2br( wp_kses( $excerpt, $allowed_html ) );
624
+ }
625
+
626
+ $excerpt = ( $more ? $excerpt . " " . $more : $excerpt );
627
+
628
+ return apply_filters( 'tpg_get_the_excerpt', $excerpt, $post_id, $data, $defaultExcerpt );
629
+ }
630
+ }
631
+
632
+ function get_the_title( $post_id, $data = [] ) {
633
+ $title = $originalTitle = get_the_title( $post_id );
634
+ $limit = isset( $data['title_limit'] ) ? abs( $data['title_limit'] ) : 0;
635
+ $limit_type = isset( $data['title_limit_type'] ) ? trim( $data['title_limit_type'] ) : 'character';
636
+ if ( $limit ) {
637
+ if ( $limit_type == "word" ) {
638
+ $limit = $limit + 1;
639
+ $title = explode( ' ', $title, $limit );
640
+ if ( count( $title ) >= $limit ) {
641
+ array_pop( $title );
642
+ $title = implode( " ", $title );
643
+ } else {
644
+ $title = $originalTitle;
645
+ }
646
+ } else {
647
+ if ( $limit > 0 && strlen( $title ) > $limit ) {
648
+ $title = mb_substr( $title, 0, $limit, "utf-8" );
649
+ $title = preg_replace( '/\W\w+\s*(\W*)$/', '$1', $title );
650
+ }
651
+ }
652
+ }
653
+
654
+ return apply_filters( 'tpg_get_the_title', $title, $post_id, $data, $originalTitle );
655
+ }
656
+
657
+
658
+ function rt_pagination( $postGrid, $range = 4, $ajax = false ) {
659
+ $html = $pages = null;
660
+ $showitems = ( $range * 2 ) + 1;
661
+
662
+ $wpQuery = $postGrid;
663
+ global $wp_query;
664
+ if ( empty( $wpQuery ) ) {
665
+ $wpQuery = $wp_query;
666
+ }
667
+ $pages = ! empty( $wpQuery->max_num_pages ) ? $wpQuery->max_num_pages : 1;
668
+ $paged = ! empty( $wpQuery->query['paged'] ) ? $wpQuery->query['paged'] : 1;
669
+ if ( is_front_page() ) {
670
+ $paged = ! empty( $wp_query->query['paged'] ) ? $wp_query->query['paged'] : 1;
671
+ }
672
+
673
+
674
+ $ajaxClass = null;
675
+ $dataAttr = null;
676
+
677
+ if ( $ajax ) {
678
+ $ajaxClass = ' rt-ajax';
679
+ $dataAttr = "data-paged='1'";
680
+ }
681
+
682
+ if ( 1 != $pages ) {
683
+ $html .= '<div class="rt-pagination' . $ajaxClass . '" ' . $dataAttr . '>';
684
+ $html .= '<ul class="pagination-list">';
685
+ if ( $paged > 2 && $paged > $range + 1 && $showitems < $pages && ! $ajax ) {
686
+ $html .= "<li><a data-paged='1' href='" . get_pagenum_link( 1 ) . "' aria-label='First'>&laquo;</a></li>";
687
+ }
688
+
689
+ if ( $paged > 1 && $showitems < $pages && ! $ajax ) {
690
+ $p = $paged - 1;
691
+ $html .= "<li><a data-paged='{$p}' href='" . get_pagenum_link( $p ) . "' aria-label='Previous'>&lsaquo;</a></li>";
692
+ }
693
+
694
+ if ( $ajax ) {
695
+ for ( $i = 1; $i <= $pages; $i ++ ) {
696
+ $html .= ( $paged == $i ) ? "<li class=\"active\"><span>" . $i . "</span>
697
+
698
+ </li>" : "<li><a data-paged='{$i}' href='" . get_pagenum_link( $i ) . "'>" . $i . "</a></li>";
699
+ }
700
+ } else {
701
+ for ( $i = 1; $i <= $pages; $i ++ ) {
702
+ if ( 1 != $pages && ( ! ( $i >= $paged + $range + 1 || $i <= $paged - $range - 1 ) || $pages <= $showitems ) ) {
703
+ $html .= ( $paged == $i ) ? "<li class=\"active\"><span>" . $i . "</span>
704
+
705
+ </li>" : "<li><a data-paged='{$i}' href='" . get_pagenum_link( $i ) . "'>" . $i . "</a></li>";
706
+ }
707
+ }
708
+ }
709
+
710
+ if ( $paged < $pages && $showitems < $pages && ! $ajax ) {
711
+ $p = $paged + 1;
712
+ $html .= "<li><a data-paged='{$p}' href=\"" . get_pagenum_link( $paged + 1 ) . "\" aria-label='Next'>&rsaquo;</a></li>";
713
+ }
714
+
715
+ if ( $paged < $pages - 1 && $paged + $range - 1 < $pages && $showitems < $pages && ! $ajax ) {
716
+ $html .= "<li><a data-paged='{$pages}' href='" . get_pagenum_link( $pages ) . "' aria-label='Last'>&raquo;</a></li>";
717
+ }
718
+
719
+ $html .= "</ul>";
720
+ $html .= "</div>";
721
+ }
722
+
723
+ return $html;
724
+ }
725
+
726
+ function rt_pagination_ajax( $pages = '', $range = 4, $scID ) {
727
+ $html = null;
728
+
729
+
730
+ $html .= "<div class='rt-tpg-pagination-ajax' data-sc-id='{$scID}' data-paged='1'>";
731
+
732
+ $html .= "</div>";
733
+
734
+ return $html;
735
+ }
736
+
737
+ /**
738
+ * Call the Image resize model for resize function
739
+ *
740
+ * @param $url
741
+ * @param null $width
742
+ * @param null $height
743
+ * @param null $crop
744
+ * @param bool|true $single
745
+ * @param bool|false $upscale
746
+ *
747
+ * @return array|bool|string
748
+ * @throws Exception
749
+ * @throws Rt_Exception
750
+ */
751
+ function rtImageReSize( $url, $width = null, $height = null, $crop = null, $single = true, $upscale = false ) {
752
+ $rtResize = new rtTPGReSizer();
753
+
754
+ return $rtResize->process( $url, $width, $height, $crop, $single, $upscale );
755
+ }
756
+
757
+
758
+ /* Convert hexdec color string to rgb(a) string */
759
+ function rtHex2rgba( $color, $opacity = .5 ) {
760
+ $default = 'rgb(0,0,0)';
761
+
762
+ //Return default if no color provided
763
+ if ( empty( $color ) ) {
764
+ return $default;
765
+ }
766
+
767
+ //Sanitize $color if "#" is provided
768
+ if ( $color[0] == '#' ) {
769
+ $color = substr( $color, 1 );
770
+ }
771
+
772
+ //Check if color has 6 or 3 characters and get values
773
+ if ( strlen( $color ) == 6 ) {
774
+ $hex = [ $color[0] . $color[1], $color[2] . $color[3], $color[4] . $color[5] ];
775
+ } elseif ( strlen( $color ) == 3 ) {
776
+ $hex = [ $color[0] . $color[0], $color[1] . $color[1], $color[2] . $color[2] ];
777
+ } else {
778
+ return $default;
779
+ }
780
+
781
+ //Convert hexadec to rgb
782
+ $rgb = array_map( 'hexdec', $hex );
783
+
784
+ //Check if opacity is set(rgba or rgb)
785
+ if ( $opacity ) {
786
+ if ( abs( $opacity ) > 1 ) {
787
+ $opacity = 1.0;
788
+ }
789
+ $output = 'rgba(' . implode( ",", $rgb ) . ',' . $opacity . ')';
790
+ } else {
791
+ $output = 'rgb(' . implode( ",", $rgb ) . ')';
792
+ }
793
+
794
+ //Return rgb(a) color string
795
+ return $output;
796
+ }
797
+
798
+ function doFlush() {
799
+ if ( get_option( rtTPG()->options['flash'] ) ) {
800
+ rtTPG()->flush_rewrite();
801
+ update_option( rtTPG()->options['flash'], false );
802
+ }
803
+ }
804
+
805
+ function meta_exist( $post_id = null, $meta_key, $type = "post" ) {
806
+ if ( ! $post_id ) {
807
+ return false;
808
+ }
809
+
810
+ return metadata_exists( $type, $post_id, $meta_key );
811
+ }
812
+
813
+
814
+ function get_offset_col( $col ) {
815
+ $return = [
816
+ 'big' => 6,
817
+ 'small' => 6,
818
+ ];
819
+ if ( $col ) {
820
+ if ( $col == 12 ) {
821
+ $return['big'] = 12;
822
+ $return['small'] = 12;
823
+ } elseif ( $col == 6 ) {
824
+ $return['big'] = 6;
825
+ $return['small'] = 6;
826
+ } elseif ( $col == 4 ) {
827
+ $return['big'] = 4;
828
+ $return['small'] = 8;
829
+ }
830
+ }
831
+
832
+ return $return;
833
+ }
834
+
835
+ public function formatSpacing( $data = '' ) {
836
+ if ( ! empty( $data ) ) {
837
+ $spacing = array_filter( explode( ',', $data ), 'is_numeric' );
838
+ if ( count( $spacing ) > 4 ) {
839
+ $spacing = array_slice( $spacing, 0, 4, true );
840
+ }
841
+ $data = implode( "px ", $spacing );
842
+ }
843
+
844
+ return $data;
845
+ }
846
+
847
+ public function layoutStyle( $layoutID, $scMeta, $layout, $scId = null ) {
848
+ $css = null;
849
+ $css .= "<style type='text/css' media='all'>";
850
+ // primary color
851
+ if ( $scId ) {
852
+ $primaryColor = ( isset( $scMeta['primary_color'][0] ) ? $scMeta['primary_color'][0] : null );
853
+ $button_bg_color = ( isset( $scMeta['button_bg_color'][0] ) ? $scMeta['button_bg_color'][0] : null );
854
+ $button_active_bg_color = ( isset( $scMeta['button_active_bg_color'][0] ) ? $scMeta['button_active_bg_color'][0] : null );
855
+ $button_hover_bg_color = ( isset( $scMeta['button_hover_bg_color'][0] ) ? $scMeta['button_hover_bg_color'][0] : null );
856
+ $button_text_color = ( isset( $scMeta['button_text_bg_color'][0] ) ? $scMeta['button_text_bg_color'][0]
857
+ : ( isset( $scMeta['button_text_color'][0] ) ? $scMeta['button_text_color'][0] : null ) );
858
+ $button_hover_text_color = ( isset( $scMeta['button_hover_text_color'][0] ) ? $scMeta['button_hover_text_color'][0] : null );
859
+ $button_border_color = ( isset( $scMeta['button_border_color'][0] ) ? $scMeta['button_border_color'][0] : null );
860
+ $overlay_color = ( ! empty( $scMeta['overlay_color'][0] ) ? rtTPG()->rtHex2rgba( $scMeta['overlay_color'][0],
861
+ ! empty( $scMeta['overlay_opacity'][0] ) ? absint( $scMeta['overlay_opacity'][0] ) / 10 : .8 ) : null );
862
+ $overlay_padding = ( ! empty( $scMeta['overlay_padding'][0] ) ? absint( $scMeta['overlay_padding'][0] ) : null );
863
+ $gutter = ! empty( $scMeta['tgp_gutter'][0] ) ? absint( $scMeta['tgp_gutter'][0] ) : null;
864
+ $read_more_button_border_radius = isset( $scMeta['tpg_read_more_button_border_radius'][0] ) ? $scMeta['tpg_read_more_button_border_radius'][0] : '';
865
+ // Section
866
+ $sectionBg = ( isset( $scMeta['tpg_full_area_bg'][0] ) ? $scMeta['tpg_full_area_bg'][0] : null );
867
+ $sectionMargin = ( isset( $scMeta['tpg_full_area_margin'][0] ) ? $scMeta['tpg_full_area_margin'][0] : null );
868
+ $sectionMargin = $this->formatSpacing( $sectionMargin );
869
+ $sectionPadding = ( isset( $scMeta['tpg_full_area_padding'][0] ) ? $scMeta['tpg_full_area_padding'][0] : null );
870
+ $sectionPadding = $this->formatSpacing( $sectionPadding );
871
+ // Box
872
+ $boxBg = ( isset( $scMeta['tpg_content_wrap_bg'][0] ) ? $scMeta['tpg_content_wrap_bg'][0] : null );
873
+ $boxBorder = ( isset( $scMeta['tpg_content_wrap_border'][0] ) ? $scMeta['tpg_content_wrap_border'][0] : null );
874
+ $boxBorderColor = ( isset( $scMeta['tpg_content_wrap_border_color'][0] ) ? $scMeta['tpg_content_wrap_border_color'][0] : null );
875
+ $boxBorderRadius = ( isset( $scMeta['tpg_content_wrap_border_radius'][0] ) ? $scMeta['tpg_content_wrap_border_radius'][0] : null );
876
+ $boxShadow = ( isset( $scMeta['tpg_content_wrap_shadow'][0] ) ? $scMeta['tpg_content_wrap_shadow'][0] : null );
877
+ $boxPadding = ( isset( $scMeta['tpg_box_padding'][0] ) ? $scMeta['tpg_box_padding'][0] : null );
878
+ $boxPadding = $this->formatSpacing( $boxPadding );
879
+ $contentPadding = ( isset( $scMeta['tpg_content_padding'][0] ) ? $scMeta['tpg_content_padding'][0] : null );
880
+ $contentPadding = $this->formatSpacing( $contentPadding );
881
+ // Heading
882
+ $headingBg = ( isset( $scMeta['tpg_heading_bg'][0] ) ? $scMeta['tpg_heading_bg'][0] : null );
883
+ $headingColor = ( isset( $scMeta['tpg_heading_color'][0] ) ? $scMeta['tpg_heading_color'][0] : null );
884
+ $headingBorderColor = ( isset( $scMeta['tpg_heading_border_color'][0] ) ? $scMeta['tpg_heading_border_color'][0] : null );
885
+ $headingBorderSize = ( isset( $scMeta['tpg_heading_border_size'][0] ) ? $scMeta['tpg_heading_border_size'][0] : null );
886
+ $headingMargin = ( isset( $scMeta['tpg_heading_margin'][0] ) ? $scMeta['tpg_heading_margin'][0] : null );
887
+ $headingMargin = $this->formatSpacing( $headingMargin );
888
+ $headingPadding = ( isset( $scMeta['tpg_heading_padding'][0] ) ? $scMeta['tpg_heading_padding'][0] : null );
889
+ $headingPadding = $this->formatSpacing( $headingPadding );
890
+ // Category
891
+ $catBg = ( isset( $scMeta['tpg_category_bg'][0] ) ? $scMeta['tpg_category_bg'][0] : null );
892
+ $catTextColor = ( isset( $scMeta['tpg_category_color'][0] ) ? $scMeta['tpg_category_color'][0] : null );
893
+ $catBorderRadius = ( isset( $scMeta['tpg_category_border_radius'][0] ) ? $scMeta['tpg_category_border_radius'][0] : null );
894
+ $catMargin = ( isset( $scMeta['tpg_category_margin'][0] ) ? $scMeta['tpg_category_margin'][0] : null );
895
+ $catMargin = $this->formatSpacing( $catMargin );
896
+ $catPadding = ( isset( $scMeta['tpg_category_padding'][0] ) ? $scMeta['tpg_category_padding'][0] : null );
897
+ $catPadding = $this->formatSpacing( $catPadding );
898
+ $categorySize = ( ! empty( $scMeta['rt_tpg_category_font_size'][0] ) ? absint( $scMeta['rt_tpg_category_font_size'][0] ) : null );
899
+ // Image
900
+ $image_border_radius = isset( $scMeta['tpg_image_border_radius'][0] ) ? $scMeta['tpg_image_border_radius'][0] : '';
901
+ // Title
902
+ $title_color = ( ! empty( $scMeta['title_color'][0] ) ? $scMeta['title_color'][0] : null );
903
+ $title_size = ( ! empty( $scMeta['title_size'][0] ) ? absint( $scMeta['title_size'][0] ) : null );
904
+ $title_weight = ( ! empty( $scMeta['title_weight'][0] ) ? $scMeta['title_weight'][0] : null );
905
+ $title_alignment = ( ! empty( $scMeta['title_alignment'][0] ) ? $scMeta['title_alignment'][0] : null );
906
+
907
+ $title_hover_color = ( ! empty( $scMeta['title_hover_color'][0] ) ? $scMeta['title_hover_color'][0] : null );
908
+
909
+ $excerpt_color = ( ! empty( $scMeta['excerpt_color'][0] ) ? $scMeta['excerpt_color'][0] : null );
910
+ $excerpt_size = ( ! empty( $scMeta['excerpt_size'][0] ) ? absint( $scMeta['excerpt_size'][0] ) : null );
911
+ $excerpt_weight = ( ! empty( $scMeta['excerpt_weight'][0] ) ? $scMeta['excerpt_weight'][0] : null );
912
+ $excerpt_alignment = ( ! empty( $scMeta['excerpt_alignment'][0] ) ? $scMeta['excerpt_alignment'][0] : null );
913
+
914
+ $meta_data_color = ( ! empty( $scMeta['meta_data_color'][0] ) ? $scMeta['meta_data_color'][0] : null );
915
+ $meta_data_size = ( ! empty( $scMeta['meta_data_size'][0] ) ? absint( $scMeta['meta_data_size'][0] ) : null );
916
+ $meta_data_weight = ( ! empty( $scMeta['meta_data_weight'][0] ) ? $scMeta['meta_data_weight'][0] : null );
917
+ $meta_data_alignment = ( ! empty( $scMeta['meta_data_alignment'][0] ) ? $scMeta['meta_data_alignment'][0] : null );
918
+ } else {
919
+ $primaryColor = ( isset( $scMeta['primary_color'] ) ? $scMeta['primary_color'] : null );
920
+ $button_bg_color = ( isset( $scMeta['button_bg_color'] ) ? $scMeta['button_bg_color'] : null );
921
+ $button_active_bg_color = ( isset( $scMeta['button_active_bg_color'] ) ? $scMeta['button_active_bg_color'] : null );
922
+ $button_hover_bg_color = ( isset( $scMeta['button_hover_bg_color'] ) ? $scMeta['button_hover_bg_color'] : null );
923
+ $btn_text_color = get_post_meta( $scMeta['sc_id'], 'button_text_color', true );
924
+ $button_text_color = ( ! empty( $scMeta['button_text_bg_color'] ) ? $scMeta['button_text_bg_color']
925
+ : ( ! empty( $btn_text_color ) ? $btn_text_color : null ) );
926
+ $button_border_color = ( isset( $scMeta['button_border_color'] ) ? $scMeta['button_border_color'] : null );
927
+ $button_hover_text_color = ( isset( $scMeta['button_hover_text_color'] ) ? $scMeta['button_hover_text_color'] : null );
928
+ $overlay_color = ( ! empty( $scMeta['overlay_color'] ) ? rtTPG()->rtHex2rgba( $scMeta['overlay_color'],
929
+ ! empty( $scMeta['overlay_opacity'] ) ? absint( $scMeta['overlay_opacity'] ) / 10 : .8 ) : null );
930
+ $overlay_padding = ( ! empty( $scMeta['overlay_padding'] ) ? absint( $scMeta['overlay_padding'] ) : null );
931
+ $gutter = ! empty( $scMeta['tgp_gutter'] ) ? absint( $scMeta['tgp_gutter'] ) : null;
932
+ $read_more_button_border_radius = isset( $scMeta['tpg_read_more_button_border_radius'] ) ? $scMeta['tpg_read_more_button_border_radius'] : '';
933
+ // Section
934
+ $sectionBg = ( isset( $scMeta['tpg_full_area_bg'] ) ? $scMeta['tpg_full_area_bg'] : null );
935
+ $sectionMargin = ( isset( $scMeta['tpg_full_area_margin'] ) ? $scMeta['tpg_full_area_margin'] : null );
936
+ $sectionMargin = $this->formatSpacing( $sectionMargin );
937
+ $sectionPadding = ( isset( $scMeta['tpg_full_area_padding'] ) ? $scMeta['tpg_full_area_padding'] : null );
938
+ $sectionPadding = $this->formatSpacing( $sectionPadding );
939
+ // Box
940
+ $boxBg = ( isset( $scMeta['tpg_content_wrap_bg'] ) ? $scMeta['tpg_content_wrap_bg'] : null );
941
+ $boxBorder = ( isset( $scMeta['tpg_content_wrap_border'] ) ? $scMeta['tpg_content_wrap_border'] : null );
942
+ $boxBorderColor = ( isset( $scMeta['tpg_content_wrap_border_color'] ) ? $scMeta['tpg_content_wrap_border_color'] : null );
943
+ $boxBorderRadius = ( isset( $scMeta['tpg_content_wrap_border_radius'] ) ? $scMeta['tpg_content_wrap_border_radius'] : null );
944
+ $boxShadow = ( isset( $scMeta['tpg_content_wrap_shadow'] ) ? $scMeta['tpg_content_wrap_shadow'] : null );
945
+ $boxPadding = ( isset( $scMeta['tpg_box_padding'] ) ? $scMeta['tpg_box_padding'] : null );
946
+ $boxPadding = $this->formatSpacing( $boxPadding );
947
+ $contentPadding = ( isset( $scMeta['tpg_content_padding'] ) ? $scMeta['tpg_content_padding'] : null );
948
+ $contentPadding = $this->formatSpacing( $contentPadding );
949
+ // Heading
950
+ $headingBg = ( isset( $scMeta['tpg_heading_bg'] ) ? $scMeta['tpg_heading_bg'] : null );
951
+ $headingColor = ( isset( $scMeta['tpg_heading_color'] ) ? $scMeta['tpg_heading_color'] : null );
952
+ $headingBorderColor = ( isset( $scMeta['tpg_heading_border_color'] ) ? $scMeta['tpg_heading_border_color'] : null );
953
+ $headingBorderSize = ( isset( $scMeta['tpg_heading_border_size'] ) ? $scMeta['tpg_heading_border_size'] : null );
954
+ $headingMargin = ( isset( $scMeta['tpg_heading_margin'] ) ? $scMeta['tpg_heading_margin'] : null );
955
+ $headingMargin = $this->formatSpacing( $headingMargin );
956
+ $headingPadding = ( isset( $scMeta['tpg_heading_padding'] ) ? $scMeta['tpg_heading_padding'] : null );
957
+ $headingPadding = $this->formatSpacing( $headingPadding );
958
+ // Category
959
+ $catBg = ( isset( $scMeta['tpg_category_bg'] ) ? $scMeta['tpg_category_bg'] : null );
960
+ $catTextColor = ( isset( $scMeta['tpg_category_color'] ) ? $scMeta['tpg_category_color'] : null );
961
+ $catBorderRadius = ( isset( $scMeta['tpg_category_border_radius'] ) ? $scMeta['tpg_category_border_radius'] : null );
962
+ $catMargin = ( isset( $scMeta['tpg_category_margin'] ) ? $scMeta['tpg_category_margin'] : null );
963
+ $catPadding = ( isset( $scMeta['tpg_category_padding'] ) ? $scMeta['tpg_category_padding'] : null );
964
+ $categorySize = ( ! empty( $scMeta['rt_tpg_category_font_size'] ) ? absint( $scMeta['rt_tpg_category_font_size'] ) : null );
965
+ // Image
966
+ $image_border_radius = isset( $scMeta['tpg_image_border_radius'] ) ? $scMeta['tpg_image_border_radius'] : '';
967
+ // Title
968
+ $title_color = ( ! empty( $scMeta['title_color'] ) ? $scMeta['title_color'] : null );
969
+ $title_size = ( ! empty( $scMeta['title_size'] ) ? absint( $scMeta['title_size'] ) : null );
970
+ $title_weight = ( ! empty( $scMeta['title_weight'] ) ? $scMeta['title_weight'] : null );
971
+ $title_alignment = ( ! empty( $scMeta['title_alignment'] ) ? $scMeta['title_alignment'] : null );
972
+
973
+ $title_hover_color = ( ! empty( $scMeta['title_hover_color'] ) ? $scMeta['title_hover_color'] : null );
974
+
975
+ $excerpt_color = ( ! empty( $scMeta['excerpt_color'] ) ? $scMeta['excerpt_color'] : null );
976
+ $excerpt_size = ( ! empty( $scMeta['excerpt_size'] ) ? absint( $scMeta['excerpt_size'] ) : null );
977
+ $excerpt_weight = ( ! empty( $scMeta['excerpt_weight'] ) ? $scMeta['excerpt_weight'] : null );
978
+ $excerpt_alignment = ( ! empty( $scMeta['excerpt_alignment'] ) ? $scMeta['excerpt_alignment'] : null );
979
+
980
+ $meta_data_color = ( ! empty( $scMeta['meta_data_color'] ) ? $scMeta['meta_data_color'] : null );
981
+ $meta_data_size = ( ! empty( $scMeta['meta_data_size'] ) ? absint( $scMeta['meta_data_size'] ) : null );
982
+ $meta_data_weight = ( ! empty( $scMeta['meta_data_weight'] ) ? $scMeta['meta_data_weight'] : null );
983
+ $meta_data_alignment = ( ! empty( $scMeta['meta_data_alignment'] ) ? $scMeta['meta_data_alignment'] : null );
984
+ }
985
+
986
+ $id = str_replace( 'rt-tpg-container-', '', $layoutID );
987
+
988
+ if ( $primaryColor ) {
989
+ $css .= "#{$layoutID} .rt-holder .rt-woo-info .price{";
990
+ $css .= "color:" . $primaryColor . ";";
991
+ $css .= "}";
992
+ $css .= "body .rt-tpg-container .rt-tpg-isotope-buttons .selected,
993
  #{$layoutID} .layout12 .rt-holder:hover .rt-detail,
994
  #{$layoutID} .isotope8 .rt-holder:hover .rt-detail,
995
  #{$layoutID} .carousel8 .rt-holder:hover .rt-detail,
1000
  .rt-modal-{$id} .md-content > .rt-md-content-holder .rt-md-content,
1001
  .rt-popup-wrap-{$id}.rt-popup-wrap .rt-popup-navigation-wrap,
1002
  #{$layoutID} .carousel9 .rt-holder .overlay .post-info{";
1003
+ $css .= "background-color:" . $primaryColor . ";";
1004
+ $css .= "}";
1005
+
 
 
 
 
 
 
 
 
 
 
 
 
1006
 
1007
+ $ocp = rtTPG()->rtHex2rgba( $primaryColor,
1008
+ ! empty( $scMeta['overlay_opacity'][0] ) ? absint( $scMeta['overlay_opacity'][0] ) / 10 : .8 );
1009
+ $css .= "#{$layoutID} .layout5 .rt-holder .overlay, #{$layoutID} .isotope2 .rt-holder .overlay, #{$layoutID} .carousel2 .rt-holder .overlay,#{$layoutID} .layout15 .rt-holder h3, #{$layoutID} .isotope11 .rt-holder h3, #{$layoutID} .carousel11 .rt-holder h3, #{$layoutID} .layout16 .rt-holder h3,
1010
+ #{$layoutID} .isotope12 .rt-holder h3, #{$layoutID} .carousel12 .rt-holder h3 {";
1011
+ $css .= "background-color:" . $ocp . ";";
1012
+ $css .= "}";
1013
+ }
1014
 
1015
+ if ( $button_border_color ) {
1016
+ $css .= "#{$layoutID} .rt-filter-item-wrap.rt-filter-button-wrap span.rt-filter-button-item,
 
1017
  #{$layoutID} .rt-layout-filter-container .rt-filter-sub-tax.sub-button-group .rt-filter-button-item,
1018
+ #{$layoutID}.rt-tpg-container .swiper-navigation .slider-btn,
1019
  #{$layoutID} .rt-layout-filter-container .rt-filter-wrap .rt-filter-item-wrap.rt-sort-order-action,
1020
  #{$layoutID} .rt-layout-filter-container .rt-filter-wrap .rt-filter-item-wrap.rt-filter-dropdown-wrap .rt-filter-dropdown .rt-filter-dropdown-item,
1021
  #{$layoutID} .rt-layout-filter-container .rt-filter-wrap .rt-filter-item-wrap.rt-filter-dropdown-wrap{";
1022
+ $css .= "border-color:" . $button_border_color . " !important;";
1023
+ $css .= "}";
1024
+ $css .= "#{$layoutID} .rt-holder .read-more a {";
1025
+ $css .= "border-color:" . $button_border_color . ";";
1026
+ $css .= "}";
1027
+ }
1028
+
1029
+ if ( $button_bg_color ) {
1030
+ $css .= "#{$layoutID} .pagination-list li a,
1031
  {$layoutID} .pagination-list li span,
1032
  {$layoutID} .pagination li a,
1033
  #{$layoutID} .rt-tpg-isotope-buttons button,
 
1034
  #{$layoutID} .rt-tpg-utility .rt-tpg-load-more button,
1035
+ #{$layoutID}.rt-tpg-container .swiper-navigation .slider-btn,
1036
+ #{$layoutID}.rt-tpg-container .swiper-pagination-bullet,
1037
  #{$layoutID} .wc1 .rt-holder .rt-img-holder .overlay .product-more ul li a,
1038
  #{$layoutID} .wc2 .rt-detail .rt-wc-add-to-cart,
1039
  #{$layoutID} .wc3 .rt-detail .rt-wc-add-to-cart,
1046
  #{$layoutID} .rt-filter-item-wrap.rt-filter-button-wrap span.rt-filter-button-item,
1047
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-loadmore-btn,
1048
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-cb-page-prev-next > *,
1049
+ #{$layoutID} .rt-read-more,
1050
  #rt-tooltip-{$id}, #rt-tooltip-{$id} .rt-tooltip-bottom:after{";
1051
+ $css .= "background-color:" . $button_bg_color . ";";
1052
+ $css .= "}";
1053
+ $css .= "#{$layoutID} .rt-filter-item-wrap.rt-filter-button-wrap span.rt-filter-button-item,
1054
  #{$layoutID} .rt-layout-filter-container .rt-filter-sub-tax.sub-button-group .rt-filter-button-item{";
1055
+ $css .= "border-color:" . $button_bg_color . ";";
1056
+ $css .= "}";
1057
+ $css .= "#{$layoutID}.rt-tpg-container .layout17 .rt-holder .overlay a.tpg-zoom .fa{";
1058
+ $css .= "color:" . $button_bg_color . ";";
1059
+ $css .= "}";
1060
+
1061
+ $css .= "#{$layoutID} .rt-holder .read-more a {";
1062
+ $css .= "background-color:" . $button_bg_color . ";padding: 8px 15px;";
1063
+ $css .= "}";
1064
+ }
1065
+
1066
+ // button active color
1067
+ if ( $button_active_bg_color ) {
1068
+ $css .= "#{$layoutID} .pagination li.active span,
1069
  #{$layoutID} .pagination-list li.active span,
1070
  #{$layoutID} .rt-tpg-isotope-buttons button.selected,
1071
  #{$layoutID} .rt-filter-item-wrap.rt-filter-button-wrap span.rt-filter-button-item.selected,
1072
  #{$layoutID} .rt-layout-filter-container .rt-filter-sub-tax.sub-button-group .rt-filter-button-item.selected,
1073
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-page-numbers .paginationjs .paginationjs-pages ul li.active>a,
1074
+ #{$layoutID}.rt-tpg-container .swiper-pagination-bullet.swiper-pagination-bullet-active-main{";
1075
+ $css .= "background-color:" . $button_active_bg_color . ";";
1076
+ $css .= "}";
1077
 
1078
+ $css .= "#{$layoutID} .rt-filter-item-wrap.rt-filter-button-wrap span.rt-filter-button-item.selected,
1079
  #{$layoutID} .rt-layout-filter-container .rt-filter-sub-tax.sub-button-group .rt-filter-button-item.selected,
1080
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-page-numbers .paginationjs .paginationjs-pages ul li.active>a{";
1081
+ $css .= "border-color:" . $button_active_bg_color . ";";
1082
+ $css .= "}";
1083
+ }
1084
 
1085
+ // Button hover bg color
1086
+ if ( $button_hover_bg_color ) {
1087
+ $css .= "#{$layoutID} .pagination-list li a:hover,
1088
  #{$layoutID} .pagination li a:hover,
1089
  #{$layoutID} .rt-tpg-isotope-buttons button:hover,
1090
  #{$layoutID} .rt-holder .read-more a:hover,
1091
  #{$layoutID} .rt-tpg-utility .rt-tpg-load-more button:hover,
1092
+ #{$layoutID}.rt-tpg-container .swiper-pagination-bullet:hover,
1093
+ #{$layoutID}.rt-tpg-container .swiper-navigation .slider-btn:hover,
1094
  #{$layoutID} .wc1 .rt-holder .rt-img-holder .overlay .product-more ul li a:hover,
1095
  #{$layoutID} .wc2 .rt-detail .rt-wc-add-to-cart:hover,
1096
  #{$layoutID} .wc3 .rt-detail .rt-wc-add-to-cart:hover,
1104
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-page-numbers .paginationjs .paginationjs-pages ul li>a:hover,
1105
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-cb-page-prev-next > *:hover,
1106
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-loadmore-btn:hover,
1107
+ #{$layoutID} .rt-read-more:hover,
1108
  #{$layoutID} .rt-tpg-utility .rt-tpg-load-more button:hover{";
1109
+ $css .= "background-color:" . $button_hover_bg_color . ";";
1110
+ $css .= "}";
1111
 
1112
+ $css .= "#{$layoutID} .rt-filter-item-wrap.rt-filter-button-wrap span.rt-filter-button-item:hover,
1113
  #{$layoutID} .rt-layout-filter-container .rt-filter-sub-tax.sub-button-group .rt-filter-button-item:hover,
1114
+ #{$layoutID}.rt-tpg-container .swiper-navigation .slider-btn:hover,
1115
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-page-numbers .paginationjs .paginationjs-pages ul li>a:hover{";
1116
+ $css .= "border-color:" . $button_hover_bg_color . ";";
1117
+ $css .= "}";
1118
+ $css .= "#{$layoutID}.rt-tpg-container .layout17 .rt-holder .overlay a.tpg-zoom:hover .fa{";
1119
+ $css .= "color:" . $button_hover_bg_color . ";";
1120
+ $css .= "}";
1121
+ }
1122
+
1123
+ //Button text color
1124
+ if ( $button_text_color ) {
1125
+ $css .= "#{$layoutID} .pagination-list li a,
1126
  #{$layoutID} .pagination li a,
1127
  #{$layoutID} .rt-tpg-isotope-buttons button,
1128
  #{$layoutID} .rt-holder .read-more a,
1129
+ #{$layoutID} .rt-tpg-utility .rt-tpg-load-more button,
1130
+ #{$layoutID}.rt-tpg-container .swiper-navigation .slider-btn,
1131
  #{$layoutID} .wc1 .rt-holder .rt-img-holder .overlay .product-more ul li a,
1132
  #{$layoutID} .edd1 .rt-holder .rt-img-holder .overlay .product-more ul li a,
1133
  #{$layoutID} .wc2 .rt-detail .rt-wc-add-to-cart,
1146
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-page-numbers .paginationjs .paginationjs-pages ul li>a,
1147
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-cb-page-prev-next > *,
1148
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-loadmore-btn,
1149
+ #{$layoutID} .rt-read-more,
1150
  #rt-tooltip-{$id} .rt-tooltip-bottom:after{";
1151
+ $css .= "color:" . $button_text_color . ";";
1152
+ $css .= "}";
1153
+ }
 
1154
 
1155
+ if ( $button_hover_text_color ) {
1156
+ $css .= "#{$layoutID} .rt-filter-item-wrap.rt-filter-button-wrap span.rt-filter-button-item:hover,
1157
  #{$layoutID} .rt-holder .read-more a:hover,
1158
+ #{$layoutID}.rt-tpg-container .swiper-navigation .slider-btn:hover,
1159
  #{$layoutID} .rt-layout-filter-container .rt-filter-sub-tax.sub-button-group .rt-filter-button-item:hover,
1160
  #{$layoutID} .rt-layout-filter-container .rt-filter-wrap .rt-filter-item-wrap.rt-filter-dropdown-wrap .rt-filter-dropdown .rt-filter-dropdown-item:hover,
1161
  #{$layoutID} .rt-layout-filter-container .rt-filter-wrap .rt-filter-item-wrap.rt-filter-dropdown-wrap .rt-filter-dropdown .rt-filter-dropdown-item.selected,
1164
  #{$layoutID} .rt-filter-item-wrap.rt-filter-button-wrap span.rt-filter-button-item.selected,
1165
  #{$layoutID} .rt-layout-filter-container .rt-filter-wrap .rt-filter-item-wrap.rt-sort-order-action,
1166
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-loadmore-btn:hover,
1167
+ #{$layoutID} .rt-read-more:hover,
1168
  #{$layoutID}.rt-tpg-container .rt-pagination-wrap .rt-page-numbers .paginationjs .paginationjs-pages ul li.active>a{";
1169
+ $css .= "color:" . $button_hover_text_color . ";";
1170
+ $css .= "}";
1171
+ }
1172
+
1173
+ if ( $overlay_color || $overlay_padding ) {
1174
+ if ( in_array( $layout, [ 'layout15', 'isotope11', 'carousel11' ] ) ) {
1175
+ $css .= "#{$layoutID} .{$layout} .rt-holder:hover .overlay .post-info{";
1176
+ } elseif ( in_array( $layout,
1177
+ [ 'layout10', 'isotope7', 'carousel6', 'carousel7', 'layout9', 'offset04' ] )
1178
+ ) {
1179
+ $css .= "#{$layoutID} .{$layout} .rt-holder .post-info{";
1180
+ } elseif ( in_array( $layout, [ 'layout7', 'isotope4', 'carousel4' ] ) ) {
1181
+ $css .= "#{$layoutID} .{$layout} .rt-holder .overlay:hover{";
1182
+ } elseif ( in_array( $layout, [ 'layout16', 'isotope12', 'carousel12' ] ) ) {
1183
+ $css .= "#{$layoutID} .{$layout} .rt-holder .overlay .post-info {";
1184
+ } elseif ( in_array( $layout, [ 'offset03', 'carousel5' ] ) ) {
1185
+ $css .= "#{$layoutID} .{$layout} .rt-holder .overlay{";
1186
+ } else {
1187
+ $css .= "#{$layoutID} .rt-post-overlay .post-img > a:first-of-type::after,";
1188
+ $css .= "#{$layoutID} .rt-holder .overlay:hover{";
1189
+ }
1190
+ if ( $overlay_color ) {
1191
+ $css .= "background-image: none;";
1192
+ $css .= "background-color:" . $overlay_color . ";";
1193
+ }
1194
+ if ( $overlay_padding ) {
1195
+ $css .= "padding-top:" . $overlay_padding . "%;";
1196
+ }
1197
+ $css .= "}";
1198
+ }
1199
+
1200
+ if ( $boxShadow ) {
1201
+ $css .= "#{$layoutID} .{$layout} .rt-holder {";
1202
+ $css .= "box-shadow : 0px 0px 2px 0px {$boxShadow};";
1203
+ $css .= "}";
1204
+ }
1205
+
1206
+ /* gutter */
1207
+ if ( $gutter ) {
1208
+ $css .= "#{$layoutID} [class*='rt-col-'] {";
1209
+ $css .= "padding-left : {$gutter}px !important;";
1210
+ $css .= "padding-right : {$gutter}px !important;";
1211
+ $css .= "margin-top : {$gutter}px;";
1212
+ $css .= "margin-bottom : {$gutter}px;";
1213
+ $css .= "}";
1214
+ $css .= "#{$layoutID} .rt-row{";
1215
+ $css .= "margin-left : -{$gutter}px !important;";
1216
+ $css .= "margin-right : -{$gutter}px !important;";
1217
+ $css .= "}";
1218
+ $css .= "#{$layoutID}.rt-container-fluid,#{$layoutID}.rt-container{";
1219
+ $css .= "padding-left : {$gutter}px;";
1220
+ $css .= "padding-right : {$gutter}px;";
1221
+ $css .= "}";
1222
+
1223
+ // remove inner row margin
1224
+ $css .= "#{$layoutID} .rt-row .rt-row [class*='rt-col-'] {";
1225
+ $css .= "margin-top : 0;";
1226
+ $css .= "}";
1227
+ }
1228
+
1229
+ // Read more button border radius
1230
+ if ( isset( $read_more_button_border_radius ) || trim( $read_more_button_border_radius ) !== '' ) {
1231
+ $css .= "#{$layoutID} .read-more a{";
1232
+ $css .= "border-radius:" . $read_more_button_border_radius . "px;";
1233
+ $css .= "}";
1234
+ }
1235
+
1236
+ // Section
1237
+ if ( $sectionBg ) {
1238
+ $css .= "#{$layoutID}.rt-tpg-container {";
1239
+ $css .= "background:" . $sectionBg . ";";
1240
+ $css .= "}";
1241
+ }
1242
+ if ( $sectionMargin ) {
1243
+ $css .= "#{$layoutID}.rt-tpg-container {";
1244
+ $css .= "margin:" . $sectionMargin . "px;";
1245
+ $css .= "}";
1246
+ }
1247
+ if ( $sectionPadding ) {
1248
+ $css .= "#{$layoutID}.rt-tpg-container {";
1249
+ $css .= "padding:" . $sectionPadding . "px;";
1250
+ $css .= "}";
1251
+ }
1252
+ // Box
1253
+ if ( $boxBg ) {
1254
+ $css .= "#{$layoutID} .rt-holder, #{$layoutID} .rt-holder .rt-detail,#{$layoutID} .rt-post-overlay .post-img + .post-content {";
1255
+ $css .= "background-color:" . $boxBg . ";";
1256
+ $css .= "}";
1257
+ }
1258
+ if ( $boxBorderColor ) {
1259
+ $css .= "#{$layoutID} .rt-holder {";
1260
+ $css .= "border-color:" . $boxBorderColor . ";";
1261
+ $css .= "}";
1262
+ }
1263
+ if ( $boxBorder ) {
1264
+ $css .= "#{$layoutID} .rt-holder {";
1265
+ $css .= "border-style: solid;";
1266
+ $css .= "border-width:" . $boxBorder . "px;";
1267
+ $css .= "}";
1268
+ }
1269
+ if ( $boxBorderRadius ) {
1270
+ $css .= "#{$layoutID} .rt-holder {";
1271
+ $css .= "border-radius:" . $boxBorderRadius . "px;";
1272
+ $css .= "}";
1273
+ }
1274
+ if ( $boxPadding ) {
1275
+ $css .= "#{$layoutID} .rt-holder {";
1276
+ $css .= "padding:" . $boxPadding . "px;";
1277
+ $css .= "}";
1278
+ }
1279
+ if ( $contentPadding ) {
1280
+ $css .= "#{$layoutID} .rt-holder .rt-detail {";
1281
+ $css .= "padding:" . $contentPadding . "px;";
1282
+ $css .= "}";
1283
+ }
1284
+ // Widget heading
1285
+ if ( $headingBg ) {
1286
+ $css .= "#{$layoutID} .tpg-widget-heading-wrapper.heading-style1 .tpg-widget-heading, #{$layoutID} .tpg-widget-heading-wrapper.heading-style2 .tpg-widget-heading, #{$layoutID} .tpg-widget-heading-wrapper.heading-style3 .tpg-widget-heading {";
1287
+ $css .= "background:" . $headingBg . ";";
1288
+ $css .= "}";
1289
+
1290
+ $css .= "#{$layoutID} .tpg-widget-heading-wrapper.heading-style2 .tpg-widget-heading::after {";
1291
+ $css .= "border-top-color:" . $headingBg . ";";
1292
+ $css .= "}";
1293
+ }
1294
+ if ( $headingColor ) {
1295
+ $css .= "#{$layoutID} .tpg-widget-heading-wrapper.heading-style1 .tpg-widget-heading, #{$layoutID} .tpg-widget-heading-wrapper.heading-style1 .tpg-widget-heading a, #{$layoutID} .tpg-widget-heading-wrapper.heading-style2 .tpg-widget-heading, #{$layoutID} .tpg-widget-heading-wrapper.heading-style2 .tpg-widget-heading a, #{$layoutID} .tpg-widget-heading-wrapper.heading-style3 .tpg-widget-heading, #{$layoutID} .tpg-widget-heading-wrapper.heading-style3 .tpg-widget-heading a {";
1296
+ $css .= "color:" . $headingColor . ";";
1297
+ $css .= "}";
1298
+ $css .= "#{$layoutID} .tpg-widget-heading-wrapper.heading-style1 .tpg-widget-heading::before {";
1299
+ $css .= "background-color:" . $headingColor . ";";
1300
+ $css .= "}";
1301
+ }
1302
+ if ( $headingBorderSize ) {
1303
+ $css .= "#{$layoutID} .tpg-widget-heading-wrapper.heading-style1, #{$layoutID} .tpg-widget-heading-wrapper.heading-style2, #{$layoutID} .tpg-widget-heading-wrapper.heading-style3 {";
1304
+ // $css .= "border-bottom-style: solid;";
1305
+ $css .= "border-bottom-width:" . $headingBorderSize . "px;";
1306
+ $css .= "}";
1307
+
1308
+ $css .= "#{$layoutID} .tpg-widget-heading-wrapper.heading-style1 .tpg-widget-heading-line {";
1309
+ $css .= "border-width:" . $headingBorderSize . "px 0;";
1310
+ $css .= "}";
1311
+ }
1312
+ if ( $headingBorderColor ) {
1313
+ $css .= "#{$layoutID} .tpg-widget-heading-wrapper.heading-style1 .tpg-widget-heading-line, #{$layoutID} .tpg-widget-heading-wrapper.heading-style2, #{$layoutID} .tpg-widget-heading-wrapper.heading-style3 {";
1314
+ $css .= "border-color:" . $headingBorderColor . ";";
1315
+ $css .= "}";
1316
+ }
1317
+ if ( $headingMargin ) {
1318
+ $css .= "#{$layoutID} .tpg-widget-heading-wrapper {";
1319
+ $css .= "margin:" . $headingMargin . "px;";
1320
+ $css .= "}";
1321
+ }
1322
+ if ( $headingPadding ) {
1323
+ $css .= "#{$layoutID} .tpg-widget-heading-wrapper .tpg-widget-heading {";
1324
+ $css .= "padding:" . $headingPadding . "px;";
1325
+ $css .= "}";
1326
+ }
1327
+ // Image border
1328
+ if ( isset( $image_border_radius ) || trim( $image_border_radius ) !== '' ) {
1329
+ $css .= "#{$layoutID} .rt-img-holder img.rt-img-responsive,#{$layoutID} .rt-img-holder,
1330
+ #{$layoutID} .rt-post-overlay .post-img,
1331
+ #{$layoutID} .post-sm .post-img,
1332
+ #{$layoutID} .rt-post-grid .post-img,
1333
+ #{$layoutID} .post-img img {";
1334
+ $css .= "border-radius:" . $image_border_radius . "px;";
1335
+ $css .= "}";
1336
+ }
1337
+
1338
+ // Title decoration
1339
+ if ( $title_color || $title_size || $title_weight || $title_alignment ) {
1340
+ $css .= "#{$layoutID} .{$layout} .rt-holder h2.entry-title,
1341
  #{$layoutID} .{$layout} .rt-holder h3.entry-title,
1342
  #{$layoutID} .{$layout} .rt-holder h4.entry-title,
1343
  #{$layoutID} .{$layout} .rt-holder h2.entry-title a,
1346
  #{$layoutID} .rt-holder .rt-woo-info h2 a,
1347
  #{$layoutID} .rt-holder .rt-woo-info h3 a,
1348
  #{$layoutID} .rt-holder .rt-woo-info h4 a,
1349
+ #{$layoutID} .post-content .post-title,
1350
+ #{$layoutID} .rt-post-grid .post-title,
1351
+ #{$layoutID} .rt-post-grid .post-title a,
1352
+ #{$layoutID} .post-content .post-title a,
1353
  #{$layoutID} .rt-holder .rt-woo-info h2,
1354
  #{$layoutID} .rt-holder .rt-woo-info h3,
1355
  #{$layoutID} .rt-holder .rt-woo-info h4{";
1356
+ if ( $title_color ) {
1357
+ $css .= "color:" . $title_color . ";";
1358
+ }
1359
+ if ( $title_size ) {
1360
+ $lineHeight = $title_size + 10;
1361
+ $css .= "font-size:" . $title_size . "px;";
1362
+ $css .= "line-height:" . $lineHeight . "px;";
1363
+ }
1364
+ if ( $title_weight ) {
1365
+ $css .= "font-weight:" . $title_weight . ";";
1366
+ }
1367
+ if ( $title_alignment ) {
1368
+ $css .= "text-align:" . $title_alignment . ";";
1369
+ }
1370
+ $css .= "}";
1371
+ if ( $title_size ) {
1372
+ $css .= "#{$layoutID} .post-grid-lg-style-1 .post-title,
1373
+ #{$layoutID} .post-grid-lg-style-1 .post-title a,
1374
+ #{$layoutID} .big-layout .post-title,
1375
+ #{$layoutID} .big-layout .post-title a,
1376
+ #{$layoutID} .post-grid-lg-style-1 .post-title,
1377
+ #{$layoutID} .post-grid-lg-style-1 .post-title a {";
1378
+ $css .= "font-size:" . ( $title_size + 8 ) . "px;";
1379
+ $css .= "line-height:" . ( $lineHeight + 8 ) . "px;";
1380
+ $css .= "}";
1381
+ }
1382
+ }
1383
+ // Title hover color
1384
+ if ( $title_hover_color ) {
1385
+
1386
+ $css .= "#{$layoutID} .{$layout} .rt-holder h2.entry-title:hover,
1387
  #{$layoutID} .{$layout} .rt-holder h3.entry-title:hover,
1388
  #{$layoutID} .{$layout} .rt-holder h4.entry-title:hover,
1389
  #{$layoutID} .{$layout} .rt-holder h2.entry-title a:hover,
1390
  #{$layoutID} .{$layout} .rt-holder h3.entry-title a:hover,
1391
  #{$layoutID} .{$layout} .rt-holder h4.entry-title a:hover,
1392
+ #{$layoutID} .post-content .post-title a:hover,
1393
+ #{$layoutID} .rt-post-grid .post-title a:hover,
1394
  #{$layoutID} .rt-holder .rt-woo-info h2 a:hover,
1395
  #{$layoutID} .rt-holder .rt-woo-info h3 a:hover,
1396
  #{$layoutID} .rt-holder .rt-woo-info h4 a:hover,
1397
  #{$layoutID} .rt-holder .rt-woo-info h2:hover,
1398
  #{$layoutID} .rt-holder .rt-woo-info h3:hover,
1399
  #{$layoutID} .rt-holder .rt-woo-info h4:hover{";
1400
+ $css .= "color:" . $title_hover_color . " !important;";
1401
+ $css .= "}";
1402
+ }
1403
+ // Excerpt decoration
1404
+ if ( $excerpt_color || $excerpt_size || $excerpt_weight || $excerpt_alignment ) {
1405
+ $css .= "#{$layoutID} .{$layout} .rt-holder .tpg-excerpt,#{$layoutID} .{$layout} .tpg-excerpt,#{$layoutID} .{$layout} .rt-holder .post-content,#{$layoutID} .rt-holder .rt-woo-info p,#{$layoutID} .post-content p {";
1406
+ if ( $excerpt_color ) {
1407
+ $css .= "color:" . $excerpt_color . ";";
1408
+ }
1409
+ if ( $excerpt_size ) {
1410
+ $css .= "font-size:" . $excerpt_size . "px;";
1411
+ }
1412
+ if ( $excerpt_weight ) {
1413
+ $css .= "font-weight:" . $excerpt_weight . ";";
1414
+ }
1415
+ if ( $excerpt_alignment ) {
1416
+ $css .= "text-align:" . $excerpt_alignment . ";";
1417
+ }
1418
+ $css .= "}";
1419
+ }
1420
+ // Post meta decoration
1421
+ if ( $meta_data_color || $meta_data_size || $meta_data_weight || $meta_data_alignment ) {
1422
+ $css .= "#{$layoutID} .{$layout} .rt-holder .post-meta-user,
1423
+ #{$layoutID} .{$layout} .rt-meta,
1424
+ #{$layoutID} .{$layout} .rt-meta a,
1425
+ #{$layoutID} .{$layout} .rt-holder .post-meta-user .meta-data,
1426
+ #{$layoutID} .{$layout} .rt-holder .post-meta-user a,
1427
+ #{$layoutID} .{$layout} .rt-holder .rt-detail .post-meta .rt-tpg-social-share,
1428
+ #{$layoutID} .rt-post-overlay .post-meta-user span,
1429
+ #{$layoutID} .rt-post-overlay .post-meta-user,
1430
+ #{$layoutID} .rt-post-overlay .post-meta-user a,
1431
+ #{$layoutID} .rt-post-grid .post-meta-user,
1432
+ #{$layoutID} .rt-post-grid .post-meta-user a,
1433
+ #{$layoutID} .rt-post-box-media-style .post-meta-user,
1434
+ #{$layoutID} .rt-post-box-media-style .post-meta-user a,
1435
+ #{$layoutID} .{$layout} .post-meta-user i,
1436
+ #{$layoutID} .rt-detail .post-meta-category a,
1437
+ #{$layoutID} .{$layout} .post-meta-user a
1438
+ #{$layoutID} .{$layout} .post-meta-user a {";
1439
+ if ( $meta_data_color ) {
1440
+ $css .= "color:" . $meta_data_color . ";";
1441
+ }
1442
+ if ( $meta_data_size ) {
1443
+ $css .= "font-size:" . $meta_data_size . "px;";
1444
+ }
1445
+ if ( $meta_data_weight ) {
1446
+ $css .= "font-weight:" . $meta_data_weight . ";";
1447
+ }
1448
+ if ( $meta_data_alignment ) {
1449
+ $css .= "text-align:" . $meta_data_alignment . ";";
1450
+ }
1451
+ $css .= "}";
1452
+ }
1453
+ // Category
1454
+ if ( $catBg ) {
1455
+ $css .= "#{$layoutID} .cat-over-image.style2 .categories-links a,
1456
+ #{$layoutID} .cat-over-image.style3 .categories-links a,
1457
+ #{$layoutID} .cat-above-title.style2 .categories-links a,
1458
+ #{$layoutID} .cat-above-title.style3 .categories-links a,
1459
+ #{$layoutID} .rt-tpg-category > a {
1460
+ background-color: {$catBg};
1461
+ }";
1462
+
1463
+ $css .= "#{$layoutID} .cat-above-title.style3 .categories-links a:after,
1464
+ .cat-over-image.style3 .categories-links a:after,
1465
+ #{$layoutID} .rt-tpg-category > a,
1466
+ #{$layoutID} .rt-tpg-category.style3 > a:after {
1467
+ border-top-color: {$catBg} ;
1468
+ }";
1469
+
1470
+ $css .= "#{$layoutID} .rt-tpg-category:not(style1) i {
1471
+ color: {$catBg};
1472
+ }";
1473
+ }
1474
+ if ( $catTextColor ) {
1475
+ $css .= "#{$layoutID} .cat-over-image .categories-links a,
1476
+ #{$layoutID} .cat-above-title .categories-links a,
1477
+ #{$layoutID} .rt-tpg-category.style1 > i,
1478
+ #{$layoutID} .rt-tpg-category > a {";
1479
+ $css .= "color:" . $catTextColor . ";";
1480
+ $css .= "}";
1481
+ }
1482
+ if ( $catBorderRadius ) {
1483
+ $css .= "#{$layoutID} .cat-over-image .categories-links a,#{$layoutID} .cat-above-title .categories-links a,#{$layoutID} .rt-tpg-category > a{";
1484
+ $css .= "border-radius:" . $catBorderRadius . "px;";
1485
+ $css .= "}";
1486
+ }
1487
+ if ( $catPadding ) {
1488
+ $css .= "#{$layoutID} .cat-over-image .categories-links a,#{$layoutID} .cat-above-title .categories-links a,#{$layoutID} .rt-tpg-category > a{";
1489
+ $css .= "padding:" . $catPadding . "px;";
1490
+ $css .= "}";
1491
+ }
1492
+ if ( $catMargin ) {
1493
+ $css .= "#{$layoutID} .categories-links,#{$layoutID} .rt-tpg-category > a{";
1494
+ $css .= "margin:" . $catMargin . "px;";
1495
+ $css .= "}";
1496
+ }
1497
+ if ( $categorySize ) {
1498
+ $css .= "#{$layoutID} .categories-links,#{$layoutID} .rt-tpg-category > a {";
1499
+ $css .= "font-size:" . $categorySize . "px;";
1500
+ $css .= "}";
1501
+ }
1502
+
1503
+ $css .= "</style>";
1504
+
1505
+ return $css;
1506
+ }
1507
+
1508
+ function get_meta_keys( $post_type ) {
1509
+ // $cache = get_transient( 'tpg_' . $post_type . '_meta_keys' );
1510
+ // $meta_keys = $cache ? $cache : $this->generate_meta_keys( $post_type );
1511
+ $meta_keys = $this->generate_meta_keys( $post_type );
1512
+
1513
+ return $meta_keys;
1514
+ }
1515
+
1516
+ function generate_meta_keys( $post_type ) {
1517
+ $meta_keys = [];
1518
+ if ( $post_type ) {
1519
+ global $wpdb;
1520
+ $query = "SELECT DISTINCT($wpdb->postmeta.meta_key)
1521
  FROM $wpdb->posts
1522
  LEFT JOIN $wpdb->postmeta
1523
  ON $wpdb->posts.ID = $wpdb->postmeta.post_id
1525
  AND $wpdb->postmeta.meta_key != ''
1526
  AND $wpdb->postmeta.meta_key NOT RegExp '(^[_0-9].+$)'
1527
  AND $wpdb->postmeta.meta_key NOT RegExp '(^[0-9]+$)'";
1528
+ $meta_keys = $wpdb->get_col( $wpdb->prepare( $query, $post_type ) );
1529
+ // set_transient( 'tpg_' . $post_type . '_meta_keys', $meta_keys, 60 * 60 * 24 ); # create 1 Day Expiration
1530
+ }
1531
+
1532
+ return $meta_keys;
1533
+ }
1534
+
1535
+ function remove_all_shortcode( $content ) {
1536
+ return preg_replace( '#\[[^\]]+\]#', '', $content );
1537
+ }
1538
+
1539
+ function remove_divi_shortcodes( $content ) {
1540
+ $content = preg_replace( '/\[\/?et_pb.*?\]/', '', $content );
1541
+
1542
+ return $content;
1543
+ }
1544
+
1545
+ function checkWhichCustomMetaPluginIsInstalled() {
1546
+ $plugin = null;
1547
+ if ( class_exists( 'acf' ) ) {
1548
+ $plugin = 'acf';
1549
+ }
1550
+
1551
+ return $plugin;
1552
+ }
1553
+
1554
+ function get_groups_by_post_type( $post_type ) {
1555
+ $post_type = $post_type ? $post_type : "post";
1556
+ $groups = [];
1557
+ $plugin = $this->checkWhichCustomMetaPluginIsInstalled();
1558
+ switch ( $plugin ) {
1559
+ case 'acf':
1560
+ $groups = $this->get_groups_by_post_type_acf( $post_type );
1561
+ break;
1562
+ }
1563
+
1564
+ return $groups;
1565
+ }
1566
+
1567
+ function get_groups_by_post_type_cpt( $post_type ) {
1568
+ }
1569
+
1570
+ function get_groups_by_post_type_acf( $post_type ) {
1571
+ $groups = [];
1572
+ $groups_q = get_posts( [ 'post_type' => 'acf-field-group', 'posts_per_page' => - 1 ] );
1573
+ if ( ! empty( $groups_q ) ) {
1574
+ foreach ( $groups_q as $group ) {
1575
+ $c = $group->post_content ? unserialize( $group->post_content ) : [];
1576
+ $flag = false;
1577
+ if ( ! empty( $c['location'] ) ) {
1578
+ foreach ( $c['location'] as $rules ) {
1579
+ foreach ( $rules as $rule ) {
1580
+ if ( $post_type === 'all' ) {
1581
+ if ( ( ! empty( $rule['param'] ) && $rule['param'] == 'post_type' )
1582
+ && ( ! empty( $rule['operator'] ) && $rule['operator'] == '==' )
1583
+ ) {
1584
+ $flag = true;
1585
+ }
1586
+ } else {
1587
+ if ( ( ! empty( $rule['param'] ) && $rule['param'] == 'post_type' )
1588
+ && ( ! empty( $rule['operator'] ) && $rule['operator'] == '==' )
1589
+ && ( ! empty( $rule['value'] ) && $rule['value'] == $post_type )
1590
+ ) {
1591
+ $flag = true;
1592
+ }
1593
+ }
1594
+ }
1595
+ }
1596
+ }
1597
+ if ( $flag ) {
1598
+ $groups[ $group->ID ] = $group->post_title;
1599
+ }
1600
+ }
1601
+ }
1602
+
1603
+ return $groups;
1604
+ }
1605
+
1606
+ }
 
 
1607
 
1608
  endif;
lib/classes/rtTPGInit.php CHANGED
@@ -112,13 +112,6 @@ if (!class_exists('rtTPGInit')):
112
  'footer' => true
113
  );
114
 
115
- $scripts[] = array(
116
- 'handle' => 'rt-actual-height-js',
117
- 'src' => rtTPG()->assetsUrl . "vendor/actual-height/jquery.actual.min.js",
118
- 'deps' => array('jquery'),
119
- 'footer' => true,
120
- 'version' => '1.0.19'
121
- );
122
  $scripts[] = array(
123
  'handle' => 'rt-tpg',
124
  'src' => rtTPG()->assetsUrl . "js/rttpg.js",
@@ -196,7 +189,7 @@ if (!class_exists('rtTPGInit')):
196
 
197
  function rt_post_grid_marketing($links) {
198
  $links[] = '<a target="_blank" href="' . esc_url('https://www.radiustheme.com/demo/plugins/the-post-grid/') . '">Demo</a>';
199
- $links[] = '<a target="_blank" href="' . esc_url('https://www.radiustheme.com/how-to-setup-configure-the-post-grid-free-version-for-wordpress/') . '">Documentation</a>';
200
  if (!rtTPG()->hasPro()) {
201
  $links[] = '<a target="_blank" style="color: #39b54a;font-weight: 700;" href="' . esc_url('https://www.radiustheme.com/downloads/the-post-grid-pro-for-wordpress/') . '">Get Pro</a>';
202
  }
112
  'footer' => true
113
  );
114
 
 
 
 
 
 
 
 
115
  $scripts[] = array(
116
  'handle' => 'rt-tpg',
117
  'src' => rtTPG()->assetsUrl . "js/rttpg.js",
189
 
190
  function rt_post_grid_marketing($links) {
191
  $links[] = '<a target="_blank" href="' . esc_url('https://www.radiustheme.com/demo/plugins/the-post-grid/') . '">Demo</a>';
192
+ $links[] = '<a target="_blank" href="' . esc_url('https://www.radiustheme.com/docs/the-post-grid/') . '">Documentation</a>';
193
  if (!rtTPG()->hasPro()) {
194
  $links[] = '<a target="_blank" style="color: #39b54a;font-weight: 700;" href="' . esc_url('https://www.radiustheme.com/downloads/the-post-grid-pro-for-wordpress/') . '">Get Pro</a>';
195
  }
lib/classes/rtTPGMeta.php CHANGED
@@ -60,7 +60,6 @@ if ( ! class_exists( 'rtTPGMeta' ) ):
60
  $select2Id,
61
  'rt-image-load-js',
62
  'rt-isotope-js',
63
- 'rt-actual-height-js',
64
  'rt-tpg-admin',
65
  'rt-tpg-admin-preview',
66
  ) );
@@ -128,7 +127,7 @@ if ( ! class_exists( 'rtTPGMeta' ) ):
128
  <div class="rt-box-content">
129
  <h3 class="rt-box-title">%1$s</h3>
130
  <p>%2$s</p>
131
- <a href="https://radiustheme.com/how-to-setup-configure-the-post-grid-free-version-for-wordpress/" target="_blank" class="rt-admin-btn">%1$s</a>
132
  </div>
133
  </div>',
134
  __("Documentation", 'the-post-grid'),
@@ -188,13 +187,16 @@ if ( ! class_exists( 'rtTPGMeta' ) ):
188
  $html .= sprintf( '<ul class="rt-tab-nav">
189
  <li%s><a href="#sc-post-post-source">%s</a></li>
190
  <li%s><a href="#sc-post-layout-settings">%s</a></li>
 
191
  <li%s><a href="#sc-field-selection">%s</a></li>
192
  <li%s><a href="#sc-style">%s</a></li>
193
  </ul>',
194
  $last_tab == "sc-post-post-source" ? ' class="active"' : '',
195
- __( 'Post Source', 'the-post-grid' ),
196
  $last_tab == "sc-post-layout-settings" ? ' class="active"' : '',
197
  __( 'Layout Settings', 'the-post-grid' ),
 
 
198
  $last_tab == "sc-field-selection" ? ' class="active"' : '',
199
  __( 'Field Selection', 'the-post-grid' ),
200
  $last_tab == "sc-style" ? ' class="active"' : '',
@@ -209,6 +211,10 @@ if ( ! class_exists( 'rtTPGMeta' ) ):
209
  $html .= rtTPG()->render_view( 'settings.layout-settings', $post, true );
210
  $html .= '</div>';
211
 
 
 
 
 
212
  $html .= sprintf( '<div id="sc-field-selection" class="rt-tab-content"%s>', $last_tab == "sc-field-selection" ? ' style="display:block"' : '' );
213
  $html .= rtTPG()->render_view( 'settings.item-fields', $post, true );
214
  $html .= '</div>';
60
  $select2Id,
61
  'rt-image-load-js',
62
  'rt-isotope-js',
 
63
  'rt-tpg-admin',
64
  'rt-tpg-admin-preview',
65
  ) );
127
  <div class="rt-box-content">
128
  <h3 class="rt-box-title">%1$s</h3>
129
  <p>%2$s</p>
130
+ <a href="https://www.radiustheme.com/docs/the-post-grid/" target="_blank" class="rt-admin-btn">%1$s</a>
131
  </div>
132
  </div>',
133
  __("Documentation", 'the-post-grid'),
187
  $html .= sprintf( '<ul class="rt-tab-nav">
188
  <li%s><a href="#sc-post-post-source">%s</a></li>
189
  <li%s><a href="#sc-post-layout-settings">%s</a></li>
190
+ <li%s><a href="#sc-settings">%s</a></li>
191
  <li%s><a href="#sc-field-selection">%s</a></li>
192
  <li%s><a href="#sc-style">%s</a></li>
193
  </ul>',
194
  $last_tab == "sc-post-post-source" ? ' class="active"' : '',
195
+ __( 'Query Build', 'the-post-grid' ),
196
  $last_tab == "sc-post-layout-settings" ? ' class="active"' : '',
197
  __( 'Layout Settings', 'the-post-grid' ),
198
+ $last_tab == "sc-settings" ? ' class="active"' : '',
199
+ __( 'Settings', 'the-post-grid' ),
200
  $last_tab == "sc-field-selection" ? ' class="active"' : '',
201
  __( 'Field Selection', 'the-post-grid' ),
202
  $last_tab == "sc-style" ? ' class="active"' : '',
211
  $html .= rtTPG()->render_view( 'settings.layout-settings', $post, true );
212
  $html .= '</div>';
213
 
214
+ $html .= sprintf( '<div id="sc-settings" class="rt-tab-content"%s>', $last_tab == "sc-settings" ? ' style="display:block"' : '' );
215
+ $html .= rtTPG()->render_view( 'settings.sc-settings', $post, true );
216
+ $html .= '</div>';
217
+
218
  $html .= sprintf( '<div id="sc-field-selection" class="rt-tab-content"%s>', $last_tab == "sc-field-selection" ? ' style="display:block"' : '' );
219
  $html .= rtTPG()->render_view( 'settings.item-fields', $post, true );
220
  $html .= '</div>';
lib/classes/rtTPGNotice.php ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'WPINC' ) ) {
3
+ die;
4
+ }
5
+
6
+ if ( ! class_exists( 'rtTPGNotice' ) ):
7
+
8
+ class rtTPGNotice {
9
+ public function __construct() {
10
+ add_action( 'admin_init', function () {
11
+ $current = time();
12
+ if ( mktime( 0, 0, 0, 11, 22, 2021 ) <= $current && $current <= mktime( 0, 0, 0, 12, 6, 2021 ) ) {
13
+ if ( get_option( 'rttpg_bf_2021' ) != '1' ) {
14
+ if ( ! isset( $GLOBALS['rt_tpg_2021_notice'] ) ) {
15
+ $GLOBALS['rt_tpg_2021_notice'] = 'rttpg_bf_2021';
16
+ self::notice();
17
+ }
18
+ }
19
+ }
20
+ } );
21
+ }
22
+
23
+ static function notice() {
24
+
25
+ add_action( 'admin_enqueue_scripts', function () {
26
+ wp_enqueue_script( 'jquery' );
27
+ } );
28
+
29
+ add_action( 'admin_notices', function () {
30
+ $plugin_name = 'The Post Grid';
31
+ $download_link = 'https://www.radiustheme.com/downloads/the-post-grid-pro-for-wordpress/'; ?>
32
+ <div class="notice notice-info is-dismissible" data-rttpg-dismissable="rttpg_bf_2021"
33
+ style="display:grid;grid-template-columns: 100px auto;padding-top: 25px; padding-bottom: 22px;">
34
+ <img alt="<?php echo esc_attr( $plugin_name ) ?>"
35
+ src="<?php echo rtTPG()->assetsUrl . 'images/icon-128x128.png'; ?>" width="74px"
36
+ height="74px" style="grid-row: 1 / 4; align-self: center;justify-self: center"/>
37
+ <h3 style="margin:0;"><?php echo sprintf( '%s Black Friday Deal!!', $plugin_name ) ?></h3>
38
+ <p style="margin:0 0 2px;">Don't miss out on our biggest sale of the year! Get your
39
+ <b><?php echo $plugin_name; ?> plan</b> with <b>UPTO 50% OFF</b>! Limited time offer expires on
40
+ December 5.
41
+ </p>
42
+ <p style="margin:0;">
43
+ <a class="button button-primary"
44
+ href="<?php echo esc_url( $download_link ) ?>"
45
+ target="_blank">Buy Now</a>
46
+ <a class="button button-dismiss" href="#">Dismiss</a>
47
+ </p>
48
+ </div>
49
+ <?php
50
+ } );
51
+
52
+ add_action( 'admin_footer', function () {
53
+ ?>
54
+ <script type="text/javascript">
55
+ (function ($) {
56
+ $(function () {
57
+ setTimeout(function () {
58
+ $('div[data-rttpg-dismissable] .notice-dismiss, div[data-rttpg-dismissable] .button-dismiss')
59
+ .on('click', function (e) {
60
+ e.preventDefault();
61
+ $.post(ajaxurl, {
62
+ 'action': 'rttpg_dismiss_admin_notice',
63
+ 'nonce': <?php echo json_encode( wp_create_nonce( 'rttpg-dismissible-notice' ) ); ?>
64
+ });
65
+ $(e.target).closest('.is-dismissible').remove();
66
+ });
67
+ }, 1000);
68
+ });
69
+ })(jQuery);
70
+ </script>
71
+ <?php
72
+ } );
73
+
74
+ add_action( 'wp_ajax_rttpg_dismiss_admin_notice', function () {
75
+ check_ajax_referer( 'rttpg-dismissible-notice', 'nonce' );
76
+
77
+ update_option( 'rttpg_bf_2021', '1' );
78
+ wp_die();
79
+ } );
80
+ }
81
+ }
82
+
83
+ endif;
lib/classes/rtTPGOptions.php CHANGED
@@ -1,1076 +1,1487 @@
1
  <?php
2
-
3
- if (!class_exists('rtTPGOptions')):
4
-
5
- class rtTPGOptions {
6
-
7
- function rtPostTypes() {
8
-
9
- $args = apply_filters('tpg_get_post_type', [
10
- '_builtin' => true
11
- ]);
12
-
13
- $post_types = get_post_types($args);
14
-
15
- $exclude = array('attachment', 'revision', 'nav_menu_item');
16
-
17
- foreach ($exclude as $ex) {
18
- unset($post_types[$ex]);
19
- }
20
-
21
- return $post_types;
22
- }
23
-
24
- function rtPostOrders() {
25
- return array(
26
- "ASC" => __("Ascending", 'the-post-grid'),
27
- "DESC" => __("Descending", 'the-post-grid')
28
- );
29
- }
30
-
31
- function rtTermOperators() {
32
- return array(
33
- 'IN' => __("IN — show posts which associate with one or more of selected terms",
34
- 'the-post-grid'),
35
- 'NOT IN' => __("NOT IN — show posts which do not associate with any of selected terms",
36
- 'the-post-grid'),
37
- 'AND' => __("AND — show posts which associate with all of selected terms", 'the-post-grid')
38
- );
39
- }
40
-
41
- function rtTermRelations() {
42
- return array(
43
- 'AND' => __("AND — show posts which match all settings", 'the-post-grid'),
44
- 'OR' => __("OR — show posts which match one or more settings", 'the-post-grid')
45
- );
46
- }
47
-
48
- function rtMetaKeyType() {
49
- return array(
50
- 'meta_value' => __('Meta value', 'the-post-grid'),
51
- 'meta_value_num' => __('Meta value number', 'the-post-grid'),
52
- 'meta_value_datetime' => __('Meta value datetime', 'the-post-grid'),
53
- );
54
- }
55
-
56
- function rtPostOrderBy($isWoCom = false, $metaOrder = false) {
57
- $orderBy = array(
58
- "ID" => __("ID", 'the-post-grid'),
59
- "title" => __("Title", 'the-post-grid'),
60
- "date" => __("Created date", 'the-post-grid'),
61
- "modified" => __("Modified date", 'the-post-grid'),
62
- "menu_order" => __("Menu Order", 'the-post-grid')
63
- );
64
-
65
- return apply_filters('rt_tpg_post_orderby', $orderBy, $isWoCom, $metaOrder);
66
- }
67
-
68
- function rtTPGSettingsCustomScriptFields() {
69
- $settings = get_option(rtTPG()->options['settings']);
70
-
71
- return array(
72
- "custom_css" => array(
73
- "label" => __("Custom CSS", 'the-post-grid'),
74
- 'type' => 'textarea',
75
- 'holderClass' => 'rt-script-wrapper full',
76
- 'id' => 'custom-css',
77
- 'description' => 'Depricated Field, Use Customiser Additional CSS Appearance->Customize->Additional CSS',
78
- 'value' => isset($settings['custom_css']) ? stripslashes($settings['custom_css']) : null
79
- ),
80
- "script_before_item_load" => array(
81
- "label" => __("Script before item load", 'the-post-grid'),
82
- 'type' => 'textarea',
83
- 'holderClass' => 'rt-script-wrapper full',
84
- 'id' => 'script-before-item-load',
85
- 'value' => isset($settings['script_before_item_load']) ? stripslashes($settings['script_before_item_load']) : null
86
- ),
87
- "script_after_item_load" => array(
88
- "label" => __("Script After item load", 'the-post-grid'),
89
- 'type' => 'textarea',
90
- 'holderClass' => 'rt-script-wrapper full',
91
- 'id' => 'script-after-item-load',
92
- 'value' => isset($settings['script_after_item_load']) ? stripslashes($settings['script_after_item_load']) : null
93
- ),
94
- "script_loaded" => array(
95
- "label" => __("After Loaded script", 'the-post-grid'),
96
- 'type' => 'textarea',
97
- 'holderClass' => 'rt-script-wrapper full',
98
- 'id' => 'script-loaded',
99
- 'value' => isset($settings['script_loaded']) ? stripslashes($settings['script_loaded']) : null
100
- )
101
- );
102
- }
103
-
104
- function rtTPGSettingsOtherSettingsFields() {
105
- $settings = get_option(rtTPG()->options['settings']);
106
-
107
- return array(
108
- 'tpg_load_script' => array(
109
- 'type' => 'switch',
110
- 'name' => 'tpg_load_script',
111
- 'label' => __('Load Script only ShortCode page', 'the-post-grid'),
112
- 'description' => __('If you enable this, script will be loaded only ShortCode page.', 'the-post-grid'),
113
- 'value' => isset($settings['tpg_load_script']) ? $settings['tpg_load_script'] : false,
114
- ),
115
- 'tpg_enable_preloader' => array(
116
- 'type' => 'switch',
117
- 'name' => 'tpg_enable_preloader',
118
- 'label' => __('Enable Pre-loader', 'the-post-grid'),
119
- 'holderClass' => 'tpg-hidden',
120
- 'value' => isset($settings['tpg_enable_preloader']) ? $settings['tpg_enable_preloader'] : false,
121
- ),
122
- 'tpg_skip_fa' => array(
123
- 'type' => 'switch',
124
- 'name' => 'tpg_skip_fa',
125
- 'label' => __('Disable Font Awesome Script', 'the-post-grid'),
126
- 'description' => __("If Font Awesome 5 exist with theme, don't need to load twice." , 'the-post-grid'),
127
- 'value' => isset($settings['tpg_enable_preloader']) ? $settings['tpg_enable_preloader'] : false,
128
- ),
129
- 'template_author' => array(
130
- 'type' => 'select',
131
- 'name' => 'template_author',
132
- 'label' => 'Template Author',
133
- 'id' => 'template_author',
134
- 'holderClass' => 'pro-field',
135
- 'class' => 'select2',
136
- 'blank' => 'Select a layout',
137
- 'options' => rtTPG()->getTPGShortCodeList(),
138
- 'value' => isset($settings['template_author']) ? $settings['template_author'] : array(),
139
- ),
140
- 'template_category' => array(
141
- 'type' => 'select',
142
- 'name' => 'template_category',
143
- 'label' => 'Template Category',
144
- 'id' => 'template_category',
145
- 'holderClass' => 'pro-field',
146
- 'class' => 'select2',
147
- 'blank' => 'Select a layout',
148
- 'options' => rtTPG()->getTPGShortCodeList(),
149
- 'value' => isset($settings['template_category']) ? $settings['template_category'] : array(),
150
- ),
151
- 'template_search' => array(
152
- 'type' => 'select',
153
- 'name' => 'template_search',
154
- 'label' => 'Template Search',
155
- 'id' => 'template_search',
156
- 'holderClass' => 'pro-field',
157
- 'class' => 'select2',
158
- 'blank' => 'Select a layout',
159
- 'options' => rtTPG()->getTPGShortCodeList(),
160
- 'value' => isset($settings['template_search']) ? $settings['template_search'] : array(),
161
- ),
162
- 'template_tag' => array(
163
- 'type' => 'select',
164
- 'name' => 'template_tag',
165
- 'label' => 'Template Tag',
166
- 'id' => 'template_tag',
167
- 'holderClass' => 'pro-field',
168
- 'class' => 'select2',
169
- 'blank' => 'Select a layout',
170
- 'options' => rtTPG()->getTPGShortCodeList(),
171
- 'value' => isset($settings['template_tag']) ? $settings['template_tag'] : array(),
172
- ),
173
- 'template_class' => array(
174
- 'type' => 'text',
175
- 'name' => 'template_class',
176
- 'label' => 'Template class',
177
- 'holderClass' => 'pro-field',
178
- 'id' => 'template_class',
179
- 'value' => isset($settings['template_class']) ? $settings['template_class'] : '',
180
- )
181
- );
182
- }
183
-
184
- function rtTPGLicenceField() {
185
- $settings = get_option(rtTPG()->options['settings']);
186
- $status = !empty($settings['license_status']) && $settings['license_status'] === 'valid' ? true : false;
187
- $license_status = !empty($settings['license_key']) ? sprintf("<span class='license-status'>%s</span>",
188
- $status ? "<input type='submit' class='button-secondary rt-licensing-btn danger' name='license_deactivate' value='" . __("Deactivate License", "the-post-grid") . "'/>"
189
- : "<input type='submit' class='button-secondary rt-licensing-btn button-primary' name='license_activate' value='" . __("Activate License", "the-post-grid") . "'/>"
190
- ) : ' ';
191
-
192
- return array(
193
- "license_key" => array(
194
- 'type' => 'text',
195
- 'name' => 'license_key',
196
- 'attr' => 'style="min-width:300px;"',
197
- 'label' => __('Enter your license key', 'the-post-grid'),
198
- 'description' => $license_status,
199
- 'id' => 'license_key',
200
- 'value' => isset($settings['license_key']) ? $settings['license_key'] : ''
201
- )
202
- );
203
- }
204
-
205
- function rtTPGSettingsSocialShareFields() {
206
-
207
- $settings = get_option(rtTPG()->options['settings']);
208
-
209
- return array(
210
- "social_share_items" => array(
211
- 'type' => 'checkbox',
212
- 'name' => 'social_share_items',
213
- 'label' => 'Social share items',
214
- 'id' => 'social_share_items',
215
- 'holderClass' => 'pro-field',
216
- 'alignment' => 'vertical',
217
- 'multiple' => true,
218
- 'options' => rtTPG()->socialShareItemList(),
219
- 'value' => isset($settings['social_share_items']) ? $settings['social_share_items'] : array()
220
- )
221
- );
222
- }
223
-
224
- function socialShareItemList() {
225
- return array(
226
- 'facebook' => 'Facebook',
227
- 'twitter' => 'Twitter',
228
- 'linkedin' => 'LinkedIn',
229
- 'pinterest' => 'Pinterest',
230
- 'reddit' => 'Reddit',
231
- 'email' => 'Email',
232
- );
233
- }
234
-
235
- function templateOverrideItemList() {
236
- return array(
237
- 'category-archive' => "Category archive",
238
- 'tag-archive' => "Tag archive",
239
- 'author-archive' => "Author archive",
240
- 'search' => "Search page",
241
- );
242
- }
243
-
244
- function rtTPGCommonFilterFields() {
245
- return array(
246
- 'post__in' => array(
247
- "name" => "post__in",
248
- "label" => "Include only",
249
- "type" => "text",
250
- "class" => "full",
251
- "description" => 'List of post IDs to show (comma-separated values, for example: 1,2,3)'
252
- ),
253
- 'post__not_in' => array(
254
- "name" => "post__not_in",
255
- "label" => "Exclude",
256
- "type" => "text",
257
- "class" => "full",
258
- "description" => 'List of post IDs to hide (comma-separated values, for example: 1,2,3)'
259
- ),
260
- 'limit' => array(
261
- "name" => "limit",
262
- "label" => "Limit",
263
  "type" => "number",
264
  "class" => "full",
265
- "description" => 'The number of posts to show. Set empty to show all found posts.'
266
- )
267
- );
268
- }
269
-
270
- function rtTPGPostType() {
271
- return array(
272
- 'tpg_post_type' => array(
273
- "label" => "Post Type",
274
- "type" => "select",
275
- "id" => "rt-sc-post-type",
276
- "class" => "-rt-select2",
277
- "options" => $this->rtPostTypes()
278
- )
279
- );
280
- }
281
-
282
- function rtTPAdvanceFilters() {
283
- $fields = apply_filters('rt_tpg_advanced_filters', [
284
- 'tpg_taxonomy' => "Taxonomy",
285
- 'order' => "Order",
286
- 'author' => "Author",
287
- 'tpg_post_status' => "Status",
288
- 's' => "Search",
289
- ]);
290
- return array(
291
- 'post_filter' => array(
292
- 'type' => "checkbox",
293
- 'name' => "post_filter",
294
- 'label' => "Advanced filters",
295
- "alignment" => "vertical",
296
- "multiple" => true,
297
- "options" => $fields,
298
- )
299
- );
300
- }
301
-
302
- function rtTPGPostStatus() {
303
- return array(
304
- 'publish' => 'Publish',
305
- 'pending' => 'Pending',
306
- 'draft' => 'Draft',
307
- 'auto-draft' => 'Auto draft',
308
- 'future' => 'Future',
309
- 'private' => 'Private',
310
- 'inherit' => 'Inherit',
311
- 'trash' => 'Trash',
312
- );
313
- }
314
-
315
- function owl_property() {
316
- return array(
317
- 'auto_play' => 'Auto Play',
318
- 'loop' => 'Loop',
319
- 'nav_button' => 'Nav Button',
320
- 'pagination' => 'Pagination',
321
- 'stop_hover' => 'Stop Hover',
322
- 'auto_height' => 'Auto Height',
323
- 'lazy_load' => 'Lazy Load',
324
- 'rtl' => 'Right to left (RTL)'
325
- );
326
- }
327
-
328
- function rtTPGLayoutSettingFields() {
329
-
330
- $options = array(
331
- 'layout' => array(
332
- "type" => "select",
333
- "name" => "layout",
334
- "label" => "Layout",
 
 
 
 
 
 
335
  "id" => "rt-tpg-sc-layout",
336
  "class" => "rt-select2",
337
- "options" => $this->rtTPGLayouts()
338
- ),
339
- 'tgp_filter' => array(
340
- "type" => "checkbox",
341
- "label" => "Filter",
342
- 'holderClass' => "sc-tpg-grid-filter tpg-hidden pro-field",
343
- "multiple" => true,
344
- "alignment" => 'vertical',
345
- "options" => rtTPG()->tgp_filter_list()
346
- ),
347
- 'tgp_filter_taxonomy' => array(
348
- "type" => "select",
349
- "label" => "Taxonomy Filter",
350
- 'holderClass' => "sc-tpg-grid-filter sc-tpg-filter tpg-hidden",
351
- "class" => "rt-select2",
352
- "options" => rtTPG()->rt_get_taxonomy_for_filter()
353
- ),
354
- 'tgp_filter_taxonomy_hierarchical' => array(
355
- "type" => "checkbox",
356
- "label" => "Display as sub category",
357
- 'holderClass' => "sc-tpg-grid-filter sc-tpg-filter tpg-hidden",
358
- "option" => "Active"
359
- ),
360
- 'tgp_filter_type' => array(
361
- "type" => "select",
362
- "label" => "Taxonomy filter type",
363
- 'holderClass' => "sc-tpg-grid-filter sc-tpg-filter tpg-hidden",
364
- "class" => "rt-select2",
365
- "options" => rtTPG()->rt_filter_type()
366
- ),
367
- 'tgp_default_filter' => array(
368
- "type" => "select",
369
- "label" => "Selected filter term (Selected item)",
370
- 'holderClass' => "sc-tpg-grid-filter sc-tpg-filter tpg-hidden",
371
- "class" => "rt-select2",
372
- "attr" => "data-selected='" . get_post_meta(get_the_ID(), 'tgp_default_filter', true) . "'",
373
- "options" => array('' => __('Show All', 'the-post-grid'))
374
- ),
375
- 'tpg_hide_all_button' => array(
376
- "type" => "checkbox",
377
- "label" => "Hide All (Show all) button",
378
- 'holderClass' => "sc-tpg-grid-filter sc-tpg-filter tpg-hidden",
379
- "option" => 'Hide'
380
- ),
381
- 'tpg_post_count' => array(
382
- "type" => "checkbox",
383
- "label" => "Show post count",
384
- 'holderClass' => "sc-tpg-grid-filter sc-tpg-filter tpg-hidden",
385
- "option" => 'Enable'
386
- ),
387
- 'isotope_filter' => array(
388
- "type" => "select",
389
- "label" => "Isotope Filter",
390
- 'holderClass' => "isotope-item sc-isotope-filter tpg-hidden",
391
- "id" => "rt-tpg-sc-isotope-filter",
392
- "class" => "rt-select2",
393
- "options" => rtTPG()->rt_get_taxonomy_for_filter()
394
- ),
395
- 'isotope_default_filter' => array(
396
- "type" => "select",
397
- "label" => "Isotope filter (Selected item)",
398
- 'holderClass' => "isotope-item sc-isotope-default-filter tpg-hidden pro-field",
399
- "id" => "rt-tpg-sc-isotope-default-filter",
400
- "class" => "rt-select2",
401
- "attr" => "data-selected='" . get_post_meta(get_the_ID(), 'isotope_default_filter',
402
- true) . "'",
403
- "options" => array('' => __('Show all', 'the-post-grid'))
404
- ),
405
- 'tpg_show_all_text' => array(
406
- "type" => "text",
407
- 'holderClass' => "isotope-item sc-isotope-filter tpg-hidden",
408
- "label" => esc_html__("Show all text", 'the-post-grid'),
409
- "default" => esc_html__("Show all", 'the-post-grid')
410
- ),
411
- 'isotope_filter_dropdown' => array(
412
- "type" => "checkbox",
413
- "label" => "Isotope dropdown filter",
414
- 'holderClass' => "isotope-item sc-isotope-filter sc-isotope-filter-dropdown tpg-hidden pro-field",
415
- "option" => 'Enable'
416
- ),
417
- 'isotope_filter_show_all' => array(
418
- "type" => "checkbox",
419
- "name" => "isotope_filter_show_all",
420
- "label" => "Isotope filter (Show All item)",
421
- 'holderClass' => "isotope-item sc-isotope-filter-show-all tpg-hidden pro-field",
422
- "id" => "rt-tpg-sc-isotope-filter-show-all",
423
- "option" => 'Disable'
424
- ),
425
- 'isotope_filter_count' => array(
426
- "type" => "checkbox",
427
- "label" => "Isotope filter count number",
428
- 'holderClass' => "isotope-item sc-isotope-filter tpg-hidden pro-field",
429
- "option" => 'Enable'
430
- ),
431
- 'isotope_filter_url' => array(
432
- "type" => "checkbox",
433
- "label" => "Isotope filter URL",
434
- 'holderClass' => "isotope-item sc-isotope-filter tpg-hidden pro-field",
435
- "option" => 'Enable'
436
- ),
437
- 'isotope_search_filter' => array(
438
- "type" => "checkbox",
439
- "label" => "Isotope search filter",
440
- 'holderClass' => "isotope-item sc-isotope-search-filter tpg-hidden pro-field",
441
- "id" => "rt-tpg-sc-isotope-search-filter",
442
- "option" => 'Enable'
443
- ),
444
- 'carousel_property' => array(
445
- "type" => "checkbox",
446
- "label" => "Carousel property",
447
- "multiple" => true,
448
- "alignment" => 'vertical',
449
- 'holderClass' => "carousel-item carousel-property tpg-hidden",
450
- "id" => "carousel-property",
451
- "default" => array('pagination'),
452
- "options" => $this->owl_property()
453
- ),
454
- 'tpg_carousel_speed' => array(
455
- "label" => __("Speed", 'the-post-grid'),
456
- "holderClass" => "tpg-hidden carousel-item",
457
- "type" => "number",
458
- 'default' => 250,
459
- "description" => __('Auto play Speed in milliseconds', 'the-post-grid'),
460
- ),
461
- 'tpg_carousel_autoplay_timeout' => array(
462
- "label" => __("Autoplay timeout", 'the-post-grid'),
463
- "holderClass" => "tpg-hidden carousel-item tpg-carousel-auto-play-timeout",
464
- "type" => "number",
465
- 'default' => 5000,
466
- "description" => __('Autoplay interval timeout', 'the-post-grid'),
467
- ),
468
- 'tgp_layout2_image_column' => array(
469
- 'type' => 'select',
470
- 'label' => __('Image column', 'the-post-grid'),
471
- 'class' => 'rt-select2',
472
- 'holderClass' => "holder-layout2-image-column tpg-hidden",
473
- 'default' => 4,
474
- 'options' => $this->scColumns(),
475
- "description" => "Content column will calculate automatically"
476
- ),
477
- 'column' => array(
478
- 'type' => 'select',
479
- 'label' => __('Desktop', 'the-post-grid'),
480
- 'class' => 'rt-select2',
481
- 'holderClass' => "offset-column-wrap rt-3-column",
482
- 'default' => 3,
483
- 'options' => $this->scColumns(),
484
- "description" => "Desktop > 991px"
485
- ),
486
- 'tpg_tab_column' => array(
487
- 'type' => 'select',
488
- 'label' => __('Tab', 'the-post-grid'),
489
- 'class' => 'rt-select2',
490
- 'holderClass' => "offset-column-wrap rt-3-column",
491
- 'default' => 2,
492
- 'options' => $this->scColumns(),
493
- "description" => "Tab < 992px"
494
- ),
495
- 'tpg_mobile_column' => array(
496
- 'type' => 'select',
497
- 'label' => __('Mobile', 'the-post-grid'),
498
- 'class' => 'rt-select2',
499
- 'holderClass' => "offset-column-wrap rt-3-column",
500
- 'default' => 1,
501
- 'options' => $this->scColumns(),
502
- "description" => "Mobile < 768px"
503
- ),
504
- 'ignore_sticky_posts' => array(
505
- "type" => "radio",
506
- "label" => "Show sticky posts at the top",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
507
  'holderClass' => "pro-field",
508
- "alignment" => "vertical",
509
- "default" => true,
510
- "options" => array(
511
- false => "Yes",
512
- true => "No",
513
- )
514
- ),
515
- 'pagination' => array(
516
- "type" => "checkbox",
517
- "label" => "Pagination",
518
- 'holderClass' => "pagination",
519
- "id" => "rt-tpg-pagination",
520
- "option" => 'Enable'
521
- ),
522
- 'posts_per_page' => array(
523
- "type" => "number",
524
- "label" => "Display per page",
525
- 'holderClass' => "pagination-item posts-per-page tpg-hidden",
526
- "default" => 5,
527
- "description" => "If value of Limit setting is not blank (empty), this value should be smaller than Limit value."
528
- ),
529
- 'posts_loading_type' => array(
530
- "type" => "radio",
531
- "label" => "Post Loading Type",
532
- 'holderClass' => "pagination-item posts-loading-type tpg-hidden pro-field",
533
- "alignment" => "vertical",
534
- "default" => 'pagination',
535
- "options" => $this->postLoadingType(),
536
- ),
537
- 'feature_image' => array(
538
- "type" => "checkbox",
539
- "label" => "Feature Image",
540
- "id" => "rt-tpg-feature-image",
541
- "option" => 'Disable'
542
- ),
543
- 'featured_image_size' => array(
544
- "type" => "select",
545
- "label" => "Feature Image Size",
546
- "class" => "rt-select2",
547
- 'holderClass' => "rt-feature-image-option tpg-hidden",
548
- "options" => rtTPG()->get_image_sizes()
549
- ),
550
- 'custom_image_size' => array(
551
- "type" => "image_size",
552
- "label" => "Custom Image Size",
553
- 'holderClass' => "rt-sc-custom-image-size-holder tpg-hidden",
554
- "multiple" => true
555
- ),
556
- 'media_source' => array(
557
- "type" => "radio",
558
- "label" => "Media Source",
559
- "default" => 'feature_image',
560
- "alignment" => "vertical",
561
- 'holderClass' => "rt-feature-image-option tpg-hidden",
562
- "options" => $this->rtMediaSource()
563
- ),
564
- 'tpg_image_type' => array(
565
- "type" => "radio",
566
- "label" => __("Image Type", 'the-post-grid'),
567
- "alignment" => "vertical",
568
- 'holderClass' => "rt-feature-image-option tpg-hidden pro-field",
569
- "default" => 'normal',
570
- "options" => $this->get_image_types()
571
- ),
572
- 'tpg_title_limit' => array(
573
- "type" => "number",
574
- "label" => esc_html__("Title limit", 'the-post-grid'),
575
- "description" => esc_html__("Title limit only integer number is allowed, Leave it blank for full title.", 'the-post-grid')
576
- ),
577
- 'tpg_title_limit_type' => array(
578
- "type" => "radio",
579
- "label" => esc_html__("Title limit type", 'the-post-grid'),
580
- "alignment" => "vertical",
581
- "default" => 'character',
582
- "options" => $this->get_limit_type(),
583
- ),
584
- 'excerpt_limit' => array(
585
- "type" => "number",
586
- "label" => esc_html__("Excerpt limit", 'the-post-grid'),
587
- "description" => esc_html__("Excerpt limit only integer number is allowed, Leave it blank for full excerpt.", 'the-post-grid')
588
- ),
589
- 'tgp_excerpt_type' => array(
590
- "type" => "radio",
591
- "label" => esc_html__("Excerpt Type", 'the-post-grid'),
592
- "alignment" => "vertical",
593
- "default" => 'character',
594
- "options" => $this->get_limit_type('content'),
595
- ),
596
- 'tgp_excerpt_more_text' => array(
597
- "type" => "text",
598
- "label" => "Excerpt more text"
599
- ),
600
- 'tgp_read_more_text' => array(
601
- "type" => "text",
602
- "label" => "Read more text"
603
- ),
604
- 'title_tag' => array(
605
- 'type' => 'select',
606
- 'name' => 'title_tag',
607
- 'label' => esc_html__('Title tag', 'the-post-grid'),
608
- 'class' => 'rt-select2',
609
- 'id' => 'title-tag',
610
- 'options' => $this->getTitleTags(),
611
- 'default' => 'h3'
612
- ),
613
- 'link_to_detail_page' => array(
614
- "type" => "radio",
615
- "label" => "Link To Detail Page",
616
- "alignment" => "vertical",
617
- "default" => 'yes',
618
- "options" => array(
619
- 'yes' => 'Yes',
620
- 'no' => 'No'
621
- )
622
- ),
623
- 'detail_page_link_type' => array(
624
- "type" => "radio",
625
- "label" => "Detail page link type",
626
- 'holderClass' => "detail-page-link-type tpg-hidden pro-field",
627
- "alignment" => "vertical",
628
- "default" => "new_page",
629
- "options" => array(
630
- 'popup' => "PopUp",
631
- 'new_page' => "New Page"
632
- )
633
- ),
634
- 'popup_type' => array(
635
- "type" => "radio",
636
- "label" => "PopUp Type",
637
- 'holderClass' => "popup-type tpg-hidden pro-field",
638
- "alignment" => "vertical",
639
- "default" => "single",
640
- "options" => array(
641
- 'single' => "Single PopUp",
642
- 'multi' => "Multi PopUp",
643
- )
644
- ),
645
- 'link_target' => array(
646
- "type" => "radio",
647
- "label" => "Link Target",
648
- 'holderClass' => "tpg-link-target tpg-hidden",
649
- "alignment" => 'vertical',
650
- "options" => array(
651
- '' => 'Same Window',
652
- '_blank' => 'New Window'
653
- )
654
- )
655
- );
656
-
657
- return apply_filters('rt_tpg_layout_options', $options);
658
- }
659
-
660
- function scMarginOpt() {
661
- return array(
662
- 'default' => "Bootstrap default",
663
- 'no' => "No Margin"
664
- );
665
- }
666
-
667
- function scGridType() {
668
- return array(
669
- 'even' => "Even Grid",
670
- 'masonry' => "Masonry"
671
- );
672
- }
673
-
674
- function getTitleTags() {
675
- return array(
676
- 'h2' => "H2",
677
- 'h3' => "H3",
678
- 'h4' => "H4"
679
- );
680
- }
681
-
682
- function rtTpgSettingsDetailFieldSelection() {
683
- $settings = get_option(rtTPG()->options['settings']);
684
-
685
- $fields = array(
686
- "popup_fields" => array(
687
- 'type' => 'checkbox',
688
- 'label' => 'Field Selection',
689
- 'id' => 'popup-fields',
690
- 'holderClass' => 'pro-field',
691
- 'alignment' => 'vertical',
692
- 'multiple' => true,
693
- 'options' => rtTPG()->detailAvailableFields(),
694
- 'value' => isset($settings['popup_fields']) ? $settings['popup_fields'] : array()
695
- )
696
- );
697
- $cf = rtTPG()->checkWhichCustomMetaPluginIsInstalled();
698
- if ($cf) {
699
- $plist = rtTPG()->getCFPluginList();
700
- $pName = !empty($plist[$cf]) ? $plist[$cf] : " - ";
701
- $fields['cf_group'] = array(
702
- "type" => "checkbox",
703
- "name" => "cf_group",
704
- "holderClass" => "tpg-hidden cfs-fields cf-group pro-field",
705
- "label" => "Custom Field group " . " ({$pName})",
706
- "multiple" => true,
707
- "alignment" => "vertical",
708
- "id" => "cf_group",
709
- "options" => rtTPG()->get_groups_by_post_type('all'),
710
- "value" => isset($settings['cf_group']) ? $settings['cf_group'] : array()
711
- );
712
- $fields['cf_hide_empty_value'] = array(
713
- "type" => "checkbox",
714
- "name" => "cf_hide_empty_value",
715
- "holderClass" => "tpg-hidden cfs-fields pro-field",
716
- "label" => "Hide field with empty value",
717
- "value" => !empty($settings['cf_hide_empty_value']) ? 1 : 0
718
- );
719
- $fields['cf_show_only_value'] = array(
720
- "type" => "checkbox",
721
- "name" => "cf_show_only_value",
722
- "holderClass" => "tpg-hidden cfs-fields pro-field",
723
- "label" => "Show only value of field",
724
- "description" => "By default both name & value of field is shown",
725
- "value" => !empty($settings['cf_show_only_value']) ? 1 : 0
726
- );
727
- $fields['cf_hide_group_title'] = array(
728
- "type" => "checkbox",
729
- "name" => "cf_hide_group_title",
730
- "holderClass" => "tpg-hidden cfs-fields pro-field",
731
- "label" => "Hide group title",
732
- "value" => !empty($settings['cf_hide_group_title']) ? 1 : 0
733
- );
734
- }
735
-
736
- return $fields;
737
- }
738
-
739
- function detailAvailableFields() {
740
-
741
- $fields = $this->rtTPGItemFields();
742
- $inserted = array(
743
- 'feature_img' => 'Feature Image',
744
- 'content' => 'Content'
745
- );
746
- unset($fields['excerpt']);
747
- unset($fields['read_more']);
748
- unset($fields['comment_count']);
749
- $offset = array_search('title', array_keys($fields)) + 1;
750
- $newFields = array_slice($fields, 0, $offset, true) + $inserted + array_slice($fields,
751
- $offset, null, true);
752
- $newFields['social_share'] = "Social Share";
753
-
754
- return $newFields;
755
- }
756
-
757
- function rtTPGStyleFields() {
758
-
759
- $fields = array(
760
- 'parent_class' => array(
761
- "type" => "text",
762
- "label" => "Parent class",
763
- "class" => "medium-text",
764
- "description" => "Parent class for adding custom css"
765
- ),
766
- 'primary_color' => array(
767
- "type" => "text",
768
- "label" => "Primary Color",
769
- "class" => "rt-color",
770
- "default" => "#0367bf"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
771
  ),
772
- 'button_bg_color' => array(
773
- "type" => "text",
774
- "name" => "button_bg_color",
775
- "label" => "Background",
776
- "holderClass" => "rt-3-column",
777
- "class" => "rt-color"
778
  ),
779
- 'button_hover_bg_color' => array(
780
- "type" => "text",
781
- "name" => "button_hover_bg_color",
782
- "label" => "Hover Background",
783
- "holderClass" => "rt-3-column",
784
- "class" => "rt-color"
785
  ),
786
- 'button_active_bg_color' => array(
787
- "type" => "text",
788
- "label" => "Active Background",
789
- "class" => "rt-color",
790
- "holderClass" => "rt-3-column",
791
  ),
792
- 'button_text_bg_color' => array(
793
- "type" => "text",
794
- "label" => "Text",
795
- "holderClass" => "rt-3-column",
796
- "class" => "rt-color"
797
  ),
798
- 'button_hover_text_color' => array(
799
- "type" => "text",
800
- "label" => "Text Hover",
801
- "holderClass" => "rt-3-column",
802
- "class" => "rt-color"
803
  ),
804
- 'tpg_read_more_button_border_radius' => array(
805
- "type" => "number",
806
- "class" => "small-text",
807
- "label" => esc_html__("Read more button border radius", "the-post-grid"),
808
- "description" => __("Leave it blank for default", 'the-post-grid')
809
  ),
810
- 'tpg_read_more_button_alignment' => array(
811
- "type" => "select",
812
- "class" => "rt-select2",
813
- "label" => esc_html__("Read more button alignment", "the-post-grid"),
814
- "blank" => esc_html__("Default", "the-post-grid"),
815
- "options" => array(
816
- 'left' => esc_html__("Left", "the-post-grid"),
817
- 'right' => esc_html__("Right", "the-post-grid"),
818
- 'center' => esc_html__("Center", "the-post-grid"),
819
- ),
820
  ),
821
- 'tpg_title_position' => array(
822
- "type" => "select",
823
- "label" => esc_html__("Title Position (Above or Below image)", "the-post-grid"),
824
- "class" => "rt-select2 ",
825
- "holderClass" => "pro-field",
826
- "blank" => esc_html__("Default", "the-post-grid"),
827
- "options" => array(
828
- 'above' => esc_html__("Above image", "the-post-grid"),
829
- 'below' => esc_html__("Below image", "the-post-grid"),
830
- ),
831
- "description" => __("<span style='color:red'>Only Layout 1, Layout 12, Layout 14, Isotope1, Isotope8, Isotope10, Carousel Layout 1, Carousel Layout 8, Carousel Layout 10</span>", 'the-post-grid')
832
- )
833
- );
834
-
835
- return apply_filters('rt_tpg_style_fields', $fields);
836
-
837
- }
838
-
839
- function itemFields() {
840
-
841
- $fields = array(
842
- 'item_fields' => array(
843
- "type" => "checkbox",
844
- "name" => "item_fields",
845
- "label" => "Field selection",
846
- "id" => "item-fields",
847
- "multiple" => true,
848
- "alignment" => "vertical",
849
- "default" => array_keys($this->rtTPGItemFields()),
850
- "options" => $this->rtTPGItemFields()
851
- )
852
- );
853
- if ($cf = rtTPG()->checkWhichCustomMetaPluginIsInstalled()) {
854
- global $post;
855
- $post_type = get_post_meta($post->ID, 'tpg_post_type', true);
856
- $plist = rtTPG()->getCFPluginList();
857
- $fields['cf_group'] = array(
858
- "type" => "checkbox",
859
- "name" => "cf_group",
860
- "holderClass" => "tpg-hidden cf-fields cf-group",
861
- "label" => "Custom Field group " . " ({$plist[$cf]})",
862
- "multiple" => true,
863
- "alignment" => "vertical",
864
- "id" => "cf_group",
865
- "options" => rtTPG()->get_groups_by_post_type($post_type, $cf)
866
- );
867
- $fields['cf_hide_empty_value'] = array(
868
- "type" => "checkbox",
869
- "name" => "cf_hide_empty_value",
870
- "holderClass" => "tpg-hidden cf-fields",
871
- "label" => "Hide field with empty value",
872
- "default" => 1
873
- );
874
- $fields['cf_show_only_value'] = array(
875
- "type" => "checkbox",
876
- "name" => "cf_show_only_value",
877
- "holderClass" => "tpg-hidden cf-fields",
878
- "label" => "Show only value of field",
879
- "description" => "By default both name & value of field is shown"
880
- );
881
- $fields['cf_hide_group_title'] = array(
882
- "type" => "checkbox",
883
- "name" => "cf_hide_group_title",
884
- "holderClass" => "tpg-hidden cf-fields",
885
- "label" => "Hide group title"
886
- );
887
- }
888
-
889
- return $fields;
890
- }
891
-
892
- function getCFPluginList() {
893
- return array(
894
- 'acf' => "Advanced Custom Field"
895
- );
896
- }
897
-
898
- function rtMediaSource() {
899
- return array(
900
- "feature_image" => "Feature Image",
901
- "first_image" => "First Image from content"
902
- );
903
- }
904
-
905
- function get_image_types() {
906
- return array(
907
- 'normal' => "Normal",
908
- 'circle' => "Circle"
909
- );
910
- }
911
-
912
- function get_limit_type( $content = null ) {
913
- $types = array(
914
- 'character' => __( "Character", "the-post-grid" ),
915
- 'word' => __( "Word", "the-post-grid" )
916
- );
917
- if ( $content === 'content' ) {
918
- $types['full'] = __( "Full Content", "the-post-grid" );
919
- }
920
-
921
- return apply_filters( 'tpg_limit_type', $types, $content );
922
- }
923
-
924
- function scColumns() {
925
- return array(
926
- 1 => "Column 1",
927
- 2 => "Column 2",
928
- 3 => "Column 3",
929
- 4 => "Column 4",
930
- 5 => "Column 5",
931
- 6 => "Column 6"
932
- );
933
- }
934
-
935
- function tgp_filter_list() {
936
- return array(
937
- '_taxonomy_filter' => __('Taxonomy filter', "the-post-grid"),
938
- '_author_filter' => __('Author filter', "the-post-grid"),
939
- '_order_by' => __('Order - Sort retrieved posts by parameter', "the-post-grid"),
940
- '_sort_order' => __('Sort Order - Designates the ascending or descending order of the "orderby" parameter', "the-post-grid"),
941
- '_search' => __("Search filter", "the-post-grid")
942
- );
943
- }
944
-
945
- function overflowOpacity() {
946
- return array(
947
- 1 => '10%',
948
- 2 => '20%',
949
- 3 => '30%',
950
- 4 => '40%',
951
- 5 => '50%',
952
- 6 => '60%',
953
- 7 => '70%',
954
- 8 => '80%',
955
- 9 => '90%',
956
- );
957
- }
958
-
959
- function rtTPGLayouts() {
960
- $layouts = array();
961
- $layouts['layout1'] = __("Layout 1", "the-post-grid");
962
- $layouts['layout2'] = __("Layout 2", "the-post-grid");
963
- $layouts['layout3'] = __("Layout 3", "the-post-grid");
964
- $layouts['isotope1'] = __("Isotope Layout", "the-post-grid");
965
-
966
- return apply_filters('tpg_layouts', $layouts);
967
- }
968
-
969
- function rtTPGItemFields() {
970
-
971
- $items = array(
972
- 'title' => "Title",
973
- 'excerpt' => "Excerpt",
974
- 'read_more' => "Read More",
975
- 'post_date' => "Post Date",
976
- 'author' => "Author",
977
- 'categories' => "Categories",
978
- 'tags' => "Tags",
979
- 'comment_count' => "Comment count"
980
- );
981
-
982
- return apply_filters('tpg_field_selection_items', $items);
983
- }
984
-
985
- function postLoadingType() {
986
- return array(
987
- 'pagination' => "Pagination",
988
- 'pagination_ajax' => "Ajax Number Pagination ( Only for Grid )",
989
- 'load_more' => "Load more button (by ajax loading)",
990
- 'load_on_scroll' => "Load more on scroll (by ajax loading)",
991
- );
992
- }
993
-
994
- function scGridOpt() {
995
- return array(
996
- 'even' => "Even",
997
- 'masonry' => "Masonry"
998
- );
999
- }
1000
-
1001
- function extraStyle() {
1002
- return apply_filters('tpg_extra_style', [
1003
- 'title' => "Title",
1004
- 'title_hover' => "Title hover",
1005
- 'excerpt' => "Excerpt",
1006
- 'meta_data' => "Meta Data"
1007
- ]);
1008
- }
1009
-
1010
- function scFontSize() {
1011
- $num = array();
1012
- for ($i = 10; $i <= 50; $i++) {
1013
- $num[$i] = $i . "px";
1014
- }
1015
-
1016
- return $num;
1017
- }
1018
-
1019
- function scAlignment() {
1020
- return array(
1021
- 'left' => "Left",
1022
- 'right' => "Right",
1023
- 'center' => "Center",
1024
- 'justify' => "Justify"
1025
- );
1026
- }
1027
-
1028
- function scReadMoreButtonPositionList() {
1029
- return array(
1030
- 'left' => "Left",
1031
- 'right' => "Right",
1032
- 'center' => "Center"
1033
- );
1034
- }
1035
-
1036
-
1037
- function scTextWeight() {
1038
- return array(
1039
- 'normal' => "Normal",
1040
- 'bold' => "Bold",
1041
- 'bolder' => "Bolder",
1042
- 'lighter' => "Lighter",
1043
- 'inherit' => "Inherit",
1044
- 'initial' => "Initial",
1045
- 'unset' => "Unset",
1046
- 100 => '100',
1047
- 200 => '200',
1048
- 300 => '300',
1049
- 400 => '400',
1050
- 500 => '500',
1051
- 600 => '600',
1052
- 700 => '700',
1053
- 800 => '800',
1054
- 900 => '900',
1055
- );
1056
- }
1057
-
1058
- function imageCropType() {
1059
- return array(
1060
- 'soft' => "Soft Crop",
1061
- 'hard' => "Hard Crop",
1062
- );
1063
- }
1064
-
1065
- function rt_filter_type() {
1066
- return array(
1067
- 'dropdown' => "Dropdown",
1068
- 'button' => "Button"
1069
- );
1070
- }
1071
-
1072
- function get_pro_feature_list() {
1073
- return '<ol>
1074
  <li>Fully responsive and mobile friendly.</li>
1075
  <li>55 Different Layouts</li>
1076
  <li>Even and Masonry Grid.</li>
@@ -1089,6 +1500,6 @@ if (!class_exists('rtTPGOptions')):
1089
  <a href="https://www.radiustheme.com/downloads/the-post-grid-pro-for-wordpress/" class="rt-admin-btn" target="_blank">' . __("Get Pro Version", "the-post-grid") . '</a>';
1090
  }
1091
 
1092
- }
1093
 
1094
  endif;
1
  <?php
2
+ if ( ! class_exists( 'rtTPGOptions' ) ):
3
+
4
+ class rtTPGOptions {
5
+
6
+ function rtPostTypes() {
7
+ $args = apply_filters( 'tpg_get_post_type', [
8
+ '_builtin' => true,
9
+ ] );
10
+
11
+ $post_types = get_post_types( $args );
12
+
13
+ $exclude = [ 'attachment', 'revision', 'nav_menu_item' ];
14
+
15
+ foreach ( $exclude as $ex ) {
16
+ unset( $post_types[ $ex ] );
17
+ }
18
+
19
+ return $post_types;
20
+ }
21
+
22
+ function rtPostOrders() {
23
+ return [
24
+ "ASC" => __( "Ascending", 'the-post-grid' ),
25
+ "DESC" => __( "Descending", 'the-post-grid' ),
26
+ ];
27
+ }
28
+
29
+ function rtTermOperators() {
30
+ return [
31
+ 'IN' => __( "IN — show posts which associate with one or more of selected terms",
32
+ 'the-post-grid' ),
33
+ 'NOT IN' => __( "NOT IN — show posts which do not associate with any of selected terms",
34
+ 'the-post-grid' ),
35
+ 'AND' => __( "AND — show posts which associate with all of selected terms", 'the-post-grid' ),
36
+ ];
37
+ }
38
+
39
+ function rtTermRelations() {
40
+ return [
41
+ 'AND' => __( "AND — show posts which match all settings", 'the-post-grid' ),
42
+ 'OR' => __( "OR — show posts which match one or more settings", 'the-post-grid' ),
43
+ ];
44
+ }
45
+
46
+ function rtMetaKeyType() {
47
+ return [
48
+ 'meta_value' => __( 'Meta value', 'the-post-grid' ),
49
+ 'meta_value_num' => __( 'Meta value number', 'the-post-grid' ),
50
+ 'meta_value_datetime' => __( 'Meta value datetime', 'the-post-grid' ),
51
+ ];
52
+ }
53
+
54
+ function rtPostOrderBy( $isWoCom = false, $metaOrder = false ) {
55
+ $orderBy = [
56
+ "ID" => __( "ID", 'the-post-grid' ),
57
+ "title" => __( "Title", 'the-post-grid' ),
58
+ "date" => __( "Created date", 'the-post-grid' ),
59
+ "modified" => __( "Modified date", 'the-post-grid' ),
60
+ "menu_order" => __( "Menu Order", 'the-post-grid' ),
61
+ ];
62
+
63
+ return apply_filters( 'rt_tpg_post_orderby', $orderBy, $isWoCom, $metaOrder );
64
+ }
65
+
66
+ function rtTPGSettingsCustomScriptFields() {
67
+ $settings = get_option( rtTPG()->options['settings'] );
68
+
69
+ return [
70
+ "script_before_item_load" => [
71
+ "label" => __( "Script before item load", 'the-post-grid' ),
72
+ 'type' => 'textarea',
73
+ 'holderClass' => 'rt-script-wrapper full',
74
+ 'id' => 'script-before-item-load',
75
+ 'value' => isset( $settings['script_before_item_load'] ) ? stripslashes( $settings['script_before_item_load'] ) : null,
76
+ ],
77
+ "script_after_item_load" => [
78
+ "label" => __( "Script After item load", 'the-post-grid' ),
79
+ 'type' => 'textarea',
80
+ 'holderClass' => 'rt-script-wrapper full',
81
+ 'id' => 'script-after-item-load',
82
+ 'value' => isset( $settings['script_after_item_load'] ) ? stripslashes( $settings['script_after_item_load'] ) : null,
83
+ ],
84
+ "script_loaded" => [
85
+ "label" => __( "After Loaded script", 'the-post-grid' ),
86
+ 'type' => 'textarea',
87
+ 'holderClass' => 'rt-script-wrapper full',
88
+ 'id' => 'script-loaded',
89
+ 'value' => isset( $settings['script_loaded'] ) ? stripslashes( $settings['script_loaded'] ) : null,
90
+ ],
91
+ ];
92
+ }
93
+
94
+ function rtTPGSettingsOtherSettingsFields() {
95
+ $settings = get_option( rtTPG()->options['settings'] );
96
+
97
+ return [
98
+ 'tpg_load_script' => [
99
+ 'type' => 'switch',
100
+ 'name' => 'tpg_load_script',
101
+ 'label' => __( 'Load Script only ShortCode page', 'the-post-grid' ),
102
+ 'description' => __( 'If you enable this, script will be loaded only ShortCode page.', 'the-post-grid' ),
103
+ 'value' => isset( $settings['tpg_load_script'] ) ? $settings['tpg_load_script'] : false,
104
+ ],
105
+ 'tpg_enable_preloader' => [
106
+ 'type' => 'switch',
107
+ 'name' => 'tpg_enable_preloader',
108
+ 'label' => __( 'Enable Pre-loader', 'the-post-grid' ),
109
+ 'holderClass' => 'tpg-hidden',
110
+ 'value' => isset( $settings['tpg_enable_preloader'] ) ? $settings['tpg_enable_preloader'] : false,
111
+ ],
112
+ 'tpg_skip_fa' => [
113
+ 'type' => 'switch',
114
+ 'name' => 'tpg_skip_fa',
115
+ 'label' => __( 'Disable Font Awesome Script', 'the-post-grid' ),
116
+ 'description' => __( "If Font Awesome 5 exist with theme, don't need to load twice.", 'the-post-grid' ),
117
+ 'value' => isset( $settings['tpg_enable_preloader'] ) ? $settings['tpg_enable_preloader'] : false,
118
+ ],
119
+ 'template_author' => [
120
+ 'type' => 'select',
121
+ 'name' => 'template_author',
122
+ 'label' => 'Template Author',
123
+ 'id' => 'template_author',
124
+ 'holderClass' => 'pro-field',
125
+ 'class' => 'select2',
126
+ 'blank' => 'Select a layout',
127
+ 'options' => rtTPG()->getTPGShortCodeList(),
128
+ 'value' => isset( $settings['template_author'] ) ? $settings['template_author'] : [],
129
+ ],
130
+ 'template_category' => [
131
+ 'type' => 'select',
132
+ 'name' => 'template_category',
133
+ 'label' => 'Template Category',
134
+ 'id' => 'template_category',
135
+ 'holderClass' => 'pro-field',
136
+ 'class' => 'select2',
137
+ 'blank' => 'Select a layout',
138
+ 'options' => rtTPG()->getTPGShortCodeList(),
139
+ 'value' => isset( $settings['template_category'] ) ? $settings['template_category'] : [],
140
+ ],
141
+ 'template_search' => [
142
+ 'type' => 'select',
143
+ 'name' => 'template_search',
144
+ 'label' => 'Template Search',
145
+ 'id' => 'template_search',
146
+ 'holderClass' => 'pro-field',
147
+ 'class' => 'select2',
148
+ 'blank' => 'Select a layout',
149
+ 'options' => rtTPG()->getTPGShortCodeList(),
150
+ 'value' => isset( $settings['template_search'] ) ? $settings['template_search'] : [],
151
+ ],
152
+ 'template_tag' => [
153
+ 'type' => 'select',
154
+ 'name' => 'template_tag',
155
+ 'label' => 'Template Tag',
156
+ 'id' => 'template_tag',
157
+ 'holderClass' => 'pro-field',
158
+ 'class' => 'select2',
159
+ 'blank' => 'Select a layout',
160
+ 'options' => rtTPG()->getTPGShortCodeList(),
161
+ 'value' => isset( $settings['template_tag'] ) ? $settings['template_tag'] : [],
162
+ ],
163
+ 'template_class' => [
164
+ 'type' => 'text',
165
+ 'name' => 'template_class',
166
+ 'label' => 'Template class',
167
+ 'holderClass' => 'pro-field',
168
+ 'id' => 'template_class',
169
+ 'value' => isset( $settings['template_class'] ) ? $settings['template_class'] : '',
170
+ ],
171
+ ];
172
+ }
173
+
174
+ function rtTPGLicenceField() {
175
+ $settings = get_option( rtTPG()->options['settings'] );
176
+ $status = ! empty( $settings['license_status'] ) && $settings['license_status'] === 'valid' ? true : false;
177
+ $license_status = ! empty( $settings['license_key'] ) ? sprintf( "<span class='license-status'>%s</span>",
178
+ $status
179
+ ? "<input type='submit' class='button-secondary rt-licensing-btn danger' name='license_deactivate' value='" . __( "Deactivate License", "the-post-grid" )
180
+ . "'/>"
181
+ : "<input type='submit' class='button-secondary rt-licensing-btn button-primary' name='license_activate' value='" . __( "Activate License", "the-post-grid" )
182
+ . "'/>"
183
+ ) : ' ';
184
+
185
+ return [
186
+ "license_key" => [
187
+ 'type' => 'text',
188
+ 'name' => 'license_key',
189
+ 'attr' => 'style="min-width:300px;"',
190
+ 'label' => __( 'Enter your license key', 'the-post-grid' ),
191
+ 'description' => $license_status,
192
+ 'id' => 'license_key',
193
+ 'value' => isset( $settings['license_key'] ) ? $settings['license_key'] : '',
194
+ ],
195
+ ];
196
+ }
197
+
198
+ function rtTPGSettingsSocialShareFields() {
199
+ $settings = get_option( rtTPG()->options['settings'] );
200
+
201
+ return [
202
+ "social_share_items" => [
203
+ 'type' => 'checkbox',
204
+ 'name' => 'social_share_items',
205
+ 'label' => 'Social share items',
206
+ 'id' => 'social_share_items',
207
+ 'holderClass' => 'pro-field',
208
+ 'alignment' => 'vertical',
209
+ 'multiple' => true,
210
+ 'options' => rtTPG()->socialShareItemList(),
211
+ 'value' => isset( $settings['social_share_items'] ) ? $settings['social_share_items'] : [],
212
+ ],
213
+ ];
214
+ }
215
+
216
+ function socialShareItemList() {
217
+ return [
218
+ 'facebook' => 'Facebook',
219
+ 'twitter' => 'Twitter',
220
+ 'linkedin' => 'LinkedIn',
221
+ 'pinterest' => 'Pinterest',
222
+ 'reddit' => 'Reddit',
223
+ 'email' => 'Email',
224
+ ];
225
+ }
226
+
227
+ function templateOverrideItemList() {
228
+ return [
229
+ 'category-archive' => "Category archive",
230
+ 'tag-archive' => "Tag archive",
231
+ 'author-archive' => "Author archive",
232
+ 'search' => "Search page",
233
+ ];
234
+ }
235
+
236
+ function rtTPGCommonFilterFields() {
237
+ return [
238
+ 'post__in' => [
239
+ "name" => "post__in",
240
+ "label" => "Include only",
241
+ "type" => "text",
242
+ "class" => "full",
243
+ "description" => 'List of post IDs to show (comma-separated values, for example: 1,2,3)',
244
+ ],
245
+ 'post__not_in' => [
246
+ "name" => "post__not_in",
247
+ "label" => "Exclude",
248
+ "type" => "text",
249
+ "class" => "full",
250
+ "description" => 'List of post IDs to hide (comma-separated values, for example: 1,2,3)',
251
+ ],
252
+ 'limit' => [
253
+ "name" => "limit",
254
+ "label" => "Limit",
255
+ "type" => "number",
256
+ "class" => "full",
257
+ "description" => 'The number of posts to show. Set empty to show all found posts.',
258
+ ],
259
+ 'offset' => [
260
+ "name" => "offset",
261
+ "label" => __("Offset", "the-post-grid"),
 
262
  "type" => "number",
263
  "class" => "full",
264
+ "description" => 'The number of posts to skip from start',
265
+ ],
266
+ ];
267
+ }
268
+
269
+ function rtTPGPostType() {
270
+ return [
271
+ 'tpg_post_type' => [
272
+ "label" => "Post Type",
273
+ "type" => "select",
274
+ "id" => "rt-sc-post-type",
275
+ "class" => "-rt-select2",
276
+ "options" => $this->rtPostTypes(),
277
+ ],
278
+ ];
279
+ }
280
+
281
+ function rtTPAdvanceFilters() {
282
+ $fields = apply_filters( 'rt_tpg_advanced_filters', [
283
+ 'tpg_taxonomy' => "Taxonomy",
284
+ 'order' => "Order",
285
+ 'author' => "Author",
286
+ 'tpg_post_status' => "Status",
287
+ 's' => "Search",
288
+ ] );
289
+
290
+ return [
291
+ 'post_filter' => [
292
+ 'type' => "checkboxFilter",
293
+ 'name' => "post_filter",
294
+ 'label' => "Advanced Filters",
295
+ "alignment" => "vertical",
296
+ "multiple" => true,
297
+ 'default' => [ 'tpg_taxonomy', 'order' ],
298
+ "options" => $fields,
299
+ ],
300
+ ];
301
+ }
302
+
303
+ function rtTPGPostStatus() {
304
+ return [
305
+ 'publish' => 'Publish',
306
+ 'pending' => 'Pending',
307
+ 'draft' => 'Draft',
308
+ 'auto-draft' => 'Auto draft',
309
+ 'future' => 'Future',
310
+ 'private' => 'Private',
311
+ 'inherit' => 'Inherit',
312
+ 'trash' => 'Trash',
313
+ ];
314
+ }
315
+
316
+ function owl_property() {
317
+ return [
318
+ 'auto_play' => 'Auto Play',
319
+ 'loop' => 'Loop',
320
+ 'nav_button' => 'Nav Button',
321
+ 'pagination' => 'Pagination',
322
+ 'stop_hover' => 'Stop Hover',
323
+ 'auto_height' => 'Auto Height',
324
+ 'lazy_load' => 'Lazy Load',
325
+ 'rtl' => 'Right to left (RTL)',
326
+ ];
327
+ }
328
+
329
+ function rtTPGLayoutSettingFields() {
330
+ $options = [
331
+ 'layout_type' => [
332
+ "type" => "radio-image",
333
+ "label" => __("Layout Type", "the-post-grid"),
334
+ "id" => "rt-tpg-sc-layout-type",
335
+ "options" => $this->rtTPGLayoutType(),
336
+ ],
337
+ 'layout' => [
338
+ "type" => "radio-image",
339
+ "label" => __("Layout", "the-post-grid"),
340
  "id" => "rt-tpg-sc-layout",
341
  "class" => "rt-select2",
342
+ "options" => $this->rtTPGLayouts(),
343
+ ],
344
+ 'tgp_filter' => [
345
+ "type" => "checkbox",
346
+ "label" => "Filter",
347
+ 'holderClass' => "sc-tpg-grid-filter tpg-hidden pro-field",
348
+ "multiple" => true,
349
+ "alignment" => 'vertical',
350
+ "options" => rtTPG()->tgp_filter_list(),
351
+ ],
352
+ 'tgp_filter_taxonomy' => [
353
+ "type" => "select",
354
+ "label" => "Taxonomy Filter",
355
+ 'holderClass' => "sc-tpg-grid-filter sc-tpg-filter tpg-hidden",
356
+ "class" => "rt-select2",
357
+ "options" => rtTPG()->rt_get_taxonomy_for_filter(),
358
+ ],
359
+ 'tgp_filter_taxonomy_hierarchical' => [
360
+ "type" => "switch",
361
+ "label" => "Display as sub category",
362
+ 'holderClass' => "sc-tpg-grid-filter sc-tpg-filter tpg-hidden",
363
+ "option" => "Active",
364
+ ],
365
+ 'tgp_filter_type' => [
366
+ "type" => "select",
367
+ "label" => "Taxonomy filter type",
368
+ 'holderClass' => "sc-tpg-grid-filter sc-tpg-filter tpg-hidden",
369
+ "class" => "rt-select2",
370
+ "options" => rtTPG()->rt_filter_type(),
371
+ ],
372
+ 'tgp_default_filter' => [
373
+ "type" => "select",
374
+ "label" => "Selected filter term (Selected item)",
375
+ 'holderClass' => "sc-tpg-grid-filter sc-tpg-filter tpg-hidden",
376
+ "class" => "rt-select2",
377
+ "attr" => "data-selected='" . get_post_meta( get_the_ID(), 'tgp_default_filter', true ) . "'",
378
+ "options" => [ '' => __( 'Show All', 'the-post-grid' ) ],
379
+ ],
380
+ 'tpg_hide_all_button' => [
381
+ "type" => "switch",
382
+ "label" => "Hide All (Show all) button",
383
+ 'holderClass' => "sc-tpg-grid-filter sc-tpg-filter tpg-hidden",
384
+ "option" => 'Hide',
385
+ ],
386
+ 'tpg_post_count' => [
387
+ "type" => "switch",
388
+ "label" => "Show post count",
389
+ 'holderClass' => "sc-tpg-grid-filter sc-tpg-filter tpg-hidden",
390
+ "option" => 'Enable',
391
+ ],
392
+ 'isotope_filter' => [
393
+ "type" => "select",
394
+ "label" => "Isotope Filter",
395
+ 'holderClass' => "isotope-item sc-isotope-filter tpg-hidden",
396
+ "id" => "rt-tpg-sc-isotope-filter",
397
+ "class" => "rt-select2",
398
+ "options" => rtTPG()->rt_get_taxonomy_for_filter(),
399
+ ],
400
+ 'isotope_default_filter' => [
401
+ "type" => "select",
402
+ "label" => "Isotope filter (Selected item)",
403
+ 'holderClass' => "isotope-item sc-isotope-default-filter tpg-hidden pro-field",
404
+ "id" => "rt-tpg-sc-isotope-default-filter",
405
+ "class" => "rt-select2",
406
+ "attr" => "data-selected='" . get_post_meta( get_the_ID(), 'isotope_default_filter',
407
+ true ) . "'",
408
+ "options" => [ '' => __( 'Show all', 'the-post-grid' ) ],
409
+ ],
410
+ 'tpg_show_all_text' => [
411
+ "type" => "text",
412
+ 'holderClass' => "isotope-item sc-isotope-filter tpg-hidden",
413
+ "label" => esc_html__( "Show all text", 'the-post-grid' ),
414
+ "default" => esc_html__( "Show all", 'the-post-grid' ),
415
+ ],
416
+ 'isotope_filter_dropdown' => [
417
+ "type" => "switch",
418
+ "label" => "Isotope dropdown filter",
419
+ 'holderClass' => "isotope-item sc-isotope-filter sc-isotope-filter-dropdown tpg-hidden pro-field",
420
+ ],
421
+ 'isotope_filter_show_all' => [
422
+ "type" => "switch",
423
+ "name" => "isotope_filter_show_all",
424
+ "label" => "Isotope filter (Show All item)",
425
+ 'holderClass' => "isotope-item sc-isotope-filter-show-all tpg-hidden pro-field",
426
+ "id" => "rt-tpg-sc-isotope-filter-show-all",
427
+ ],
428
+ 'isotope_filter_count' => [
429
+ "type" => "switch",
430
+ "label" => "Isotope filter count number",
431
+ 'holderClass' => "isotope-item sc-isotope-filter tpg-hidden pro-field",
432
+ "option" => 'Enable',
433
+ ],
434
+ 'isotope_filter_url' => [
435
+ "type" => "switch",
436
+ "label" => "Isotope filter URL",
437
+ 'holderClass' => "isotope-item sc-isotope-filter tpg-hidden pro-field",
438
+ ],
439
+ 'isotope_search_filter' => [
440
+ "type" => "switch",
441
+ "label" => "Isotope search filter",
442
+ 'holderClass' => "isotope-item sc-isotope-search-filter tpg-hidden pro-field",
443
+ "id" => "rt-tpg-sc-isotope-search-filter",
444
+ "option" => 'Enable',
445
+ ],
446
+ 'carousel_property' => [
447
+ "type" => "checkbox",
448
+ "label" => "Carousel property",
449
+ "multiple" => true,
450
+ "alignment" => 'vertical',
451
+ 'holderClass' => "carousel-item carousel-property tpg-hidden",
452
+ "id" => "carousel-property",
453
+ "default" => [ 'pagination' ],
454
+ "options" => $this->owl_property(),
455
+ ],
456
+ 'tpg_carousel_speed' => [
457
+ "label" => __( "Speed", 'the-post-grid' ),
458
+ "holderClass" => "tpg-hidden carousel-item",
459
+ "type" => "number",
460
+ 'default' => 250,
461
+ "description" => __( 'Auto play Speed in milliseconds', 'the-post-grid' ),
462
+ ],
463
+ 'tpg_carousel_autoplay_timeout' => [
464
+ "label" => __( "Autoplay timeout", 'the-post-grid' ),
465
+ "holderClass" => "tpg-hidden carousel-item tpg-carousel-auto-play-timeout",
466
+ "type" => "number",
467
+ 'default' => 5000,
468
+ "description" => __( 'Autoplay interval timeout', 'the-post-grid' ),
469
+ ],
470
+ ];
471
+
472
+ return apply_filters( 'rt_tpg_layout_options', $options );
473
+ }
474
+
475
+ function responsiveSettingsColumn() {
476
+ $options = [
477
+ 'column' => [
478
+ 'type' => 'select',
479
+ 'label' => __( 'Desktop', 'the-post-grid' ),
480
+ 'class' => 'rt-select2',
481
+ 'holderClass' => "offset-column-wrap rt-3-column",
482
+ 'default' => 3,
483
+ 'options' => $this->scColumns(),
484
+ "description" => "Desktop > 991px",
485
+ ],
486
+ 'tpg_tab_column' => [
487
+ 'type' => 'select',
488
+ 'label' => __( 'Tab', 'the-post-grid' ),
489
+ 'class' => 'rt-select2',
490
+ 'holderClass' => "offset-column-wrap rt-3-column",
491
+ 'default' => 2,
492
+ 'options' => $this->scColumns(),
493
+ "description" => "Tab < 992px",
494
+ ],
495
+ 'tpg_mobile_column' => [
496
+ 'type' => 'select',
497
+ 'label' => __( 'Mobile', 'the-post-grid' ),
498
+ 'class' => 'rt-select2',
499
+ 'holderClass' => "offset-column-wrap rt-3-column",
500
+ 'default' => 1,
501
+ 'options' => $this->scColumns(),
502
+ "description" => "Mobile < 768px",
503
+ ],
504
+ ];
505
+ return apply_filters( 'rt_tpg_layout_column_options', $options );
506
+ }
507
+
508
+ function layoutMiscSettings() {
509
+ $options = [
510
+ 'pagination' => [
511
+ "type" => "switch",
512
+ "label" => "Pagination",
513
+ 'holderClass' => "pagination",
514
+ "id" => "rt-tpg-pagination",
515
+ "description" => "Pagination not allow in Grid Hover layout",
516
+ "option" => 'Enable',
517
+ ],
518
+ 'posts_per_page' => [
519
+ "type" => "number",
520
+ "label" => "Display per page",
521
+ 'holderClass' => "pagination-item posts-per-page tpg-hidden",
522
+ "default" => 5,
523
+ "description" => "If value of Limit setting is not blank (empty), this value should be smaller than Limit value.",
524
+ ],
525
+ 'posts_loading_type' => [
526
+ "type" => "radio",
527
+ "label" => "Pagination Type",
528
+ 'holderClass' => "pagination-item posts-loading-type tpg-hidden pro-field",
529
+ "alignment" => "vertical",
530
+ "default" => 'pagination',
531
+ "options" => $this->postLoadingType(),
532
+ ],
533
+ 'link_to_detail_page' => [
534
+ "type" => "switch",
535
+ "label" => "Link To Detail Page",
536
+ "alignment" => "vertical",
537
+ "default" => true,
538
+ ],
539
+ 'detail_page_link_type' => [
540
+ "type" => "radio",
541
+ "label" => "Detail page link type",
542
+ 'holderClass' => "detail-page-link-type tpg-hidden pro-field",
543
+ "alignment" => "vertical",
544
+ "default" => "new_page",
545
+ "options" => [
546
+ 'popup' => "PopUp",
547
+ 'new_page' => "New Page",
548
+ ],
549
+ ],
550
+ 'popup_type' => [
551
+ "type" => "radio",
552
+ "label" => "PopUp Type",
553
+ 'holderClass' => "popup-type tpg-hidden pro-field",
554
+ "alignment" => "vertical",
555
+ "default" => "single",
556
+ "options" => [
557
+ 'single' => "Single PopUp",
558
+ 'multi' => "Multi PopUp",
559
+ ],
560
+ ],
561
+ 'link_target' => [
562
+ "type" => "radio",
563
+ "label" => "Link Target",
564
+ 'holderClass' => "tpg-link-target tpg-hidden",
565
+ "alignment" => 'vertical',
566
+ "options" => [
567
+ '' => 'Same Window',
568
+ '_blank' => 'New Window',
569
+ ],
570
+ ],
571
+ ];
572
+ return apply_filters( 'rt_tpg_layout_misc_options', $options );
573
+ }
574
+
575
+ function stickySettings() {
576
+ $options = [
577
+ 'ignore_sticky_posts' => [
578
+ "type" => "switch",
579
+ "label" => "Show sticky posts at the top",
580
+ 'holderClass' => "pro-field",
581
+ "alignment" => "vertical",
582
+ "default" => false,
583
+ ],
584
+ ];
585
+
586
+ return $options;
587
+ }
588
+
589
+ function scMarginOpt() {
590
+ return [
591
+ 'default' => "Bootstrap default",
592
+ 'no' => "No Margin",
593
+ ];
594
+ }
595
+
596
+ function scGridType() {
597
+ return [
598
+ 'even' => "Even Grid",
599
+ 'masonry' => "Masonry",
600
+ ];
601
+ }
602
+
603
+ function getTitleTags() {
604
+ return [
605
+ 'h2' => "H2",
606
+ 'h3' => "H3",
607
+ 'h4' => "H4",
608
+ ];
609
+ }
610
+
611
+ function getHeadingTags() {
612
+ return [
613
+ 'h1' => "H1",
614
+ 'h2' => "H2",
615
+ 'h3' => "H3",
616
+ 'h4' => "H4",
617
+ 'h5' => "H5",
618
+ 'h6' => "H6",
619
+ ];
620
+ }
621
+
622
+ function rtTpgSettingsDetailFieldSelection() {
623
+ $settings = get_option( rtTPG()->options['settings'] );
624
+
625
+ $fields = [
626
+ "popup_fields" => [
627
+ 'type' => 'checkbox',
628
+ 'label' => 'Field Selection',
629
+ 'id' => 'popup-fields',
630
+ 'holderClass' => 'pro-field',
631
+ 'alignment' => 'vertical',
632
+ 'multiple' => true,
633
+ 'options' => rtTPG()->detailAvailableFields(),
634
+ 'value' => isset( $settings['popup_fields'] ) ? $settings['popup_fields'] : [],
635
+ ],
636
+ ];
637
+ $cf = rtTPG()->checkWhichCustomMetaPluginIsInstalled();
638
+ if ( $cf ) {
639
+ $plist = rtTPG()->getCFPluginList();
640
+ $pName = ! empty( $plist[ $cf ] ) ? $plist[ $cf ] : " - ";
641
+ $fields['cf_group'] = [
642
+ "type" => "checkbox",
643
+ "name" => "cf_group",
644
+ "holderClass" => "tpg-hidden cfs-fields cf-group pro-field",
645
+ "label" => "Custom Field group " . " ({$pName})",
646
+ "multiple" => true,
647
+ "alignment" => "vertical",
648
+ "id" => "cf_group",
649
+ "options" => rtTPG()->get_groups_by_post_type( 'all' ),
650
+ "value" => isset( $settings['cf_group'] ) ? $settings['cf_group'] : [],
651
+ ];
652
+ $fields['cf_hide_empty_value'] = [
653
+ "type" => "checkbox",
654
+ "name" => "cf_hide_empty_value",
655
+ "holderClass" => "tpg-hidden cfs-fields pro-field",
656
+ "label" => "Hide field with empty value",
657
+ "value" => ! empty( $settings['cf_hide_empty_value'] ) ? 1 : 0,
658
+ ];
659
+ $fields['cf_show_only_value'] = [
660
+ "type" => "checkbox",
661
+ "name" => "cf_show_only_value",
662
+ "holderClass" => "tpg-hidden cfs-fields pro-field",
663
+ "label" => "Show only value of field",
664
+ "description" => "By default both name & value of field is shown",
665
+ "value" => ! empty( $settings['cf_show_only_value'] ) ? 1 : 0,
666
+ ];
667
+ $fields['cf_hide_group_title'] = [
668
+ "type" => "checkbox",
669
+ "name" => "cf_hide_group_title",
670
+ "holderClass" => "tpg-hidden cfs-fields pro-field",
671
+ "label" => "Hide group title",
672
+ "value" => ! empty( $settings['cf_hide_group_title'] ) ? 1 : 0,
673
+ ];
674
+ }
675
+
676
+ return $fields;
677
+ }
678
+
679
+ function detailAvailableFields() {
680
+ $fields = $this->rtTPGItemFields();
681
+ $inserted = [
682
+ 'feature_img' => 'Feature Image',
683
+ 'content' => 'Content',
684
+ ];
685
+ unset( $fields['heading'] );
686
+ unset( $fields['excerpt'] );
687
+ unset( $fields['read_more'] );
688
+ unset( $fields['comment_count'] );
689
+ $offset = array_search( 'title', array_keys( $fields ) ) + 1;
690
+ $newFields = array_slice( $fields, 0, $offset, true ) + $inserted + array_slice( $fields,
691
+ $offset, null, true );
692
+ $newFields['social_share'] = "Social Share";
693
+
694
+ return $newFields;
695
+ }
696
+
697
+ function rtTPGSCHeadingSettings() {
698
+ $fields = [
699
+ 'tpg_heading_tag' => [
700
+ 'type' => 'select',
701
+ 'name' => 'tpg_heading_tag',
702
+ 'label' => esc_html__( 'Tag', 'the-post-grid' ),
703
+ 'class' => 'rt-select2',
704
+ 'id' => 'heading-tag',
705
+ 'options' => $this->getHeadingTags(),
706
+ 'default' => 'h2',
707
+ ],
708
+ 'tpg_heading_style' => [
709
+ "type" => "select",
710
+ "class" => "rt-select2",
711
+ "label" => esc_html__( "Style", "the-post-grid" ),
712
+ "blank" => esc_html__( "Default", "the-post-grid" ),
713
+ "options" => [
714
+ 'style1' => esc_html__( "Style 1", "the-post-grid" ),
715
+ 'style2' => esc_html__( "Style 2", "the-post-grid" ),
716
+ 'style3' => esc_html__( "Style 3", "the-post-grid" ),
717
+ ],
718
+ ],
719
+ 'tpg_heading_alignment' => [
720
+ "type" => "select",
721
+ "class" => "rt-select2",
722
+ "label" => esc_html__( "Alignment", "the-post-grid" ),
723
+ "blank" => esc_html__( "Default", "the-post-grid" ),
724
+ "options" => [
725
+ 'left' => esc_html__( "Left", "the-post-grid" ),
726
+ 'right' => esc_html__( "Right", "the-post-grid" ),
727
+ 'center' => esc_html__( "Center", "the-post-grid" ),
728
+ ],
729
+ ],
730
+ 'tpg_heading_link' => [
731
+ "type" => "url",
732
+ "label" => __( 'Link', 'the-post-grid' ),
733
+ ],
734
+ ];
735
+
736
+ return $fields;
737
+ }
738
+
739
+ function rtTPGSCCategorySettings() {
740
+ $fields = [
741
+ 'tpg_category_position' => [
742
+ "type" => "select",
743
+ "class" => "rt-select2",
744
+ "holderClass" => "pro-field",
745
+ "label" => esc_html__( "Position", "the-post-grid" ),
746
+ "blank" => esc_html__( "Default", "the-post-grid" ),
747
+ "options" => [
748
+ 'above_title' => esc_html__( "Above Title", "the-post-grid" ),
749
+ 'top_left' => esc_html__( "Over image (Top Left)", "the-post-grid" ),
750
+ 'top_right' => esc_html__( "Over image (Top Right)", "the-post-grid" ),
751
+ 'bottom_left' => esc_html__( "Over image (Bottom Left)", "the-post-grid" ),
752
+ 'bottom_right' => esc_html__( "Over image (Bottom Right)", "the-post-grid" ),
753
+ 'image_center' => esc_html__( "Over image (Center)", "the-post-grid" ),
754
+ ],
755
+ ],
756
+ 'tpg_category_style' => [
757
+ "type" => "select",
758
+ "class" => "rt-select2",
759
+ "holderClass" => "pro-field",
760
+ "label" => esc_html__( "Style", "the-post-grid" ),
761
+ "blank" => esc_html__( "Default", "the-post-grid" ),
762
+ "options" => [
763
+ 'style1' => esc_html__( "Style 1", "the-post-grid" ),
764
+ 'style2' => esc_html__( "Style 2", "the-post-grid" ),
765
+ 'style3' => esc_html__( "Style 3", "the-post-grid" ),
766
+ ],
767
+ ],
768
+ 'tpg_category_icon' => [
769
+ "type" => "switch",
770
+ "label" => esc_html__( "Icon", "the-post-grid" ),
771
+ "default" => true,
772
+ ],
773
+ ];
774
+
775
+ return $fields;
776
+ }
777
+
778
+ function rtTPGSCTitleSettings() {
779
+ $fields = [
780
+ 'tpg_title_position' => [
781
+ "type" => "select",
782
+ "label" => esc_html__( "Title Position (Above or Below image)", "the-post-grid" ),
783
+ "class" => "rt-select2 ",
784
+ "holderClass" => "pro-field",
785
+ "blank" => esc_html__( "Default", "the-post-grid" ),
786
+ "options" => [
787
+ 'above' => esc_html__( "Above image", "the-post-grid" ),
788
+ 'below' => esc_html__( "Below image", "the-post-grid" ),
789
+ ],
790
+ "description" => __( "<span style='color:red'>Only Layout 1, Layout 12, Layout 14, Isotope1, Isotope8, Isotope10, Carousel Layout 1, Carousel Layout 8, Carousel Layout 10</span>",
791
+ 'the-post-grid' ),
792
+ ],
793
+ 'title_tag' => [
794
+ 'type' => 'select',
795
+ 'name' => 'title_tag',
796
+ 'label' => esc_html__( 'Title tag', 'the-post-grid' ),
797
+ 'class' => 'rt-select2',
798
+ 'id' => 'title-tag',
799
+ 'options' => $this->getTitleTags(),
800
+ 'default' => 'h3',
801
+ ],
802
+ 'tpg_title_limit' => [
803
+ "type" => "number",
804
+ "label" => esc_html__( "Title limit", 'the-post-grid' ),
805
+ "description" => esc_html__( "Title limit only integer number is allowed, Leave it blank for full title.", 'the-post-grid' ),
806
+ ],
807
+ 'tpg_title_limit_type' => [
808
+ "type" => "radio",
809
+ "label" => esc_html__( "Title limit type", 'the-post-grid' ),
810
+ "alignment" => "vertical",
811
+ "default" => 'character',
812
+ "options" => $this->get_limit_type(),
813
+ ],
814
+ ];
815
+
816
+ return $fields;
817
+ }
818
+
819
+ function rtTPGSCMetaSettings() {
820
+ $fields = [
821
+ 'tpg_meta_position' => [
822
+ "type" => "select",
823
+ "label" => esc_html__( "Position", "the-post-grid" ),
824
+ "class" => "rt-select2 ",
825
+ "holderClass" => "pro-field",
826
+ "blank" => esc_html__( "Default", "the-post-grid" ),
827
+ "options" => [
828
+ 'above_title' => esc_html__( "Above Title", "the-post-grid" ),
829
+ 'above_excerpt' => esc_html__( "Above excerpt", "the-post-grid" ),
830
+ 'below_excerpt' => esc_html__( "Below excerpt", "the-post-grid" ),
831
+ ],
832
+ ],
833
+ 'tpg_meta_icon' => [
834
+ "type" => "switch",
835
+ "label" => esc_html__( "Icon", "the-post-grid" ),
836
+ "default" => true,
837
+ ],
838
+ 'tpg_meta_separator' => [
839
+ "type" => "select",
840
+ "class" => "rt-select2",
841
+ "label" => esc_html__( "Separator", "the-post-grid" ),
842
+ "blank" => esc_html__( "Default", "the-post-grid" ),
843
+ "options" => [
844
+ 'dot' => esc_html__( "Dot ( . )", "the-post-grid" ),
845
+ 's_slash' => esc_html__( "Single Slash ( / )", "the-post-grid" ),
846
+ 'd_slash' => esc_html__( "Double Slash ( // )", "the-post-grid" ),
847
+ 'hypen' => esc_html__( "Hypen ( - )", "the-post-grid" ),
848
+ 'v_pipe' => esc_html__( "Vertical Pipe ( | )", "the-post-grid" ),
849
+ ],
850
+ ],
851
+ ];
852
+
853
+ return $fields;
854
+ }
855
+
856
+ function rtTPGSCImageSettings() {
857
+ $fields = [
858
+ 'feature_image' => [
859
+ "type" => "switch",
860
+ "label" => "Hide Feature Image",
861
+ "id" => "rt-tpg-feature-image",
862
+ "default" => false,
863
+ ],
864
+ 'featured_image_size' => [
865
+ "type" => "select",
866
+ "label" => "Feature Image Size",
867
+ "class" => "rt-select2",
868
+ 'holderClass' => "rt-feature-image-option tpg-hidden",
869
+ "options" => rtTPG()->get_image_sizes(),
870
+ ],
871
+ 'custom_image_size' => [
872
+ "type" => "image_size",
873
+ "label" => "Custom Image Size",
874
+ 'holderClass' => "rt-sc-custom-image-size-holder tpg-hidden",
875
+ "multiple" => true,
876
+ ],
877
+ 'media_source' => [
878
+ "type" => "radio",
879
+ "label" => "Media Source",
880
+ "default" => 'feature_image',
881
+ "alignment" => "vertical",
882
+ 'holderClass' => "rt-feature-image-option tpg-hidden",
883
+ "options" => $this->rtMediaSource(),
884
+ ],
885
+ 'tgp_layout2_image_column' => [
886
+ 'type' => 'select',
887
+ 'label' => esc_html__( 'Image column', 'the-post-grid' ),
888
+ 'class' => 'rt-select2',
889
+ 'holderClass' => "holder-layout2-image-column tpg-hidden",
890
+ 'default' => 4,
891
+ 'options' => $this->scColumns(),
892
+ "description" => "Content column will calculate automatically",
893
+ ],
894
+ 'tpg_image_type' => [
895
+ "type" => "radio",
896
+ "label" => esc_html__( "Type", 'the-post-grid' ),
897
+ "alignment" => "vertical",
898
+ 'holderClass' => "rt-feature-image-option tpg-hidden pro-field",
899
+ "default" => 'normal',
900
+ "options" => $this->get_image_types(),
901
+ ],
902
+ 'tpg_image_animation' => [
903
+ "type" => "select",
904
+ "label" => esc_html__( 'Hover Animation', 'the-post-grid' ),
905
+ "class" => "rt-select2",
906
+ "blank" => esc_html__( "Default", "the-post-grid" ),
907
+ "options" => [
908
+ 'img_zoom_in' => esc_html__( 'Zoom in', 'the-post-grid' ),
909
+ 'img_zoom_out' => esc_html__( 'Zoom out', 'the-post-grid' ),
910
+ 'img_no_effect' => esc_html__( 'None', 'the-post-grid' ),
911
+ ],
912
+ ],
913
+ 'tpg_image_border_radius' => [
914
+ "type" => "number",
915
+ "class" => "small-text",
916
  'holderClass' => "pro-field",
917
+ "label" => esc_html__( "Border radius", "the-post-grid" ),
918
+ "description" => esc_html__( "Leave it blank for default", 'the-post-grid' ),
919
+ ],
920
+ ];
921
+
922
+ return apply_filters('rt_tpg_sc_image_settings', $fields);
923
+ }
924
+
925
+ function rtTPGSCExcerptSettings() {
926
+ $fields = [
927
+ 'excerpt_limit' => [
928
+ "type" => "number",
929
+ "label" => esc_html__( "Excerpt limit", 'the-post-grid' ),
930
+ "default" => 15,
931
+ "description" => esc_html__( "Excerpt limit only integer number is allowed, Leave it blank for full excerpt.", 'the-post-grid' ),
932
+ ],
933
+ 'tgp_excerpt_type' => [
934
+ "type" => "radio",
935
+ "label" => esc_html__( "Excerpt Type", 'the-post-grid' ),
936
+ "alignment" => "vertical",
937
+ "default" => 'word',
938
+ "options" => $this->get_limit_type( 'content' ),
939
+ ],
940
+ 'tgp_excerpt_more_text' => [
941
+ "type" => "text",
942
+ "label" => "Excerpt more text",
943
+ "default" => '...',
944
+ ],
945
+ ];
946
+
947
+ return $fields;
948
+ }
949
+
950
+ function rtTPGSCButtonSettings() {
951
+ $fields = [
952
+ 'tpg_read_more_button_border_radius' => [
953
+ "type" => "number",
954
+ "class" => "small-text",
955
+ "label" => esc_html__( "Border radius", "the-post-grid" ),
956
+ "description" => __( "Leave it blank for default", 'the-post-grid' ),
957
+ ],
958
+ 'tpg_read_more_button_alignment' => [
959
+ "type" => "select",
960
+ "class" => "rt-select2",
961
+ "label" => esc_html__( "Alignment", "the-post-grid" ),
962
+ "blank" => esc_html__( "Default", "the-post-grid" ),
963
+ "options" => [
964
+ 'left' => esc_html__( "Left", "the-post-grid" ),
965
+ 'right' => esc_html__( "Right", "the-post-grid" ),
966
+ 'center' => esc_html__( "Center", "the-post-grid" ),
967
+ ],
968
+ ],
969
+ 'tgp_read_more_text' => [
970
+ "type" => "text",
971
+ "label" => "Text",
972
+ ],
973
+ ];
974
+
975
+ return $fields;
976
+ }
977
+
978
+ function rtTPGStyleFields() {
979
+ $fields = [
980
+ 'parent_class' => [
981
+ "type" => "text",
982
+ "label" => "Parent class",
983
+ "class" => "medium-text",
984
+ "description" => "Parent class for adding custom css",
985
+ ],
986
+ 'primary_color' => [
987
+ "type" => "text",
988
+ "label" => "Primary Color",
989
+ "class" => "rt-color",
990
+ "default" => "#0367bf",
991
+ ],
992
+ ];
993
+
994
+ return apply_filters( 'rt_tpg_style_fields', $fields );
995
+ }
996
+
997
+ function rtTPGStyleButtonColorFields() {
998
+ $fields = [
999
+
1000
+ 'button_bg_color' => [
1001
+ "type" => "text",
1002
+ "name" => "button_bg_color",
1003
+ "label" => "Background",
1004
+ "class" => "rt-color",
1005
+ ],
1006
+ 'button_hover_bg_color' => [
1007
+ "type" => "text",
1008
+ "name" => "button_hover_bg_color",
1009
+ "label" => "Hover Background",
1010
+ "class" => "rt-color",
1011
+ ],
1012
+ 'button_active_bg_color' => [
1013
+ "type" => "text",
1014
+ "label" => "Active Background (Isotop)",
1015
+ "class" => "rt-color",
1016
+ ],
1017
+ 'button_text_bg_color' => [
1018
+ "type" => "text",
1019
+ "label" => "Text",
1020
+ "class" => "rt-color",
1021
+ ],
1022
+ 'button_hover_text_color' => [
1023
+ "type" => "text",
1024
+ "label" => "Text Hover",
1025
+ "class" => "rt-color",
1026
+ ],
1027
+ ];
1028
+
1029
+ return apply_filters( 'rt_tpg_style_button_css_fields', $fields );
1030
+ }
1031
+
1032
+ function rtTPGStyleHeading() {
1033
+ $fields = [
1034
+ 'tpg_heading_bg' => [
1035
+ "type" => "text",
1036
+ "class" => "rt-color",
1037
+ "label" => esc_html__( "Background Color", "the-post-grid" ),
1038
+ ],
1039
+ 'tpg_heading_color' => [
1040
+ "type" => "text",
1041
+ "class" => "rt-color",
1042
+ "label" => esc_html__( "Text Color", "the-post-grid" ),
1043
+ ],
1044
+ 'tpg_heading_border_color' => [
1045
+ "type" => "text",
1046
+ "class" => "rt-color",
1047
+ "label" => esc_html__( "Border Color", "the-post-grid" ),
1048
+ ],
1049
+ 'tpg_heading_border_size' => [
1050
+ "type" => "number",
1051
+ "class" => "small-text",
1052
+ "label" => esc_html__( "Border Size", "the-post-grid" ),
1053
+ "description" => __( "Leave it blank for default", 'the-post-grid' ),
1054
+ ],
1055
+ 'tpg_heading_margin' => [
1056
+ "type" => "text",
1057
+ "class" => "medium-text tpg-spacing-field",
1058
+ "label" => esc_html__( "Margin", "the-post-grid" ),
1059
+ "description" => __( "Multiple value allowed separated by comma 12,0,5,10", 'the-post-grid' ),
1060
+ ],
1061
+ 'tpg_heading_padding' => [
1062
+ "type" => "text",
1063
+ "class" => "medium-text tpg-spacing-field",
1064
+ "label" => esc_html__( "Padding", "the-post-grid" ),
1065
+ "description" => __( "Leave it blank for default, multiple value allowed separated by comma 12,0,5,10", 'the-post-grid' ),
1066
+ ],
1067
+ ];
1068
+
1069
+ return apply_filters( 'tpg_heading_style_fields', $fields );
1070
+ }
1071
+
1072
+ function rtTPGStyleFullArea() {
1073
+ $fields = [
1074
+ 'tpg_full_area_bg' => [
1075
+ "type" => "text",
1076
+ "class" => "rt-color",
1077
+ "label" => esc_html__( "Background", "the-post-grid" ),
1078
+ ],
1079
+ 'tpg_full_area_margin' => [
1080
+ "type" => "text",
1081
+ "class" => "medium-text",
1082
+ "label" => esc_html__( "Margin", "the-post-grid" ),
1083
+ "description" => __( "Multiple value allowed separated by comma 12,0,5,10", 'the-post-grid' ),
1084
+ ],
1085
+ 'tpg_full_area_padding' => [
1086
+ "type" => "text",
1087
+ "class" => "medium-text",
1088
+ "label" => esc_html__( "Padding", "the-post-grid" ),
1089
+ "description" => __( "Multiple value allowed separated by comma 12,0,5,10", 'the-post-grid' ),
1090
+ ],
1091
+ ];
1092
+
1093
+ return apply_filters( 'tpg_box_style_fields', $fields );
1094
+ }
1095
+
1096
+ function rtTPGStyleContentWrap() {
1097
+ $fields = [
1098
+ 'tpg_content_wrap_bg' => [
1099
+ "type" => "text",
1100
+ "class" => "rt-color",
1101
+ "label" => esc_html__( "Background Color", "the-post-grid" ),
1102
+ ],
1103
+ 'tpg_content_wrap_shadow' => [
1104
+ "type" => "text",
1105
+ "class" => "rt-color",
1106
+ "label" => esc_html__( "Box Shadow Color", "the-post-grid" ),
1107
+ ],
1108
+ 'tpg_content_wrap_border_color' => [
1109
+ "type" => "text",
1110
+ "class" => "rt-color",
1111
+ "label" => esc_html__( "Border Color", "the-post-grid" ),
1112
+ ],
1113
+ 'tpg_content_wrap_border' => [
1114
+ "type" => "number",
1115
+ "class" => "small-text",
1116
+ "label" => esc_html__( "Border Width", "the-post-grid" ),
1117
+ "description" => __( "Leave it blank for default", 'the-post-grid' ),
1118
+ ],
1119
+ 'tpg_content_wrap_border_radius' => [
1120
+ "type" => "number",
1121
+ "class" => "small-text",
1122
+ "label" => esc_html__( "Border Radius", "the-post-grid" ),
1123
+ ],
1124
+ 'tpg_box_padding' => [
1125
+ "type" => "text",
1126
+ "class" => "medium-text",
1127
+ "label" => esc_html__( "Box Padding", "the-post-grid" ),
1128
+ "description" => __( "Multiple value allowed separated by comma 12,0,5,10", 'the-post-grid' ),
1129
+ ],
1130
+ 'tpg_content_padding' => [
1131
+ "type" => "text",
1132
+ "class" => "medium-text",
1133
+ "label" => esc_html__( "Content Padding", "the-post-grid" ),
1134
+ "description" => __( "Multiple value allowed separated by comma 12,0,5,10", 'the-post-grid' ),
1135
+ ],
1136
+ ];
1137
+
1138
+ return apply_filters( 'tpg_content_style_fields', $fields );
1139
+ }
1140
+
1141
+ function rtTPGStyleCategory() {
1142
+ $fields = [
1143
+ 'tpg_category_bg' => [
1144
+ "type" => "text",
1145
+ "class" => "rt-color",
1146
+ "label" => esc_html__( "Background Color", "the-post-grid" ),
1147
+ ],
1148
+ 'tpg_category_color' => [
1149
+ "type" => "text",
1150
+ "class" => "rt-color",
1151
+ "label" => esc_html__( "Text Color", "the-post-grid" ),
1152
+ ],
1153
+ 'tpg_category_border_radius' => [
1154
+ "type" => "number",
1155
+ "class" => "small-text",
1156
+ "label" => esc_html__( "Border Radius", "the-post-grid" ),
1157
+ "description" => __( "Leave it blank for default", 'the-post-grid' ),
1158
+ ],
1159
+ 'tpg_category_margin' => [
1160
+ "type" => "text",
1161
+ "class" => "medium-text tpg-spacing-field",
1162
+ "label" => esc_html__( "Margin", "the-post-grid" ),
1163
+ "description" => __( "Multiple value allowed separated by comma 12,0,5,10", 'the-post-grid' ),
1164
+ ],
1165
+ 'tpg_category_padding' => [
1166
+ "type" => "text",
1167
+ "class" => "medium-text tpg-spacing-field",
1168
+ "label" => esc_html__( "Padding", "the-post-grid" ),
1169
+ "description" => __( "Multiple value allowed separated by comma 12,0,5,10", 'the-post-grid' ),
1170
+ ],
1171
+ 'rt_tpg_category_font_size' => [
1172
+ "type" => "select",
1173
+ "class" => "rt-select2",
1174
+ "label" => esc_html__( "Font Size", "the-post-grid" ),
1175
+ "blank" => 'Default',
1176
+ "options" => rtTPG()->scFontSize(),
1177
+ ],
1178
+ ];
1179
+
1180
+ return apply_filters( 'tpg_category_style_fields', $fields );
1181
+ }
1182
+
1183
+ function itemFields() {
1184
+ $fields = [
1185
+ 'item_fields' => [
1186
+ "type" => "checkbox",
1187
+ "name" => "item_fields",
1188
+ "label" => "Field selection",
1189
+ "id" => "item-fields",
1190
+ "multiple" => true,
1191
+ "alignment" => "vertical",
1192
+ "default" => array_keys( $this->rtTPGItemFields() ),
1193
+ "options" => $this->rtTPGItemFields(),
1194
+ ],
1195
+ ];
1196
+ if ( $cf = rtTPG()->checkWhichCustomMetaPluginIsInstalled() ) {
1197
+ global $post;
1198
+ $post_type = get_post_meta( $post->ID, 'tpg_post_type', true );
1199
+ $plist = rtTPG()->getCFPluginList();
1200
+ $fields['cf_group'] = [
1201
+ "type" => "checkbox",
1202
+ "name" => "cf_group",
1203
+ "holderClass" => "tpg-hidden cf-fields cf-group",
1204
+ "label" => "Custom Field group " . " ({$plist[$cf]})",
1205
+ "multiple" => true,
1206
+ "alignment" => "vertical",
1207
+ "id" => "cf_group",
1208
+ "options" => rtTPG()->get_groups_by_post_type( $post_type, $cf ),
1209
+ ];
1210
+ $fields['cf_hide_empty_value'] = [
1211
+ "type" => "checkbox",
1212
+ "name" => "cf_hide_empty_value",
1213
+ "holderClass" => "tpg-hidden cf-fields",
1214
+ "label" => "Hide field with empty value",
1215
+ "default" => 1,
1216
+ ];
1217
+ $fields['cf_show_only_value'] = [
1218
+ "type" => "checkbox",
1219
+ "name" => "cf_show_only_value",
1220
+ "holderClass" => "tpg-hidden cf-fields",
1221
+ "label" => "Show only value of field",
1222
+ "description" => "By default both name & value of field is shown",
1223
+ ];
1224
+ $fields['cf_hide_group_title'] = [
1225
+ "type" => "checkbox",
1226
+ "name" => "cf_hide_group_title",
1227
+ "holderClass" => "tpg-hidden cf-fields",
1228
+ "label" => "Hide group title",
1229
+ ];
1230
+ }
1231
+
1232
+ return $fields;
1233
+ }
1234
+
1235
+ function getCFPluginList() {
1236
+ return [
1237
+ 'acf' => "Advanced Custom Field",
1238
+ ];
1239
+ }
1240
+
1241
+ function rtMediaSource() {
1242
+ return [
1243
+ "feature_image" => "Feature Image",
1244
+ "first_image" => "First Image from content",
1245
+ ];
1246
+ }
1247
+
1248
+ function get_image_types() {
1249
+ return [
1250
+ 'normal' => "Normal",
1251
+ 'circle' => "Circle",
1252
+ ];
1253
+ }
1254
+
1255
+ function get_limit_type( $content = null ) {
1256
+ $types = [
1257
+ 'character' => __( "Character", "the-post-grid" ),
1258
+ 'word' => __( "Word", "the-post-grid" ),
1259
+ ];
1260
+ if ( $content === 'content' ) {
1261
+ $types['full'] = __( "Full Content", "the-post-grid" );
1262
+ }
1263
+
1264
+ return apply_filters( 'tpg_limit_type', $types, $content );
1265
+ }
1266
+
1267
+ function scColumns() {
1268
+ return [
1269
+ 1 => "Column 1",
1270
+ 2 => "Column 2",
1271
+ 3 => "Column 3",
1272
+ 4 => "Column 4",
1273
+ 5 => "Column 5",
1274
+ 6 => "Column 6",
1275
+ ];
1276
+ }
1277
+
1278
+ function tgp_filter_list() {
1279
+ return [
1280
+ '_taxonomy_filter' => __( 'Taxonomy filter', "the-post-grid" ),
1281
+ '_author_filter' => __( 'Author filter', "the-post-grid" ),
1282
+ '_order_by' => __( 'Order - Sort retrieved posts by parameter', "the-post-grid" ),
1283
+ '_sort_order' => __( 'Sort Order - Designates the ascending or descending order of the "orderby" parameter', "the-post-grid" ),
1284
+ '_search' => __( "Search filter", "the-post-grid" ),
1285
+ ];
1286
+ }
1287
+
1288
+ function overflowOpacity() {
1289
+ return [
1290
+ 1 => '10%',
1291
+ 2 => '20%',
1292
+ 3 => '30%',
1293
+ 4 => '40%',
1294
+ 5 => '50%',
1295
+ 6 => '60%',
1296
+ 7 => '70%',
1297
+ 8 => '80%',
1298
+ 9 => '90%',
1299
+ ];
1300
+ }
1301
+
1302
+ function rtTPGLayoutType() {
1303
+ $layoutType = [
1304
+ 'grid' => array(
1305
+ 'title' => __( "Grid", "the-post-grid" ),
1306
+ 'img' => rtTPG()->assetsUrl . 'images/grid.png',
1307
+ ),
1308
+ 'grid_hover' => array(
1309
+ 'title' => __( "Grid Hover", "the-post-grid" ),
1310
+ 'img' => rtTPG()->assetsUrl . 'images/grid_hover.png',
1311
+ ),
1312
+ 'list' => array(
1313
+ 'title' => __( "List", "the-post-grid" ),
1314
+ 'img' => rtTPG()->assetsUrl . 'images/list.png',
1315
+ ),
1316
+ 'isotope' => array(
1317
+ 'title' => __( "Isotope", "the-post-grid" ),
1318
+ 'img' => rtTPG()->assetsUrl . 'images/isotope.png',
1319
+ ),
1320
+ ];
1321
+
1322
+ return apply_filters( 'rt_tpg_layouts_type', $layoutType );
1323
+ }
1324
+
1325
+ function rtTPGLayouts() {
1326
+ $layouts = [
1327
+ 'layout1' => array(
1328
+ 'title' => __( "Grid Layout 1", "the-post-grid" ),
1329
+ 'layout' => 'grid',
1330
+ 'layout_link' => 'https://www.radiustheme.com/demo/plugins/the-post-grid/',
1331
+ 'img' => rtTPG()->assetsUrl . 'images/layouts/grid1.png',
1332
  ),
1333
+ 'layout12' => array(
1334
+ 'title' => esc_html__( "Grid Layout 2", "the-post-grid-pro" ),
1335
+ 'layout' => 'grid',
1336
+ 'layout_link' => 'https://www.radiustheme.com/demo/plugins/the-post-grid/grid-layout-2/',
1337
+ 'img' => rtTPG()->assetsUrl . 'images/layouts/grid10.png'
 
1338
  ),
1339
+ 'layout5' => array(
1340
+ 'title' => __( "Grid Hover 1", "the-post-grid" ),
1341
+ 'layout' => 'grid_hover',
1342
+ 'layout_link' => 'https://www.radiustheme.com/demo/plugins/the-post-grid/hover-layout-1/',
1343
+ 'img' => rtTPG()->assetsUrl . 'images/layouts/grid3.png'
 
1344
  ),
1345
+ 'layout6' => array(
1346
+ 'title' => esc_html__( "Grid Hover 2", "the-post-grid-pro" ),
1347
+ 'layout' => 'grid_hover',
1348
+ 'layout_link' => 'https://www.radiustheme.com/demo/plugins/the-post-grid/hover-layout-2/',
1349
+ 'img' => rtTPG()->assetsUrl . 'images/layouts/grid4.png'
1350
  ),
1351
+ 'layout7' => array(
1352
+ 'title' => esc_html__( "Grid Hover 3", "the-post-grid-pro" ),
1353
+ 'layout' => 'grid_hover',
1354
+ 'layout_link' => 'https://www.radiustheme.com/demo/plugins/the-post-grid/hover-layout-3/',
1355
+ 'img' => rtTPG()->assetsUrl . 'images/layouts/grid5.png'
1356
  ),
1357
+ 'layout2' => array(
1358
+ 'title' => __( "List Layout 1", "the-post-grid" ),
1359
+ 'layout' => 'list',
1360
+ 'layout_link' => 'https://www.radiustheme.com/demo/plugins/the-post-grid/list-layout-1/',
1361
+ 'img' => rtTPG()->assetsUrl . 'images/layouts/list1.png',
1362
  ),
1363
+ 'layout3' => array(
1364
+ 'title' => __( "List Layout 2", "the-post-grid" ),
1365
+ 'layout' => 'list',
1366
+ 'layout_link' => 'https://www.radiustheme.com/demo/plugins/the-post-grid/list-layout-rounded-image/',
1367
+ 'img' => rtTPG()->assetsUrl . 'images/layouts/list2.png',
1368
  ),
1369
+ 'isotope1' => array(
1370
+ 'title' => __( "Isotope Layout 1", "the-post-grid" ),
1371
+ 'layout' => 'isotope',
1372
+ 'layout_link' => 'https://www.radiustheme.com/demo/plugins/the-post-grid/layout-4-filter/',
1373
+ 'img' => rtTPG()->assetsUrl . 'images/layouts/isotope1.png',
 
 
 
 
 
1374
  ),
1375
+ ];
1376
+
1377
+ return apply_filters( 'tpg_layouts', $layouts );
1378
+ }
1379
+
1380
+ function rtTPGItemFields() {
1381
+ $items = [
1382
+ 'heading' => __( "ShortCode Heading", "the-post-grid" ),
1383
+ 'title' => __( "Title", "the-post-grid" ),
1384
+ 'excerpt' => __( "Excerpt", "the-post-grid" ),
1385
+ 'read_more' => __( "Read More", "the-post-grid" ),
1386
+ 'post_date' => __( "Post Date", "the-post-grid" ),
1387
+ 'author' => __( "Author", "the-post-grid" ),
1388
+ 'categories' => __( "Categories", "the-post-grid" ),
1389
+ 'tags' => __( "Tags", "the-post-grid" ),
1390
+ 'comment_count' => __( "Comment count", "the-post-grid" ),
1391
+ ];
1392
+
1393
+ return apply_filters( 'tpg_field_selection_items', $items );
1394
+ }
1395
+
1396
+ function postLoadingType() {
1397
+ return [
1398
+ 'pagination' => "Pagination",
1399
+ 'pagination_ajax' => "Ajax Number Pagination ( Only for Grid )",
1400
+ 'load_more' => "Load more button (by ajax loading)",
1401
+ 'load_on_scroll' => "Load more on scroll (by ajax loading)",
1402
+ ];
1403
+ }
1404
+
1405
+ function scGridOpt() {
1406
+ return [
1407
+ 'even' => "Even",
1408
+ 'masonry' => "Masonry",
1409
+ ];
1410
+ }
1411
+
1412
+ function extraStyle() {
1413
+ return apply_filters( 'tpg_extra_style', [
1414
+ 'title' => "Title",
1415
+ 'title_hover' => "Title hover",
1416
+ 'excerpt' => "Excerpt",
1417
+ 'meta_data' => "Meta Data",
1418
+ ] );
1419
+ }
1420
+
1421
+ function scFontSize() {
1422
+ $num = [];
1423
+ for ( $i = 10; $i <= 50; $i ++ ) {
1424
+ $num[ $i ] = $i . "px";
1425
+ }
1426
+
1427
+ return $num;
1428
+ }
1429
+
1430
+ function scAlignment() {
1431
+ return [
1432
+ 'left' => "Left",
1433
+ 'right' => "Right",
1434
+ 'center' => "Center",
1435
+ 'justify' => "Justify",
1436
+ ];
1437
+ }
1438
+
1439
+ function scReadMoreButtonPositionList() {
1440
+ return [
1441
+ 'left' => "Left",
1442
+ 'right' => "Right",
1443
+ 'center' => "Center",
1444
+ ];
1445
+ }
1446
+
1447
+
1448
+ function scTextWeight() {
1449
+ return [
1450
+ 'normal' => "Normal",
1451
+ 'bold' => "Bold",
1452
+ 'bolder' => "Bolder",
1453
+ 'lighter' => "Lighter",
1454
+ 'inherit' => "Inherit",
1455
+ 'initial' => "Initial",
1456
+ 'unset' => "Unset",
1457
+ 100 => '100',
1458
+ 200 => '200',
1459
+ 300 => '300',
1460
+ 400 => '400',
1461
+ 500 => '500',
1462
+ 600 => '600',
1463
+ 700 => '700',
1464
+ 800 => '800',
1465
+ 900 => '900',
1466
+ ];
1467
+ }
1468
+
1469
+ function imageCropType() {
1470
+ return [
1471
+ 'soft' => "Soft Crop",
1472
+ 'hard' => "Hard Crop",
1473
+ ];
1474
+ }
1475
+
1476
+ function rt_filter_type() {
1477
+ return [
1478
+ 'dropdown' => "Dropdown",
1479
+ 'button' => "Button",
1480
+ ];
1481
+ }
1482
+
1483
+ function get_pro_feature_list() {
1484
+ return '<ol>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1485
  <li>Fully responsive and mobile friendly.</li>
1486
  <li>55 Different Layouts</li>
1487
  <li>Even and Masonry Grid.</li>
1500
  <a href="https://www.radiustheme.com/downloads/the-post-grid-pro-for-wordpress/" class="rt-admin-btn" target="_blank">' . __("Get Pro Version", "the-post-grid") . '</a>';
1501
  }
1502
 
1503
+ }
1504
 
1505
  endif;
lib/classes/rtTPGPreview.php CHANGED
@@ -9,19 +9,18 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
9
  private $l4toggle = false;
10
 
11
  function __construct() {
12
- add_action( 'wp_ajax_tpgPreviewAjaxCall', array( $this, 'tpgPreviewAjaxCall' ) );
13
  }
14
 
15
  /**
16
  * Preview rendering
17
  */
18
  function tpgPreviewAjaxCall() {
19
-
20
  $msg = $data = null;
21
  $error = true;
22
  if ( rtTPG()->verifyNonce() ) {
23
- $error = false;
24
- $scMeta = $_REQUEST;
25
 
26
  $rand = mt_rand();
27
  $layoutID = "rt-tpg-container-" . $rand;
@@ -36,6 +35,7 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
36
  $isGrid = preg_match( '/layout/', $layout );
37
  $isWooCom = preg_match( '/wc/', $layout );
38
  $isOffset = preg_match( '/offset/', $layout );
 
39
 
40
  $dCol = ( isset( $scMeta['column'] ) ? absint( $scMeta['column'] ) : 3 );
41
  $tCol = ( isset( $scMeta['tpg_tab_column'] ) ? absint( $scMeta['tpg_tab_column'] ) : 2 );
@@ -55,23 +55,36 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
55
  $tCol = ( $tCol < 3 ? 2 : $tCol );
56
  $mCol = ( $mCol < 3 ? 1 : $mCol );
57
  }
58
- $arg = array();
59
- $fImg = ( ! empty( $scMeta['feature_image'] ) ? true : false );
60
- $fImgSize = ( isset( $scMeta['featured_image_size'] ) ? $scMeta['featured_image_size'] : "medium" );
61
- $mediaSource = ( isset( $scMeta['media_source'] ) ? $scMeta['media_source'] : "feature_image" );
62
- $arg['excerpt_type'] = ( isset( $scMeta['tgp_excerpt_type'] ) ? $scMeta['tgp_excerpt_type'] : 'character' );
63
- $arg['title_limit_type'] = ( isset( $scMeta['tpg_title_limit_type'] ) ? $scMeta['tpg_title_limit_type'] : 'character' );
64
- $arg['excerpt_limit'] = ( isset( $scMeta['excerpt_limit'] ) ? absint( $scMeta['excerpt_limit'] ) : 0 );
65
- $arg['title_limit'] = ( isset( $scMeta['tpg_title_limit'] ) ? absint( $scMeta['tpg_title_limit'] ) : 0 );
66
- $arg['excerpt_more_text'] = ( isset( $scMeta['tgp_excerpt_more_text'] ) ? $scMeta['tgp_excerpt_more_text'] : null );
67
- $arg['read_more_text'] = ( ! empty( $scMeta['tgp_read_more_text'] ) ? $scMeta['tgp_read_more_text'] : __( 'Read More',
68
- 'the-post-grid' ) );
69
- $arg['show_all_text'] = ( ! empty( $scMeta['tpg_show_all_text'] ) ? $scMeta['tpg_show_all_text'] : __( 'Show all',
70
- 'the-post-grid' ) );
71
- $arg['tpg_title_position'] = isset( $scMeta['tpg_title_position'] ) && ! empty( $scMeta['tpg_title_position'] ) ? $scMeta['tpg_title_position'] : null;
72
- $arg['btn_alignment_class'] = isset($scMeta['tpg_read_more_button_alignment']) && !empty($scMeta['tpg_read_more_button_alignment']) ? $scMeta['tpg_read_more_button_alignment'] : '';
 
 
 
 
 
 
 
 
 
 
 
 
 
73
  /* Argument create */
74
- $args = array();
75
  $postType = ( isset( $scMeta['tpg_post_type'] ) ? $scMeta['tpg_post_type'] : null );
76
 
77
  if ( $postType ) {
@@ -94,6 +107,7 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
94
 
95
  /* LIMIT */
96
  $limit = ( ( empty( $scMeta['limit'] ) || $scMeta['limit'] === '-1' ) ? 10000000 : (int) $scMeta['limit'] );
 
97
  $args['posts_per_page'] = $limit;
98
  $pagination = ( ! empty( $scMeta['pagination'] ) ? true : false );
99
  $posts_loading_type = ( ! empty( $scMeta['posts_loading_type'] ) ? $scMeta['posts_loading_type'] : "pagination" );
@@ -114,33 +128,31 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
114
  if ( intval( $args['posts_per_page'] ) > $limit - $offset ) {
115
  $args['posts_per_page'] = $limit - $offset;
116
  }
117
-
118
  }
119
 
120
  // Advance Filter
121
- $adv_filter = ( isset( $scMeta['post_filter'] ) ? $scMeta['post_filter'] : array() );
122
  $taxFilter = ( ! empty( $scMeta['tgp_filter_taxonomy'] ) ? $scMeta['tgp_filter_taxonomy'] : null );
123
  $taxHierarchical = ! empty( $scMeta['tgp_filter_taxonomy_hierarchical'] ) ? true : false;
124
- $taxFilterTerms = array();
125
  $taxFilterOperator = "IN";
126
  // Taxonomy
127
- $taxQ = array();
128
  if ( in_array( 'tpg_taxonomy', $adv_filter ) && isset( $scMeta['tpg_taxonomy'] ) ) {
129
-
130
  if ( is_array( $scMeta['tpg_taxonomy'] ) && ! empty( $scMeta['tpg_taxonomy'] ) ) {
131
  foreach ( $scMeta['tpg_taxonomy'] as $taxonomy ) {
132
- $terms = ( isset( $scMeta[ 'term_' . $taxonomy ] ) ? $scMeta[ 'term_' . $taxonomy ] : array() );
133
  if ( $taxonomy == $taxFilter ) {
134
  $taxFilterTerms = $terms;
135
  }
136
  if ( is_array( $terms ) && ! empty( $terms ) ) {
137
  $operator = ( isset( $scMeta[ 'term_operator_' . $taxonomy ] ) ? $scMeta[ 'term_operator_' . $taxonomy ] : "IN" );
138
- $taxQ[] = array(
139
  'taxonomy' => $taxonomy,
140
  'field' => 'term_id',
141
  'terms' => $terms,
142
  'operator' => $operator,
143
- );
144
  }
145
  }
146
  }
@@ -198,7 +210,7 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
198
  break;
199
  case 'rating' :
200
  // Sorting handled later though a hook
201
- add_filter( 'posts_clauses', array( $this, 'order_by_rating_post_clauses' ) );
202
  break;
203
  case 'title' :
204
  $args['orderby'] = 'title';
@@ -208,21 +220,21 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
208
  }
209
  // Status
210
  if ( in_array( 'tpg_post_status', $adv_filter ) ) {
211
- $post_status = ( isset( $scMeta['tpg_post_status'] ) ? $scMeta['tpg_post_status'] : array() );
212
  if ( ! empty( $post_status ) ) {
213
  $args['post_status'] = $post_status;
214
  }
215
  } else {
216
- $args['post_status'] = 'publish';
217
- }
218
  // Author
219
- $filterAuthors = array();
220
- $author = ( isset( $scMeta['author'] ) ? $scMeta['author'] : array() );
221
  if ( in_array( 'author', $adv_filter ) && ! empty( $author ) ) {
222
  $filterAuthors = $args['author__in'] = $author;
223
  }
224
  // Search
225
- $s = ( isset( $scMeta['s'] ) ? $scMeta['s'] : array() );
226
  if ( in_array( 's', $adv_filter ) && ! empty( $s ) ) {
227
  $args['s'] = $s;
228
  }
@@ -232,21 +244,20 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
232
  $startDate = ( ! empty( $scMeta['date_range_start'] ) ? $scMeta['date_range_start'] : null );
233
  $endDate = ( ! empty( $scMeta['date_range_end'] ) ? $scMeta['date_range_end'] : null );
234
  if ( $startDate && $endDate ) {
235
- $args['date_query'] = array(
236
- array(
237
  'after' => $startDate,
238
  'before' => $endDate,
239
  'inclusive' => true,
240
- ),
241
- );
242
  }
243
  }
244
 
245
  $settings = get_option( rtTPG()->options['settings'] );
246
- $override_items = ! empty( $settings['template_override_items'] ) ? $settings['template_override_items'] : array();
247
  $dataArchive = null;
248
  if ( ( is_archive() || is_search() || is_tag() || is_author() ) && ! empty( $override_items ) ) {
249
-
250
  unset( $args['post_type'] );
251
  unset( $args['tax_query'] );
252
  unset( $args['author__in'] );
@@ -257,15 +268,15 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
257
  $aValue = $args['tag'] = $obj->slug;
258
  $aType = 'tag';
259
  }
260
- } else if ( in_array( 'category-archive', $override_items ) && is_category() ) {
261
  if ( ! empty( $obj->slug ) ) {
262
  $aValue = $args['category_name'] = $obj->slug;
263
  }
264
  $aType = 'category';
265
- } else if ( in_array( 'author-archive', $override_items ) && is_author() ) {
266
  $aValue = $args['author'] = $obj->ID;
267
  $aType = 'author';
268
- } else if ( in_array( 'search', $override_items ) && is_search() ) {
269
  $aValue = $args['s'] = get_search_query();
270
  $aType = 'search';
271
  }
@@ -296,9 +307,6 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
296
  }
297
  $gridType = ! empty( $scMeta['grid_style'] ) ? $scMeta['grid_style'] : 'even';
298
  $arg_class = [];
299
- if (!$isIsotope && !rtTPG()->hasPro()) {
300
- $arg_class[] = 'rt-equal-height';
301
- }
302
  $arg_class[] = " rt-grid-item";
303
  if ( ! $isCarousel && ! $isOffset ) {
304
  $arg_class[] = $gridType . "-grid-item";
@@ -306,12 +314,22 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
306
  if ( $isOffset ) {
307
  $arg_class[] = "rt-offset-item";
308
  }
 
 
 
 
 
 
 
 
 
 
309
 
310
  $masonryG = null;
311
- if ( $gridType == "even" ) {
312
  $masonryG = "tpg-even";
313
- } else if ( $gridType == "masonry" && ! $isIsotope && ! $isCarousel ) {
314
- $masonryG = "tpg-masonry";
315
  }
316
  $preLoader = $preLoaderHtml = null;
317
  if ( $isIsotope ) {
@@ -319,7 +337,7 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
319
  $preLoader = 'tpg-pre-loader';
320
  }
321
  if ( $isCarousel ) {
322
- $arg_class[] = 'carousel-item';
323
  $preLoader = 'tpg-pre-loader';
324
  }
325
  $arg['class'] = implode( " ", $arg_class );
@@ -337,10 +355,11 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
337
 
338
  $arg['anchorClass'] = null;
339
  $arg['anchorClass'] = $arg['link_target'] = null;
340
- $link = ! empty( $scMeta['link_to_detail_page'] ) ? $scMeta['link_to_detail_page'] : 'yes';
 
341
  $isSinglePopUp = false;
342
  $linkType = ! empty( $scMeta['detail_page_link_type'][0] ) ? $scMeta['detail_page_link_type'][0] : 'popup';
343
- if ( $link == 'yes' ) {
344
  if ( $linkType == 'popup' && rtTPG()->hasPro() ) {
345
  $popupType = ! empty( $scMeta['popup_type'][0] ) ? $scMeta['popup_type'][0] : 'single';
346
  if ( $popupType == 'single' ) {
@@ -357,7 +376,7 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
357
  }
358
  $isSinglePopUp = false;
359
  $linkType = ! empty( $scMeta['detail_page_link_type'] ) ? $scMeta['detail_page_link_type'] : 'popup';
360
- if ( $link == 'yes' && $linkType == 'popup' && rtTPG()->hasPro() ) {
361
  $popupType = ! empty( $scMeta['popup_type'] ) ? $scMeta['popup_type'] : 'single';
362
  if ( $popupType == 'single' ) {
363
  $arg['anchorClass'] .= ' tpg-single-popup';
@@ -369,10 +388,13 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
369
 
370
  $parentClass = ( ! empty( $scMeta['parent_class'] ) ? trim( $scMeta['parent_class'] ) : null );
371
  $defaultImgId = ( ! empty( $scMeta['default_preview_image'] ) ? absint( $scMeta['default_preview_image'] ) : null );
372
- $customImgSize = ( ! empty( $scMeta['custom_image_size'] ) ? $scMeta['custom_image_size'] : array() );
 
 
 
373
 
374
- $arg['items'] = isset( $scMeta['item_fields'] ) ? ( $scMeta['item_fields'] ? $scMeta['item_fields'] : array() ) : array();
375
- $arg['scID'] = $scID = $scMeta['sc_id'];
376
 
377
  // Set readmore false if excerpt type = full content
378
  if ( isset( $arg['excerpt_type'] ) && $arg['excerpt_type'] === 'full' && ( $key = array_search( 'read_more', $arg['items'] ) ) !== false ) {
@@ -382,7 +404,7 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
382
  if ( isset( $scMeta['ignore_sticky_posts'] ) ) {
383
  $args['ignore_sticky_posts'] = $scMeta['ignore_sticky_posts'];
384
  }
385
- $filters = ! empty( $scMeta['tgp_filter'] ) ? $scMeta['tgp_filter'] : array();
386
  $action_term = ! empty( $scMeta['tgp_default_filter'] ) ? absint( $scMeta['tgp_default_filter'] ) : 0;
387
  $hide_all_button = ! empty( $scMeta['tpg_hide_all_button'] ) ? true : false;
388
  if ( $taxHierarchical ) {
@@ -398,23 +420,49 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
398
  }
399
 
400
  if ( in_array( '_taxonomy_filter', $filters ) && $taxFilter && $action_term ) {
401
- $args['tax_query'] = array(
402
- array(
403
  'taxonomy' => $taxFilter,
404
  'field' => 'term_id',
405
- 'terms' => array( $action_term ),
406
- )
407
- );
408
  }
409
 
410
- $arg['title_tag'] = (!empty($scMeta['title_tag']) && in_array($scMeta['title_tag'], array_keys(rtTPG()->getTitleTags()))) ? esc_attr($scMeta['title_tag']) : 'h3';
 
 
 
 
 
 
 
 
411
 
412
  $gridQuery = new WP_Query( $args );
413
  // Start layout
414
  $data .= rtTPG()->layoutStyle( $layoutID, $scMeta, $layout );
415
  $containerDataAttr .= "";
416
  $data .= "<div class='rt-container-fluid rt-tpg-container {$parentClass}' id='{$layoutID}' {$dataArchive} {$containerDataAttr}>";
417
- $filters = ! empty( $scMeta['tgp_filter'] ) ? $scMeta['tgp_filter'] : array();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
418
  if ( ! empty( $filters ) && ( $isGrid || $isOffset || $isWooCom ) ) {
419
  $data .= "<div class='rt-layout-filter-container rt-clear'><div class='rt-filter-wrap'>";
420
  $allText = apply_filters( 'tpg_filter_all_text', __( "All", "the-post-grid" ), $scMeta );
@@ -498,7 +546,8 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
498
  }
499
  }
500
  if ( ! $hide_all_button ) {
501
- $htmlButton = "<span class='term-dropdown-item rt-filter-dropdown-item' data-term='all'><span class='rt-text'>" . $allText . "{$pAllCount}</span></span>" . $htmlButton;
 
502
  }
503
  $htmlButton = sprintf( '<span class="term-dropdown rt-filter-dropdown">%s</span>', $htmlButton );
504
 
@@ -545,7 +594,6 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
545
  $bItems .= "<span class='term-button-item rt-filter-button-item {$termSelected}' data-term='{$id}'>{$term['name']}{$postCount}{$sT}</span>";
546
  }
547
  }
548
-
549
  } else {
550
  $bItems .= "<span class='term-button-item rt-filter-button-item {$termSelected}' data-term='{$id}'>{$term['name']}{$postCount}{$sT}</span>";
551
  }
@@ -567,7 +615,7 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
567
  $post_count = ( ! empty( $scMeta['tpg_post_count'] ) ? $scMeta['tpg_post_count'] : null );
568
  $postCountClass = ( $post_count ? " has-post-count" : null );
569
 
570
- $users = get_users( apply_filters( 'tpg_author_arg', array() ) );
571
 
572
  $allSelect = " selected";
573
  $isTermSelected = false;
@@ -687,10 +735,9 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
687
  $data .= "<div data-title='" . __( "Loading ...",
688
  'the-post-grid' ) . "' class='rt-row rt-content-loader {$layout} {$masonryG} {$preLoader}'>";
689
  if ( $gridQuery->have_posts() ) {
690
-
691
  if ( $isCarousel ) {
692
- $cOpt = ! empty( $scMeta['carousel_property'] ) ? $scMeta['carousel_property'] : array();
693
- $slider_js_options = apply_filters( 'rttpg_slider_js_options', array(
694
  "speed" => ! empty( $scMeta['tpg_carousel_speed'] ) ? absint( $scMeta['tpg_carousel_speed'] ) : 250,
695
  "autoPlayTimeOut" => ! empty( $scMeta['tpg_carousel_autoplay_timeout'] ) ? absint( $scMeta['tpg_carousel_autoplay_timeout'] ) : 5000,
696
  "autoPlay" => in_array( 'auto_play', $cOpt ) ? true : false,
@@ -699,39 +746,42 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
699
  "dots" => in_array( 'pagination', $cOpt ) ? true : false,
700
  "loop" => in_array( 'loop', $cOpt ) ? true : false,
701
  "lazyLoad" => in_array( 'lazyLoad', $cOpt ) ? true : false,
702
- "autoHeight" => in_array( 'autoHeight', $cOpt ) ? true : false,
703
- "rtl" => in_array( 'rtl', $cOpt ) ? true : false
704
- ), $scMeta );
705
- $data .= sprintf( '<div class="rt-carousel-holder" data-rtowl-options="%s">',
706
  htmlspecialchars( wp_json_encode( $slider_js_options ) ) );
707
  }
708
  $isotope_filter = null;
709
  if ( $isIsotope ) {
710
  $isotope_filter = isset( $scMeta['isotope_filter'] ) ? $scMeta['isotope_filter'] : null;
711
  $isotope_dropdown_filter = isset( $scMeta['isotope_filter_dropdown'] ) ? $scMeta['isotope_filter_dropdown'] : null;
712
- $selectedTerms = array();
713
- if ( isset( $scMeta['post_filter'] ) && in_array( 'tpg_taxonomy',
714
- $scMeta['post_filter'] ) && isset( $scMeta['tpg_taxonomy'] ) && in_array( $isotope_filter,
 
 
 
715
  $scMeta['tpg_taxonomy'] )
716
  ) {
717
- $selectedTerms = ( isset( $scMeta[ 'term_' . $isotope_filter ] ) ? $scMeta[ 'term_' . $isotope_filter ] : array() );
718
  }
719
  global $wp_version;
720
  if ( version_compare( $wp_version, '4.5', '>=' ) ) {
721
- $terms = get_terms( $isotope_filter, array(
722
  'meta_key' => '_rt_order',
723
  'orderby' => 'meta_value_num',
724
  'order' => 'ASC',
725
  'hide_empty' => false,
726
- 'include' => $selectedTerms
727
- ) );
728
  } else {
729
- $terms = get_terms( $isotope_filter, array(
730
  'orderby' => 'name',
731
  'order' => 'ASC',
732
  'hide_empty' => false,
733
- 'include' => $selectedTerms
734
- ) );
735
  }
736
  $data .= '<div class="tpg-iso-filter">';
737
  $htmlButton = $drop = null;
@@ -760,7 +810,8 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
760
  }
761
  $filter_count = ! empty( $scMeta['isotope_filter_count'] ) ? true : false;
762
  $filter_url = ! empty( $scMeta['isotope_filter_url'] ) ? true : false;
763
- $htmlButton = "<div id='iso-button-{$rand}' class='rt-tpg-isotope-buttons button-group filter-button-group option-set' data-url='{$filter_url}' data-count='{$filter_count}'>{$htmlButton}</div>";
 
764
 
765
  if ( $isotope_dropdown_filter ) {
766
  $data .= "<select class='isotope-dropdown-filter'>{$drop}</select>";
@@ -782,6 +833,9 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
782
  if ( $layout == 'layout4' ) {
783
  $tgCol = round( 12 / $dCol );
784
  }
 
 
 
785
  while ( $gridQuery->have_posts() ) : $gridQuery->the_post();
786
  if ( $tgCol == $l ) {
787
  if ( $this->l4toggle ) {
@@ -791,19 +845,21 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
791
  }
792
  $l = 0;
793
  }
794
- $pID = get_the_ID();
795
- $arg['pID'] = $pID;
796
- $arg['title'] = rtTPG()->get_the_title( $pID, $arg );
797
- $arg['pLink'] = get_permalink();
798
- $arg['toggle'] = $this->l4toggle;
799
- $arg['author'] = '<a href="' . get_author_posts_url( get_the_author_meta( 'ID' ) ) . '">' . get_the_author() . '</a>';
800
- $cc = wp_count_comments( $pID );
801
- $arg['date'] = get_the_date();
802
- $arg['excerpt'] = rtTPG()->get_the_excerpt( $pID, $arg );
803
- $arg['categories'] = get_the_term_list( $pID, 'category', null, ', ' );
804
- $arg['tags'] = get_the_term_list( $pID, 'post_tag', null, ', ' );
 
 
805
  if ( $isIsotope ) {
806
- $termAs = wp_get_post_terms( $pID, $isotope_filter, array( "fields" => "all" ) );
807
  $isoFilter = [];
808
  if ( ! empty( $termAs ) ) {
809
  foreach ( $termAs as $term ) {
@@ -824,8 +880,10 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
824
  } else {
825
  $arg['comment'] = "{$cc->total_comments}";
826
  }
827
- $imgSrc = null;
828
-
 
 
829
  if ( $isOffset ) {
830
  if ( $offLoop == 0 ) {
831
  $arg['imgSrc'] = ! $fImg ? rtTPG()->getFeatureImageSrc( $pID, $fImgSize, $mediaSource,
@@ -835,7 +893,7 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
835
  $offsetBigHtml = rtTPG()->render( 'layouts/' . $layout, $arg, true );
836
  } else {
837
  $arg['offset'] = 'small';
838
- $arg['offsetCol'] = array( $dCol, $tCol, $mCol );
839
  $arg['imgSrc'] = ! $fImg ? rtTPG()->getFeatureImageSrc( $pID, 'thumbnail', $mediaSource,
840
  $defaultImgId,
841
  $customImgSize ) : null;
@@ -856,23 +914,35 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
856
  if ( $layout == "offset03" || $layout == "offset04" ) {
857
  $oDCol['big'] = $oTCol['big'] = $oDCol['small'] = $oTCol['small'] = 6;
858
  $oMCol['big'] = $oMCol['small'] = 12;
 
 
 
859
  }
860
  $data .= "<div class='rt-col-md-{$oDCol['big']} rt-col-sm-{$oTCol['big']} rt-col-xs-{$oMCol['big']}'><div class='rt-row'>{$offsetBigHtml}</div></div>";
861
  $data .= "<div class='rt-col-md-{$oDCol['small']} rt-col-sm-{$oTCol['small']} rt-col-xs-{$oMCol['small']}'><div class='rt-row offset-small-wrap'>{$offsetSmallHtml}</div></div>";
862
  }
863
  if ( $isIsotope || $isCarousel ) {
864
  $data .= '</div>'; // End isotope / Carousel item holder
 
 
 
 
 
 
 
 
 
865
  }
866
-
867
  } else {
868
- $not_found_text = isset( $scMeta['tgp_not_found_text'] ) && ! empty( $scMeta['tgp_not_found_text'] ) ? esc_attr( $scMeta['tgp_not_found_text'] ) : __( 'No post found', 'the-post-grid' );
 
869
  $data .= "<p>" . $not_found_text . "</p>";
870
  }
871
  $data .= $preLoaderHtml;
872
  $data .= "</div>"; // End row
873
  $htmlUtility = null;
874
  if ( $pagination && ! $isCarousel ) {
875
- if ( $isOffset ) {
876
  $posts_loading_type = "page_prev_next";
877
  $htmlUtility .= "<div class='rt-cb-page-prev-next'>
878
  <span class='rt-cb-prev-btn'><i class='fa fa-angle-left' aria-hidden='true'></i></span>
@@ -903,7 +973,6 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
903
  'the-post-grid' ) . "</button>
904
  </div>";
905
  }
906
-
907
  } elseif ( $posts_loading_type == "load_on_scroll" ) {
908
  if ( $isGrid ) {
909
  $htmlUtility .= "<div class='rt-infinite-action'>
@@ -926,7 +995,8 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
926
  $l4toggle = "data-l4toggle='{$this->l4toggle}'";
927
  }
928
  if ( $isGrid || $isOffset || $isWooCom ) {
929
- $data .= "<div class='rt-pagination-wrap' data-total-pages='{$gridQuery->max_num_pages}' data-posts-per-page='{$args['posts_per_page']}' data-type='{$posts_loading_type}' {$l4toggle} >" . $htmlUtility . "</div>";
 
930
  } else {
931
  $data .= "<div class='rt-tpg-utility' {$l4toggle}>" . $htmlUtility . "</div>";
932
  }
@@ -939,14 +1009,14 @@ if ( ! class_exists( 'rtTPGPreview' ) ):
939
  $msg = __( 'Session Error !!', 'the-post-grid' );
940
  }
941
 
942
- wp_send_json( array(
943
  'error' => $error,
944
  'msg' => $msg,
945
- 'data' => $data
946
- ) );
947
  die();
948
-
949
  }
 
950
  }
951
 
952
  endif;
9
  private $l4toggle = false;
10
 
11
  function __construct() {
12
+ add_action( 'wp_ajax_tpgPreviewAjaxCall', [ $this, 'tpgPreviewAjaxCall' ] );
13
  }
14
 
15
  /**
16
  * Preview rendering
17
  */
18
  function tpgPreviewAjaxCall() {
 
19
  $msg = $data = null;
20
  $error = true;
21
  if ( rtTPG()->verifyNonce() ) {
22
+ $error = false;
23
+ $scMeta = $_REQUEST;
24
 
25
  $rand = mt_rand();
26
  $layoutID = "rt-tpg-container-" . $rand;
35
  $isGrid = preg_match( '/layout/', $layout );
36
  $isWooCom = preg_match( '/wc/', $layout );
37
  $isOffset = preg_match( '/offset/', $layout );
38
+ $isGridHover = preg_match( '/grid_hover/', $layout );
39
 
40
  $dCol = ( isset( $scMeta['column'] ) ? absint( $scMeta['column'] ) : 3 );
41
  $tCol = ( isset( $scMeta['tpg_tab_column'] ) ? absint( $scMeta['tpg_tab_column'] ) : 2 );
55
  $tCol = ( $tCol < 3 ? 2 : $tCol );
56
  $mCol = ( $mCol < 3 ? 1 : $mCol );
57
  }
58
+ $arg = [];
59
+ $fImg = ( ! empty( $scMeta['feature_image'] ) ? true : false );
60
+ $fImgSize = ( isset( $scMeta['featured_image_size'] ) ? $scMeta['featured_image_size'] : "medium" );
61
+ $mediaSource = ( isset( $scMeta['media_source'] ) ? $scMeta['media_source'] : "feature_image" );
62
+ $arg['excerpt_type'] = ( isset( $scMeta['tgp_excerpt_type'] ) ? $scMeta['tgp_excerpt_type'] : 'character' );
63
+ $arg['title_limit_type'] = ( isset( $scMeta['tpg_title_limit_type'] ) ? $scMeta['tpg_title_limit_type'] : 'character' );
64
+ $arg['excerpt_limit'] = ( isset( $scMeta['excerpt_limit'] ) ? absint( $scMeta['excerpt_limit'] ) : 0 );
65
+ $arg['title_limit'] = ( isset( $scMeta['tpg_title_limit'] ) ? absint( $scMeta['tpg_title_limit'] ) : 0 );
66
+ $arg['excerpt_more_text'] = ( isset( $scMeta['tgp_excerpt_more_text'] ) ? $scMeta['tgp_excerpt_more_text'] : null );
67
+ $arg['read_more_text'] = ( ! empty( $scMeta['tgp_read_more_text'] )
68
+ ? $scMeta['tgp_read_more_text']
69
+ : __( 'Read More',
70
+ 'the-post-grid' ) );
71
+ $arg['show_all_text'] = ( ! empty( $scMeta['tpg_show_all_text'] )
72
+ ? $scMeta['tpg_show_all_text']
73
+ : __( 'Show all',
74
+ 'the-post-grid' ) );
75
+ $arg['tpg_title_position'] = isset( $scMeta['tpg_title_position'] ) && ! empty( $scMeta['tpg_title_position'] ) ? $scMeta['tpg_title_position'] : null;
76
+ $arg['btn_alignment_class'] = isset( $scMeta['tpg_read_more_button_alignment'] ) && ! empty( $scMeta['tpg_read_more_button_alignment'] )
77
+ ? $scMeta['tpg_read_more_button_alignment'] : '';
78
+ // Category Settings
79
+ $arg['category_position'] = isset( $scMeta['tpg_category_position'] ) ? $scMeta['tpg_category_position'] : null;
80
+ $arg['category_style'] = ! empty( $scMeta['tpg_category_style'] ) ? $scMeta['tpg_category_style'] : '';
81
+ $arg['catIcon'] = isset( $scMeta['tpg_category_icon'] ) ? $scMeta['tpg_category_icon'] : true;
82
+ // Meta Settings
83
+ $arg['metaPosition'] = isset( $scMeta['tpg_meta_position'] ) ? $scMeta['tpg_meta_position'] : null;
84
+ $arg['metaIcon'] = ! empty( $scMeta['tpg_meta_icon'] ) ? $scMeta['tpg_meta_icon'] : true;
85
+ $arg['metaSeparator'] = ! empty( $scMeta['tpg_meta_separator'] ) ? $scMeta['tpg_meta_separator'] : '';
86
  /* Argument create */
87
+ $args = [];
88
  $postType = ( isset( $scMeta['tpg_post_type'] ) ? $scMeta['tpg_post_type'] : null );
89
 
90
  if ( $postType ) {
107
 
108
  /* LIMIT */
109
  $limit = ( ( empty( $scMeta['limit'] ) || $scMeta['limit'] === '-1' ) ? 10000000 : (int) $scMeta['limit'] );
110
+ $queryOffset = empty( $scMeta['offset'] ) ? 0 : (int) $scMeta['offset'];
111
  $args['posts_per_page'] = $limit;
112
  $pagination = ( ! empty( $scMeta['pagination'] ) ? true : false );
113
  $posts_loading_type = ( ! empty( $scMeta['posts_loading_type'] ) ? $scMeta['posts_loading_type'] : "pagination" );
128
  if ( intval( $args['posts_per_page'] ) > $limit - $offset ) {
129
  $args['posts_per_page'] = $limit - $offset;
130
  }
 
131
  }
132
 
133
  // Advance Filter
134
+ $adv_filter = ( isset( $scMeta['post_filter'] ) ? $scMeta['post_filter'] : [] );
135
  $taxFilter = ( ! empty( $scMeta['tgp_filter_taxonomy'] ) ? $scMeta['tgp_filter_taxonomy'] : null );
136
  $taxHierarchical = ! empty( $scMeta['tgp_filter_taxonomy_hierarchical'] ) ? true : false;
137
+ $taxFilterTerms = [];
138
  $taxFilterOperator = "IN";
139
  // Taxonomy
140
+ $taxQ = [];
141
  if ( in_array( 'tpg_taxonomy', $adv_filter ) && isset( $scMeta['tpg_taxonomy'] ) ) {
 
142
  if ( is_array( $scMeta['tpg_taxonomy'] ) && ! empty( $scMeta['tpg_taxonomy'] ) ) {
143
  foreach ( $scMeta['tpg_taxonomy'] as $taxonomy ) {
144
+ $terms = ( isset( $scMeta[ 'term_' . $taxonomy ] ) ? $scMeta[ 'term_' . $taxonomy ] : [] );
145
  if ( $taxonomy == $taxFilter ) {
146
  $taxFilterTerms = $terms;
147
  }
148
  if ( is_array( $terms ) && ! empty( $terms ) ) {
149
  $operator = ( isset( $scMeta[ 'term_operator_' . $taxonomy ] ) ? $scMeta[ 'term_operator_' . $taxonomy ] : "IN" );
150
+ $taxQ[] = [
151
  'taxonomy' => $taxonomy,
152
  'field' => 'term_id',
153
  'terms' => $terms,
154
  'operator' => $operator,
155
+ ];
156
  }
157
  }
158
  }
210
  break;
211
  case 'rating' :
212
  // Sorting handled later though a hook
213
+ add_filter( 'posts_clauses', [ $this, 'order_by_rating_post_clauses' ] );
214
  break;
215
  case 'title' :
216
  $args['orderby'] = 'title';
220
  }
221
  // Status
222
  if ( in_array( 'tpg_post_status', $adv_filter ) ) {
223
+ $post_status = ( isset( $scMeta['tpg_post_status'] ) ? $scMeta['tpg_post_status'] : [] );
224
  if ( ! empty( $post_status ) ) {
225
  $args['post_status'] = $post_status;
226
  }
227
  } else {
228
+ $args['post_status'] = 'publish';
229
+ }
230
  // Author
231
+ $filterAuthors = [];
232
+ $author = ( isset( $scMeta['author'] ) ? $scMeta['author'] : [] );
233
  if ( in_array( 'author', $adv_filter ) && ! empty( $author ) ) {
234
  $filterAuthors = $args['author__in'] = $author;
235
  }
236
  // Search
237
+ $s = ( isset( $scMeta['s'] ) ? $scMeta['s'] : [] );
238
  if ( in_array( 's', $adv_filter ) && ! empty( $s ) ) {
239
  $args['s'] = $s;
240
  }
244
  $startDate = ( ! empty( $scMeta['date_range_start'] ) ? $scMeta['date_range_start'] : null );
245
  $endDate = ( ! empty( $scMeta['date_range_end'] ) ? $scMeta['date_range_end'] : null );
246
  if ( $startDate && $endDate ) {
247
+ $args['date_query'] = [
248
+ [
249
  'after' => $startDate,
250
  'before' => $endDate,
251
  'inclusive' => true,
252
+ ],
253
+ ];
254
  }
255
  }
256
 
257
  $settings = get_option( rtTPG()->options['settings'] );
258
+ $override_items = ! empty( $settings['template_override_items'] ) ? $settings['template_override_items'] : [];
259
  $dataArchive = null;
260
  if ( ( is_archive() || is_search() || is_tag() || is_author() ) && ! empty( $override_items ) ) {
 
261
  unset( $args['post_type'] );
262
  unset( $args['tax_query'] );
263
  unset( $args['author__in'] );
268
  $aValue = $args['tag'] = $obj->slug;
269
  $aType = 'tag';
270
  }
271
+ } elseif ( in_array( 'category-archive', $override_items ) && is_category() ) {
272
  if ( ! empty( $obj->slug ) ) {
273
  $aValue = $args['category_name'] = $obj->slug;
274
  }
275
  $aType = 'category';
276
+ } elseif ( in_array( 'author-archive', $override_items ) && is_author() ) {
277
  $aValue = $args['author'] = $obj->ID;
278
  $aType = 'author';
279
+ } elseif ( in_array( 'search', $override_items ) && is_search() ) {
280
  $aValue = $args['s'] = get_search_query();
281
  $aType = 'search';
282
  }
307
  }
308
  $gridType = ! empty( $scMeta['grid_style'] ) ? $scMeta['grid_style'] : 'even';
309
  $arg_class = [];
 
 
 
310
  $arg_class[] = " rt-grid-item";
311
  if ( ! $isCarousel && ! $isOffset ) {
312
  $arg_class[] = $gridType . "-grid-item";
314
  if ( $isOffset ) {
315
  $arg_class[] = "rt-offset-item";
316
  }
317
+ // Category class
318
+ $catHaveBg = ( isset( $scMeta['tpg_category_bg'] ) ? $scMeta['tpg_category_bg'] : '' );
319
+ if ( ! empty( $catHaveBg ) ) {
320
+ $arg_class[] = 'category-have-bg';
321
+ }
322
+ // Image animation type
323
+ $imgAnimationType = isset( $scMeta['tpg_image_animation'] ) ? $scMeta['tpg_image_animation'] : '';
324
+ if ( ! empty( $imgAnimationType ) ) {
325
+ $arg_class[] = $imgAnimationType;
326
+ }
327
 
328
  $masonryG = null;
329
+ if ( $gridType == "even" && ! $isIsotope && ! $isCarousel ) {
330
  $masonryG = "tpg-even";
331
+ } elseif ( $gridType == "masonry" && ! $isIsotope && ! $isCarousel ) {
332
+ $masonryG = " tpg-masonry";
333
  }
334
  $preLoader = $preLoaderHtml = null;
335
  if ( $isIsotope ) {
337
  $preLoader = 'tpg-pre-loader';
338
  }
339
  if ( $isCarousel ) {
340
+ $arg_class[] = 'swiper-slide';
341
  $preLoader = 'tpg-pre-loader';
342
  }
343
  $arg['class'] = implode( " ", $arg_class );
355
 
356
  $arg['anchorClass'] = null;
357
  $arg['anchorClass'] = $arg['link_target'] = null;
358
+ $link = isset( $scMeta['link_to_detail_page'] ) ? $scMeta['link_to_detail_page'] : '1';
359
+ $link = ( $link == 'yes' ) ? '1' : $link;
360
  $isSinglePopUp = false;
361
  $linkType = ! empty( $scMeta['detail_page_link_type'][0] ) ? $scMeta['detail_page_link_type'][0] : 'popup';
362
+ if ( $link == '1' ) {
363
  if ( $linkType == 'popup' && rtTPG()->hasPro() ) {
364
  $popupType = ! empty( $scMeta['popup_type'][0] ) ? $scMeta['popup_type'][0] : 'single';
365
  if ( $popupType == 'single' ) {
376
  }
377
  $isSinglePopUp = false;
378
  $linkType = ! empty( $scMeta['detail_page_link_type'] ) ? $scMeta['detail_page_link_type'] : 'popup';
379
+ if ( $link == '1' && $linkType == 'popup' && rtTPG()->hasPro() ) {
380
  $popupType = ! empty( $scMeta['popup_type'] ) ? $scMeta['popup_type'] : 'single';
381
  if ( $popupType == 'single' ) {
382
  $arg['anchorClass'] .= ' tpg-single-popup';
388
 
389
  $parentClass = ( ! empty( $scMeta['parent_class'] ) ? trim( $scMeta['parent_class'] ) : null );
390
  $defaultImgId = ( ! empty( $scMeta['default_preview_image'] ) ? absint( $scMeta['default_preview_image'] ) : null );
391
+ $customImgSize = ( ! empty( $scMeta['custom_image_size'] ) ? $scMeta['custom_image_size'] : [] );
392
+ // Grid Hover Layout
393
+ $fSmallImgSize = ( isset( $scMeta['featured_small_image_size'] ) ? $scMeta['featured_small_image_size'] : "medium" );
394
+ $customSmallImgSize = ( ! empty( $scMeta['custom_small_image_size'] ) ? $scMeta['custom_small_image_size'] : [] );
395
 
396
+ $arg['items'] = isset( $scMeta['item_fields'] ) ? ( $scMeta['item_fields'] ? $scMeta['item_fields'] : [] ) : [];
397
+ $arg['scID'] = $scID = $scMeta['sc_id'];
398
 
399
  // Set readmore false if excerpt type = full content
400
  if ( isset( $arg['excerpt_type'] ) && $arg['excerpt_type'] === 'full' && ( $key = array_search( 'read_more', $arg['items'] ) ) !== false ) {
404
  if ( isset( $scMeta['ignore_sticky_posts'] ) ) {
405
  $args['ignore_sticky_posts'] = $scMeta['ignore_sticky_posts'];
406
  }
407
+ $filters = ! empty( $scMeta['tgp_filter'] ) ? $scMeta['tgp_filter'] : [];
408
  $action_term = ! empty( $scMeta['tgp_default_filter'] ) ? absint( $scMeta['tgp_default_filter'] ) : 0;
409
  $hide_all_button = ! empty( $scMeta['tpg_hide_all_button'] ) ? true : false;
410
  if ( $taxHierarchical ) {
420
  }
421
 
422
  if ( in_array( '_taxonomy_filter', $filters ) && $taxFilter && $action_term ) {
423
+ $args['tax_query'] = [
424
+ [
425
  'taxonomy' => $taxFilter,
426
  'field' => 'term_id',
427
+ 'terms' => [ $action_term ],
428
+ ],
429
+ ];
430
  }
431
 
432
+ if ( $pagination && $queryOffset && isset( $args['paged'] ) ) {
433
+ $queryOffset = ( $posts_per_page * ( $args['paged'] - 1 ) ) + $queryOffset;
434
+ }
435
+ if ($queryOffset) {
436
+ $args['offset'] = $queryOffset;
437
+ }
438
+
439
+ $arg['title_tag'] = ( ! empty( $scMeta['title_tag'] ) && in_array( $scMeta['title_tag'], array_keys( rtTPG()->getTitleTags() ) ) )
440
+ ? esc_attr( $scMeta['title_tag'] ) : 'h3';
441
 
442
  $gridQuery = new WP_Query( $args );
443
  // Start layout
444
  $data .= rtTPG()->layoutStyle( $layoutID, $scMeta, $layout );
445
  $containerDataAttr .= "";
446
  $data .= "<div class='rt-container-fluid rt-tpg-container {$parentClass}' id='{$layoutID}' {$dataArchive} {$containerDataAttr}>";
447
+ // widget heading
448
+ $heading_tag = isset( $scMeta['tpg_heading_tag'] ) ? $scMeta['tpg_heading_tag'] : 'h2';
449
+ $heading_style = isset( $scMeta['tpg_heading_style'] ) && ! empty( $scMeta['tpg_heading_style'] ) ? $scMeta['tpg_heading_style'] : 'style1';
450
+ $heading_alignment = isset( $scMeta['tpg_heading_alignment'] ) ? $scMeta['tpg_heading_alignment'] : '';
451
+ $heading_link = isset( $scMeta['tpg_heading_link'] ) ? $scMeta['tpg_heading_link'] : '';
452
+
453
+ if ( ! empty( $arg['items'] ) && in_array( 'heading', $arg['items'] ) ) {
454
+ $data .= sprintf( '<div class="tpg-widget-heading-wrapper heading-%1$s %2$s">', $heading_style, $heading_alignment );
455
+ $data .= '<span class="tpg-widget-heading-line line-left"></span>';
456
+ if ( $heading_link ) {
457
+ $data .= sprintf( '<%1$s class="tpg-widget-heading"><a href="%2$s" title="%3$s">%3$s</a></%1$s>', $heading_tag, $heading_link, get_the_title( $scID ) );
458
+ } else {
459
+ $data .= sprintf( '<%1$s class="tpg-widget-heading">%2$s</%1$s>', $heading_tag, get_the_title( $scID ) );
460
+ }
461
+ $data .= '<span class="tpg-widget-heading-line"></span>';
462
+ $data .= '</div>';
463
+ }
464
+
465
+ $filters = ! empty( $scMeta['tgp_filter'] ) ? $scMeta['tgp_filter'] : [];
466
  if ( ! empty( $filters ) && ( $isGrid || $isOffset || $isWooCom ) ) {
467
  $data .= "<div class='rt-layout-filter-container rt-clear'><div class='rt-filter-wrap'>";
468
  $allText = apply_filters( 'tpg_filter_all_text', __( "All", "the-post-grid" ), $scMeta );
546
  }
547
  }
548
  if ( ! $hide_all_button ) {
549
+ $htmlButton = "<span class='term-dropdown-item rt-filter-dropdown-item' data-term='all'><span class='rt-text'>" . $allText
550
+ . "{$pAllCount}</span></span>" . $htmlButton;
551
  }
552
  $htmlButton = sprintf( '<span class="term-dropdown rt-filter-dropdown">%s</span>', $htmlButton );
553
 
594
  $bItems .= "<span class='term-button-item rt-filter-button-item {$termSelected}' data-term='{$id}'>{$term['name']}{$postCount}{$sT}</span>";
595
  }
596
  }
 
597
  } else {
598
  $bItems .= "<span class='term-button-item rt-filter-button-item {$termSelected}' data-term='{$id}'>{$term['name']}{$postCount}{$sT}</span>";
599
  }
615
  $post_count = ( ! empty( $scMeta['tpg_post_count'] ) ? $scMeta['tpg_post_count'] : null );
616
  $postCountClass = ( $post_count ? " has-post-count" : null );
617
 
618
+ $users = get_users( apply_filters( 'tpg_author_arg', [] ) );
619
 
620
  $allSelect = " selected";
621
  $isTermSelected = false;
735
  $data .= "<div data-title='" . __( "Loading ...",
736
  'the-post-grid' ) . "' class='rt-row rt-content-loader {$layout} {$masonryG} {$preLoader}'>";
737
  if ( $gridQuery->have_posts() ) {
 
738
  if ( $isCarousel ) {
739
+ $cOpt = ! empty( $scMeta['carousel_property'] ) ? $scMeta['carousel_property'] : [];
740
+ $slider_js_options = apply_filters( 'rttpg_slider_js_options', [
741
  "speed" => ! empty( $scMeta['tpg_carousel_speed'] ) ? absint( $scMeta['tpg_carousel_speed'] ) : 250,
742
  "autoPlayTimeOut" => ! empty( $scMeta['tpg_carousel_autoplay_timeout'] ) ? absint( $scMeta['tpg_carousel_autoplay_timeout'] ) : 5000,
743
  "autoPlay" => in_array( 'auto_play', $cOpt ) ? true : false,
746
  "dots" => in_array( 'pagination', $cOpt ) ? true : false,
747
  "loop" => in_array( 'loop', $cOpt ) ? true : false,
748
  "lazyLoad" => in_array( 'lazyLoad', $cOpt ) ? true : false,
749
+ "autoHeight" => in_array( 'auto_height', $cOpt ) ? true : false,
750
+ "rtl" => in_array( 'rtl', $cOpt ) ? true : false,
751
+ ], $scMeta );
752
+ $data .= sprintf( '<div class="rt-swiper-holder swiper" data-rtowl-options="%s"><div class="swiper-wrapper">',
753
  htmlspecialchars( wp_json_encode( $slider_js_options ) ) );
754
  }
755
  $isotope_filter = null;
756
  if ( $isIsotope ) {
757
  $isotope_filter = isset( $scMeta['isotope_filter'] ) ? $scMeta['isotope_filter'] : null;
758
  $isotope_dropdown_filter = isset( $scMeta['isotope_filter_dropdown'] ) ? $scMeta['isotope_filter_dropdown'] : null;
759
+ $selectedTerms = [];
760
+ if ( isset( $scMeta['post_filter'] )
761
+ && in_array( 'tpg_taxonomy',
762
+ $scMeta['post_filter'] )
763
+ && isset( $scMeta['tpg_taxonomy'] )
764
+ && in_array( $isotope_filter,
765
  $scMeta['tpg_taxonomy'] )
766
  ) {
767
+ $selectedTerms = ( isset( $scMeta[ 'term_' . $isotope_filter ] ) ? $scMeta[ 'term_' . $isotope_filter ] : [] );
768
  }
769
  global $wp_version;
770
  if ( version_compare( $wp_version, '4.5', '>=' ) ) {
771
+ $terms = get_terms( $isotope_filter, [
772
  'meta_key' => '_rt_order',
773
  'orderby' => 'meta_value_num',
774
  'order' => 'ASC',
775
  'hide_empty' => false,
776
+ 'include' => $selectedTerms,
777
+ ] );
778
  } else {
779
+ $terms = get_terms( $isotope_filter, [
780
  'orderby' => 'name',
781
  'order' => 'ASC',
782
  'hide_empty' => false,
783
+ 'include' => $selectedTerms,
784
+ ] );
785
  }
786
  $data .= '<div class="tpg-iso-filter">';
787
  $htmlButton = $drop = null;
810
  }
811
  $filter_count = ! empty( $scMeta['isotope_filter_count'] ) ? true : false;
812
  $filter_url = ! empty( $scMeta['isotope_filter_url'] ) ? true : false;
813
+ $htmlButton
814
+ = "<div id='iso-button-{$rand}' class='rt-tpg-isotope-buttons button-group filter-button-group option-set' data-url='{$filter_url}' data-count='{$filter_count}'>{$htmlButton}</div>";
815
 
816
  if ( $isotope_dropdown_filter ) {
817
  $data .= "<select class='isotope-dropdown-filter'>{$drop}</select>";
833
  if ( $layout == 'layout4' ) {
834
  $tgCol = round( 12 / $dCol );
835
  }
836
+ $gridPostCount = 0;
837
+ $arg['totalPost'] = $gridQuery->post_count;
838
+
839
  while ( $gridQuery->have_posts() ) : $gridQuery->the_post();
840
  if ( $tgCol == $l ) {
841
  if ( $this->l4toggle ) {
845
  }
846
  $l = 0;
847
  }
848
+ $arg['postCount'] = $gridPostCount ++;
849
+ $pID = get_the_ID();
850
+ $arg['pID'] = $pID;
851
+ $arg['title'] = rtTPG()->get_the_title( $pID, $arg );
852
+ $arg['pLink'] = get_permalink();
853
+ $arg['toggle'] = $this->l4toggle;
854
+ $arg['author'] = '<a href="' . get_author_posts_url( get_the_author_meta( 'ID' ) ) . '">' . get_the_author() . '</a>';
855
+ $cc = wp_count_comments( $pID );
856
+ $arg['date'] = get_the_date();
857
+ $arg['excerpt'] = rtTPG()->get_the_excerpt( $pID, $arg );
858
+ $arg['categories'] = get_the_term_list( $pID, 'category', null, ', ' );
859
+ $arg['tags'] = get_the_term_list( $pID, 'post_tag', null, ', ' );
860
+ $arg['responsiveCol'] = [ $dCol, $tCol, $mCol ];
861
  if ( $isIsotope ) {
862
+ $termAs = wp_get_post_terms( $pID, $isotope_filter, [ "fields" => "all" ] );
863
  $isoFilter = [];
864
  if ( ! empty( $termAs ) ) {
865
  foreach ( $termAs as $term ) {
880
  } else {
881
  $arg['comment'] = "{$cc->total_comments}";
882
  }
883
+ $imgSrc = null;
884
+ $arg['smallImgSrc'] = ! $fImg ? rtTPG()->getFeatureImageSrc( $pID, $fSmallImgSize, $mediaSource,
885
+ $defaultImgId,
886
+ $customSmallImgSize ) : null;
887
  if ( $isOffset ) {
888
  if ( $offLoop == 0 ) {
889
  $arg['imgSrc'] = ! $fImg ? rtTPG()->getFeatureImageSrc( $pID, $fImgSize, $mediaSource,
893
  $offsetBigHtml = rtTPG()->render( 'layouts/' . $layout, $arg, true );
894
  } else {
895
  $arg['offset'] = 'small';
896
+ $arg['offsetCol'] = [ $dCol, $tCol, $mCol ];
897
  $arg['imgSrc'] = ! $fImg ? rtTPG()->getFeatureImageSrc( $pID, 'thumbnail', $mediaSource,
898
  $defaultImgId,
899
  $customImgSize ) : null;
914
  if ( $layout == "offset03" || $layout == "offset04" ) {
915
  $oDCol['big'] = $oTCol['big'] = $oDCol['small'] = $oTCol['small'] = 6;
916
  $oMCol['big'] = $oMCol['small'] = 12;
917
+ } elseif ( $layout == "offset06" ) {
918
+ $oDCol['big'] = 7;
919
+ $oDCol['small'] = 5;
920
  }
921
  $data .= "<div class='rt-col-md-{$oDCol['big']} rt-col-sm-{$oTCol['big']} rt-col-xs-{$oMCol['big']}'><div class='rt-row'>{$offsetBigHtml}</div></div>";
922
  $data .= "<div class='rt-col-md-{$oDCol['small']} rt-col-sm-{$oTCol['small']} rt-col-xs-{$oMCol['small']}'><div class='rt-row offset-small-wrap'>{$offsetSmallHtml}</div></div>";
923
  }
924
  if ( $isIsotope || $isCarousel ) {
925
  $data .= '</div>'; // End isotope / Carousel item holder
926
+ if ( $isCarousel ) {
927
+ if ( in_array( 'pagination', $cOpt ) ) {
928
+ $data .= '<div class="swiper-pagination"></div>';
929
+ }
930
+ $data .= '</div>';
931
+ if ( in_array( 'nav_button', $cOpt ) ) {
932
+ $data .= '<div class="swiper-navigation"><div class="slider-btn swiper-button-prev"></div><div class="slider-btn swiper-button-next"></div></div>';
933
+ }
934
+ }
935
  }
 
936
  } else {
937
+ $not_found_text = isset( $scMeta['tgp_not_found_text'] ) && ! empty( $scMeta['tgp_not_found_text'] ) ? esc_attr( $scMeta['tgp_not_found_text'] )
938
+ : __( 'No post found', 'the-post-grid' );
939
  $data .= "<p>" . $not_found_text . "</p>";
940
  }
941
  $data .= $preLoaderHtml;
942
  $data .= "</div>"; // End row
943
  $htmlUtility = null;
944
  if ( $pagination && ! $isCarousel ) {
945
+ if ( $isOffset || $isGridHover ) {
946
  $posts_loading_type = "page_prev_next";
947
  $htmlUtility .= "<div class='rt-cb-page-prev-next'>
948
  <span class='rt-cb-prev-btn'><i class='fa fa-angle-left' aria-hidden='true'></i></span>
973
  'the-post-grid' ) . "</button>
974
  </div>";
975
  }
 
976
  } elseif ( $posts_loading_type == "load_on_scroll" ) {
977
  if ( $isGrid ) {
978
  $htmlUtility .= "<div class='rt-infinite-action'>
995
  $l4toggle = "data-l4toggle='{$this->l4toggle}'";
996
  }
997
  if ( $isGrid || $isOffset || $isWooCom ) {
998
+ $data .= "<div class='rt-pagination-wrap' data-total-pages='{$gridQuery->max_num_pages}' data-posts-per-page='{$args['posts_per_page']}' data-type='{$posts_loading_type}' {$l4toggle} >"
999
+ . $htmlUtility . "</div>";
1000
  } else {
1001
  $data .= "<div class='rt-tpg-utility' {$l4toggle}>" . $htmlUtility . "</div>";
1002
  }
1009
  $msg = __( 'Session Error !!', 'the-post-grid' );
1010
  }
1011
 
1012
+ wp_send_json( [
1013
  'error' => $error,
1014
  'msg' => $msg,
1015
+ 'data' => $data,
1016
+ ] );
1017
  die();
 
1018
  }
1019
+
1020
  }
1021
 
1022
  endif;
lib/classes/rtTPGShortCode.php CHANGED
@@ -4,12 +4,12 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
4
 
5
  class rtTPGShortCode {
6
 
7
- private $scA = array();
8
  private $l4toggle = false;
9
 
10
  function __construct() {
11
- add_shortcode( 'the-post-grid', array( $this, 'the_post_grid_short_code' ) );
12
- add_action( 'pre_get_posts', array( $this, 'make_sticky_work' ) );
13
  }
14
 
15
  function make_sticky_work( $q ) {
@@ -19,12 +19,11 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
19
  }
20
 
21
  function register_sc_scripts() {
22
-
23
- $settings = get_option(rtTPG()->options['settings']);
24
 
25
  $caro = $isSinglePopUp = false;
26
- $script = array();
27
- $style = array();
28
  array_push( $script, 'jquery' );
29
  $ajaxurl = '';
30
  if ( in_array( 'sitepress-multilingual-cms/sitepress.php', get_option( 'active_plugins' ) ) ) {
@@ -32,11 +31,11 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
32
  } else {
33
  $ajaxurl .= admin_url( 'admin-ajax.php' );
34
  }
35
- $variables = array(
36
  'nonceID' => rtTPG()->nonceId(),
37
  'nonce' => wp_create_nonce( rtTPG()->nonceText() ),
38
- 'ajaxurl' => $ajaxurl
39
- );
40
  foreach ( $this->scA as $sc ) {
41
  if ( isset( $sc ) && is_array( $sc ) ) {
42
  if ( $sc['isSinglePopUp'] ) {
@@ -53,16 +52,15 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
53
  array_push( $script, 'rt-image-load-js' );
54
  array_push( $script, 'rt-isotope-js' );
55
  array_push( $style, 'rt-fontawsome' );
56
- array_push( $script, 'rt-actual-height-js' );
57
  array_push( $script, 'rt-tpg' );
58
 
59
- if (isset($settings['tpg_load_script'])) {
60
- wp_enqueue_style('rt-tpg');
61
- $css = isset($settings['custom_css']) ? stripslashes($settings['custom_css']) : null;
62
- if ($css) {
63
- wp_add_inline_style('rt-tpg', $css);
64
- }
65
- }
66
 
67
  if ( is_rtl() ) {
68
  array_push( $style, 'rt-tpg-rtl' );
@@ -72,7 +70,6 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
72
  wp_localize_script( 'rt-tpg', 'rttpg', $variables );
73
 
74
  do_action( 'tpg_after_script', $isSinglePopUp );
75
-
76
  }
77
 
78
  if ( $isSinglePopUp && rtTPG()->hasPro() ) {
@@ -98,25 +95,26 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
98
  $layoutID = "rt-tpg-container-" . $rand;
99
 
100
  $html = null;
101
- $arg = array();
102
- $atts = shortcode_atts( array(
103
- 'id' => null
104
- ), $atts, 'the-post-grid' );
105
  $scID = $atts['id'];
106
  if ( $scID && ! is_null( get_post( $scID ) ) ) {
107
- $scMeta = get_post_meta( $scID );
108
-
109
- $layout = ( isset( $scMeta['layout'][0] ) ? $scMeta['layout'][0] : 'layout1' );
110
  if ( ! in_array( $layout, array_keys( rtTPG()->rtTPGLayouts() ) ) ) {
111
  $layout = 'layout1';
112
  }
113
 
114
- $isIsotope = preg_match( '/isotope/', $layout );
115
- $isCarousel = preg_match( '/carousel/', $layout );
116
- $isGrid = preg_match( '/layout/', $layout );
117
- $isWooCom = preg_match( '/wc/', $layout );
118
- $isEdd = preg_match( '/edd/', $layout );
119
- $isOffset = preg_match( '/offset/', $layout );
 
120
 
121
  $colStore = $dCol = ( isset( $scMeta['column'][0] ) ? absint( $scMeta['column'][0] ) : 3 );
122
  $tCol = ( isset( $scMeta['tpg_tab_column'][0] ) ? absint( $scMeta['tpg_tab_column'][0] ) : 2 );
@@ -136,7 +134,7 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
136
  $tCol = ( $tCol < 3 ? 2 : $tCol );
137
  $mCol = ( $mCol < 3 ? 1 : $mCol );
138
  }
139
- $arg = array();
140
  $fImg = ( ! empty( $scMeta['feature_image'][0] ) ? true : false );
141
  $fImgSize = ( isset( $scMeta['featured_image_size'][0] ) ? $scMeta['featured_image_size'][0] : "medium" );
142
  $mediaSource = ( isset( $scMeta['media_source'][0] ) ? $scMeta['media_source'][0] : "feature_image" );
@@ -145,15 +143,24 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
145
  $arg['excerpt_limit'] = ( isset( $scMeta['excerpt_limit'][0] ) ? absint( $scMeta['excerpt_limit'][0] ) : 0 );
146
  $arg['title_limit'] = ( isset( $scMeta['tpg_title_limit'][0] ) ? absint( $scMeta['tpg_title_limit'][0] ) : 0 );
147
  $arg['excerpt_more_text'] = ( isset( $scMeta['tgp_excerpt_more_text'][0] ) ? $scMeta['tgp_excerpt_more_text'][0] : null );
148
- $arg['read_more_text'] = ( ! empty( $scMeta['tgp_read_more_text'][0] ) ? $scMeta['tgp_read_more_text'][0] : __( 'Read More',
149
- 'the-post-grid' ) );
150
- $arg['show_all_text'] = ( ! empty( $scMeta['tpg_show_all_text'][0] ) ? $scMeta['tpg_show_all_text'][0] : __( 'Show all',
151
- 'the-post-grid' ) );
 
152
  $arg['tpg_title_position'] = isset( $scMeta['tpg_title_position'][0] ) && ! empty( $scMeta['tpg_title_position'][0] ) ? $scMeta['tpg_title_position'][0] : null;
153
- $arg['btn_alignment_class'] = isset( $scMeta['tpg_read_more_button_alignment'][0] ) && ! empty( $scMeta['tpg_read_more_button_alignment'][0] ) ? $scMeta['tpg_read_more_button_alignment'][0] : '';
154
-
 
 
 
 
 
 
 
 
155
  /* Argument create */
156
- $args = array();
157
  $postType = ( isset( $scMeta['tpg_post_type'][0] ) ? $scMeta['tpg_post_type'][0] : 'post' );
158
  if ( $postType ) {
159
  $args['post_type'] = $postType;
@@ -175,6 +182,7 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
175
 
176
  /* LIMIT */
177
  $limit = ( ( empty( $scMeta['limit'][0] ) || $scMeta['limit'][0] === '-1' ) ? - 1 : absint( $scMeta['limit'][0] ) );
 
178
  $args['posts_per_page'] = $limit;
179
  $pagination = ! empty( $scMeta['pagination'][0] );
180
  $posts_loading_type = ( ! empty( $scMeta['posts_loading_type'][0] ) ? $scMeta['posts_loading_type'][0] : "pagination" );
@@ -188,23 +196,22 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
188
  $adv_filter = get_post_meta( $scID, 'post_filter' );
189
  $taxFilter = get_post_meta( $scID, 'tgp_filter_taxonomy', true );
190
  $taxHierarchical = get_post_meta( $scID, 'tgp_filter_taxonomy_hierarchical', true );
191
- $taxFilterTerms = array();
192
  $taxFilterOperator = "IN";
193
  // Taxonomy
194
- $taxQ = array();
195
  if ( in_array( 'tpg_taxonomy', $adv_filter ) && isset( $scMeta['tpg_taxonomy'] ) ) {
196
-
197
  if ( is_array( $scMeta['tpg_taxonomy'] ) && ! empty( $scMeta['tpg_taxonomy'] ) ) {
198
  foreach ( $scMeta['tpg_taxonomy'] as $taxonomy ) {
199
- $terms = ( isset( $scMeta[ 'term_' . $taxonomy ] ) ? $scMeta[ 'term_' . $taxonomy ] : array() );
200
  if ( is_array( $terms ) && ! empty( $terms ) ) {
201
  $operator = ( isset( $scMeta[ 'term_operator_' . $taxonomy ][0] ) ? $scMeta[ 'term_operator_' . $taxonomy ][0] : "IN" );
202
- $taxQ[] = array(
203
  'taxonomy' => $taxonomy,
204
  'field' => 'term_id',
205
  'terms' => $terms,
206
  'operator' => $operator,
207
- );
208
  if ( $taxonomy == $taxFilter ) {
209
  $taxFilterOperator = $operator;
210
  }
@@ -243,22 +250,22 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
243
 
244
  // Status
245
  if ( in_array( 'tpg_post_status', $adv_filter ) ) {
246
- $post_status = ( isset( $scMeta['tpg_post_status'] ) ? $scMeta['tpg_post_status'] : array() );
247
  if ( ! empty( $post_status ) ) {
248
  $args['post_status'] = $post_status;
249
  }
250
  } else {
251
- $args['post_status'] = 'publish';
252
- }
253
  // Author
254
- $author = ( isset( $scMeta['author'] ) ? $scMeta['author'] : array() );
255
- $filterAuthors = array();
256
  if ( in_array( 'author', $adv_filter ) && ! empty( $author ) ) {
257
  $filterAuthors = $args['author__in'] = $author;
258
  }
259
 
260
  // Search
261
- $s = ( isset( $scMeta['s'][0] ) ? $scMeta['s'][0] : array() );
262
  if ( in_array( 's', $adv_filter ) && ! empty( $s ) ) {
263
  $args['s'] = $s;
264
  }
@@ -268,13 +275,13 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
268
  $startDate = ( ! empty( $scMeta['date_range_start'][0] ) ? $scMeta['date_range_start'][0] : null );
269
  $endDate = ( ! empty( $scMeta['date_range_end'][0] ) ? $scMeta['date_range_end'][0] : null );
270
  if ( $startDate && $endDate ) {
271
- $args['date_query'] = array(
272
- array(
273
  'after' => $startDate,
274
  'before' => $endDate,
275
  'inclusive' => true,
276
- ),
277
- );
278
  }
279
  }
280
 
@@ -285,7 +292,6 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
285
  $oLayoutSearch = ! empty( $settings['template_search'] ) ? $settings['template_search'] : null;
286
  $dataArchive = null;
287
  if ( ( is_category() && $oLayoutCategory ) || ( is_search() && $oLayoutSearch ) || ( is_tag() && $oLayoutTag ) || ( is_author() && $oLayoutAuthor ) ) {
288
-
289
  unset( $args['post_type'] );
290
  unset( $args['tax_query'] );
291
  unset( $args['author__in'] );
@@ -296,15 +302,15 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
296
  $aValue = $args['tag'] = $obj->slug;
297
  $aType = 'tag';
298
  }
299
- } else if ( $oLayoutCategory && is_category() ) {
300
  if ( ! empty( $obj->slug ) ) {
301
  $aValue = $args['category_name'] = $obj->slug;
302
  }
303
  $aType = 'category';
304
- } else if ( $oLayoutAuthor && is_author() ) {
305
  $aValue = $args['author'] = $obj->ID;
306
  $aType = 'author';
307
- } else if ( $oLayoutSearch && is_search() ) {
308
  $aValue = $args['s'] = get_search_query();
309
  $aType = 'search';
310
  }
@@ -314,7 +320,7 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
314
 
315
  // Validation
316
  $containerDataAttr = null;
317
- $containerDataAttr .= " data-layout='{$layout}' data-desktop-col='{$dCol}' data-tab-col='{$tCol}' data-mobile-col='{$mCol}'";
318
 
319
  $dCol = $dCol == 5 ? '24' : round( 12 / $dCol );
320
  $tCol = $dCol == 5 ? '24' : round( 12 / $tCol );
@@ -329,29 +335,37 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
329
  $cCol = 12 - $iCol;
330
  $arg['image_area'] = "rt-col-sm-{$iCol} rt-col-xs-12 ";
331
  $arg['content_area'] = "rt-col-sm-{$cCol} rt-col-xs-12 ";
332
- } else if ( $layout == 'layout4' ) {
333
  $arg['image_area'] = "rt-col-md-6 rt-col-sm-12 rt-col-xs-12 ";
334
  $arg['content_area'] = "rt-col-md-6 rt-col-sm-12 rt-col-xs-12 ";
335
  }
336
  $arg_class = [];
337
- if ( ! $isIsotope && ! rtTPG()->hasPro() ) {
338
- $arg_class[] = 'rt-equal-height';
339
- }
340
- $gridType = ! empty( $scMeta['grid_style'][0] ) ? $scMeta['grid_style'][0] : 'even';
341
  if ( $isIsotope && ! rtTPG()->hasPro() ) {
342
  $arg_class[] = "masonry-grid-item";
343
- } else if ( ! $isCarousel && ! $isOffset ) {
344
  $arg_class[] = $gridType . "-grid-item";
345
  }
346
  $arg_class[] = "rt-grid-item";
347
  if ( $isOffset ) {
348
  $arg_class[] = "rt-offset-item";
349
  }
 
 
 
 
 
 
 
 
 
 
350
 
351
  $masonryG = null;
352
- if ( $gridType == "even" ) {
 
353
  $masonryG = " tpg-even";
354
- } else if ( $gridType == "masonry" && ! $isIsotope && ! $isCarousel ) {
355
  $masonryG = " tpg-masonry";
356
  }
357
  $preLoader = $preLoaderHtml = null;
@@ -360,7 +374,7 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
360
  $preLoader = 'tpg-pre-loader';
361
  }
362
  if ( $isCarousel ) {
363
- $arg_class[] = 'carousel-item';
364
  $preLoader = 'tpg-pre-loader';
365
  }
366
  if ( $preLoader && rtTPG()->hasPro() ) {
@@ -376,13 +390,14 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
376
  }
377
  $arg['class'] = implode( " ", $arg_class );
378
  $arg['anchorClass'] = $arg['link_target'] = null;
379
- $link = ! empty( $scMeta['link_to_detail_page'][0] ) ? $scMeta['link_to_detail_page'][0] : 'yes';
380
- if ( $link != 'yes' ) {
 
381
  $arg['anchorClass'] = ' disabled';
382
  }
383
  $isSinglePopUp = false;
384
  $linkType = ! empty( $scMeta['detail_page_link_type'][0] ) ? $scMeta['detail_page_link_type'][0] : 'popup';
385
- if ( $link == 'yes' ) {
386
  if ( $linkType == 'popup' && rtTPG()->hasPro() ) {
387
  $popupType = ! empty( $scMeta['popup_type'][0] ) ? $scMeta['popup_type'][0] : 'single';
388
  if ( $popupType == 'single' ) {
@@ -398,32 +413,34 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
398
 
399
  $parentClass = ( ! empty( $scMeta['parent_class'][0] ) ? trim( $scMeta['parent_class'][0] ) : null );
400
  $defaultImgId = ( ! empty( $scMeta['default_preview_image'][0] ) ? absint( $scMeta['default_preview_image'][0] ) : null );
401
- $customImgSize = ( ! empty( $scMeta['custom_image_size'] ) ? $scMeta['custom_image_size'] : array() );
 
 
 
402
 
403
  $arg['scID'] = $scID;
404
- $arg['items'] = isset( $scMeta['item_fields'] ) ? ( $scMeta['item_fields'] ? $scMeta['item_fields'] : array() ) : array();
405
  if ( in_array( 'cf', $arg['items'] ) ) {
406
- $arg['cf_group'] = array();
407
  $arg['cf_group'] = get_post_meta( $scID, 'cf_group' );
408
- $arg['format'] = array(
409
  'hide_empty' => get_post_meta( $scID, 'cf_hide_empty_value', true ),
410
  'show_value' => get_post_meta( $scID, 'cf_show_only_value', true ),
411
- 'hide_group_title' => get_post_meta( $scID, 'cf_hide_group_title', true )
412
- );
413
  }
414
 
415
  // Set readmore false if excerpt type = full content
416
  if ( isset( $arg['excerpt_type'] ) && $arg['excerpt_type'] === 'full' && ( $key = array_search( 'read_more', $arg['items'] ) ) !== false ) {
417
  unset( $arg['items'][ $key ] );
418
  }
419
-
420
- if ( ! empty( $scMeta['ignore_sticky_posts'][0] ) ) {
421
  $args['ignore_sticky_posts'] = true;
422
  } else {
423
  $args['wp_tpg_is_home'] = true;
424
  }
425
 
426
- $filters = ! empty( $scMeta['tgp_filter'] ) ? $scMeta['tgp_filter'] : array();
427
  $action_term = ! empty( $scMeta['tgp_default_filter'][0] ) ? absint( $scMeta['tgp_default_filter'][0] ) : 0;
428
  $hide_all_button = ! empty( $scMeta['tpg_hide_all_button'][0] ) ? true : false;
429
  if ( $taxHierarchical ) {
@@ -438,13 +455,13 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
438
  }
439
  }
440
  if ( in_array( '_taxonomy_filter', $filters ) && $taxFilter && $action_term ) {
441
- $args['tax_query'] = array(
442
- array(
443
  'taxonomy' => $taxFilter,
444
  'field' => 'term_id',
445
- 'terms' => array( $action_term ),
446
- )
447
- );
448
  }
449
 
450
  if ( $limit != - 1 && $pagination ) {
@@ -458,7 +475,15 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
458
  }
459
  }
460
 
461
- $arg['title_tag'] = (!empty($scMeta['title_tag'][0]) && in_array($scMeta['title_tag'][0], array_keys(rtTPG()->getTitleTags()))) ? esc_attr($scMeta['title_tag'][0]) : 'h3';
 
 
 
 
 
 
 
 
462
 
463
  $gridQuery = new WP_Query( apply_filters( 'tpg_sc_query_args', $args, $scMeta ) );
464
 
@@ -466,9 +491,28 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
466
  $html .= rtTPG()->layoutStyle( $layoutID, $scMeta, $layout, $scID );
467
  $containerDataAttr .= " data-sc-id='{$scID}'";
468
  $html .= "<div class='rt-container-fluid rt-tpg-container {$parentClass}' id='{$layoutID}' {$dataArchive} {$containerDataAttr}>";
469
- if ( !$isCarousel && isset($settings['tpg_load_script']) && isset($settings['tpg_enable_preloader'])) {
470
- $html .= '<div id="bottom-script-loader"><div class="rt-ball-clip-rotate"><div></div></div></div>';
471
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
472
  if ( ! empty( $filters ) && ( $isGrid || $isOffset || $isWooCom || $isEdd ) ) {
473
  $html .= "<div class='rt-layout-filter-container rt-clear'><div class='rt-filter-wrap'>";
474
  $selectedSubTermsForButton = null;
@@ -551,7 +595,8 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
551
  }
552
  }
553
  if ( ! $hide_all_button ) {
554
- $htmlButton = "<span class='term-dropdown-item rt-filter-dropdown-item' data-term='all'><span class='rt-text'>" . $allText . "{$pAllCount}</span></span>" . $htmlButton;
 
555
  }
556
  $htmlButton = sprintf( '<span class="term-dropdown rt-filter-dropdown">%s</span>', $htmlButton );
557
 
@@ -599,7 +644,6 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
599
  $bItems .= "<span class='term-button-item rt-filter-button-item {$termSelected}' data-term='{$id}'>{$term['name']}{$postCount}{$sT}</span>";
600
  }
601
  }
602
-
603
  } else {
604
  $bItems .= "<span class='term-button-item rt-filter-button-item {$termSelected}' data-term='{$id}'>{$term['name']}{$postCount}{$sT}</span>";
605
  }
@@ -619,7 +663,7 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
619
  if ( in_array( '_author_filter', $filters ) ) {
620
  $filterType = ( ! empty( $scMeta['tgp_filter_type'][0] ) ? $scMeta['tgp_filter_type'][0] : null );
621
  $post_count = ( ! empty( $scMeta['tpg_post_count'][0] ) ? $scMeta['tpg_post_count'][0] : null );
622
- $users = get_users( apply_filters( 'tpg_author_arg', array() ) );
623
 
624
  $allSelect = " selected";
625
  $isTermSelected = false;
@@ -740,10 +784,9 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
740
  'the-post-grid' ) . "' class='rt-row rt-content-loader {$layout}{$masonryG} {$preLoader}'>";
741
 
742
  if ( $gridQuery->have_posts() ) {
743
-
744
  if ( $isCarousel ) {
745
- $cOpt = ! empty( $scMeta['carousel_property'] ) ? $scMeta['carousel_property'] : array();
746
- $slider_js_options = apply_filters( 'rttpg_slider_js_options', array(
747
  "speed" => ! empty( $scMeta['tpg_carousel_speed'][0] ) ? absint( $scMeta['tpg_carousel_speed'][0] ) : 250,
748
  "autoPlayTimeOut" => ! empty( $scMeta['tpg_carousel_autoplay_timeout'][0] ) ? absint( $scMeta['tpg_carousel_autoplay_timeout'][0] ) : 5000,
749
  "autoPlay" => in_array( 'auto_play', $cOpt ),
@@ -752,29 +795,34 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
752
  "dots" => in_array( 'pagination', $cOpt ),
753
  "loop" => in_array( 'loop', $cOpt ),
754
  "lazyLoad" => in_array( 'lazyLoad', $cOpt ),
755
- "autoHeight" => in_array( 'autoHeight', $cOpt ),
756
- "rtl" => in_array( 'rtl', $cOpt )
757
- ), $scMeta );
758
- $html .= sprintf( '<div class="rt-carousel-holder" data-rtowl-options="%s">',
759
- htmlspecialchars( wp_json_encode( $slider_js_options ) ) );
 
 
760
  }
761
  $isotope_filter = null;
762
  if ( $isIsotope ) {
763
  $isotope_filter = isset( $scMeta['isotope_filter'][0] ) ? $scMeta['isotope_filter'][0] : null;
764
  $isotope_dropdown_filter = isset( $scMeta['isotope_filter_dropdown'][0] ) ? $scMeta['isotope_filter_dropdown'][0] : null;
765
- $selectedTerms = array();
766
- if ( isset( $scMeta['post_filter'] ) && in_array( 'tpg_taxonomy',
767
- $scMeta['post_filter'] ) && isset( $scMeta['tpg_taxonomy'] ) && in_array( $isotope_filter,
 
 
 
768
  $scMeta['tpg_taxonomy'] )
769
  ) {
770
- $selectedTerms = ( isset( $scMeta[ 'term_' . $isotope_filter ] ) ? $scMeta[ 'term_' . $isotope_filter ] : array() );
771
  }
772
  $termArgs = [
773
  'taxonomy' => $isotope_filter,
774
  'orderby' => 'meta_value_num',
775
  'order' => 'ASC',
776
  'hide_empty' => false,
777
- 'include' => $selectedTerms
778
  ];
779
  if ( rtTPG()->hasPro() ) {
780
  $termArgs['meta_key'] = '_rt_order';
@@ -809,7 +857,8 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
809
  }
810
  $filter_count = ! empty( $scMeta['isotope_filter_count'][0] ) ? true : false;
811
  $filter_url = ! empty( $scMeta['isotope_filter_url'][0] ) ? true : false;
812
- $htmlButton = "<div id='iso-button-{$rand}' class='rt-tpg-isotope-buttons button-group filter-button-group option-set' data-url='{$filter_url}' data-count='{$filter_count}'>{$htmlButton}</div>";
 
813
 
814
  if ( $isotope_dropdown_filter ) {
815
  $html .= "<select class='isotope-dropdown-filter'>{$drop}</select>";
@@ -825,8 +874,10 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
825
  $html .= "<div class='rt-tpg-isotope' id='iso-tpg-{$rand}'>";
826
  }
827
 
828
- $l = $offLoop = 0;
829
- $offsetBigHtml = $offsetSmallHtml = null;
 
 
830
 
831
  while ( $gridQuery->have_posts() ) : $gridQuery->the_post();
832
  if ( $colStore == $l ) {
@@ -837,20 +888,23 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
837
  }
838
  $l = 0;
839
  }
840
- $pID = get_the_ID();
841
- $arg['pID'] = $pID;
842
- $arg['title'] = rtTPG()->get_the_title( $pID, $arg );
843
- $arg['pLink'] = get_permalink();
844
- $arg['toggle'] = $this->l4toggle;
845
- $arg['layoutID'] = $layoutID;
846
- $arg['author'] = apply_filters( 'rttpg_author_link', sprintf( '<a href="%s">%s</a>', get_author_posts_url( get_the_author_meta( 'ID' ) ), get_the_author() ) );
847
- $cc = wp_count_comments( $pID );
848
- $arg['date'] = get_the_date();
849
- $arg['excerpt'] = rtTPG()->get_the_excerpt( $pID, $arg );
850
- $arg['categories'] = get_the_term_list( $pID, 'category', null, '<span class="rt-separator">,</span>' );
851
- $arg['tags'] = get_the_term_list( $pID, 'post_tag', null, '<span class="rt-separator">,</span>' );
 
 
 
852
  if ( $isIsotope ) {
853
- $termAs = wp_get_post_terms( $pID, $isotope_filter, array( "fields" => "all" ) );
854
  $isoFilter = [];
855
  if ( ! empty( $termAs ) ) {
856
  foreach ( $termAs as $term ) {
@@ -865,8 +919,10 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
865
  } else {
866
  $arg['comment'] = "{$cc->total_comments}";
867
  }
868
- $imgSrc = null;
869
-
 
 
870
  if ( $isOffset ) {
871
  if ( $offLoop == 0 ) {
872
  $arg['imgSrc'] = ! $fImg ? rtTPG()->getFeatureImageSrc( $pID, $fImgSize, $mediaSource,
@@ -876,7 +932,7 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
876
  $offsetBigHtml = rtTPG()->render( 'layouts/' . $layout, $arg, true );
877
  } else {
878
  $arg['offset'] = 'small';
879
- $arg['offsetCol'] = array( $dCol, $tCol, $mCol );
880
  $arg['imgSrc'] = ! $fImg ? rtTPG()->getFeatureImageSrc( $pID, 'thumbnail',
881
  $mediaSource,
882
  $defaultImgId,
@@ -899,16 +955,28 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
899
  if ( $layout == "offset03" || $layout == "offset04" ) {
900
  $oDCol['big'] = $oTCol['big'] = $oDCol['small'] = $oTCol['small'] = 6;
901
  $oMCol['big'] = $oMCol['small'] = 12;
 
 
 
902
  }
903
  $html .= "<div class='rt-col-md-{$oDCol['big']} rt-col-sm-{$oTCol['big']} rt-col-xs-{$oMCol['big']}'><div class='rt-row'>{$offsetBigHtml}</div></div>";
904
  $html .= "<div class='rt-col-md-{$oDCol['small']} rt-col-sm-{$oTCol['small']} rt-col-xs-{$oMCol['small']}'><div class='rt-row offset-small-wrap'>{$offsetSmallHtml}</div></div>";
905
  }
906
  if ( $isIsotope || $isCarousel ) {
907
  $html .= '</div>'; // End isotope / Carousel item holder
 
 
 
 
 
 
 
 
 
908
  }
909
-
910
  } else {
911
- $not_found_text = isset( $scMeta['tgp_not_found_text'][0] ) && ! empty( $scMeta['tgp_not_found_text'][0] ) ? esc_attr( $scMeta['tgp_not_found_text'][0] ) : __( 'No post found', 'the-post-grid' );
 
912
  $html .= sprintf( '<p>%s</p>',
913
  apply_filters( 'tpg_not_found_text', $not_found_text, $args, $scMeta )
914
  );
@@ -917,7 +985,7 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
917
  $html .= "</div>"; // End row
918
  $htmlUtility = null;
919
  if ( $pagination && ! $isCarousel ) {
920
- if ( $isOffset ) {
921
  $posts_loading_type = "page_prev_next";
922
  $htmlUtility .= "<div class='rt-cb-page-prev-next'>
923
  <span class='rt-cb-prev-btn'><i class='fa fa-angle-left' aria-hidden='true'></i></span>
@@ -937,7 +1005,6 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
937
  <span class='rt-loadmore-text'>" . __( 'Load More', 'the-post-grid' ) . "</span>
938
  <div class='rt-loadmore-loading rt-ball-scale-multiple rt-2x'><div></div><div></div><div></div></div>
939
  </div>";
940
-
941
  } elseif ( $posts_loading_type == "load_on_scroll" && rtTPG()->hasPro() ) {
942
  $htmlUtility .= "<div class='rt-infinite-action'>
943
  <div class='rt-infinite-loading la-fire la-2x'>
@@ -955,14 +1022,15 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
955
  if ( $layout == "layout4" ) {
956
  $l4toggle = "data-l4toggle='{$this->l4toggle}'";
957
  }
958
- $html .= "<div class='rt-pagination-wrap' data-total-pages='{$gridQuery->max_num_pages}' data-posts-per-page='{$args['posts_per_page']}' data-type='{$posts_loading_type}' {$l4toggle} >" . $htmlUtility . "</div>";
 
959
  }
960
 
961
  $html .= "</div>"; // container rt-tpg
962
 
963
  wp_reset_postdata();
964
 
965
- $scriptGenerator = array();
966
  $scriptGenerator['layout'] = $layoutID;
967
  $scriptGenerator['rand'] = $rand;
968
  $scriptGenerator['scMeta'] = $scMeta;
@@ -970,13 +1038,13 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
970
  $scriptGenerator['isSinglePopUp'] = $isSinglePopUp;
971
  $scriptGenerator['isWooCom'] = $isWooCom;
972
  $this->scA[] = $scriptGenerator;
973
- add_action( 'wp_footer', array( $this, 'register_sc_scripts' ) );
974
  } else {
975
  $html .= "<p>" . __( "No shortCode found", "the-post-grid" ) . "</p>";
976
  }
977
 
978
  //restriction issue
979
- $restriction = ( ! empty( $scMeta['restriction_user_role'] ) ? $scMeta['restriction_user_role'] : array() );
980
  if ( ! empty( $restriction ) ) {
981
  if ( is_user_logged_in() ) {
982
  $currentUserRoles = rtTPG()->getCurrentUserRoles();
@@ -990,7 +1058,6 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
990
  "the-post-grid" ) . "</p>";
991
  }
992
  }
993
-
994
  } else {
995
  $html = "<p>" . __( "This is a restricted content, you need to logged in to view this content.",
996
  "the-post-grid" ) . "</p>";
@@ -1006,5 +1073,6 @@ if ( ! class_exists( 'rtTPGShortCode' ) ):
1006
 
1007
  return $args;
1008
  }
 
1009
  }
1010
  endif;
4
 
5
  class rtTPGShortCode {
6
 
7
+ private $scA = [];
8
  private $l4toggle = false;
9
 
10
  function __construct() {
11
+ add_shortcode( 'the-post-grid', [ $this, 'the_post_grid_short_code' ] );
12
+ add_action( 'pre_get_posts', [ $this, 'make_sticky_work' ] );
13
  }
14
 
15
  function make_sticky_work( $q ) {
19
  }
20
 
21
  function register_sc_scripts() {
22
+ $settings = get_option( rtTPG()->options['settings'] );
 
23
 
24
  $caro = $isSinglePopUp = false;
25
+ $script = [];
26
+ $style = [];
27
  array_push( $script, 'jquery' );
28
  $ajaxurl = '';
29
  if ( in_array( 'sitepress-multilingual-cms/sitepress.php', get_option( 'active_plugins' ) ) ) {
31
  } else {
32
  $ajaxurl .= admin_url( 'admin-ajax.php' );
33
  }
34
+ $variables = [
35
  'nonceID' => rtTPG()->nonceId(),
36
  'nonce' => wp_create_nonce( rtTPG()->nonceText() ),
37
+ 'ajaxurl' => $ajaxurl,
38
+ ];
39
  foreach ( $this->scA as $sc ) {
40
  if ( isset( $sc ) && is_array( $sc ) ) {
41
  if ( $sc['isSinglePopUp'] ) {
52
  array_push( $script, 'rt-image-load-js' );
53
  array_push( $script, 'rt-isotope-js' );
54
  array_push( $style, 'rt-fontawsome' );
 
55
  array_push( $script, 'rt-tpg' );
56
 
57
+ if ( isset( $settings['tpg_load_script'] ) ) {
58
+ wp_enqueue_style( 'rt-tpg' );
59
+ $css = isset( $settings['custom_css'] ) ? stripslashes( $settings['custom_css'] ) : null;
60
+ if ( $css ) {
61
+ wp_add_inline_style( 'rt-tpg', $css );
62
+ }
63
+ }
64
 
65
  if ( is_rtl() ) {
66
  array_push( $style, 'rt-tpg-rtl' );
70
  wp_localize_script( 'rt-tpg', 'rttpg', $variables );
71
 
72
  do_action( 'tpg_after_script', $isSinglePopUp );
 
73
  }
74
 
75
  if ( $isSinglePopUp && rtTPG()->hasPro() ) {
95
  $layoutID = "rt-tpg-container-" . $rand;
96
 
97
  $html = null;
98
+ $arg = [];
99
+ $atts = shortcode_atts( [
100
+ 'id' => null,
101
+ ], $atts, 'the-post-grid' );
102
  $scID = $atts['id'];
103
  if ( $scID && ! is_null( get_post( $scID ) ) ) {
104
+ $scMeta = get_post_meta( $scID );
105
+ $layout = ( isset( $scMeta['layout'][0] ) ? $scMeta['layout'][0] : 'layout1' );
106
+ $gridStyle = ( isset( $scMeta['grid_style'][0] ) ? $scMeta['grid_style'][0] : 'even' );
107
  if ( ! in_array( $layout, array_keys( rtTPG()->rtTPGLayouts() ) ) ) {
108
  $layout = 'layout1';
109
  }
110
 
111
+ $isIsotope = preg_match( '/isotope/', $layout );
112
+ $isCarousel = preg_match( '/carousel/', $layout );
113
+ $isGrid = preg_match( '/layout/', $layout );
114
+ $isWooCom = preg_match( '/wc/', $layout );
115
+ $isEdd = preg_match( '/edd/', $layout );
116
+ $isOffset = preg_match( '/offset/', $layout );
117
+ $isGridHover = preg_match( '/grid_hover/', $layout );
118
 
119
  $colStore = $dCol = ( isset( $scMeta['column'][0] ) ? absint( $scMeta['column'][0] ) : 3 );
120
  $tCol = ( isset( $scMeta['tpg_tab_column'][0] ) ? absint( $scMeta['tpg_tab_column'][0] ) : 2 );
134
  $tCol = ( $tCol < 3 ? 2 : $tCol );
135
  $mCol = ( $mCol < 3 ? 1 : $mCol );
136
  }
137
+ $arg = [];
138
  $fImg = ( ! empty( $scMeta['feature_image'][0] ) ? true : false );
139
  $fImgSize = ( isset( $scMeta['featured_image_size'][0] ) ? $scMeta['featured_image_size'][0] : "medium" );
140
  $mediaSource = ( isset( $scMeta['media_source'][0] ) ? $scMeta['media_source'][0] : "feature_image" );
143
  $arg['excerpt_limit'] = ( isset( $scMeta['excerpt_limit'][0] ) ? absint( $scMeta['excerpt_limit'][0] ) : 0 );
144
  $arg['title_limit'] = ( isset( $scMeta['tpg_title_limit'][0] ) ? absint( $scMeta['tpg_title_limit'][0] ) : 0 );
145
  $arg['excerpt_more_text'] = ( isset( $scMeta['tgp_excerpt_more_text'][0] ) ? $scMeta['tgp_excerpt_more_text'][0] : null );
146
+ $arg['read_more_text'] = ( ! empty( $scMeta['tgp_read_more_text'][0] ) ? $scMeta['tgp_read_more_text'][0] : __( 'Read More', 'the-post-grid' ) );
147
+ $arg['show_all_text'] = ( ! empty( $scMeta['tpg_show_all_text'][0] )
148
+ ? $scMeta['tpg_show_all_text'][0]
149
+ : __( 'Show all',
150
+ 'the-post-grid' ) );
151
  $arg['tpg_title_position'] = isset( $scMeta['tpg_title_position'][0] ) && ! empty( $scMeta['tpg_title_position'][0] ) ? $scMeta['tpg_title_position'][0] : null;
152
+ $arg['btn_alignment_class'] = isset( $scMeta['tpg_read_more_button_alignment'][0] ) && ! empty( $scMeta['tpg_read_more_button_alignment'][0] )
153
+ ? $scMeta['tpg_read_more_button_alignment'][0] : '';
154
+ // Category Settings
155
+ $arg['category_position'] = isset( $scMeta['tpg_category_position'][0] ) ? $scMeta['tpg_category_position'][0] : null;
156
+ $arg['category_style'] = ! empty( $scMeta['tpg_category_style'][0] ) ? $scMeta['tpg_category_style'][0] : '';
157
+ $arg['catIcon'] = isset( $scMeta['tpg_category_icon'][0] ) ? $scMeta['tpg_category_icon'][0] : true;
158
+ // Meta Settings
159
+ $arg['metaPosition'] = isset( $scMeta['tpg_meta_position'][0] ) ? $scMeta['tpg_meta_position'][0] : null;
160
+ $arg['metaIcon'] = isset( $scMeta['tpg_meta_icon'][0] ) ? $scMeta['tpg_meta_icon'][0] : true;
161
+ $arg['metaSeparator'] = ! empty( $scMeta['tpg_meta_separator'][0] ) ? $scMeta['tpg_meta_separator'][0] : '';
162
  /* Argument create */
163
+ $args = [];
164
  $postType = ( isset( $scMeta['tpg_post_type'][0] ) ? $scMeta['tpg_post_type'][0] : 'post' );
165
  if ( $postType ) {
166
  $args['post_type'] = $postType;
182
 
183
  /* LIMIT */
184
  $limit = ( ( empty( $scMeta['limit'][0] ) || $scMeta['limit'][0] === '-1' ) ? - 1 : absint( $scMeta['limit'][0] ) );
185
+ $queryOffset = empty( $scMeta['offset'][0] ) ? 0 : absint( $scMeta['offset'][0] );
186
  $args['posts_per_page'] = $limit;
187
  $pagination = ! empty( $scMeta['pagination'][0] );
188
  $posts_loading_type = ( ! empty( $scMeta['posts_loading_type'][0] ) ? $scMeta['posts_loading_type'][0] : "pagination" );
196
  $adv_filter = get_post_meta( $scID, 'post_filter' );
197
  $taxFilter = get_post_meta( $scID, 'tgp_filter_taxonomy', true );
198
  $taxHierarchical = get_post_meta( $scID, 'tgp_filter_taxonomy_hierarchical', true );
199
+ $taxFilterTerms = [];
200
  $taxFilterOperator = "IN";
201
  // Taxonomy
202
+ $taxQ = [];
203
  if ( in_array( 'tpg_taxonomy', $adv_filter ) && isset( $scMeta['tpg_taxonomy'] ) ) {
 
204
  if ( is_array( $scMeta['tpg_taxonomy'] ) && ! empty( $scMeta['tpg_taxonomy'] ) ) {
205
  foreach ( $scMeta['tpg_taxonomy'] as $taxonomy ) {
206
+ $terms = ( isset( $scMeta[ 'term_' . $taxonomy ] ) ? $scMeta[ 'term_' . $taxonomy ] : [] );
207
  if ( is_array( $terms ) && ! empty( $terms ) ) {
208
  $operator = ( isset( $scMeta[ 'term_operator_' . $taxonomy ][0] ) ? $scMeta[ 'term_operator_' . $taxonomy ][0] : "IN" );
209
+ $taxQ[] = [
210
  'taxonomy' => $taxonomy,
211
  'field' => 'term_id',
212
  'terms' => $terms,
213
  'operator' => $operator,
214
+ ];
215
  if ( $taxonomy == $taxFilter ) {
216
  $taxFilterOperator = $operator;
217
  }
250
 
251
  // Status
252
  if ( in_array( 'tpg_post_status', $adv_filter ) ) {
253
+ $post_status = ( isset( $scMeta['tpg_post_status'] ) ? $scMeta['tpg_post_status'] : [] );
254
  if ( ! empty( $post_status ) ) {
255
  $args['post_status'] = $post_status;
256
  }
257
  } else {
258
+ $args['post_status'] = 'publish';
259
+ }
260
  // Author
261
+ $author = ( isset( $scMeta['author'] ) ? $scMeta['author'] : [] );
262
+ $filterAuthors = [];
263
  if ( in_array( 'author', $adv_filter ) && ! empty( $author ) ) {
264
  $filterAuthors = $args['author__in'] = $author;
265
  }
266
 
267
  // Search
268
+ $s = ( isset( $scMeta['s'][0] ) ? $scMeta['s'][0] : [] );
269
  if ( in_array( 's', $adv_filter ) && ! empty( $s ) ) {
270
  $args['s'] = $s;
271
  }
275
  $startDate = ( ! empty( $scMeta['date_range_start'][0] ) ? $scMeta['date_range_start'][0] : null );
276
  $endDate = ( ! empty( $scMeta['date_range_end'][0] ) ? $scMeta['date_range_end'][0] : null );
277
  if ( $startDate && $endDate ) {
278
+ $args['date_query'] = [
279
+ [
280
  'after' => $startDate,
281
  'before' => $endDate,
282
  'inclusive' => true,
283
+ ],
284
+ ];
285
  }
286
  }
287
 
292
  $oLayoutSearch = ! empty( $settings['template_search'] ) ? $settings['template_search'] : null;
293
  $dataArchive = null;
294
  if ( ( is_category() && $oLayoutCategory ) || ( is_search() && $oLayoutSearch ) || ( is_tag() && $oLayoutTag ) || ( is_author() && $oLayoutAuthor ) ) {
 
295
  unset( $args['post_type'] );
296
  unset( $args['tax_query'] );
297
  unset( $args['author__in'] );
302
  $aValue = $args['tag'] = $obj->slug;
303
  $aType = 'tag';
304
  }
305
+ } elseif ( $oLayoutCategory && is_category() ) {
306
  if ( ! empty( $obj->slug ) ) {
307
  $aValue = $args['category_name'] = $obj->slug;
308
  }
309
  $aType = 'category';
310
+ } elseif ( $oLayoutAuthor && is_author() ) {
311
  $aValue = $args['author'] = $obj->ID;
312
  $aType = 'author';
313
+ } elseif ( $oLayoutSearch && is_search() ) {
314
  $aValue = $args['s'] = get_search_query();
315
  $aType = 'search';
316
  }
320
 
321
  // Validation
322
  $containerDataAttr = null;
323
+ $containerDataAttr .= " data-layout='{$layout}' data-grid-style='{$gridStyle}' data-desktop-col='{$dCol}' data-tab-col='{$tCol}' data-mobile-col='{$mCol}'";
324
 
325
  $dCol = $dCol == 5 ? '24' : round( 12 / $dCol );
326
  $tCol = $dCol == 5 ? '24' : round( 12 / $tCol );
335
  $cCol = 12 - $iCol;
336
  $arg['image_area'] = "rt-col-sm-{$iCol} rt-col-xs-12 ";
337
  $arg['content_area'] = "rt-col-sm-{$cCol} rt-col-xs-12 ";
338
+ } elseif ( $layout == 'layout4' ) {
339
  $arg['image_area'] = "rt-col-md-6 rt-col-sm-12 rt-col-xs-12 ";
340
  $arg['content_area'] = "rt-col-md-6 rt-col-sm-12 rt-col-xs-12 ";
341
  }
342
  $arg_class = [];
343
+ $gridType = ! empty( $scMeta['grid_style'][0] ) ? $scMeta['grid_style'][0] : 'even';
 
 
 
344
  if ( $isIsotope && ! rtTPG()->hasPro() ) {
345
  $arg_class[] = "masonry-grid-item";
346
+ } elseif ( ! $isCarousel && ! $isOffset ) {
347
  $arg_class[] = $gridType . "-grid-item";
348
  }
349
  $arg_class[] = "rt-grid-item";
350
  if ( $isOffset ) {
351
  $arg_class[] = "rt-offset-item";
352
  }
353
+ // Category class
354
+ $catHaveBg = ( isset( $scMeta['tpg_category_bg'][0] ) ? $scMeta['tpg_category_bg'][0] : '' );
355
+ if ( ! empty( $catHaveBg ) ) {
356
+ $arg_class[] = 'category-have-bg';
357
+ }
358
+ // Image animation type
359
+ $imgAnimationType = isset( $scMeta['tpg_image_animation'][0] ) ? $scMeta['tpg_image_animation'][0] : '';
360
+ if ( ! empty( $imgAnimationType ) ) {
361
+ $arg_class[] = $imgAnimationType;
362
+ }
363
 
364
  $masonryG = null;
365
+
366
+ if ( $gridType == "even" && ! $isIsotope && ! $isCarousel ) {
367
  $masonryG = " tpg-even";
368
+ } elseif ( $gridType == "masonry" && ! $isIsotope && ! $isCarousel ) {
369
  $masonryG = " tpg-masonry";
370
  }
371
  $preLoader = $preLoaderHtml = null;
374
  $preLoader = 'tpg-pre-loader';
375
  }
376
  if ( $isCarousel ) {
377
+ $arg_class[] = 'swiper-slide';
378
  $preLoader = 'tpg-pre-loader';
379
  }
380
  if ( $preLoader && rtTPG()->hasPro() ) {
390
  }
391
  $arg['class'] = implode( " ", $arg_class );
392
  $arg['anchorClass'] = $arg['link_target'] = null;
393
+ $link = isset( $scMeta['link_to_detail_page'][0] ) ? $scMeta['link_to_detail_page'][0] : '1';
394
+ $link = ( $link == 'yes' ) ? '1' : $link;
395
+ if ( ! $link ) {
396
  $arg['anchorClass'] = ' disabled';
397
  }
398
  $isSinglePopUp = false;
399
  $linkType = ! empty( $scMeta['detail_page_link_type'][0] ) ? $scMeta['detail_page_link_type'][0] : 'popup';
400
+ if ( $link == '1' ) {
401
  if ( $linkType == 'popup' && rtTPG()->hasPro() ) {
402
  $popupType = ! empty( $scMeta['popup_type'][0] ) ? $scMeta['popup_type'][0] : 'single';
403
  if ( $popupType == 'single' ) {
413
 
414
  $parentClass = ( ! empty( $scMeta['parent_class'][0] ) ? trim( $scMeta['parent_class'][0] ) : null );
415
  $defaultImgId = ( ! empty( $scMeta['default_preview_image'][0] ) ? absint( $scMeta['default_preview_image'][0] ) : null );
416
+ $customImgSize = ( ! empty( $scMeta['custom_image_size'] ) ? $scMeta['custom_image_size'] : [] );
417
+ // Grid Hover Layout
418
+ $fSmallImgSize = ( isset( $scMeta['featured_small_image_size'][0] ) ? $scMeta['featured_small_image_size'][0] : "medium" );
419
+ $customSmallImgSize = ( ! empty( $scMeta['custom_small_image_size'] ) ? $scMeta['custom_small_image_size'] : [] );
420
 
421
  $arg['scID'] = $scID;
422
+ $arg['items'] = isset( $scMeta['item_fields'] ) ? ( $scMeta['item_fields'] ? $scMeta['item_fields'] : [] ) : [];
423
  if ( in_array( 'cf', $arg['items'] ) ) {
424
+ $arg['cf_group'] = [];
425
  $arg['cf_group'] = get_post_meta( $scID, 'cf_group' );
426
+ $arg['format'] = [
427
  'hide_empty' => get_post_meta( $scID, 'cf_hide_empty_value', true ),
428
  'show_value' => get_post_meta( $scID, 'cf_show_only_value', true ),
429
+ 'hide_group_title' => get_post_meta( $scID, 'cf_hide_group_title', true ),
430
+ ];
431
  }
432
 
433
  // Set readmore false if excerpt type = full content
434
  if ( isset( $arg['excerpt_type'] ) && $arg['excerpt_type'] === 'full' && ( $key = array_search( 'read_more', $arg['items'] ) ) !== false ) {
435
  unset( $arg['items'][ $key ] );
436
  }
437
+ if ( empty( $scMeta['ignore_sticky_posts'][0] ) ) {
 
438
  $args['ignore_sticky_posts'] = true;
439
  } else {
440
  $args['wp_tpg_is_home'] = true;
441
  }
442
 
443
+ $filters = ! empty( $scMeta['tgp_filter'] ) ? $scMeta['tgp_filter'] : [];
444
  $action_term = ! empty( $scMeta['tgp_default_filter'][0] ) ? absint( $scMeta['tgp_default_filter'][0] ) : 0;
445
  $hide_all_button = ! empty( $scMeta['tpg_hide_all_button'][0] ) ? true : false;
446
  if ( $taxHierarchical ) {
455
  }
456
  }
457
  if ( in_array( '_taxonomy_filter', $filters ) && $taxFilter && $action_term ) {
458
+ $args['tax_query'] = [
459
+ [
460
  'taxonomy' => $taxFilter,
461
  'field' => 'term_id',
462
+ 'terms' => [ $action_term ],
463
+ ],
464
+ ];
465
  }
466
 
467
  if ( $limit != - 1 && $pagination ) {
475
  }
476
  }
477
 
478
+ if ( $pagination && $queryOffset && isset( $args['paged'] ) ) {
479
+ $queryOffset = ( $posts_per_page * ( $args['paged'] - 1 ) ) + $queryOffset;
480
+ }
481
+ if ($queryOffset) {
482
+ $args['offset'] = $queryOffset;
483
+ }
484
+
485
+ $arg['title_tag'] = ( ! empty( $scMeta['title_tag'][0] ) && in_array( $scMeta['title_tag'][0], array_keys( rtTPG()->getTitleTags() ) ) )
486
+ ? esc_attr( $scMeta['title_tag'][0] ) : 'h3';
487
 
488
  $gridQuery = new WP_Query( apply_filters( 'tpg_sc_query_args', $args, $scMeta ) );
489
 
491
  $html .= rtTPG()->layoutStyle( $layoutID, $scMeta, $layout, $scID );
492
  $containerDataAttr .= " data-sc-id='{$scID}'";
493
  $html .= "<div class='rt-container-fluid rt-tpg-container {$parentClass}' id='{$layoutID}' {$dataArchive} {$containerDataAttr}>";
494
+
495
+ // widget heading
496
+ $heading_tag = isset( $scMeta['tpg_heading_tag'][0] ) ? $scMeta['tpg_heading_tag'][0] : 'h2';
497
+ $heading_style = isset( $scMeta['tpg_heading_style'][0] ) && ! empty( $scMeta['tpg_heading_style'][0] ) ? $scMeta['tpg_heading_style'][0] : 'style1';
498
+ $heading_alignment = isset( $scMeta['tpg_heading_alignment'][0] ) ? $scMeta['tpg_heading_alignment'][0] : '';
499
+ $heading_link = isset( $scMeta['tpg_heading_link'][0] ) ? $scMeta['tpg_heading_link'][0] : '';
500
+
501
+ if ( ! empty( $arg['items'] ) && in_array( 'heading', $arg['items'] ) ) {
502
+ $html .= sprintf( '<div class="tpg-widget-heading-wrapper heading-%1$s %2$s">', $heading_style, $heading_alignment );
503
+ $html .= '<span class="tpg-widget-heading-line line-left"></span>';
504
+ if ( $heading_link ) {
505
+ $html .= sprintf( '<%1$s class="tpg-widget-heading"><a href="%2$s" title="%3$s">%3$s</a></%1$s>', $heading_tag, $heading_link, get_the_title() );
506
+ } else {
507
+ $html .= sprintf( '<%1$s class="tpg-widget-heading">%2$s</%1$s>', $heading_tag, get_the_title() );
508
+ }
509
+ $html .= '<span class="tpg-widget-heading-line"></span>';
510
+ $html .= '</div>';
511
+ }
512
+
513
+ if ( ! $isCarousel && isset( $settings['tpg_load_script'] ) && isset( $settings['tpg_enable_preloader'] ) ) {
514
+ $html .= '<div id="bottom-script-loader"><div class="rt-ball-clip-rotate"><div></div></div></div>';
515
+ }
516
  if ( ! empty( $filters ) && ( $isGrid || $isOffset || $isWooCom || $isEdd ) ) {
517
  $html .= "<div class='rt-layout-filter-container rt-clear'><div class='rt-filter-wrap'>";
518
  $selectedSubTermsForButton = null;
595
  }
596
  }
597
  if ( ! $hide_all_button ) {
598
+ $htmlButton = "<span class='term-dropdown-item rt-filter-dropdown-item' data-term='all'><span class='rt-text'>" . $allText
599
+ . "{$pAllCount}</span></span>" . $htmlButton;
600
  }
601
  $htmlButton = sprintf( '<span class="term-dropdown rt-filter-dropdown">%s</span>', $htmlButton );
602
 
644
  $bItems .= "<span class='term-button-item rt-filter-button-item {$termSelected}' data-term='{$id}'>{$term['name']}{$postCount}{$sT}</span>";
645
  }
646
  }
 
647
  } else {
648
  $bItems .= "<span class='term-button-item rt-filter-button-item {$termSelected}' data-term='{$id}'>{$term['name']}{$postCount}{$sT}</span>";
649
  }
663
  if ( in_array( '_author_filter', $filters ) ) {
664
  $filterType = ( ! empty( $scMeta['tgp_filter_type'][0] ) ? $scMeta['tgp_filter_type'][0] : null );
665
  $post_count = ( ! empty( $scMeta['tpg_post_count'][0] ) ? $scMeta['tpg_post_count'][0] : null );
666
+ $users = get_users( apply_filters( 'tpg_author_arg', [] ) );
667
 
668
  $allSelect = " selected";
669
  $isTermSelected = false;
784
  'the-post-grid' ) . "' class='rt-row rt-content-loader {$layout}{$masonryG} {$preLoader}'>";
785
 
786
  if ( $gridQuery->have_posts() ) {
 
787
  if ( $isCarousel ) {
788
+ $cOpt = ! empty( $scMeta['carousel_property'] ) ? $scMeta['carousel_property'] : [];
789
+ $slider_js_options = apply_filters( 'rttpg_slider_js_options', [
790
  "speed" => ! empty( $scMeta['tpg_carousel_speed'][0] ) ? absint( $scMeta['tpg_carousel_speed'][0] ) : 250,
791
  "autoPlayTimeOut" => ! empty( $scMeta['tpg_carousel_autoplay_timeout'][0] ) ? absint( $scMeta['tpg_carousel_autoplay_timeout'][0] ) : 5000,
792
  "autoPlay" => in_array( 'auto_play', $cOpt ),
795
  "dots" => in_array( 'pagination', $cOpt ),
796
  "loop" => in_array( 'loop', $cOpt ),
797
  "lazyLoad" => in_array( 'lazyLoad', $cOpt ),
798
+ "autoHeight" => in_array( 'auto_height', $cOpt ),
799
+ "rtl" => in_array( 'rtl', $cOpt ) ? 'rtl' : 'ltr',
800
+ ], $scMeta );
801
+ $html .= sprintf( '<div class="rt-swiper-holder swiper" data-rtowl-options="%s" dir="%s"><div class="swiper-wrapper">',
802
+ htmlspecialchars( wp_json_encode( $slider_js_options ) ),
803
+ $slider_js_options['rtl']
804
+ );
805
  }
806
  $isotope_filter = null;
807
  if ( $isIsotope ) {
808
  $isotope_filter = isset( $scMeta['isotope_filter'][0] ) ? $scMeta['isotope_filter'][0] : null;
809
  $isotope_dropdown_filter = isset( $scMeta['isotope_filter_dropdown'][0] ) ? $scMeta['isotope_filter_dropdown'][0] : null;
810
+ $selectedTerms = [];
811
+ if ( isset( $scMeta['post_filter'] )
812
+ && in_array( 'tpg_taxonomy',
813
+ $scMeta['post_filter'] )
814
+ && isset( $scMeta['tpg_taxonomy'] )
815
+ && in_array( $isotope_filter,
816
  $scMeta['tpg_taxonomy'] )
817
  ) {
818
+ $selectedTerms = ( isset( $scMeta[ 'term_' . $isotope_filter ] ) ? $scMeta[ 'term_' . $isotope_filter ] : [] );
819
  }
820
  $termArgs = [
821
  'taxonomy' => $isotope_filter,
822
  'orderby' => 'meta_value_num',
823
  'order' => 'ASC',
824
  'hide_empty' => false,
825
+ 'include' => $selectedTerms,
826
  ];
827
  if ( rtTPG()->hasPro() ) {
828
  $termArgs['meta_key'] = '_rt_order';
857
  }
858
  $filter_count = ! empty( $scMeta['isotope_filter_count'][0] ) ? true : false;
859
  $filter_url = ! empty( $scMeta['isotope_filter_url'][0] ) ? true : false;
860
+ $htmlButton
861
+ = "<div id='iso-button-{$rand}' class='rt-tpg-isotope-buttons button-group filter-button-group option-set' data-url='{$filter_url}' data-count='{$filter_count}'>{$htmlButton}</div>";
862
 
863
  if ( $isotope_dropdown_filter ) {
864
  $html .= "<select class='isotope-dropdown-filter'>{$drop}</select>";
874
  $html .= "<div class='rt-tpg-isotope' id='iso-tpg-{$rand}'>";
875
  }
876
 
877
+ $l = $offLoop = 0;
878
+ $offsetBigHtml = $offsetSmallHtml = null;
879
+ $gridPostCount = 0;
880
+ $arg['totalPost'] = $gridQuery->post_count;
881
 
882
  while ( $gridQuery->have_posts() ) : $gridQuery->the_post();
883
  if ( $colStore == $l ) {
888
  }
889
  $l = 0;
890
  }
891
+ $arg['postCount'] = $gridPostCount ++;
892
+ $pID = get_the_ID();
893
+ $arg['pID'] = $pID;
894
+ $arg['title'] = rtTPG()->get_the_title( $pID, $arg );
895
+ $arg['pLink'] = get_permalink();
896
+ $arg['toggle'] = $this->l4toggle;
897
+ $arg['layoutID'] = $layoutID;
898
+ $arg['author'] = apply_filters( 'rttpg_author_link',
899
+ sprintf( '<a href="%s">%s</a>', get_author_posts_url( get_the_author_meta( 'ID' ) ), get_the_author() ) );
900
+ $cc = wp_count_comments( $pID );
901
+ $arg['date'] = get_the_date();
902
+ $arg['excerpt'] = rtTPG()->get_the_excerpt( $pID, $arg );
903
+ $arg['categories'] = get_the_term_list( $pID, 'category', null, '<span class="rt-separator">,</span>' );
904
+ $arg['tags'] = get_the_term_list( $pID, 'post_tag', null, '<span class="rt-separator">,</span>' );
905
+ $arg['responsiveCol'] = [ $dCol, $tCol, $mCol ];
906
  if ( $isIsotope ) {
907
+ $termAs = wp_get_post_terms( $pID, $isotope_filter, [ "fields" => "all" ] );
908
  $isoFilter = [];
909
  if ( ! empty( $termAs ) ) {
910
  foreach ( $termAs as $term ) {
919
  } else {
920
  $arg['comment'] = "{$cc->total_comments}";
921
  }
922
+ $imgSrc = null;
923
+ $arg['smallImgSrc'] = ! $fImg ? rtTPG()->getFeatureImageSrc( $pID, $fSmallImgSize, $mediaSource,
924
+ $defaultImgId,
925
+ $customSmallImgSize ) : null;
926
  if ( $isOffset ) {
927
  if ( $offLoop == 0 ) {
928
  $arg['imgSrc'] = ! $fImg ? rtTPG()->getFeatureImageSrc( $pID, $fImgSize, $mediaSource,
932
  $offsetBigHtml = rtTPG()->render( 'layouts/' . $layout, $arg, true );
933
  } else {
934
  $arg['offset'] = 'small';
935
+ $arg['offsetCol'] = [ $dCol, $tCol, $mCol ];
936
  $arg['imgSrc'] = ! $fImg ? rtTPG()->getFeatureImageSrc( $pID, 'thumbnail',
937
  $mediaSource,
938
  $defaultImgId,
955
  if ( $layout == "offset03" || $layout == "offset04" ) {
956
  $oDCol['big'] = $oTCol['big'] = $oDCol['small'] = $oTCol['small'] = 6;
957
  $oMCol['big'] = $oMCol['small'] = 12;
958
+ } elseif ( $layout == "offset06" ) {
959
+ $oDCol['big'] = 7;
960
+ $oDCol['small'] = 5;
961
  }
962
  $html .= "<div class='rt-col-md-{$oDCol['big']} rt-col-sm-{$oTCol['big']} rt-col-xs-{$oMCol['big']}'><div class='rt-row'>{$offsetBigHtml}</div></div>";
963
  $html .= "<div class='rt-col-md-{$oDCol['small']} rt-col-sm-{$oTCol['small']} rt-col-xs-{$oMCol['small']}'><div class='rt-row offset-small-wrap'>{$offsetSmallHtml}</div></div>";
964
  }
965
  if ( $isIsotope || $isCarousel ) {
966
  $html .= '</div>'; // End isotope / Carousel item holder
967
+ if ( $isCarousel ) {
968
+ if ( in_array( 'pagination', $cOpt ) ) {
969
+ $html .= '<div class="swiper-pagination"></div>';
970
+ }
971
+ $html .= '</div>';
972
+ if ( in_array( 'nav_button', $cOpt ) ) {
973
+ $html .= '<div class="swiper-navigation"><div class="slider-btn swiper-button-prev"></div><div class="slider-btn swiper-button-next"></div></div>';
974
+ }
975
+ }
976
  }
 
977
  } else {
978
+ $not_found_text = isset( $scMeta['tgp_not_found_text'][0] ) && ! empty( $scMeta['tgp_not_found_text'][0] ) ? esc_attr( $scMeta['tgp_not_found_text'][0] )
979
+ : __( 'No post found', 'the-post-grid' );
980
  $html .= sprintf( '<p>%s</p>',
981
  apply_filters( 'tpg_not_found_text', $not_found_text, $args, $scMeta )
982
  );
985
  $html .= "</div>"; // End row
986
  $htmlUtility = null;
987
  if ( $pagination && ! $isCarousel ) {
988
+ if ( $isOffset || $isGridHover ) {
989
  $posts_loading_type = "page_prev_next";
990
  $htmlUtility .= "<div class='rt-cb-page-prev-next'>
991
  <span class='rt-cb-prev-btn'><i class='fa fa-angle-left' aria-hidden='true'></i></span>
1005
  <span class='rt-loadmore-text'>" . __( 'Load More', 'the-post-grid' ) . "</span>
1006
  <div class='rt-loadmore-loading rt-ball-scale-multiple rt-2x'><div></div><div></div><div></div></div>
1007
  </div>";
 
1008
  } elseif ( $posts_loading_type == "load_on_scroll" && rtTPG()->hasPro() ) {
1009
  $htmlUtility .= "<div class='rt-infinite-action'>
1010
  <div class='rt-infinite-loading la-fire la-2x'>
1022
  if ( $layout == "layout4" ) {
1023
  $l4toggle = "data-l4toggle='{$this->l4toggle}'";
1024
  }
1025
+ $html .= "<div class='rt-pagination-wrap' data-total-pages='{$gridQuery->max_num_pages}' data-posts-per-page='{$args['posts_per_page']}' data-type='{$posts_loading_type}' {$l4toggle} >"
1026
+ . $htmlUtility . "</div>";
1027
  }
1028
 
1029
  $html .= "</div>"; // container rt-tpg
1030
 
1031
  wp_reset_postdata();
1032
 
1033
+ $scriptGenerator = [];
1034
  $scriptGenerator['layout'] = $layoutID;
1035
  $scriptGenerator['rand'] = $rand;
1036
  $scriptGenerator['scMeta'] = $scMeta;
1038
  $scriptGenerator['isSinglePopUp'] = $isSinglePopUp;
1039
  $scriptGenerator['isWooCom'] = $isWooCom;
1040
  $this->scA[] = $scriptGenerator;
1041
+ add_action( 'wp_footer', [ $this, 'register_sc_scripts' ] );
1042
  } else {
1043
  $html .= "<p>" . __( "No shortCode found", "the-post-grid" ) . "</p>";
1044
  }
1045
 
1046
  //restriction issue
1047
+ $restriction = ( ! empty( $scMeta['restriction_user_role'] ) ? $scMeta['restriction_user_role'] : [] );
1048
  if ( ! empty( $restriction ) ) {
1049
  if ( is_user_logged_in() ) {
1050
  $currentUserRoles = rtTPG()->getCurrentUserRoles();
1058
  "the-post-grid" ) . "</p>";
1059
  }
1060
  }
 
1061
  } else {
1062
  $html = "<p>" . __( "This is a restricted content, you need to logged in to view this content.",
1063
  "the-post-grid" ) . "</p>";
1073
 
1074
  return $args;
1075
  }
1076
+
1077
  }
1078
  endif;
lib/init.php CHANGED
@@ -51,7 +51,7 @@ if ( ! class_exists( 'rtTPG' ) ) {
51
  ),
52
  'custom_css' => null
53
  );
54
-
55
  add_action('admin_footer', array($this, 'pro_alert_html'));
56
 
57
  }
51
  ),
52
  'custom_css' => null
53
  );
54
+ add_filter( 'wp_calculate_image_srcset', '__return_false' );
55
  add_action('admin_footer', array($this, 'pro_alert_html'));
56
 
57
  }
lib/models/rtTPGField.php CHANGED
@@ -42,7 +42,15 @@ if ( ! class_exists( 'rtTPGField' ) ):
42
  if ( $this->multiple ) {
43
  $this->value = get_post_meta( $post_id, $this->name );
44
  } else {
45
- $this->value = get_post_meta( $post_id, $this->name, true );
 
 
 
 
 
 
 
 
46
  }
47
  }
48
  }
@@ -111,12 +119,20 @@ if ( ! class_exists( 'rtTPGField' ) ):
111
 
112
  case 'switch':
113
  $html .= $this->switchField();
 
 
 
 
114
  break;
115
 
116
  case 'radio':
117
  $html .= $this->radioField();
118
  break;
119
 
 
 
 
 
120
  case 'date_range':
121
  $html .= $this->dateRange();
122
  break;
@@ -319,6 +335,7 @@ if ( ! class_exists( 'rtTPGField' ) ):
319
  if ( is_array( $this->options ) && ! empty( $this->options ) ) {
320
  foreach ( $this->options as $key => $value ) {
321
  $checked = ( in_array( $key, $this->value ) ? "checked" : null );
 
322
  $h .= "<label for='{$this->id}-{$key}'>
323
  <input {$atts} type='checkbox' id='{$this->id}-{$key}' {$checked} name='{$this->name}' value='{$key}'>{$value}
324
  </label>";
@@ -335,9 +352,272 @@ if ( ! class_exists( 'rtTPGField' ) ):
335
 
336
  private function switchField() {
337
  $h = null;
338
- $checked = ( $this->value ? "checked" : null );
339
  $h .= "<label class='rttm-switch'><input type='checkbox' {$checked} id='{$this->id}' name='{$this->name}' value='1' /><span class='rttm-switch-slider round'></span></label>";
340
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
341
  return $h;
342
  }
343
 
@@ -362,6 +642,52 @@ if ( ! class_exists( 'rtTPGField' ) ):
362
  return $h;
363
  }
364
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
365
  private function dateRange() {
366
  $h = null;
367
  $this->name = ( $this->name ? $this->name : "date-range-" . rand( 0, 1000 ) );
42
  if ( $this->multiple ) {
43
  $this->value = get_post_meta( $post_id, $this->name );
44
  } else {
45
+ if ( 'switch' != $this->type ) {
46
+ $this->value = get_post_meta( $post_id, $this->name, true );
47
+ } else {
48
+ if (metadata_exists('post', $post_id, $this->name)) {
49
+ $this->value = get_post_meta( $post_id, $this->name, true );
50
+ } else {
51
+ $this->value = $this->default;
52
+ }
53
+ }
54
  }
55
  }
56
  }
119
 
120
  case 'switch':
121
  $html .= $this->switchField();
122
+ break;
123
+
124
+ case 'checkboxFilter':
125
+ $html .= $this->checkboxFilter();
126
  break;
127
 
128
  case 'radio':
129
  $html .= $this->radioField();
130
  break;
131
 
132
+ case 'radio-image':
133
+ $html .= $this->radioImage();
134
+ break;
135
+
136
  case 'date_range':
137
  $html .= $this->dateRange();
138
  break;
335
  if ( is_array( $this->options ) && ! empty( $this->options ) ) {
336
  foreach ( $this->options as $key => $value ) {
337
  $checked = ( in_array( $key, $this->value ) ? "checked" : null );
338
+
339
  $h .= "<label for='{$this->id}-{$key}'>
340
  <input {$atts} type='checkbox' id='{$this->id}-{$key}' {$checked} name='{$this->name}' value='{$key}'>{$value}
341
  </label>";
352
 
353
  private function switchField() {
354
  $h = null;
355
+ $checked = $this->value ? "checked" : null;
356
  $h .= "<label class='rttm-switch'><input type='checkbox' {$checked} id='{$this->id}' name='{$this->name}' value='1' /><span class='rttm-switch-slider round'></span></label>";
357
 
358
+ return $h;
359
+ }
360
+
361
+ private function checkboxFilter() {
362
+
363
+ global $post;
364
+
365
+ $pt = get_post_meta($post->ID, 'tpg_post_type', true);
366
+ $advFilters = rtTPG()->rtTPAdvanceFilters();
367
+
368
+ $holderClass = explode(' ', $this->holderClass);
369
+ $atts = (in_array('pro-field', $holderClass)) && !rtTPG()->hasPro() ? 'disabled="true"' : '';
370
+ $h = null;
371
+ if ( $this->multiple ) {
372
+ $this->name = $this->name . "[]";
373
+ $this->value = ( is_array( $this->value ) && ! empty( $this->value ) ? $this->value : array() );
374
+ }
375
+ if ( $this->multiple ) {
376
+ $h .= "<div class='checkbox-group {$this->alignment}' id='{$this->id}'>";
377
+ if ( is_array( $this->options ) && ! empty( $this->options ) ) {
378
+ foreach ( $this->options as $key => $value ) {
379
+ $checked = ( in_array( $key, $this->value ) ? "checked" : null );
380
+
381
+ $h .= '<div class="checkbox-filter-field">';
382
+
383
+ $h .= "<label for='{$this->id}-{$key}'>
384
+ <input {$atts} type='checkbox' id='{$this->id}-{$key}' {$checked} name='{$this->name}' value='{$key}'>{$value}
385
+ </label>";
386
+
387
+ //foreach($advFilters['post_filter']['options'] as $key => $filter){
388
+
389
+ if($key == 'tpg_taxonomy'){
390
+ $h .= "<div class='rt-tpg-filter taxonomy tpg_taxonomy tpg-hidden'>";
391
+
392
+ if(isset($pt) && $pt){
393
+ $taxonomies = rtTPG()->rt_get_all_taxonomy_by_post_type($pt);
394
+ $taxA = get_post_meta($post->ID, 'tpg_taxonomy');
395
+ $post_filter = get_post_meta($post->ID, 'post_filter');
396
+
397
+ $h .= "<div class='taxonomy-field'>";
398
+ if(is_array($post_filter) && !empty($post_filter) && in_array('tpg_taxonomy', $post_filter) && !empty($taxonomies)) {
399
+ $h .= rtTPG()->rtFieldGenerator(
400
+ array(
401
+ 'tpg_taxonomy' => array(
402
+ 'type' => 'checkbox',
403
+ 'label' => '',
404
+ 'id' => 'post-taxonomy',
405
+ "multiple" => true,
406
+ 'options' => $taxonomies
407
+ )
408
+ )
409
+ );
410
+ }else{
411
+ $h .= '<div class="field-holder">No Taxonomy found</div>';
412
+ }
413
+ $h .= "</div>";
414
+ $h .= "<div class='rt-tpg-filter-item term-filter-item tpg-hidden'>";
415
+ $h .= '<div class="field-holder">';
416
+ $h .= '<div class="field-label">Terms</div>';
417
+ $h .= '<div class="field term-filter-holder">';
418
+ if(is_array($taxA) && !empty($taxA)){
419
+ foreach($taxA as $tax){
420
+
421
+ $h .="<div class='term-filter-item-container {$tax}'>";
422
+ $h .= rtTPG()->rtFieldGenerator(
423
+ array(
424
+ 'term_'.$tax => array(
425
+ 'type' => 'select',
426
+ 'label' => ucfirst(str_replace('_', ' ', $tax)),
427
+ 'class' => 'rt-select2 full',
428
+ 'holderClass' => "term-filter-item {$tax}",
429
+ 'value' => get_post_meta($post->ID, 'term_'.$tax),
430
+ "multiple" => true,
431
+ 'options' => rtTPG()->rt_get_all_term_by_taxonomy($tax)
432
+ )
433
+ )
434
+ );
435
+ $h .= rtTPG()->rtFieldGenerator(
436
+ array(
437
+ 'term_operator_'.$tax => array(
438
+ 'type' => 'select',
439
+ 'label' => 'Operator',
440
+ 'class' => 'rt-select2 full',
441
+ 'holderClass' => "term-filter-item-operator {$tax}",
442
+ 'value' => get_post_meta($post->ID, 'term_operator_'.$tax, true),
443
+ 'options' => rtTPG()->rtTermOperators()
444
+ )
445
+ )
446
+ );
447
+ $h .= "</div>";
448
+ }
449
+ }
450
+ $h .= "</div>";
451
+ $h .= "</div>";
452
+
453
+ $h .= rtTPG()->rtFieldGenerator(
454
+ array(
455
+ 'taxonomy_relation' => array(
456
+ 'type' => 'select',
457
+ 'label' => 'Relation',
458
+ 'class' => 'rt-select2',
459
+ 'holderClass' => "term-filter-item-relation ". (count($taxA) > 1 ? null : "hidden"),
460
+ 'value' => get_post_meta($post->ID, 'taxonomy_relation', true),
461
+ 'options' => rtTPG()->rtTermRelations()
462
+ )
463
+ )
464
+ );
465
+
466
+ $h .= "</div>";
467
+ }else{
468
+
469
+ $h .= "<div class='taxonomy-field'>";
470
+ $h .= "</div>";
471
+ $h .= "<div class='rt-tpg-filter-item'>";
472
+ $h .= '<div class="field-holder">';
473
+ $h .= '<div class="field-label">Terms</div>';
474
+ $h .= '<div class="field term-filter-holder">';
475
+ $h .= "</div>";
476
+ $h .= "</div>";
477
+ $h .= "</div>";
478
+ $h .= rtTPG()->rtFieldGenerator(
479
+ array(
480
+ 'taxonomy_relation' => array(
481
+ 'type' => 'select',
482
+ 'label' => 'Relation',
483
+ 'class' => 'rt-select2',
484
+ 'holderClass' => "term-filter-item-relation tpg-hidden",
485
+ 'default' => 'OR',
486
+ 'options' => rtTPG()->rtTermRelations()
487
+ )
488
+ )
489
+ );
490
+ }
491
+ $h .= "</div>";
492
+ } else if($key == 'order') {
493
+ $h .= "<div class='rt-tpg-filter {$key} tpg-hidden'>";
494
+ $h .= "<div class='rt-tpg-filter-item'>";
495
+ $h .="<div class='field-holder'>";
496
+ $h .="<div class='field'>";
497
+ $h .= rtTPG()->rtFieldGenerator(
498
+ array(
499
+ 'order_by' => array(
500
+ 'type' => 'select',
501
+ 'label' => 'Order by',
502
+ 'class' => 'rt-select2 filter-item',
503
+ 'value' => get_post_meta($post->ID, 'order_by', true),
504
+ 'options' => rtTPG()->rtPostOrderBy(false, true),
505
+ 'description' => __('If "Meta value", "Meta value Number" or "Meta value datetime" is chosen then meta key is required.', 'the-post-grid')
506
+ )
507
+ )
508
+ );
509
+ $h .= rtTPG()->rtFieldGenerator(
510
+ array(
511
+ 'tpg_meta_key' => array(
512
+ 'type' => 'text',
513
+ 'label' => 'Meta key',
514
+ 'class' => 'rt-select2 filter-item',
515
+ 'holderClass' => 'tpg-hidden',
516
+ 'value' => get_post_meta($post->ID, 'tpg_meta_key', true)
517
+ )
518
+ )
519
+ );
520
+ $h .= rtTPG()->rtFieldGenerator(
521
+ array(
522
+ 'order' => array(
523
+ 'type' => 'radio',
524
+ 'label' => 'Order',
525
+ 'class' => 'rt-select2 filter-item',
526
+ 'alignment' => 'vertical',
527
+ 'default' => 'DESC',
528
+ 'value' => get_post_meta($post->ID, 'order', true),
529
+ 'options' => rtTPG()->rtPostOrders()
530
+ )
531
+ )
532
+ );
533
+ $h .="</div>";
534
+ $h .="</div>";
535
+ $h .= "</div>";
536
+ $h .= "</div>";
537
+ } else if($key == 'author') {
538
+ $h .= "<div class='rt-tpg-filter {$key} tpg-hidden'>";
539
+ $h .= "<div class='rt-tpg-filter-item'>";
540
+ $h .= rtTPG()->rtFieldGenerator(
541
+ array(
542
+ $key => array(
543
+ 'type' => 'select',
544
+ 'label' => '',
545
+ 'class' => 'rt-select2 filter-item full',
546
+ 'value' => get_post_meta($post->ID, $key),
547
+ "multiple" => true,
548
+ 'options' => rtTPG()->rt_get_users()
549
+ )
550
+ )
551
+ );
552
+ $h .= "</div>";
553
+ $h .= "</div>";
554
+ } else if($key == 'tpg_post_status'){
555
+ $h .= "<div class='rt-tpg-filter {$key} tpg-hidden'>";
556
+ $h .= "<div class='rt-tpg-filter-item'>";
557
+ $h .= rtTPG()->rtFieldGenerator(
558
+ array(
559
+ $key => array(
560
+ 'type' => 'select',
561
+ 'label' => '',
562
+ 'class' => 'rt-select2 filter-item full',
563
+ 'default' => array('publish'),
564
+ 'value' => get_post_meta($post->ID, $key),
565
+ "multiple" => true,
566
+ 'options' => rtTPG()->rtTPGPostStatus()
567
+ )
568
+ )
569
+ );
570
+ $h .= "</div>";
571
+ $h .= "</div>";
572
+ } else if($key == 's'){
573
+ $h .= "<div class='rt-tpg-filter {$key} tpg-hidden'>";
574
+ $h .= "<div class='rt-tpg-filter-item'>";
575
+ $h .= rtTPG()->rtFieldGenerator(
576
+ array(
577
+ $key => array(
578
+ 'type' => 'text',
579
+ 'label' => 'Keyword',
580
+ 'class' => 'filter-item full',
581
+ 'value' => get_post_meta($post->ID, $key, true)
582
+ )
583
+ )
584
+ );
585
+ $h .= "</div>";
586
+ $h .= "</div>";
587
+ } else if($key == 'date_range'){
588
+ $range_start = get_post_meta($post->ID, 'date_range_start', true);
589
+ $range_end = get_post_meta($post->ID, 'date_range_end', true);
590
+ $range_value = [
591
+ 'start' => $range_start,
592
+ 'end' => $range_end
593
+ ];
594
+ $h .= "<div class='rt-tpg-filter {$key} tpg-hidden'>";
595
+ $h .= "<div class='rt-tpg-filter-item'>";
596
+ $h .= rtTPG()->rtFieldGenerator(
597
+ array(
598
+ $key=> array(
599
+ 'type' => 'date_range',
600
+ 'label' => '',
601
+ 'class' => 'filter-item full rt-date-range',
602
+ 'value' => $range_value,
603
+ 'description' => "Date format should be 'yyyy-mm-dd'",
604
+ )
605
+ )
606
+ );
607
+ $h .= "</div>";
608
+ $h .= "</div>";
609
+ }
610
+ //}
611
+
612
+ $h .= '</div>';
613
+ }
614
+ }
615
+ $h .= "</div>";
616
+ } else {
617
+ $checked = ( $this->value ? "checked" : null );
618
+ $h .= "<label><input type='checkbox' {$checked} id='{$this->id}' name='{$this->name}' value='1' />{$this->option}</label>";
619
+ }
620
+
621
  return $h;
622
  }
623
 
642
  return $h;
643
  }
644
 
645
+ /**
646
+ * Radio Image
647
+ *
648
+ * @return String
649
+ */
650
+ private function radioImage() {
651
+ $h = null;
652
+ $id = 'rttpg-' . $this->name;
653
+
654
+ $h .= sprintf("<div class='rttpg-radio-image %s' id='%s'>", esc_attr($this->alignment), esc_attr($id));
655
+ $selected_value = $this->value;
656
+
657
+ if ( is_array($this->options) && !empty($this->options) ) {
658
+ foreach ($this->options as $key => $value) {
659
+ $checked = ( $key == $selected_value ? "checked" : null);
660
+ $title = isset( $value['title'] ) && $value['title'] ? esc_html( $value['title'] ) : '';
661
+ $link = isset( $value['layout_link'] ) && $value['layout_link'] ? $value['layout_link'] : '';
662
+ $linkHtml = empty($link) ? esc_html($title) : '<a href="'.esc_url($link).'" target="_blank">'.esc_html($title).'</a>';
663
+ $layout = isset( $value['layout'] ) ? $value['layout'] : '';
664
+ $taghtml = isset($value['tag']) ? '<div class="rt-tpg-layout-tag"><span>'.$value['tag'].'</span></div>' : '';
665
+ $h .= sprintf('<div class="rt-tpg-radio-layout %7$s"><label data-type="%7$s" class="radio-image %7$s" for="%2$s">
666
+ <input type="radio" id="%2$s" %3$s name="%4$s" value="%2$s">
667
+ <div class="rttpg-radio-image-wrap">
668
+ <img src="%5$s" title="%6$s" alt="%2$s">
669
+ <div class="rttpg-checked"><span class="dashicons dashicons-yes"></span></div>
670
+ %9$s
671
+ </div>
672
+ </label>
673
+ <div class="rttpg-demo-name">%8$s</div>
674
+ </div>',
675
+ '',
676
+ esc_attr( $key ),
677
+ esc_attr($checked),
678
+ esc_attr($this->name),
679
+ esc_url($value['img']),
680
+ esc_attr($title),
681
+ esc_attr($layout),
682
+ $linkHtml,
683
+ $taghtml
684
+ );
685
+ }
686
+ }
687
+ $h .= "</div>";
688
+ return $h;
689
+ }
690
+
691
  private function dateRange() {
692
  $h = null;
693
  $this->name = ( $this->name ? $this->name : "date-range-" . rand( 0, 1000 ) );
lib/templates/layouts/isotope1.php CHANGED
@@ -1,6 +1,42 @@
1
  <?php
 
2
 
3
- $html = $htmlDetail = $iTitle = null;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  if(in_array('title', $items)){
5
  $iTitle = sprintf('<%1$s class="entry-title"><a data-id="%2$s" class="%3$s" href="%4$s"%5$s>%6$s</a></%1$s>', $title_tag,$pID,$anchorClass,$pLink,$link_target,$title);
6
  }
@@ -8,35 +44,26 @@ if(in_array('title', $items)){
8
  $html .= sprintf('<div class="%s" data-id="%d">', esc_attr(implode(" ", array_filter([$grid, $class, $isoFilter]))), $pID);
9
  $html .= '<div class="rt-holder">';
10
  if($tpg_title_position == 'above'){
 
 
 
11
  $html .= sprintf('<div class="rt-detail rt-with-title">%s</div>', $iTitle);
12
  }
13
  if($imgSrc) {
14
- $html .= sprintf('<div class="rt-img-holder">
15
- <a data-id="%s" class="%s" href="%s"%s>%s</a>
16
- </div>', $pID, $anchorClass, $pLink, $link_target, $imgSrc);
 
 
 
 
17
  }
18
  if($tpg_title_position != 'above'){
19
  $htmlDetail .= $iTitle;
20
  }
21
- $postMetaTop = $postMetaMid =null;
22
 
23
- if(in_array('author', $items)){
24
- $postMetaTop .= "<span class='author'><i class='fa fa-user'></i>{$author}</span>";
25
- }
26
- if(in_array('post_date', $items) && $date) {
27
- $postMetaTop .= "<span class='date'><i class='far fa-calendar-alt'></i>{$date}</span>";
28
- }
29
- if(in_array('categories', $items) && $categories) {
30
- $postMetaTop .= "<span class='categories-links'><i class='fas fa-folder-open'></i>{$categories}</span>";
31
- }
32
- if(in_array('tags', $items) && $tags) {
33
- $postMetaTop .= "<span class='post-tags-links'><i class='fa fa-tags'></i>{$tags}</span>";
34
- }
35
- if(in_array('comment_count', $items) && $comment) {
36
- $postMetaTop .= "<span class='comment-link'><i class='fas fa-comments'></i>{$comment}</span>";
37
- }
38
- if(!empty($postMetaTop)) {
39
- $htmlDetail .= "<div class='post-meta-user'>{$postMetaTop}</div>";
40
  }
41
  if(!empty($postMetaMid)) {
42
  $htmlDetail .= "<div class='post-meta-tags'>{$postMetaMid}</div>";
@@ -44,6 +71,9 @@ $html .= sprintf('<div class="%s" data-id="%d">', esc_attr(implode(" ", array_fi
44
  if(in_array('excerpt', $items)) {
45
  $htmlDetail .= "<div class='tpg-excerpt'>{$excerpt}</div>";
46
  }
 
 
 
47
 
48
  $postMetaBottom = null;
49
 
1
  <?php
2
+ $html = $htmlDetail = $iTitle = $catHtml = $postMetaTop = $postMetaMid = null;
3
 
4
+ if(in_array('categories', $items) && $categories) {
5
+ $catHtml .= "<span class='categories-links'>";
6
+ if ($catIcon) {
7
+ $catHtml .= "<i class='fas fa-folder-open'></i>";
8
+ }
9
+ $catHtml .= "{$categories}</span>";
10
+ }
11
+ if(in_array('author', $items)){
12
+ $postMetaTop .= "<span class='author'>";
13
+ if ($metaIcon) {
14
+ $postMetaTop .= "<i class='fa fa-user'></i>";
15
+ }
16
+ $postMetaTop .= "{$author}</span>";
17
+ }
18
+ if(in_array('post_date', $items) && $date){
19
+ $postMetaTop .= "<span class='date'>";
20
+ if ($metaIcon) {
21
+ $postMetaTop .= "<i class='far fa-calendar-alt'></i>";
22
+ }
23
+ $postMetaTop .= "{$date}</span>";
24
+ }
25
+ $postMetaTop .= $catHtml;
26
+ if(in_array('tags', $items) && $tags){
27
+ $postMetaTop .= "<span class='post-tags-links'>";
28
+ if ($metaIcon) {
29
+ $postMetaTop .= "<i class='fa fa-tags'></i>";
30
+ }
31
+ $postMetaTop .= "{$tags}</span>";
32
+ }
33
+ if(in_array('comment_count', $items)){
34
+ $postMetaTop .= '<span class="comment-count">';
35
+ if ($metaIcon) {
36
+ $postMetaTop .= '<i class="fas fa-comments"></i>';
37
+ }
38
+ $postMetaTop .= $comment.'</span>';
39
+ }
40
  if(in_array('title', $items)){
41
  $iTitle = sprintf('<%1$s class="entry-title"><a data-id="%2$s" class="%3$s" href="%4$s"%5$s>%6$s</a></%1$s>', $title_tag,$pID,$anchorClass,$pLink,$link_target,$title);
42
  }
44
  $html .= sprintf('<div class="%s" data-id="%d">', esc_attr(implode(" ", array_filter([$grid, $class, $isoFilter]))), $pID);
45
  $html .= '<div class="rt-holder">';
46
  if($tpg_title_position == 'above'){
47
+ if (!empty($postMetaTop) && $metaPosition == 'above_title') {
48
+ $html .= "<div class='post-meta-user {$metaPosition} {$metaSeparator}'>{$postMetaTop}</div>";
49
+ }
50
  $html .= sprintf('<div class="rt-detail rt-with-title">%s</div>', $iTitle);
51
  }
52
  if($imgSrc) {
53
+ $html .= '<div class="rt-img-holder">';
54
+ $html .= sprintf('<a data-id="%s" class="%s" href="%s"%s>%s</a>', $pID, $anchorClass, $pLink, $link_target, $imgSrc);
55
+ $html .= '</div>';
56
+ }
57
+
58
+ if (!empty($postMetaTop) && $metaPosition == 'above_title' && $tpg_title_position != 'above') {
59
+ $htmlDetail .= "<div class='post-meta-user {$metaPosition} {$metaSeparator}'>{$postMetaTop}</div>";
60
  }
61
  if($tpg_title_position != 'above'){
62
  $htmlDetail .= $iTitle;
63
  }
 
64
 
65
+ if(!empty($postMetaTop) && (empty($metaPosition) || $metaPosition == 'above_excerpt')){
66
+ $htmlDetail .= "<div class='post-meta-user {$metaPosition} {$metaSeparator}'>{$postMetaTop}</div>";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
  }
68
  if(!empty($postMetaMid)) {
69
  $htmlDetail .= "<div class='post-meta-tags'>{$postMetaMid}</div>";
71
  if(in_array('excerpt', $items)) {
72
  $htmlDetail .= "<div class='tpg-excerpt'>{$excerpt}</div>";
73
  }
74
+ if (!empty($postMetaTop) && $metaPosition == 'below_excerpt') {
75
+ $htmlDetail .= "<div class='post-meta-user {$metaPosition} {$metaSeparator}'>{$postMetaTop}</div>";
76
+ }
77
 
78
  $postMetaBottom = null;
79
 
lib/templates/layouts/layout1.php CHANGED
@@ -1,40 +1,68 @@
1
  <?php
 
2
 
3
- $html = $htmlDetail = $metaHtml = $iTitle = null;
4
- if(in_array('title', $items)){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  $iTitle = sprintf('<%1$s class="entry-title"><a data-id="%2$s" class="%3$s" href="%4$s"%5$s>%6$s</a></%1$s>', $title_tag,$pID,$anchorClass,$pLink,$link_target,$title);
6
  }
7
 
8
  $html .= sprintf('<div class="%s" data-id="%d">', esc_attr(implode(" ", [$grid, $class])), $pID);
9
  $html .= '<div class="rt-holder">';
10
- if($tpg_title_position == 'above'){
 
 
 
11
  $html .= sprintf('<div class="rt-detail rt-with-title">%s</div>', $iTitle);
12
  }
13
- if($imgSrc) {
14
- $html .= sprintf('<div class="rt-img-holder"><a data-id="%s" class="%s" href="%s"%s>%s</a></div>', $pID, $anchorClass, $pLink, $link_target, $imgSrc);
15
- }
 
 
16
 
17
- $postMetaTop = $postMetaMid =null;
 
 
18
  if($tpg_title_position != 'above'){
19
  $htmlDetail .= $iTitle;
20
  }
21
- if(in_array('author', $items)){
22
- $postMetaTop .= "<span class='author'><i class='fa fa-user'></i>{$author}</span>";
23
- }
24
- if(in_array('post_date', $items) && $date){
25
- $postMetaTop .= "<span class='date'><i class='far fa-calendar-alt'></i>{$date}</span>";
26
- }
27
- if(in_array('categories', $items) && $categories){
28
- $postMetaTop .= "<span class='categories-links'><i class='fas fa-folder-open'></i>{$categories}</span>";
29
- }
30
- if(in_array('tags', $items) && $tags){
31
- $postMetaTop .= "<span class='post-tags-links'><i class='fa fa-tags'></i>{$tags}</span>";
32
- }
33
- if(in_array('comment_count', $items)){
34
- $postMetaTop .= '<span class="comment-count"><i class="fas fa-comments"></i> '. $comment.'</span>';
35
- }
36
- if(!empty($postMetaTop)){
37
- $htmlDetail .= "<div class='post-meta-user'>{$postMetaTop}</div>";
38
  }
39
  if(!empty($postMetaMid)){
40
  $htmlDetail .= "<div class='post-meta-tags'>{$postMetaMid}</div>";
@@ -42,6 +70,9 @@ $html .= sprintf('<div class="%s" data-id="%d">', esc_attr(implode(" ", [$grid,
42
  if(in_array('excerpt', $items)){
43
  $htmlDetail .= "<div class='tpg-excerpt'>{$excerpt}</div>";
44
  }
 
 
 
45
  $postMetaBottom = null;
46
 
47
  if(in_array('read_more', $items)) {
@@ -56,4 +87,4 @@ $html .= sprintf('<div class="%s" data-id="%d">', esc_attr(implode(" ", [$grid,
56
  $html .= '</div>';
57
  $html .='</div>';
58
 
59
- echo $html;
1
  <?php
2
+ $html = $htmlDetail = $metaHtml = $iTitle = $catHtml = $postMetaTop = $postMetaMid = null;
3
 
4
+ if(in_array('categories', $items) && $categories) {
5
+ $catHtml .= "<span class='categories-links'>";
6
+ if ($catIcon) {
7
+ $catHtml .= "<i class='fas fa-folder-open'></i>";
8
+ }
9
+ $catHtml .= "{$categories}</span>";
10
+ }
11
+ if(in_array('author', $items)){
12
+ $postMetaTop .= "<span class='author'>";
13
+ if ($metaIcon) {
14
+ $postMetaTop .= "<i class='fa fa-user'></i>";
15
+ }
16
+ $postMetaTop .= "{$author}</span>";
17
+ }
18
+ if(in_array('post_date', $items) && $date){
19
+ $postMetaTop .= "<span class='date'>";
20
+ if ($metaIcon) {
21
+ $postMetaTop .= "<i class='far fa-calendar-alt'></i>";
22
+ }
23
+ $postMetaTop .= "{$date}</span>";
24
+ }
25
+ $postMetaTop .= $catHtml;
26
+ if(in_array('tags', $items) && $tags){
27
+ $postMetaTop .= "<span class='post-tags-links'>";
28
+ if ($metaIcon) {
29
+ $postMetaTop .= "<i class='fa fa-tags'></i>";
30
+ }
31
+ $postMetaTop .= "{$tags}</span>";
32
+ }
33
+ if(in_array('comment_count', $items)){
34
+ $postMetaTop .= '<span class="comment-count">';
35
+ if ($metaIcon) {
36
+ $postMetaTop .= '<i class="fas fa-comments"></i>';
37
+ }
38
+ $postMetaTop .= $comment.'</span>';
39
+ }
40
+ if(in_array('title', $items)) {
41
  $iTitle = sprintf('<%1$s class="entry-title"><a data-id="%2$s" class="%3$s" href="%4$s"%5$s>%6$s</a></%1$s>', $title_tag,$pID,$anchorClass,$pLink,$link_target,$title);
42
  }
43
 
44
  $html .= sprintf('<div class="%s" data-id="%d">', esc_attr(implode(" ", [$grid, $class])), $pID);
45
  $html .= '<div class="rt-holder">';
46
+ if($tpg_title_position == 'above') {
47
+ if (!empty($postMetaTop) && $metaPosition == 'above_title') {
48
+ $html .= "<div class='post-meta-user {$metaPosition} {$metaSeparator}'>{$postMetaTop}</div>";
49
+ }
50
  $html .= sprintf('<div class="rt-detail rt-with-title">%s</div>', $iTitle);
51
  }
52
+ if($imgSrc) {
53
+ $html .= '<div class="rt-img-holder">';
54
+ $html .= sprintf('<a data-id="%s" class="%s" href="%s"%s>%s</a>', $pID, $anchorClass, $pLink, $link_target, $imgSrc);
55
+ $html .= '</div>';
56
+ }
57
 
58
+ if (!empty($postMetaTop) && $metaPosition == 'above_title' && $tpg_title_position != 'above') {
59
+ $htmlDetail .= "<div class='post-meta-user {$metaPosition} {$metaSeparator}'>{$postMetaTop}</div>";
60
+ }
61
  if($tpg_title_position != 'above'){
62
  $htmlDetail .= $iTitle;
63
  }
64
+ if(!empty($postMetaTop) && (empty($metaPosition) || $metaPosition == 'above_excerpt')){
65
+ $htmlDetail .= "<div class='post-meta-user {$metaPosition} {$metaSeparator}'>{$postMetaTop}</div>";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
  }
67
  if(!empty($postMetaMid)){
68
  $htmlDetail .= "<div class='post-meta-tags'>{$postMetaMid}</div>";
70
  if(in_array('excerpt', $items)){
71
  $htmlDetail .= "<div class='tpg-excerpt'>{$excerpt}</div>";
72
  }
73
+ if (!empty($postMetaTop) && $metaPosition == 'below_excerpt') {
74
+ $htmlDetail .= "<div class='post-meta-user {$metaPosition} {$metaSeparator}'>{$postMetaTop}</div>";
75
+ }
76
  $postMetaBottom = null;
77
 
78
  if(in_array('read_more', $items)) {
87
  $html .= '</div>';
88
  $html .='</div>';
89
 
90
+ echo $html;
lib/templates/layouts/layout12.php ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $html = $metaHtmltop = $metaHtmlbottom = $titleHtml = $catHtml = null;
3
+
4
+ if(in_array('categories', $items) && $categories) {
5
+ $catHtml .= "<span class='categories-links'>";
6
+ if ($catIcon) {
7
+ $catHtml .= "<i class='fas fa-folder-open'></i>";
8
+ }
9
+ $catHtml .= "{$categories}</span>";
10
+ }
11
+ if(in_array('post_date', $items) && $date) {
12
+ $metaHtmltop .= "<span class='date-meta'>";
13
+ if ($metaIcon) {
14
+ $metaHtmltop .= "<i class='far fa-calendar-alt'></i>";
15
+ }
16
+ $metaHtmltop .= "{$date}</span>";
17
+ }
18
+ if(in_array('author', $items)) {
19
+ $metaHtmltop .= "<span class='author'>";
20
+ if ($metaIcon) {
21
+ $metaHtmltop .= "<i class='fa fa-user'></i>";
22
+ }
23
+ $metaHtmltop .= "{$author}</span>";
24
+ }
25
+ $metaHtmltop .= $catHtml;
26
+ if(in_array('tags', $items) && $tags) {
27
+ $metaHtmltop .= "<span class='post-tags-links'>";
28
+ if ($metaIcon) {
29
+ $metaHtmltop .= "<i class='fa fa-tags'></i>";
30
+ }
31
+ $metaHtmltop .= "{$tags}</span>";
32
+ }
33
+ $num_comments = get_comments_number(); // get_comments_number returns only a numeric value
34
+ if(in_array('comment_count', $items) && $comment) {
35
+ $metaHtmltop .= '<span class="comment-count"><a href="' . get_comments_link() .'">';
36
+ if ($metaIcon) {
37
+ $metaHtmltop .= '<i class="fas fa-comments"></i>';
38
+ }
39
+ $metaHtmltop .= $num_comments.'</a></span>';
40
+ }
41
+ if (!empty($metaHtmltop) && $metaPosition == 'above_title') {
42
+ $titleHtml .="<div class='post-meta-user {$metaSeparator}'>$metaHtmltop</div>";
43
+ }
44
+ if(in_array('title', $items)) {
45
+ $titleHtml .= sprintf('<%1$s class="entry-title"><a data-id="%2$s" class="%3$s" href="%4$s"%5$s>%6$s</a></%1$s>', $title_tag,$pID,$anchorClass,$pLink,$link_target,$title);
46
+ }
47
+ $postMetaBottom = null;
48
+ if(in_array('read_more', $items)) {
49
+ $postMetaBottom .= "<span class='read-more'><a data-id='{$pID}' class='{$anchorClass}' href='{$pLink}'{$link_target}>{$read_more_text}</a></span>";
50
+ }
51
+
52
+ $html .= sprintf('<div class="%s" data-id="%d">', esc_attr(implode(" ", [$grid, $class])), $pID);
53
+ $html .= sprintf('<div class="rt-holder%s">',$tpg_title_position ? " rt-with-title-".$tpg_title_position : null);
54
+ if($tpg_title_position == 'above'){
55
+ $html .= sprintf('<div class="rt-detail rt-with-title">%s</div>', $titleHtml);
56
+ }
57
+ if($imgSrc) {
58
+ $html .= '<div class="rt-img-holder">';
59
+ $html .= "<a data-id='{$pID}' class='{$anchorClass}' href='{$pLink}'{$link_target}>{$imgSrc}</a>";
60
+ $html .= '</div> ';
61
+ }
62
+ $html .="<div class='rt-detail'>";
63
+ if($tpg_title_position == 'below'){
64
+ $html .= $titleHtml;
65
+ }
66
+ if(!empty($metaHtmltop) && (empty($metaPosition) || $metaPosition == 'above_excerpt')){
67
+ $html .="<div class='post-meta-user {$metaSeparator}'>$metaHtmltop</div>";
68
+ }
69
+ if(!$tpg_title_position){
70
+ $html .=$titleHtml;
71
+ }
72
+ if(in_array('excerpt', $items)){
73
+ $html .= "<div class='tpg-excerpt'>{$excerpt}</div>";
74
+ }
75
+ if (!empty($metaHtmltop) && $metaPosition == 'below_excerpt') {
76
+ $html .="<div class='post-meta-user {$metaSeparator}'>$metaHtmltop</div>";
77
+ }
78
+ if(!empty($postMetaBottom)){
79
+ $html .= "<div class='post-meta {$btn_alignment_class}'>$postMetaBottom</div>";
80
+ }
81
+ $html .= "</div>";
82
+ $html .= '</div>';
83
+ $html .='</div>';
84
+
85
+ echo $html;
lib/templates/layouts/layout2.php CHANGED
@@ -1,7 +1,41 @@
1
  <?php
2
-
3
- $html = $htmlDetail =null;
4
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  $html .= sprintf('<div class="%s" data-id="%d">', esc_attr(implode(" ", [$grid, $class])), $pID);
6
  $html .= '<div class="rt-holder">';
7
  $html .= '<div class="rt-row">';
@@ -17,34 +51,20 @@ $html .= sprintf('<div class="%s" data-id="%d">', esc_attr(implode(" ", [$grid,
17
  $html .= "<div class='{$content_area}'>";
18
 
19
  if(in_array('title', $items)){
 
 
 
20
  $htmlDetail .= sprintf('<%1$s class="entry-title"><a data-id="%2$s" class="%3$s" href="%4$s"%5$s>%6$s</a></%1$s>', $title_tag,$pID,$anchorClass,$pLink,$link_target,$title);
21
  }
22
-
23
- $metaHtml = null;
24
-
25
- if(in_array('post_date', $items) && $date){
26
- $metaHtml .= "<span class='date-meta'><i class='far fa-calendar-alt'></i> {$date}</span>";
27
- }
28
- if(in_array('author', $items)){
29
- $metaHtml .= "<span class='author'><i class='fa fa-user'></i>{$author}</span>";
30
- }
31
- if(in_array('categories', $items) && $categories){
32
- $metaHtml .= "<span class='categories-links'><i class='fas fa-folder-open'></i>{$categories}</span>";
33
- }
34
- if(in_array('tags', $items) && $tags){
35
- $metaHtml .= "<span class='post-tags-links'><i class='fa fa-tags'></i>{$tags}</span>";
36
  }
37
- if(in_array('comment_count', $items)){
38
- $metaHtml .= '<span class="comment-count"><i class="fas fa-comments"></i> '. $comment.'</span>';
39
- }
40
- if(!empty($metaHtml)){
41
- $htmlDetail .="<div class='post-meta-user'>$metaHtml</div>";
42
- }
43
-
44
  if(in_array('excerpt', $items)){
45
  $htmlDetail .= "<div class='tpg-excerpt'>{$excerpt}</div>";
46
  }
47
-
 
 
48
  if(in_array('read_more', $items)){
49
  $htmlDetail .= "<span class='read-more {$btn_alignment_class}'><a data-id='{$pID}' class='{$anchorClass}' href='{$pLink}'{$link_target}>{$read_more_text}</a></span>";
50
  }
1
  <?php
2
+ $html = $htmlDetail = $catHtml = $metaHtml = null;
3
+ if(in_array('categories', $items) && $categories) {
4
+ $catHtml .= "<span class='categories-links'>";
5
+ if ($catIcon) {
6
+ $catHtml .= "<i class='fas fa-folder-open'></i>";
7
+ }
8
+ $catHtml .= "{$categories}</span>";
9
+ }
10
+ if(in_array('post_date', $items) && $date){
11
+ $metaHtml .= "<span class='date-meta'>";
12
+ if ($metaIcon) {
13
+ $metaHtml .= "<i class='far fa-calendar-alt'></i>";
14
+ }
15
+ $metaHtml .= "{$date}</span>";
16
+ }
17
+ if(in_array('author', $items)){
18
+ $metaHtml .= "<span class='author'>";
19
+ if ($metaIcon) {
20
+ $metaHtml .= "<i class='fa fa-user'></i>";
21
+ }
22
+ $metaHtml .= "{$author}</span>";
23
+ }
24
+ $metaHtml .= $catHtml;
25
+ if(in_array('tags', $items) && $tags){
26
+ $metaHtml .= "<span class='post-tags-links'>";
27
+ if ($metaIcon) {
28
+ $metaHtml .= "<i class='fa fa-tags'></i>";
29
+ }
30
+ $metaHtml .= "{$tags}</span>";
31
+ }
32
+ if(in_array('comment_count', $items)){
33
+ $metaHtml .= '<span class="comment-count">';
34
+ if ($metaIcon) {
35
+ $metaHtml .= '<i class="fas fa-comments"></i>';
36
+ }
37
+ $metaHtml .= $comment.'</span>';
38
+ }
39
  $html .= sprintf('<div class="%s" data-id="%d">', esc_attr(implode(" ", [$grid, $class])), $pID);
40
  $html .= '<div class="rt-holder">';
41
  $html .= '<div class="rt-row">';
51
  $html .= "<div class='{$content_area}'>";
52
 
53
  if(in_array('title', $items)){
54
+ if (!empty($metaHtml) && $metaPosition == 'above_title') {
55
+ $htmlDetail .="<div class='post-meta-user {$metaSeparator}'>$metaHtml</div>";
56
+ }
57
  $htmlDetail .= sprintf('<%1$s class="entry-title"><a data-id="%2$s" class="%3$s" href="%4$s"%5$s>%6$s</a></%1$s>', $title_tag,$pID,$anchorClass,$pLink,$link_target,$title);
58
  }
59
+ if(!empty($metaHtml) && (empty($metaPosition) || $metaPosition == 'above_excerpt')){
60
+ $htmlDetail .="<div class='post-meta-user {$metaSeparator}'>$metaHtml</div>";
 
 
 
 
 
 
 
 
 
 
 
 
61
  }
 
 
 
 
 
 
 
62
  if(in_array('excerpt', $items)){
63
  $htmlDetail .= "<div class='tpg-excerpt'>{$excerpt}</div>";
64
  }
65
+ if (!empty($metaHtml) && $metaPosition == 'below_excerpt') {
66
+ $htmlDetail .="<div class='post-meta-user {$metaSeparator}'>$metaHtml</div>";
67
+ }
68
  if(in_array('read_more', $items)){
69
  $htmlDetail .= "<span class='read-more {$btn_alignment_class}'><a data-id='{$pID}' class='{$anchorClass}' href='{$pLink}'{$link_target}>{$read_more_text}</a></span>";
70
  }
lib/templates/layouts/layout3.php CHANGED
@@ -1,6 +1,42 @@
1
  <?php
 
2
 
3
- $html = $htmlDetail = null;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
 
5
  $html .= sprintf('<div class="%s" data-id="%d">', esc_attr(implode(" ", [$grid, $class])), $pID);
6
  $html .= '<div class="rt-holder">';
@@ -15,35 +51,26 @@ $html .= sprintf('<div class="%s" data-id="%d">', esc_attr(implode(" ", [$grid,
15
  $content_area = "rt-col-xs-12";
16
  }
17
  $html .= "<div class='{$content_area}'>";
 
 
 
18
 
19
  if(in_array('title', $items)){
20
  $htmlDetail .= sprintf('<%1$s class="entry-title"><a data-id="%2$s" class="%3$s" href="%4$s"%5$s>%6$s</a></%1$s>', $title_tag,$pID,$anchorClass,$pLink,$link_target,$title);
21
  }
22
 
23
- $metaHtml = null;
24
- if(in_array('post_date', $items) && $date){
25
- $metaHtml .= "<span class='date-meta'><i class='far fa-calendar-alt'></i> {$date}</span>";
26
- }
27
- if(in_array('author', $items)){
28
- $metaHtml .= "<span class='author'><i class='fa fa-user'></i>{$author}</span>";
29
- }
30
- if(in_array('categories', $items) && $categories){
31
- $metaHtml .= "<span class='categories-links'><i class='fas fa-folder-open'></i>{$categories}</span>";
32
- }
33
- if(in_array('tags', $items) && $tags){
34
- $metaHtml .= "<span class='post-tags-links'><i class='fa fa-tags'></i>{$tags}</span>";
35
- }
36
- if(in_array('comment_count', $items)){
37
- $metaHtml .= '<span class="comment-count"><i class="fas fa-comments"></i> '. $comment.'</span>';
38
- }
39
- if(!empty($metaHtml)){
40
- $htmlDetail .="<div class='post-meta-user'>{$metaHtml}</div>";
41
  }
42
 
43
  if(in_array('excerpt', $items)) {
44
  $htmlDetail .= "<div class='post-content'><p>{$excerpt}</p></div>";
45
  }
46
 
 
 
 
 
47
  if(in_array('read_more', $items)){
48
  $htmlDetail .= "<span class='read-more {$btn_alignment_class}'><a data-id='{$pID}' class='{$anchorClass}' href='{$pLink}'{$link_target}>{$read_more_text}</a></span>";
49
  }
1
  <?php
2
+ $html = $htmlDetail = $catHtml = $metaHtml = null;
3
 
4
+ if(in_array('categories', $items) && $categories) {
5
+ $catHtml .= "<span class='categories-links'>";
6
+ if ($catIcon) {
7
+ $catHtml .= "<i class='fas fa-folder-open'></i>";
8
+ }
9
+ $catHtml .= "{$categories}</span>";
10
+ }
11
+ if(in_array('post_date', $items) && $date) {
12
+ $metaHtml .= "<span class='date-meta'>";
13
+ if ($metaIcon) {
14
+ $metaHtml .= "<i class='far fa-calendar-alt'></i>";
15
+ }
16
+ $metaHtml .= "{$date}</span>";
17
+ }
18
+ if(in_array('author', $items)) {
19
+ $metaHtml .= "<span class='author'>";
20
+ if ($metaIcon) {
21
+ $metaHtml .= "<i class='fa fa-user'></i>";
22
+ }
23
+ $metaHtml .= "{$author}</span>";
24
+ }
25
+ $metaHtml .= $catHtml;
26
+ if(in_array('tags', $items) && $tags) {
27
+ $metaHtml .= "<span class='post-tags-links'>";
28
+ if ($metaIcon) {
29
+ $metaHtml .= "<i class='fa fa-tags'></i>";
30
+ }
31
+ $metaHtml .= "{$tags}</span>";
32
+ }
33
+ if(in_array('comment_count', $items)) {
34
+ $metaHtml .= '<span class="comment-count">';
35
+ if ($metaIcon) {
36
+ $metaHtml .= '<i class="fas fa-comments"></i>';
37
+ }
38
+ $metaHtml .= $comment.'</span>';
39
+ }
40
 
41
  $html .= sprintf('<div class="%s" data-id="%d">', esc_attr(implode(" ", [$grid, $class])), $pID);
42
  $html .= '<div class="rt-holder">';
51
  $content_area = "rt-col-xs-12";
52
  }
53
  $html .= "<div class='{$content_area}'>";
54
+ if (!empty($metaHtml) && $metaPosition == 'above_title') {
55
+ $htmlDetail .="<div class='post-meta-user {$metaSeparator}'>$metaHtml</div>";
56
+ }
57
 
58
  if(in_array('title', $items)){
59
  $htmlDetail .= sprintf('<%1$s class="entry-title"><a data-id="%2$s" class="%3$s" href="%4$s"%5$s>%6$s</a></%1$s>', $title_tag,$pID,$anchorClass,$pLink,$link_target,$title);
60
  }
61
 
62
+ if(!empty($metaHtml) && (empty($metaPosition) || $metaPosition == 'above_excerpt')){
63
+ $htmlDetail .="<div class='post-meta-user {$metaSeparator}'>$metaHtml</div>";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64
  }
65
 
66
  if(in_array('excerpt', $items)) {
67
  $htmlDetail .= "<div class='post-content'><p>{$excerpt}</p></div>";
68
  }
69
 
70
+ if (!empty($metaHtml) && $metaPosition == 'below_excerpt') {
71
+ $htmlDetail .="<div class='post-meta-user {$metaSeparator}'>$metaHtml</div>";
72
+ }
73
+
74
  if(in_array('read_more', $items)){
75
  $htmlDetail .= "<span class='read-more {$btn_alignment_class}'><a data-id='{$pID}' class='{$anchorClass}' href='{$pLink}'{$link_target}>{$read_more_text}</a></span>";
76
  }
lib/templates/layouts/layout5.php ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $html = $metaHtml = $titleHtml = $contentHtml = $catHtml = null;
3
+
4
+ if(in_array('categories', $items) && $categories) {
5
+ $catHtml .= "<span class='categories-links'>";
6
+ if ($catIcon) {
7
+ $catHtml .= "<i class='fas fa-folder-open'></i>";
8
+ }
9
+ $catHtml .= "{$categories}</span>";
10
+ }
11
+ if(in_array('post_date', $items) && $date) {
12
+ $metaHtml .= "<span class='date-meta'>";
13
+ if ($metaIcon) {
14
+ $metaHtml .= "<i class='far fa-calendar-alt'></i>";
15
+ }
16
+ $metaHtml .= "{$date}</span>";
17
+ }
18
+ if(in_array('author', $items)) {
19
+ $metaHtml .= "<span class='author'>";
20
+ if ($metaIcon) {
21
+ $metaHtml .= "<i class='fa fa-user'></i>";
22
+ }
23
+ $metaHtml .= "{$author}</span>";
24
+ }
25
+ $metaHtml .= $catHtml;
26
+ if(in_array('tags', $items) && $tags) {
27
+ $metaHtml .= "<span class='post-tags-links'>";
28
+ if ($metaIcon) {
29
+ $metaHtml .= "<i class='fa fa-tags'></i>";
30
+ }
31
+ $metaHtml .= "{$tags}</span>";
32
+ }
33
+ if(in_array('comment_count', $items)) {
34
+ $metaHtml .= '<span class="comment-count">';
35
+ if ($metaIcon) {
36
+ $metaHtml .= '<i class="fas fa-comments"></i>';
37
+ }
38
+ $metaHtml .= $comment.'</span>';
39
+ }
40
+ if(in_array('title', $items)) {
41
+ if (!empty($metaHtml) && $metaPosition == 'above_title') {
42
+ $titleHtml .="<div class='post-meta-user {$metaSeparator}'>$metaHtml</div>";
43
+ }
44
+ $titleHtml .= sprintf('<%1$s class="entry-title"><a data-id="%2$s" class="%3$s" href="%4$s"%5$s>%6$s</a></%1$s>', $title_tag,$pID,$anchorClass,$pLink,$link_target,$title);
45
+ }
46
+ if(in_array('excerpt', $items)){
47
+ $contentHtml .= "<div class='tpg-excerpt'>{$excerpt}</div>";
48
+ }
49
+ if (!empty($metaHtml) && $metaPosition == 'below_excerpt') {
50
+ $contentHtml .="<div class='post-meta-user {$metaSeparator}'>$metaHtml</div>";
51
+ }
52
+ $postMetaBottom = null;
53
+ if(in_array('read_more', $items)){
54
+ $postMetaBottom .= "<span class='read-more'><a data-id='{$pID}' class='{$anchorClass}' href='{$pLink}'{$link_target}>{$read_more_text}</a></span>";
55
+ }
56
+ if(!empty($postMetaBottom)){
57
+ $contentHtml .= "<div class='post-meta {$btn_alignment_class}'>$postMetaBottom</div>";
58
+ }
59
+
60
+ $html .= sprintf('<div class="%s" data-id="%d">', esc_attr(implode(" ", [$grid, $class])), $pID);
61
+ $html .= '<div class="rt-holder">';
62
+ $html .= '<div class="overlay">';
63
+ $html .= "{$titleHtml}";
64
+
65
+ if(!empty($metaHtml) && (empty($metaPosition) || $metaPosition == 'above_excerpt')){
66
+ $html .="<span class='post-meta-user {$metaSeparator}'>$metaHtml</span>";
67
+ }
68
+ if(!empty($contentHtml)){
69
+ $html .= "<div class='rt-detail'>{$contentHtml}</div>";
70
+ }
71
+
72
+ $html .= '</div> ';
73
+ if($imgSrc) {
74
+ $html .= "<a data-id='{$pID}' class='{$anchorClass}' href='{$pLink}'{$link_target}>{$imgSrc}</a>";
75
+ }
76
+ $html .= '</div>';
77
+ $html .='</div>';
78
+
79
+ echo $html;
lib/templates/layouts/layout6.php ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $html = $metaData = $metaHtml = $catHtml = null;
3
+
4
+ if(in_array('categories', $items) && $categories) {
5
+ $catHtml .= "<span class='categories-links'>";
6
+ if ($catIcon) {
7
+ $catHtml .= "<i class='fas fa-folder-open'></i>";
8
+ }
9
+ $catHtml .= "{$categories}</span>";
10
+ }
11
+ if(in_array('post_date', $items) && $date) {
12
+ $metaHtml .= "<span class='date-meta'>";
13
+ if ($metaIcon) {
14
+ $metaHtml .= "<i class='far fa-calendar-alt'></i>";
15
+ }
16
+ $metaHtml .= "{$date}</span>";
17
+ }
18
+ if(in_array('author', $items)) {
19
+ $metaHtml .= "<span class='author'>";
20
+ if ($metaIcon) {
21
+ $metaHtml .= "<i class='fa fa-user'></i>";
22
+ }
23
+ $metaHtml .= "{$author}</span>";
24
+ }
25
+ $metaHtml .= $catHtml;
26
+ if(in_array('tags', $items) && $tags) {
27
+ $metaHtml .= "<span class='post-tags-links'>";
28
+ if ($metaIcon) {
29
+ $metaHtml .= "<i class='fa fa-tags'></i>";
30
+ }
31
+ $metaHtml .= "{$tags}</span>";
32
+ }
33
+ if(in_array('comment_count', $items)) {
34
+ $metaHtml .= '<span class="comment-count">';
35
+ if ($metaIcon) {
36
+ $metaHtml .= '<i class="fas fa-comments"></i>';
37
+ }
38
+ $metaHtml .= $comment.'</span>';
39
+ }
40
+
41
+ $html .= sprintf('<div class="%s" data-id="%d">', esc_attr(implode(" ", [$grid, $class])), $pID);
42
+ $html .= '<div class="rt-holder">';
43
+ $html .= '<div class="overlay">';
44
+ if (!empty($metaHtml) && $metaPosition == 'above_title') {
45
+ $html .="<div class='post-meta-user {$metaSeparator}'>$metaHtml</div>";
46
+ }
47
+ if(in_array('title', $items)) {
48
+ $html .= sprintf('<%1$s class="entry-title"><a data-id="%2$s" class="%3$s" href="%4$s"%5$s>%6$s</a></%1$s>', $title_tag,$pID,$anchorClass,$pLink,$link_target,$title);
49
+ $html .= "<div class='line'></div>";
50
+ }
51
+ if(!empty($metaHtml) && (empty($metaPosition) || $metaPosition == 'above_excerpt')) {
52
+ $html .="<div class='post-meta-user {$metaSeparator}'>$metaHtml</div>";
53
+ }
54
+ if(in_array('excerpt', $items)) {
55
+ $html .= "<div class='tpg-excerpt'>{$excerpt}</div>";
56
+ }
57
+ if (!empty($metaHtml) && $metaPosition == 'below_excerpt') {
58
+ $html .="<div class='post-meta-user {$metaSeparator}'>$metaHtml</div>";
59
+ }
60
+ $postMetaBottom = null;
61
+ if(in_array('read_more', $items)) {
62
+ $postMetaBottom .= "<span class='read-more'><a data-id='{$pID}' class='{$anchorClass}' href='{$pLink}'{$link_target}>{$read_more_text}</a></span>";
63
+ }
64
+ if(!empty($postMetaBottom)) {
65
+ $html .= "<div class='post-meta {$btn_alignment_class}'>$postMetaBottom</div>";
66
+ }
67
+
68
+ $html .= '</div>';
69
+ if($imgSrc) {
70
+ $html .= "<a data-id='{$pID}' class='{$anchorClass}' href='{$pLink}'{$link_target}>{$imgSrc}</a>";
71
+ }
72
+ $html .= '</div>';
73
+ $html .='</div>';
74
+
75
+ echo $html;
lib/templates/layouts/layout7.php ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @var string $grid
4
+ * @var string $class
5
+ * @var int $pID
6
+ * @var string $imgSrc
7
+ * @var array $items
8
+ * @var string $pLink
9
+ * @var string $anchorClass
10
+ * @var string $link_target
11
+ * @var string $date
12
+ * @var string $author
13
+ * @var string $categories
14
+ * @var string $read_more_text
15
+ */
16
+ $html = $metaHtml = $catHtml = null;
17
+
18
+ if(in_array('categories', $items) && $categories) {
19
+ $catHtml .= "<span class='categories-links'>";
20
+ if ($catIcon) {
21
+ $catHtml .= "<i class='fas fa-folder-open'></i>";
22
+ }
23
+ $catHtml .= "{$categories}</span>";
24
+ }
25
+ if(in_array('post_date', $items) && $date) {
26
+ $metaHtml .= "<span class='date-meta'>";
27
+ if ($metaIcon) {
28
+ $metaHtml .= "<i class='far fa-calendar-alt'></i>";
29
+ }
30
+ $metaHtml .= "{$date}</span>";
31
+ }
32
+ if(in_array('author', $items)) {
33
+ $metaHtml .= "<span class='author'>";
34
+ if ($metaIcon) {
35
+ $metaHtml .= "<i class='fa fa-user'></i>";
36
+ }
37
+ $metaHtml .= "{$author}</span>";
38
+ }
39
+ $metaHtml .= $catHtml;
40
+ if(in_array('tags', $items) && $tags) {
41
+ $metaHtml .= "<span class='post-tags-links'>";
42
+ if ($metaIcon) {
43
+ $metaHtml .= "<i class='fa fa-tags'></i>";
44
+ }
45
+ $metaHtml .= "{$tags}</span>";
46
+ }
47
+ if(in_array('comment_count', $items)) {
48
+ $metaHtml .= '<span class="comment-count">';
49
+ if ($metaIcon) {
50
+ $metaHtml .= '<i class="fas fa-comments"></i>';
51
+ }
52
+ $metaHtml .= $comment.'</span>';
53
+ }
54
+
55
+ $html .= sprintf('<div class="%s" data-id="%d">', esc_attr(implode(" ", [$grid, $class])), $pID);
56
+ $html .= '<div class="rt-holder">';
57
+ if($imgSrc) {
58
+ $html .= $imgSrc;
59
+ }
60
+ $html .= '<div class="overlay">';
61
+ if (!empty($metaHtml) && $metaPosition == 'above_title') {
62
+ $html .="<div class='post-meta-user {$metaSeparator}'><p><span class='meta-data'>$metaHtml</span></p></div>";
63
+ }
64
+ if(in_array('title', $items)){
65
+ $html .= sprintf('<%1$s class="entry-title"><a data-id="%2$s" class="%3$s" href="%4$s"%5$s>%6$s</a></%1$s>', $title_tag,$pID,$anchorClass,$pLink,$link_target,$title);
66
+ }
67
+ if(!empty($metaHtml) && (empty($metaPosition) || $metaPosition == 'above_excerpt')){
68
+ $html .="<div class='post-meta-user {$metaSeparator}'><p><span class='meta-data'>$metaHtml</span></p></div>";
69
+ }
70
+ if(in_array('excerpt', $items)){
71
+ $html .= "<div class='tpg-excerpt'>{$excerpt}</div>";
72
+ }
73
+ if (!empty($metaHtml) && $metaPosition == 'below_excerpt') {
74
+ $html .="<div class='post-meta-user {$metaSeparator}'><p><span class='meta-data'>$metaHtml</span></p></div>";
75
+ }
76
+ $postMetaBottom = null;
77
+ if(in_array('read_more', $items)){
78
+ $postMetaBottom .= "<span class='read-more'><a data-id='{$pID}' class='{$anchorClass}' href='{$pLink}'{$link_target}>{$read_more_text}</a></span>";
79
+ }
80
+ if(!empty($postMetaBottom)){
81
+ $html .= "<div class='post-meta {$btn_alignment_class}'>$postMetaBottom</div>";
82
+ }
83
+ $html .= '</div>';
84
+ $html .= '</div>';
85
+ $html .='</div>';
86
+
87
+ echo $html;
lib/views/settings/layout-settings.php CHANGED
@@ -1,2 +1,6 @@
1
  <?php
2
  echo rtTPG()->rtFieldGenerator(rtTPG()->rtTPGLayoutSettingFields(), true);
 
 
 
 
1
  <?php
2
  echo rtTPG()->rtFieldGenerator(rtTPG()->rtTPGLayoutSettingFields(), true);
3
+ echo '<div class="rd-responsive-column">';
4
+ echo rtTPG()->rtFieldGenerator(rtTPG()->responsiveSettingsColumn(), true);
5
+ echo '</div>';
6
+ echo rtTPG()->rtFieldGenerator(rtTPG()->layoutMiscSettings(), true);
lib/views/settings/post-source.php CHANGED
@@ -1,250 +1,30 @@
1
  <?php
2
- echo rtTPG()->rtFieldGenerator(rtTPG()->rtTPGPostType());
 
3
  $sHtml = null;
4
- $sHtml .= '<div class="field-holder">';
5
- $sHtml .= '<div class="field-label">Common filters</div>';
6
- $sHtml .= '<div class="field">';
7
- $sHtml .=rtTPG()->rtFieldGenerator(rtTPG()->rtTPGCommonFilterFields(), true);
8
- $sHtml .= '</div>';
9
  $sHtml .= '</div>';
10
 
11
  echo $sHtml;
12
 
13
  ?>
14
 
15
- <div class='rt-tpg-filter-container'>
16
- <?php echo rtTPG()->rtFieldGenerator(rtTPG()->rtTPAdvanceFilters()); ?>
17
  <div class="rt-tpg-filter-holder">
18
- <h3 style="text-align: center">Advance filter options</h3>
19
- <?php
20
- $html = null;
21
- $pt = get_post_meta($post->ID, 'tpg_post_type', true);
22
- $advFilters = rtTPG()->rtTPAdvanceFilters();
23
- foreach($advFilters['post_filter']['options'] as $key => $filter){
24
- if($key == 'tpg_taxonomy'){
25
- $html .= "<div class='rt-tpg-filter taxonomy tpg_taxonomy tpg-hidden'>";
26
-
27
- if(isset($pt) && $pt){
28
- $taxonomies = rtTPG()->rt_get_all_taxonomy_by_post_type($pt);
29
- $taxA = get_post_meta($post->ID, 'tpg_taxonomy');
30
- $post_filter = get_post_meta($post->ID, 'post_filter');
31
- $html .= "<div class='taxonomy-field'>";
32
- if(is_array($post_filter) && !empty($post_filter) && in_array('tpg_taxonomy', $post_filter) && !empty($taxonomies)) {
33
- $html .= rtTPG()->rtFieldGenerator(
34
- array(
35
- 'tpg_taxonomy' => array(
36
- 'type' => 'checkbox',
37
- 'label' => 'Taxonomy',
38
- 'id' => 'post-taxonomy',
39
- "multiple" => true,
40
- 'options' => $taxonomies
41
- )
42
- )
43
- );
44
- }else{
45
- $html .= '<div class="field-holder">No Taxonomy found</div>';
46
- }
47
- $html .= "</div>";
48
- $html .= "<div class='rt-tpg-filter-item term-filter-item tpg-hidden'>";
49
- $html .= '<div class="field-holder">';
50
- $html .= '<div class="field-label">Terms</div>';
51
- $html .= '<div class="field term-filter-holder">';
52
- if(is_array($taxA) && !empty($taxA)){
53
- foreach($taxA as $tax){
54
-
55
- $html .="<div class='term-filter-item-container {$tax}'>";
56
- $html .= rtTPG()->rtFieldGenerator(
57
- array(
58
- 'term_'.$tax => array(
59
- 'type' => 'select',
60
- 'label' => ucfirst(str_replace('_', ' ', $tax)),
61
- 'class' => 'rt-select2 full',
62
- 'holderClass' => "term-filter-item {$tax}",
63
- 'value' => get_post_meta($post->ID, 'term_'.$tax),
64
- "multiple" => true,
65
- 'options' => rtTPG()->rt_get_all_term_by_taxonomy($tax)
66
- )
67
- )
68
- );
69
- $html .= rtTPG()->rtFieldGenerator(
70
- array(
71
- 'term_operator_'.$tax => array(
72
- 'type' => 'select',
73
- 'label' => 'Operator',
74
- 'class' => 'rt-select2 full',
75
- 'holderClass' => "term-filter-item-operator {$tax}",
76
- 'value' => get_post_meta($post->ID, 'term_operator_'.$tax, true),
77
- 'options' => rtTPG()->rtTermOperators()
78
- )
79
- )
80
- );
81
- $html .= "</div>";
82
- }
83
- }
84
- $html .= "</div>";
85
- $html .= "</div>";
86
-
87
- $html .= rtTPG()->rtFieldGenerator(
88
- array(
89
- 'taxonomy_relation' => array(
90
- 'type' => 'select',
91
- 'label' => 'Relation',
92
- 'class' => 'rt-select2',
93
- 'holderClass' => "term-filter-item-relation ". (count($taxA) > 1 ? null : "hidden"),
94
- 'value' => get_post_meta($post->ID, 'taxonomy_relation', true),
95
- 'options' => rtTPG()->rtTermRelations()
96
- )
97
- )
98
- );
99
-
100
- $html .= "</div>";
101
- }else{
102
-
103
- $html .= "<div class='taxonomy-field'>";
104
- $html .= "</div>";
105
- $html .= "<div class='rt-tpg-filter-item'>";
106
- $html .= '<div class="field-holder">';
107
- $html .= '<div class="field-label">Terms</div>';
108
- $html .= '<div class="field term-filter-holder">';
109
- $html .= "</div>";
110
- $html .= "</div>";
111
- $html .= "</div>";
112
- $html .= rtTPG()->rtFieldGenerator(
113
- array(
114
- 'taxonomy_relation' => array(
115
- 'type' => 'select',
116
- 'label' => 'Relation',
117
- 'class' => 'rt-select2',
118
- 'holderClass' => "term-filter-item-relation tpg-hidden",
119
- 'default' => 'OR',
120
- 'options' => rtTPG()->rtTermRelations()
121
- )
122
- )
123
- );
124
- }
125
- $html .= "</div>";
126
- }else if($key == 'order'){
127
- $html .= "<div class='rt-tpg-filter {$key} tpg-hidden'>";
128
- $html .= "<div class='rt-tpg-filter-item'>";
129
- $html .="<div class='field-holder'>";
130
- $html .= "<div class='field-label'><label>Order Settings</label></div>";
131
- $html .="<div class='field'>";
132
- $html .= rtTPG()->rtFieldGenerator(
133
- array(
134
- 'order_by' => array(
135
- 'type' => 'select',
136
- 'label' => 'Order by',
137
- 'class' => 'rt-select2 filter-item',
138
- 'value' => get_post_meta($post->ID, 'order_by', true),
139
- 'options' => rtTPG()->rtPostOrderBy(false, true),
140
- 'description' => __('If "Meta value", "Meta value Number" or "Meta value datetime" is chosen then meta key is required.', 'the-post-grid')
141
- )
142
- )
143
- );
144
- $html .= rtTPG()->rtFieldGenerator(
145
- array(
146
- 'tpg_meta_key' => array(
147
- 'type' => 'text',
148
- 'label' => 'Meta key',
149
- 'class' => 'rt-select2 filter-item',
150
- 'holderClass' => 'tpg-hidden',
151
- 'value' => get_post_meta($post->ID, 'tpg_meta_key', true)
152
- )
153
- )
154
- );
155
- $html .= rtTPG()->rtFieldGenerator(
156
- array(
157
- 'order' => array(
158
- 'type' => 'radio',
159
- 'label' => 'Order',
160
- 'class' => 'rt-select2 filter-item',
161
- 'alignment' => 'vertical',
162
- 'default' => 'DESC',
163
- 'value' => get_post_meta($post->ID, 'order', true),
164
- 'options' => rtTPG()->rtPostOrders()
165
- )
166
- )
167
- );
168
- $html .="</div>";
169
- $html .="</div>";
170
- $html .= "</div>";
171
- $html .= "</div>";
172
- }else if($key == 'author'){
173
- $html .= "<div class='rt-tpg-filter {$key} tpg-hidden'>";
174
- $html .= "<div class='rt-tpg-filter-item'>";
175
- $html .= rtTPG()->rtFieldGenerator(
176
- array(
177
- $key => array(
178
- 'type' => 'select',
179
- 'label' => 'Author',
180
- 'class' => 'rt-select2 filter-item full',
181
- 'value' => get_post_meta($post->ID, $key),
182
- "multiple" => true,
183
- 'options' => rtTPG()->rt_get_users()
184
- )
185
- )
186
- );
187
- $html .= "</div>";
188
- $html .= "</div>";
189
- }else if($key == 'tpg_post_status'){
190
- $html .= "<div class='rt-tpg-filter {$key} tpg-hidden'>";
191
- $html .= "<div class='rt-tpg-filter-item'>";
192
- $html .= rtTPG()->rtFieldGenerator(
193
- array(
194
- $key => array(
195
- 'type' => 'select',
196
- 'label' => 'Status',
197
- 'class' => 'rt-select2 filter-item full',
198
- 'default' => array('publish'),
199
- 'value' => get_post_meta($post->ID, $key),
200
- "multiple" => true,
201
- 'options' => rtTPG()->rtTPGPostStatus()
202
- )
203
- )
204
- );
205
- $html .= "</div>";
206
- $html .= "</div>";
207
- }else if($key == 's'){
208
- $html .= "<div class='rt-tpg-filter {$key} tpg-hidden'>";
209
- $html .= "<div class='rt-tpg-filter-item'>";
210
- $html .= rtTPG()->rtFieldGenerator(
211
- array(
212
- $key => array(
213
- 'type' => 'text',
214
- 'label' => 'Search keyword',
215
- 'class' => 'filter-item full',
216
- 'value' => get_post_meta($post->ID, $key, true)
217
- )
218
- )
219
- );
220
- $html .= "</div>";
221
- $html .= "</div>";
222
- }else if($key == 'date_range'){
223
- $range_start = get_post_meta($post->ID, 'date_range_start', true);
224
- $range_end = get_post_meta($post->ID, 'date_range_end', true);
225
- $range_value = [
226
- 'start' => $range_start,
227
- 'end' => $range_end
228
- ];
229
- $html .= "<div class='rt-tpg-filter {$key} tpg-hidden'>";
230
- $html .= "<div class='rt-tpg-filter-item'>";
231
- $html .= rtTPG()->rtFieldGenerator(
232
- array(
233
- $key=> array(
234
- 'type' => 'date_range',
235
- 'label' => 'Date Range',
236
- 'class' => 'filter-item full rt-date-range',
237
- 'value' => $range_value,
238
- 'description' => "Date format should be 'yyyy-mm-dd'",
239
- )
240
- )
241
- );
242
- $html .= "</div>";
243
- $html .= "</div>";
244
- }
245
-
246
- }
247
- echo $html;
248
- ?>
249
  </div>
250
  </div>
 
 
 
 
1
  <?php
2
+
3
+ echo rtTPG()->rtFieldGenerator( rtTPG()->rtTPGPostType() );
4
  $sHtml = null;
5
+ $sHtml .= '<div class="field-holder rt-tpg-field-group">';
6
+ $sHtml .= '<div class="field-label">Common Filters</div>';
7
+ $sHtml .= '<div class="field">';
8
+ $sHtml .= rtTPG()->rtFieldGenerator( rtTPG()->rtTPGCommonFilterFields(), true );
9
+ $sHtml .= '</div>';
10
  $sHtml .= '</div>';
11
 
12
  echo $sHtml;
13
 
14
  ?>
15
 
16
+ <div class='rt-tpg-filter-container rt-tpg-field-group'>
17
+ <?php echo rtTPG()->rtFieldGenerator( rtTPG()->rtTPAdvanceFilters() ); ?>
18
  <div class="rt-tpg-filter-holder">
19
+ <?php
20
+ $html = null;
21
+ $pt = get_post_meta( $post->ID, 'tpg_post_type', true );
22
+ $advFilters = rtTPG()->rtTPAdvanceFilters();
23
+ echo $html;
24
+ ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  </div>
26
  </div>
27
+
28
+ <div class="rt-tpg-field-group">
29
+ <?php echo rtTPG()->rtFieldGenerator( rtTPG()->stickySettings(), true ); ?>
30
+ </div>
lib/views/settings/sc-settings.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="field-holder">
2
+ <div class="field-label"><?php _e('ShortCode Heading', 'the-post-grid'); ?></div>
3
+ <div class="field">
4
+ <?php echo rtTPG()->rtFieldGenerator(rtTPG()->rtTPGSCHeadingSettings(), true); ?>
5
+ </div>
6
+ </div>
7
+ <div class="field-holder">
8
+ <div class="field-label">
9
+ <label><?php esc_html_e('Category', 'the-post-grid'); ?></label>
10
+ </div>
11
+ <div class="field">
12
+ <?php echo rtTPG()->rtFieldGenerator(rtTPG()->rtTPGSCCategorySettings(), true); ?>
13
+ </div>
14
+ </div>
15
+ <div class="field-holder">
16
+ <div class="field-label"><?php _e('Title', 'the-post-grid'); ?></div>
17
+ <div class="field">
18
+ <?php echo rtTPG()->rtFieldGenerator(rtTPG()->rtTPGSCTitleSettings(), true); ?>
19
+ </div>
20
+ </div>
21
+ <div class="field-holder">
22
+ <div class="field-label"><?php _e('Meta', 'the-post-grid'); ?></div>
23
+ <div class="field">
24
+ <?php echo rtTPG()->rtFieldGenerator(rtTPG()->rtTPGSCMetaSettings(), true); ?>
25
+ </div>
26
+ </div>
27
+ <div class="field-holder">
28
+ <div class="field-label"><?php _e('Image', 'the-post-grid'); ?></div>
29
+ <div class="field">
30
+ <?php echo rtTPG()->rtFieldGenerator(rtTPG()->rtTPGSCImageSettings(), true); ?>
31
+ </div>
32
+ </div>
33
+ <div class="field-holder">
34
+ <div class="field-label"><?php _e('Excerpt', 'the-post-grid'); ?></div>
35
+ <div class="field">
36
+ <?php echo rtTPG()->rtFieldGenerator(rtTPG()->rtTPGSCExcerptSettings(), true); ?>
37
+ </div>
38
+ </div>
39
+ <div class="field-holder">
40
+ <div class="field-label"><?php _e('Read More Button', 'the-post-grid'); ?></div>
41
+ <div class="field">
42
+ <?php echo rtTPG()->rtFieldGenerator(rtTPG()->rtTPGSCButtonSettings(), true); ?>
43
+ </div>
44
+ </div>
lib/views/settings/settings.php CHANGED
@@ -3,7 +3,7 @@
3
  <h2><?php _e( 'The Post Grid Settings', 'the-post-grid' ); ?></h2>
4
  <h3><?php _e( 'General settings', 'the-post-grid' ); ?>
5
  <a style="margin-left: 15px; font-size: 15px;"
6
- href="https://www.radiustheme.com/how-to-setup-configure-the-post-grid-free-version-for-wordpress/"
7
  target="_blank"><?php _e( 'Documentation', 'the-post-grid' ) ?></a>
8
  </h3>
9
 
3
  <h2><?php _e( 'The Post Grid Settings', 'the-post-grid' ); ?></h2>
4
  <h3><?php _e( 'General settings', 'the-post-grid' ); ?>
5
  <a style="margin-left: 15px; font-size: 15px;"
6
+ href="https://www.radiustheme.com/docs/the-post-grid/"
7
  target="_blank"><?php _e( 'Documentation', 'the-post-grid' ) ?></a>
8
  </h3>
9
 
lib/views/settings/style.php CHANGED
@@ -1,7 +1,34 @@
1
- <?php
2
 
3
- echo rtTPG()->rtFieldGenerator(rtTPG()->rtTPGStyleFields(), true);
 
 
 
 
 
 
 
4
 
5
- echo rtTPG()->rtSmartStyle(rtTPG()->extraStyle());
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
 
7
 
1
+ <?php echo rtTPG()->rtFieldGenerator( rtTPG()->rtTPGStyleFields(), true ); ?>
2
 
3
+ <div class="field-holder button-color-style-wrapper">
4
+ <div class="field-label"><?php _e( 'Button Color', 'the-post-grid' ); ?></div>
5
+ <div class="field">
6
+ <div class="tpg-multiple-field-group">
7
+ <?php echo rtTPG()->rtFieldGenerator( rtTPG()->rtTPGStyleButtonColorFields(), true ); ?>
8
+ </div>
9
+ </div>
10
+ </div>
11
 
12
+ <div class="field-holder widget-heading-stle-wrapper">
13
+ <div class="field-label"><?php _e( 'ShortCode Heading', 'the-post-grid' ); ?></div>
14
+ <div class="field">
15
+ <div class="tpg-multiple-field-group">
16
+ <?php echo rtTPG()->rtFieldGenerator( rtTPG()->rtTPGStyleHeading(), true ); ?>
17
+ </div>
18
+ </div>
19
+ </div>
20
+
21
+ <div class="field-holder full-area-style-wrapper">
22
+ <div class="field-label"><?php _e( 'Full Area / Section', 'the-post-grid' ); ?></div>
23
+ <div class="field">
24
+ <div class="tpg-multiple-field-group">
25
+ <?php echo rtTPG()->rtFieldGenerator( rtTPG()->rtTPGStyleFullArea(), true ); ?>
26
+ </div>
27
+ </div>
28
+ </div>
29
+
30
+ <?php do_action('rt_tpg_sc_style_group_field'); ?>
31
+
32
+ <?php echo rtTPG()->rtSmartStyle( rtTPG()->extraStyle() ); ?>
33
 
34
 
the-post-grid.php CHANGED
@@ -4,7 +4,7 @@
4
  * Plugin URI: http://demo.radiustheme.com/wordpress/plugins/the-post-grid/
5
  * Description: Fast & Easy way to display WordPress post in Grid, List & Isotope view ( filter by category, tag, author..) without a single line of coding.
6
  * Author: RadiusTheme
7
- * Version: 3.0.5
8
  * Text Domain: the-post-grid
9
  * Domain Path: /languages
10
  * Author URI: https://radiustheme.com/
4
  * Plugin URI: http://demo.radiustheme.com/wordpress/plugins/the-post-grid/
5
  * Description: Fast & Easy way to display WordPress post in Grid, List & Isotope view ( filter by category, tag, author..) without a single line of coding.
6
  * Author: RadiusTheme
7
+ * Version: 3.1.0
8
  * Text Domain: the-post-grid
9
  * Domain Path: /languages
10
  * Author URI: https://radiustheme.com/