Content Views – Post Grid & List for WordPress - Version 1.8.7

Version Description

  • July 25 2016 =
  • Fix: Broken View output when put View shortcode in Text element of Divi Builder plugin
  • Fix: Shortcode of another plugin is visible in Preview panel
  • Tweak: Add filter to show all collapsible items at page load
Download this release

Release Info

Developer PT Guy
Plugin Icon 128x128 Content Views – Post Grid & List for WordPress
Version 1.8.7
Comparing to
See all releases

Code changes from version 1.8.6.1 to 1.8.7

README.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_i
4
  Tags: Post, posts, page, grid, post grid, grid post, recent post, query, column, author, category, tag, responsive, excerpt, title, taxonomy, thumbnail, pagination, date, scrollable, collapsible
5
  Requires at least: 3.3
6
  Tested up to: 4.5.3
7
- Stable tag: 1.8.6.1
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -18,7 +18,7 @@ Content Views helps you to display latest posts on any page, and more:
18
  * display pages by author, ID, keyword, status
19
  * display children of a parent page
20
  * sort posts by title, date, ID
21
- * display any post data: featured image, title, full content or excerpt, meta data (date, author, category, tag, comment count)
22
  * display featured image in any size (thumbnail, medium, large, full...)
23
  * limit number of posts to display
24
  * enable/disable pagination (ajax, non-ajax)
@@ -27,7 +27,7 @@ Content Views helps you to display latest posts on any page, and more:
27
  It provides you a friendly form to filter & display posts quickly, in 3 simple steps:
28
 
29
  * Step 1 : Filter any posts (by ID, category, tag, author, keyword, status)
30
- * Step 2 : Select layout (grid, scrollable list, collapsible list) to display your posts. You can choose to display any post data (title, featured image, full content or excerpt, meta data)
31
  * Step 3 : Paste generated shortcode to anywhere you want (page content, text widget, theme template file...)
32
 
33
 
@@ -116,6 +116,11 @@ If you are using "Your latest posts" as home page, you should paste this code `<
116
 
117
  == Changelog ==
118
 
 
 
 
 
 
119
  = 1.8.6 - June 27 2016 =
120
  * Fix: Conflict with Autoptimize plugin (when enabled `forced JS in HEAD`)
121
  * Fix: Incorrect number of words in excerpt when uses `\xC2\xA0` or `&nbsp;` as space
4
  Tags: Post, posts, page, grid, post grid, grid post, recent post, query, column, author, category, tag, responsive, excerpt, title, taxonomy, thumbnail, pagination, date, scrollable, collapsible
5
  Requires at least: 3.3
6
  Tested up to: 4.5.3
7
+ Stable tag: 1.8.7
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
18
  * display pages by author, ID, keyword, status
19
  * display children of a parent page
20
  * sort posts by title, date, ID
21
+ * display any post data: featured image, title, full content or excerpt, meta fields (date, author, category, tag, comment count)
22
  * display featured image in any size (thumbnail, medium, large, full...)
23
  * limit number of posts to display
24
  * enable/disable pagination (ajax, non-ajax)
27
  It provides you a friendly form to filter & display posts quickly, in 3 simple steps:
28
 
29
  * Step 1 : Filter any posts (by ID, category, tag, author, keyword, status)
30
+ * Step 2 : Select layout (grid, scrollable list, collapsible list) to display your posts. You can choose to display any post data (title, featured image, full content or excerpt, meta fields)
31
  * Step 3 : Paste generated shortcode to anywhere you want (page content, text widget, theme template file...)
32
 
33
 
116
 
117
  == Changelog ==
118
 
119
+ = 1.8.7 - July 25 2016 =
120
+ * Fix: Broken View output when put View shortcode in Text element of Divi Builder plugin
121
+ * Fix: Shortcode of another plugin is visible in Preview panel
122
+ * Tweak: Add filter to show all collapsible items at page load
123
+
124
  = 1.8.6 - June 27 2016 =
125
  * Fix: Conflict with Autoptimize plugin (when enabled `forced JS in HEAD`)
126
  * Fix: Incorrect number of words in excerpt when uses `\xC2\xA0` or `&nbsp;` as space
admin/assets/css/admin.css CHANGED
@@ -65,6 +65,13 @@ html {
65
  }
66
 
67
  /* Other settings */
 
 
 
 
 
 
 
68
  .hide {
69
  display: none;
70
  }
@@ -97,6 +104,7 @@ html {
97
 
98
  .preview-wrapper .text-muted {
99
  margin-top: 8px;
 
100
  }
101
 
102
  .pt-wrap h2 {
65
  }
66
 
67
  /* Other settings */
68
+ .pt-cv-caution {
69
+ background-color: #F44336;
70
+ color: #fff;
71
+ padding: 5px 15px;
72
+ margin-bottom: 1px;
73
+ text-align: center;
74
+ }
75
  .hide {
76
  display: none;
77
  }
104
 
105
  .preview-wrapper .text-muted {
106
  margin-top: 8px;
107
+ font-size: 14px;
108
  }
109
 
110
  .pt-wrap h2 {
admin/assets/js/admin.js CHANGED
@@ -502,6 +502,8 @@
502
  // Update content of Preview box
503
  preview_box.html( response );
504
 
 
 
505
  // Toggle text of this button
506
  $this_btn.html( PT_CV_ADMIN.btn.preview.hide );
507
 
@@ -512,6 +514,24 @@
512
  $( 'body' ).trigger( _prefix + 'admin-preview' );
513
  } );
514
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
515
  /**
516
  * Toggle 'Thumbnail settings'
517
  *
502
  // Update content of Preview box
503
  preview_box.html( response );
504
 
505
+ $self._filter_response( preview_box );
506
+
507
  // Toggle text of this button
508
  $this_btn.html( PT_CV_ADMIN.btn.preview.hide );
509
 
514
  $( 'body' ).trigger( _prefix + 'admin-preview' );
515
  } );
516
  },
517
+ _filter_response: function ( preview_box ) {
518
+ var fn_alert_visible_sc = function () {
519
+ $( '.' + _prefix + 'content', preview_box ).each( function () {
520
+ var tclass = _prefix + 'caution';
521
+ $( '.' + tclass ).remove();
522
+
523
+ var content = $( this ).html();
524
+ var regex = /\[[^\]]+\]/;
525
+ if ( regex.test( content ) ) {
526
+ $( '<div />', { html: PT_CV_ADMIN.text.visible_shortcode, class: tclass } ).insertBefore( preview_box );
527
+ return false;
528
+ }
529
+ } );
530
+ };
531
+ fn_alert_visible_sc();
532
+
533
+ $( 'body' ).trigger( _prefix + 'preview-response', [ preview_box ] );
534
+ },
535
  /**
536
  * Toggle 'Thumbnail settings'
537
  *
admin/content-views-admin.php CHANGED
@@ -221,6 +221,7 @@ class PT_Content_Views_Admin {
221
  'no_taxonomy' => __( 'There is no taxonomy for selected content type', 'content-views-query-and-display-post-page' ),
222
  'pagination_disable' => __( 'Pagination is disabled when Limit = -1', 'content-views-query-and-display-post-page' ),
223
  'prevent_click' => __( 'Opening a link is prevented in preview box', 'content-views-query-and-display-post-page' ),
 
224
  ),
225
  'btn' => array(
226
  'preview' => array(
221
  'no_taxonomy' => __( 'There is no taxonomy for selected content type', 'content-views-query-and-display-post-page' ),
222
  'pagination_disable' => __( 'Pagination is disabled when Limit = -1', 'content-views-query-and-display-post-page' ),
223
  'prevent_click' => __( 'Opening a link is prevented in preview box', 'content-views-query-and-display-post-page' ),
224
+ 'visible_shortcode' => __( 'If shortcode is visible in below panel, please click Save button, then paste View shortcode to a published page and check.', 'content-views-query-and-display-post-page' ),
225
  ),
226
  'btn' => array(
227
  'preview' => array(
admin/includes/templates/settings-section-two.php CHANGED
@@ -1,49 +1,74 @@
1
  <style>
2
- #pt-cv-features {padding-right: 0; padding-left: 0; margin-bottom: 10px;}
3
- #pt-cv-features * {font-size: 14px;}
4
- h2 {margin-bottom: 10px !important; padding-top: 0 !important;}
5
- h3 {font-size: 20px; margin: 0 0 10px !important;}
6
- #pt-cv-features .col-md-6 {padding: 0;}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  </style>
8
 
9
- <h3>&raquo; <a style="font-size: 18px;" href="http://www.contentviewspro.com/docs/?utm_source=settings_page" target="_blank">See Documentation</a></h3>
 
 
 
 
10
 
11
  <hr>
12
 
13
- <h2>You need more powerful features?</h2>
14
 
15
  <div class="col-md-12" id="pt-cv-features">
16
  <div class="col-md-6">
17
- <h3>More beautiful & awesome layouts</h3>
18
  <div>
19
- <ul style="list-style: circle; margin-left: 20px;">
20
- <li>Masonry</li>
21
  <li>Pinterest</li>
 
22
  <li>Facebook Timeline</li>
23
  </ul>
24
  </div>
25
  </div>
26
 
27
  <div class="col-md-6">
28
- <h3>More powerful settings</h3>
29
  <div>
30
- <ul style="list-style: circle; margin-left: 20px;">
31
- <li>any custom post types (WooCommerce, Easy Digital Downloads...)</li>
32
- <li>any custom fields (Advanced Custom Fields...)</li>
33
- <li>any custom taxonomies</li>
34
  </ul>
35
  </div>
36
  </div>
37
  </div>
38
 
39
  <div style="clear:both"></div>
40
- <h3>&raquo; <a style="font-size: 18px;" href="http://www.contentviewspro.com/features/?utm_source=settings_page" target="_blank">See all features</a></h3>
41
- <p style="margin-top: 20px;">
42
- <a href="http://www.contentviewspro.com/pricing/?utm_source=settings_page" target="_blank" class="btn btn-success">Get Pro version</a>
43
- or
44
- <a href="http://sample.contentviewspro.com/?utm_source=settings_page" target="_blank" class="btn btn-info">Check demo site</a>
45
  </p>
46
 
47
  <hr>
48
 
49
- <p><a href="http://www.contentviewspro.com/contact/?utm_source=settings_page">Contact us!</a></p>
1
  <style>
2
+ #pt-cv-features {
3
+ padding-right: 0;
4
+ padding-left: 0;
5
+ margin-bottom: 10px
6
+ }
7
+
8
+ #pt-cv-features * {
9
+ font-size: 14px
10
+ }
11
+
12
+ .cvgopro {
13
+ color: #fe1243;
14
+ font-size: 2em
15
+ }
16
+
17
+ h3 {
18
+ font-size: 1.2em!important;
19
+ margin: 0 0 10px!important;
20
+ color: #111!important
21
+ }
22
+
23
+ #pt-cv-features .col-md-6 {
24
+ padding: 0
25
+ }
26
+
27
+ #pt-cv-features ul {
28
+ list-style: circle;
29
+ margin-left: 20px;
30
+ }
31
  </style>
32
 
33
+ <?php
34
+ $cp = '?utm_source=client&utm_medium=settings_page&utm_campaign=gopro';
35
+ ?>
36
+
37
+ <h3>&raquo; <a style="font-size: 18px;" href="http://docs.contentviewspro.com/<?php echo $cp; ?>" target="_blank">Documentation</a></h3>
38
 
39
  <hr>
40
 
41
+ <h2 class="cvgopro">You need advanced features?</h2>
42
 
43
  <div class="col-md-12" id="pt-cv-features">
44
  <div class="col-md-6">
45
+ <h3>Most beautiful & attractive layouts</h3>
46
  <div>
47
+ <ul>
 
48
  <li>Pinterest</li>
49
+ <li>Masonry</li>
50
  <li>Facebook Timeline</li>
51
  </ul>
52
  </div>
53
  </div>
54
 
55
  <div class="col-md-6">
56
+ <h3>Powerful settings for all your needs</h3>
57
  <div>
58
+ <ul>
59
+ <li>support custom post types (WooCommerce, Easy Digital Downloads...)</li>
60
+ <li>support custom fields (Advanced Custom Fields...)</li>
61
+ <li>support custom taxonomies</li>
62
  </ul>
63
  </div>
64
  </div>
65
  </div>
66
 
67
  <div style="clear:both"></div>
68
+ <p>
69
+ <a href="https://www.contentviewspro.com/features/<?php echo $cp; ?>" target="_blank" class="btn btn-success">All PRO Features</a>
 
 
 
70
  </p>
71
 
72
  <hr>
73
 
74
+ <p><a href="https://www.contentviewspro.com/contact/<?php echo $cp; ?>" target="_blank">Contact us!</a></p>
admin/views/view.php CHANGED
@@ -41,7 +41,7 @@ PT_CV_Functions::view_submit();
41
  <div>
42
  <div class="view-code">For page content, text widget... <input class="form-control" style="width: 190px;background-color: #ADFFAD;margin-right: 50px;" type="text" value="[pt_view id=&quot;<?php echo $id ?>&quot;]" onclick="this.select()" readonly=""></div>
43
  <div class="view-code">For theme file <input class="form-control" style="width: 370px;" type="text" value='&lt;?php echo do_shortcode("[pt_view id=<?php echo $id ?>]"); ?&gt;' onclick="this.select()" readonly=""></div>
44
- <?php echo apply_filters( PT_CV_PREFIX_ . 'view_actions', '<a class="btn btn-info pull-right" target="_blank" href="http://www.contentviewspro.com/?utm_source=client&utm_medium=view">Get Pro version</a>', $id ) ?>
45
  </div>
46
  <div class="clear"></div>
47
  <?php
41
  <div>
42
  <div class="view-code">For page content, text widget... <input class="form-control" style="width: 190px;background-color: #ADFFAD;margin-right: 50px;" type="text" value="[pt_view id=&quot;<?php echo $id ?>&quot;]" onclick="this.select()" readonly=""></div>
43
  <div class="view-code">For theme file <input class="form-control" style="width: 370px;" type="text" value='&lt;?php echo do_shortcode("[pt_view id=<?php echo $id ?>]"); ?&gt;' onclick="this.select()" readonly=""></div>
44
+ <?php echo apply_filters( PT_CV_PREFIX_ . 'view_actions', '<a class="btn btn-info pull-right" target="_blank" href="https://www.contentviewspro.com/pricing/?utm_source=client&utm_medium=view_header&utm_campaign=gopro">Get PRO Version</a>', $id ) ?>
45
  </div>
46
  <div class="clear"></div>
47
  <?php
content-views.php CHANGED
@@ -11,7 +11,7 @@
11
  * Plugin Name: Content Views
12
  * Plugin URI: http://wordpress.org/plugins/content-views-query-and-display-post-page/
13
  * Description: Query and display <strong>posts, pages</strong> in awesome layouts (<strong>grid, scrollable list, collapsible list</strong>) easier than ever, without coding!
14
- * Version: 1.8.6.1
15
  * Author: PT Guy
16
  * Author URI: http://profiles.wordpress.org/pt-guy
17
  * Text Domain: content-views-query-and-display-post-page
@@ -26,7 +26,7 @@ if ( !defined( 'WPINC' ) ) {
26
  }
27
 
28
  // Define Constant
29
- define( 'PT_CV_VERSION', '1.8.6.1' );
30
  define( 'PT_CV_FILE', __FILE__ );
31
  define( 'PT_CV_PATH', plugin_dir_path( __FILE__ ) );
32
  include_once( PT_CV_PATH . 'includes/defines.php' );
11
  * Plugin Name: Content Views
12
  * Plugin URI: http://wordpress.org/plugins/content-views-query-and-display-post-page/
13
  * Description: Query and display <strong>posts, pages</strong> in awesome layouts (<strong>grid, scrollable list, collapsible list</strong>) easier than ever, without coding!
14
+ * Version: 1.8.7
15
  * Author: PT Guy
16
  * Author URI: http://profiles.wordpress.org/pt-guy
17
  * Text Domain: content-views-query-and-display-post-page
26
  }
27
 
28
  // Define Constant
29
+ define( 'PT_CV_VERSION', '1.8.7' );
30
  define( 'PT_CV_FILE', __FILE__ );
31
  define( 'PT_CV_PATH', plugin_dir_path( __FILE__ ) );
32
  include_once( PT_CV_PATH . 'includes/defines.php' );
includes/defines.php CHANGED
@@ -41,3 +41,13 @@ define( 'PT_CV_DEBUG', false );
41
 
42
  // Script error
43
  define( 'PT_CV_SOLVE_SCRIPT_ERROR', 'cv_solve_script_error_181' );
 
 
 
 
 
 
 
 
 
 
41
 
42
  // Script error
43
  define( 'PT_CV_SOLVE_SCRIPT_ERROR', 'cv_solve_script_error_181' );
44
+
45
+ /**
46
+ * Check if CV layout was damaged by theme/another plugin's style
47
+ * @since 1.8.7
48
+ * @return bool
49
+ */
50
+ function cv_is_damaged_style() {
51
+ # Plugin: Divi Builder, v1.3.8
52
+ return apply_filters( PT_CV_PREFIX_ . 'damaged_style', defined( 'ET_BUILDER_PLUGIN_VERSION' ) );
53
+ }
includes/functions.php CHANGED
@@ -249,16 +249,20 @@ if ( !class_exists( 'PT_CV_Functions' ) ) {
249
  * strip_shortcodes for CV
250
  * @since 1.8.3
251
  *
252
- * @global array $shortcode_tags
253
- * @param type $text
254
  */
255
  static function cv_strip_shortcodes( $text ) {
256
- $trans_key = 'cv_tagregexp';
257
- $tagregexp = get_transient( $trans_key );
258
- if ( false === $tagregexp ) {
259
- global $shortcode_tags;
260
- $tagnames = array_keys( $shortcode_tags );
261
- $tagregexp = join( '|', array_map( 'preg_quote', $tagnames ) );
 
 
 
 
 
262
  set_transient( $trans_key, $tagregexp, 7 * DAY_IN_SECONDS );
263
  }
264
 
@@ -543,10 +547,11 @@ if ( !class_exists( 'PT_CV_Functions' ) ) {
543
  // Query view which has view id = $meta_id
544
  $pt_query = new WP_Query(
545
  array(
546
- 'post_type' => PT_CV_POST_TYPE,
547
- 'post_status' => 'publish',
548
- 'meta_key' => PT_CV_META_ID,
549
- 'meta_value' => esc_sql( $meta_id ),
 
550
  )
551
  );
552
  if ( $pt_query->have_posts() ) :
249
  * strip_shortcodes for CV
250
  * @since 1.8.3
251
  *
252
+ * @param string $text
 
253
  */
254
  static function cv_strip_shortcodes( $text ) {
255
+ $trans_key = 'cv_tagregexp_187';
256
+ $stored_regex = get_transient( $trans_key );
257
+
258
+ global $shortcode_tags;
259
+ $tagnames = array_keys( $shortcode_tags );
260
+ $tagregexp = $live_regex = join( '|', array_map( 'preg_quote', $tagnames ) );
261
+
262
+ // Shortcodes of theme or another plugin were not loaded (in Preview/Pagination request)
263
+ if ( strlen( $live_regex ) <= strlen( $stored_regex ) ) {
264
+ $tagregexp = $stored_regex;
265
+ } else {
266
  set_transient( $trans_key, $tagregexp, 7 * DAY_IN_SECONDS );
267
  }
268
 
547
  // Query view which has view id = $meta_id
548
  $pt_query = new WP_Query(
549
  array(
550
+ 'suppress_filters' => true,
551
+ 'post_type' => PT_CV_POST_TYPE,
552
+ 'post_status' => 'publish',
553
+ 'meta_key' => PT_CV_META_ID,
554
+ 'meta_value' => esc_sql( $meta_id ),
555
  )
556
  );
557
  if ( $pt_query->have_posts() ) :
includes/hooks.php CHANGED
@@ -139,7 +139,8 @@ if ( !class_exists( 'PT_CV_Hooks' ) ) {
139
  // In CV: apply for Grid only
140
  if ( PT_CV_Functions::get_global_variable( 'view_type' ) === 'grid' ) {
141
  // If was not applied in CVPro
142
- if ( array_key_exists( 'pt_cv_item_col_class', $GLOBALS[ 'wp_filter' ] ) && count( $GLOBALS[ 'wp_filter' ][ 'pt_cv_item_col_class' ] ) == 1 ) {
 
143
  $tablet_col = (int) PT_CV_Functions::setting_value( PT_CV_PREFIX . 'resp-tablet-number-columns' );
144
  $mobile_col = (int) PT_CV_Functions::setting_value( PT_CV_PREFIX . 'resp-number-columns' );
145
 
139
  // In CV: apply for Grid only
140
  if ( PT_CV_Functions::get_global_variable( 'view_type' ) === 'grid' ) {
141
  // If was not applied in CVPro
142
+ $key = PT_CV_PREFIX_ . 'item_col_class';
143
+ if ( array_key_exists( $key, $GLOBALS[ 'wp_filter' ] ) && count( $GLOBALS[ 'wp_filter' ][ $key ] ) == 1 ) {
144
  $tablet_col = (int) PT_CV_Functions::setting_value( PT_CV_PREFIX . 'resp-tablet-number-columns' );
145
  $mobile_col = (int) PT_CV_Functions::setting_value( PT_CV_PREFIX . 'resp-number-columns' );
146
 
includes/html-viewtype.php CHANGED
@@ -107,10 +107,11 @@ if ( !class_exists( 'PT_CV_Html_ViewType' ) ) {
107
  $idx = 0;
108
  $collapsible_list = array();
109
  $open_first = PT_CV_Functions::setting_value( PT_CV_PREFIX . 'collapsible-open-first-item' );
 
110
 
111
  foreach ( $content_items as $post_id => $content_item ) {
112
  // Replace class in body of collapsible item, to show one (now is the first item)
113
- $class = ( $idx++ == 0 && $open_first === 'yes' ) ? 'in' : '';
114
  $content_item = str_replace( PT_CV_PREFIX_UPPER . 'CLASS', $class, $content_item );
115
  $content_item = PT_CV_Html::content_item_wrap( $content_item, 'panel panel-default', $post_id );
116
 
107
  $idx = 0;
108
  $collapsible_list = array();
109
  $open_first = PT_CV_Functions::setting_value( PT_CV_PREFIX . 'collapsible-open-first-item' );
110
+ $open_all = apply_filters( PT_CV_PREFIX_ . 'collapsible_open_all', false );
111
 
112
  foreach ( $content_items as $post_id => $content_item ) {
113
  // Replace class in body of collapsible item, to show one (now is the first item)
114
+ $class = ( $open_all || ($idx++ == 0 && $open_first === 'yes') ) ? 'in' : '';
115
  $content_item = str_replace( PT_CV_PREFIX_UPPER . 'CLASS', $class, $content_item );
116
  $content_item = PT_CV_Html::content_item_wrap( $content_item, 'panel panel-default', $post_id );
117
 
includes/html.php CHANGED
@@ -409,7 +409,7 @@ if ( !class_exists( 'PT_CV_Html' ) ) {
409
  break;
410
  }
411
 
412
- return $html;
413
  }
414
 
415
  /**
@@ -438,7 +438,7 @@ if ( !class_exists( 'PT_CV_Html' ) ) {
438
  '<%1$s class="%2$s">%3$s</%1$s>', $tag, esc_attr( $title_class ), self::_field_href( $oargs, $post, $title )
439
  );
440
 
441
- return apply_filters( PT_CV_PREFIX_ . 'field_title_extra', $html, $post );
442
  }
443
 
444
  /**
@@ -490,7 +490,6 @@ if ( !class_exists( 'PT_CV_Html' ) ) {
490
  if ( $length > 0 ) {
491
  $GLOBALS[ 'cv_excerpt_type' ] = 'content';
492
 
493
- // Get manual excerpt, apply filters => modify $GLOBALS[ 'cv_excerpt_type' ] relatively
494
  $full_excerpt = apply_filters( PT_CV_PREFIX_ . 'field_content_excerpt', get_the_content(), $fargs, $post );
495
 
496
  // Limit length
@@ -890,7 +889,7 @@ if ( !class_exists( 'PT_CV_Html' ) ) {
890
 
891
  PT_CV_Asset::enqueue(
892
  'public', 'style', array(
893
- 'src' => plugins_url( 'public/assets/css/public.css', PT_CV_FILE ),
894
  )
895
  );
896
 
409
  break;
410
  }
411
 
412
+ return apply_filters( PT_CV_PREFIX_ . 'item_' . $field_name, $html, $post );
413
  }
414
 
415
  /**
438
  '<%1$s class="%2$s">%3$s</%1$s>', $tag, esc_attr( $title_class ), self::_field_href( $oargs, $post, $title )
439
  );
440
 
441
+ return $html;
442
  }
443
 
444
  /**
490
  if ( $length > 0 ) {
491
  $GLOBALS[ 'cv_excerpt_type' ] = 'content';
492
 
 
493
  $full_excerpt = apply_filters( PT_CV_PREFIX_ . 'field_content_excerpt', get_the_content(), $fargs, $post );
494
 
495
  // Limit length
889
 
890
  PT_CV_Asset::enqueue(
891
  'public', 'style', array(
892
+ 'src' => plugins_url( 'public/assets/css/' . (cv_is_damaged_style() ? 'cv.im.css' : 'public.css'), PT_CV_FILE ),
893
  )
894
  );
895
 
includes/settings.php CHANGED
@@ -841,7 +841,7 @@ if ( !class_exists( 'PT_CV_Settings' ) ) {
841
  * @return string
842
  */
843
  static function get_cvpro( $text, $width = 10, $style = '', $notice = false ) {
844
- $url = sprintf( ' &raquo; <a href="%s" target="_blank">%s</a>', esc_url( 'http://www.contentviewspro.com/pricing/?utm_source=client&utm_medium=view' ), __( 'Get CVPro', 'content-views-query-and-display-post-page' ) );
845
 
846
  return array(
847
  'label' => array(
841
  * @return string
842
  */
843
  static function get_cvpro( $text, $width = 10, $style = '', $notice = false ) {
844
+ $url = sprintf( ' &raquo; <a href="%s" target="_blank">%s</a>', esc_url( 'https://www.contentviewspro.com/pricing/?utm_source=client&utm_medium=view_fields&utm_campaign=gopro' ), __( 'Get PRO Version', 'content-views-query-and-display-post-page' ) );
845
 
846
  return array(
847
  'label' => array(
public/assets/css/cv.im.css ADDED
@@ -0,0 +1,613 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Below very crucial properties (acompany with public.css) will be appended "!important" suffix
3
+ * to prevent damaged output caused by theme/another plugin's style
4
+ *
5
+ * @since 1.8.7
6
+ */
7
+
8
+ .pt-cv-wrapper .row {
9
+ margin-left: -15px !important;
10
+ margin-right: -15px !important;
11
+ }
12
+
13
+ .pt-cv-colsys [class^='col-'] {
14
+ padding-left: 15px !important;
15
+ padding-right: 15px !important;
16
+ }
17
+
18
+ .pt-cv-content-item {
19
+ padding-bottom: 1em !important;
20
+ }
21
+
22
+ .pt-cv-view .pt-cv-content-item > * {
23
+ margin-bottom: 10px !important;
24
+ }
25
+
26
+ .pt-cv-wrapper img {
27
+ vertical-align: middle !important;
28
+ }
29
+
30
+ .pt-cv-wrapper .btn {
31
+ display: inline-block !important;
32
+ margin-bottom: 0 !important;
33
+ font-weight: normal !important;
34
+ text-align: center !important;
35
+ vertical-align: middle !important;
36
+ -ms-touch-action: manipulation !important;
37
+ touch-action: manipulation !important;
38
+ cursor: pointer !important;
39
+ background-image: none !important;
40
+ border: 1px solid transparent !important;
41
+ white-space: nowrap !important;
42
+ padding: 6px 12px !important;
43
+ font-size: 14px !important;
44
+ line-height: 1.42857143 !important;
45
+ border-radius: 4px !important;
46
+ -webkit-user-select: none !important;
47
+ -moz-user-select: none !important;
48
+ -ms-user-select: none !important;
49
+ user-select: none !important;
50
+ }
51
+
52
+ /* Pagination */
53
+
54
+ .pt-cv-wrapper .pagination>li>a,
55
+ .pt-cv-wrapper .pagination>li>span {
56
+ position: relative !important;
57
+ float: left !important;
58
+ padding: 6px 12px !important;
59
+ line-height: 1.42857143 !important;
60
+ text-decoration: none !important;
61
+ color: #337ab7 !important;
62
+ *background-color: #fff !important;
63
+ border: 1px solid #ddd !important;
64
+ margin-left: -1px !important;
65
+ }
66
+
67
+ .pt-cv-wrapper .pagination>.active>a,
68
+ .pt-cv-wrapper .pagination>.active>span,
69
+ .pt-cv-wrapper .pagination>.active>a:hover,
70
+ .pt-cv-wrapper .pagination>.active>span:hover,
71
+ .pt-cv-wrapper .pagination>.active>a:focus,
72
+ .pt-cv-wrapper .pagination>.active>span:focus {
73
+ z-index: 2 !important;
74
+ color: #fff !important;
75
+ background-color: #337ab7 !important;
76
+ border-color: #337ab7 !important;
77
+ cursor: default !important;
78
+ }
79
+
80
+ /* Collapsible list */
81
+
82
+ .pt-cv-wrapper .collapsing {
83
+ -webkit-transition-property: height,visibility !important;
84
+ -o-transition-property: height,visibility !important;
85
+ transition-property: height,visibility !important;
86
+ -webkit-transition-duration: .35s !important;
87
+ -o-transition-duration: .35s !important;
88
+ transition-duration: .35s !important;
89
+ -webkit-transition-timing-function: ease !important;
90
+ -o-transition-timing-function: ease !important;
91
+ transition-timing-function: ease !important;
92
+ }
93
+
94
+ /* Scrollable list */
95
+
96
+ .pt-cv-scrollable .pt-cv-carousel-caption {
97
+ padding: 10px !important;
98
+ }
99
+
100
+ .pt-cv-wrapper .pt-cv-carousel-indicators,
101
+ .pt-cv-wrapper .carousel-control {
102
+ text-align: center !important;
103
+ }
104
+
105
+ .pt-cv-wrapper .pt-cv-carousel-indicators {
106
+ margin-left: -30% !important;
107
+ }
108
+
109
+ .pt-cv-cap-w-img * {
110
+ color: #fff !important;
111
+ }
112
+
113
+ @media all and (transform-3d),(-webkit-transform-3d) {
114
+ .pt-cv-wrapper .carousel-inner>.item {
115
+ -webkit-transition: -webkit-transform .6s ease-in-out !important;
116
+ -o-transition: -o-transform .6s ease-in-out !important;
117
+ transition: transform .6s ease-in-out !important;
118
+ -webkit-backface-visibility: hidden !important;
119
+ backface-visibility: hidden !important;
120
+ -webkit-perspective: 1000px !important;
121
+ perspective: 1000px !important;
122
+ }
123
+
124
+ .pt-cv-wrapper .carousel-inner>.item.next,
125
+ .pt-cv-wrapper .carousel-inner>.item.active.right {
126
+ -webkit-transform: translate3d(100%,0,0) !important;
127
+ transform: translate3d(100%,0,0) !important;
128
+ left: 0 !important;
129
+ }
130
+
131
+ .pt-cv-wrapper .carousel-inner>.item.prev,
132
+ .pt-cv-wrapper .carousel-inner>.item.active.left {
133
+ -webkit-transform: translate3d(-100%,0,0) !important;
134
+ transform: translate3d(-100%,0,0) !important;
135
+ left: 0 !important;
136
+ }
137
+
138
+ .pt-cv-wrapper .carousel-inner>.item.next.left,
139
+ .pt-cv-wrapper .carousel-inner>.item.prev.right,
140
+ .pt-cv-wrapper .carousel-inner>.item.active {
141
+ -webkit-transform: translate3d(0,0,0) !important;
142
+ transform: translate3d(0,0,0) !important;
143
+ left: 0 !important;
144
+ }
145
+ }
146
+
147
+ /* Readmore */
148
+
149
+ .pt-cv-wrapper .btn-success {
150
+ color: #fff !important;
151
+ background-color: #5cb85c !important;
152
+ *border-color: #4cae4c !important;
153
+ }/**
154
+ * Common styles for Front-end
155
+ *
156
+ * @package PT_Content_Views
157
+ * @author PT Guy <http://www.contentviewspro.com/>
158
+ * @license GPL-2.0+
159
+ * @link http://www.contentviewspro.com/
160
+ * @copyright 2014 PT Guy
161
+ */
162
+
163
+ /* Fix Bootstrap box-sizing "border-box" problem */
164
+
165
+ .pt-cv-view *,
166
+ .pt-cv-view *:before,
167
+ .pt-cv-view *:after {
168
+ -webkit-box-sizing: border-box !important;
169
+ -moz-box-sizing: border-box !important;
170
+ box-sizing: border-box !important;
171
+ }
172
+
173
+ /* Common */
174
+
175
+ .pt-cv-view {
176
+ position: relative !important;
177
+ clear: both !important;
178
+ }
179
+
180
+ .pt-cv-view:after {
181
+ clear: both !important;
182
+ content: '' !important;
183
+ display: block !important;
184
+ }
185
+
186
+ .pt-cv-page {
187
+ position: relative !important;
188
+ }
189
+
190
+ .pt-cv-gls-group {
191
+ clear: left !important;
192
+ }
193
+
194
+ .pt-cv-view strong,
195
+ .pt-cv-view strong * {
196
+ font-weight: 600 !important;
197
+ }
198
+
199
+ /* Grid system without row */
200
+
201
+ .pt-cv-colsys {
202
+ margin-left: -15px !important;
203
+ margin-right: -15px !important;
204
+ }
205
+
206
+ @media (min-width: 992px) {
207
+ .pt-cv-colsys [data-cvc="2"] .col-md-6:nth-child(2n+1),
208
+ .pt-cv-colsys [data-cvc="3"] .col-md-4:nth-child(3n+1),
209
+ .pt-cv-colsys [data-cvc="4"] .col-md-3:nth-child(4n+1),
210
+ .pt-cv-colsys [data-cvc="5"] .col-md-2:nth-child(5n+1),
211
+ .pt-cv-colsys [data-cvc="6"] .col-md-2:nth-child(6n+1),
212
+ .pt-cv-colsys [data-cvc="7"] .col-md-1:nth-child(7n+1),
213
+ .pt-cv-colsys [data-cvc="8"] .col-md-1:nth-child(8n+1),
214
+ .pt-cv-colsys [data-cvc="9"] .col-md-1:nth-child(9n+1),
215
+ .pt-cv-colsys [data-cvc="10"] .col-md-1:nth-child(10n+1),
216
+ .pt-cv-colsys [data-cvc="11"] .col-md-1:nth-child(11n+1),
217
+ .pt-cv-colsys [data-cvc="12"] .col-md-1:nth-child(12n+1) {
218
+ clear: left !important;
219
+ }
220
+ }
221
+
222
+ /* @since 1.8.5 */
223
+
224
+ @media (min-width: 768px) and (max-width: 991px) {
225
+ .pt-cv-colsys .col-sm-6:nth-child(2n+1),
226
+ .pt-cv-colsys .col-sm-4:nth-child(3n+1),
227
+ .pt-cv-colsys .col-sm-3:nth-child(4n+1),
228
+ .pt-cv-colsys .col-sm-2:nth-child(5n+1),
229
+ .pt-cv-colsys .col-sm-2:nth-child(6n+1) {
230
+ clear: left !important;
231
+ }
232
+ }
233
+
234
+ @media (max-width: 767px) {
235
+ .pt-cv-colsys .col-xs-6:nth-child(2n+1),
236
+ .pt-cv-colsys .col-xs-4:nth-child(3n+1),
237
+ .pt-cv-colsys .col-xs-3:nth-child(4n+1),
238
+ .pt-cv-colsys .col-xs-2:nth-child(5n+1),
239
+ .pt-cv-colsys .col-xs-2:nth-child(6n+1) {
240
+ clear: left !important;
241
+ }
242
+ }
243
+
244
+ @media (min-width: 992px) {
245
+ .pt-cv-colsys [data-cvc="5"] .pt-cv-content-item {
246
+ width: 20% !important;
247
+ }
248
+
249
+ .pt-cv-colsys [data-cvc="7"] .pt-cv-content-item {
250
+ width: 14.28571428% !important;
251
+ }
252
+
253
+ .pt-cv-colsys [data-cvc="8"] .pt-cv-content-item {
254
+ width: 12.5% !important;
255
+ }
256
+
257
+ .pt-cv-colsys [data-cvc="9"] .pt-cv-content-item {
258
+ width: 11.11111111% !important;
259
+ }
260
+
261
+ .pt-cv-colsys [data-cvc="10"] .pt-cv-content-item {
262
+ width: 10% !important;
263
+ }
264
+
265
+ .pt-cv-colsys [data-cvc="11"] .pt-cv-content-item {
266
+ width: 9.09090909% !important;
267
+ }
268
+ }
269
+
270
+ /* Link */
271
+
272
+ .pt-cv-view a,
273
+ .pt-cv-wrapper .btn {
274
+ text-decoration: none !important;
275
+ outline: 0 !important;
276
+ }
277
+
278
+ /* Read more */
279
+
280
+ .pt-cv-readmore {
281
+ color: #fff !important;
282
+ margin: 10px 0 !important;
283
+ max-width: 100% !important;
284
+ }
285
+
286
+ /* An Item */
287
+
288
+ .pt-cv-content-item {
289
+ padding-bottom: 1em !important;
290
+ position: relative !important;
291
+ overflow: hidden !important;
292
+ }
293
+
294
+ /* Add default margin-bottom */
295
+
296
+ .pt-cv-view .pt-cv-content-item > * {
297
+ margin-bottom: 10px !important;
298
+ }
299
+
300
+ .pt-cv-border .pt-cv-content-item > *,
301
+ .pt-cv-collapsible .pt-cv-content-item > * {
302
+ margin-bottom: 0 !important;
303
+ }
304
+
305
+ /* Title */
306
+
307
+ .pt-cv-title {
308
+ margin-top: 0 !important;
309
+ font-size: 18px !important;
310
+ }
311
+
312
+ .pt-cv-title a {
313
+ font-weight: 600 !important;
314
+ }
315
+
316
+ /* Thumbnail */
317
+
318
+ .pt-cv-thumbnail {
319
+ height: auto !important;
320
+ max-width: 100% !important;
321
+ margin-top: 0 !important;
322
+ margin-bottom: 10px !important;
323
+ min-width: inherit !important;
324
+ }
325
+
326
+ .pt-cv-thumbnail.pull-left {
327
+ margin-right: 15px !important;
328
+ }
329
+
330
+ .pt-cv-thumbnail.pull-right {
331
+ margin-left: 15px !important;
332
+ }
333
+
334
+ .pt-cv-no-image {
335
+ min-width: 80px !important;
336
+ min-height: 80px !important;
337
+ }
338
+
339
+ /** Content **/
340
+
341
+ .pt-cv-content,
342
+ .pt-cv-content * {
343
+ font-weight: 400 !important;
344
+ }
345
+
346
+ /* Meta fields */
347
+
348
+ .pt-cv-meta-fields {
349
+ font-size: 13px !important;
350
+ margin-top: 0 !important;
351
+ }
352
+
353
+ .pt-cv-meta-fields a {
354
+ color: #41b7d8 !important;
355
+ }
356
+
357
+ /* Pagination */
358
+
359
+ .pt-cv-pagination-wrapper {
360
+ margin: 20px 0 !important;
361
+ }
362
+
363
+ .pt-cv-view + .pagination {
364
+ float: left !important;
365
+ margin: 0 auto !important;
366
+ }
367
+
368
+ .pt-cv-view + .pagination > li {
369
+ background: none !important;
370
+ }
371
+
372
+ .pt-cv-view + .pagination > li > a {
373
+ cursor: pointer !important;
374
+ }
375
+
376
+ .pt-cv-spinner {
377
+ width: 15px !important;
378
+ height: 15px !important;
379
+ margin-top: -25px !important;
380
+ display: inline-block !important;
381
+ opacity: 0 !important;
382
+ filter: alpha(opacity=0) !important;
383
+ color: #0470ec !important;
384
+ -webkit-transition: opacity 0.25s, width 0.25s !important;
385
+ -moz-transition: opacity 0.25s, width 0.25s !important;
386
+ -o-transition: opacity 0.25s, width 0.25s !important;
387
+ transition: opacity 0.25s, width 0.25s !important;
388
+ }
389
+
390
+ .pt-cv-spinner.active {
391
+ opacity: 1 !important;
392
+ filter: alpha(opacity=100) !important;
393
+ }
394
+
395
+ .pt-cv-clear-pagination {
396
+ margin-bottom: 50px !important;
397
+ }
398
+
399
+ .pt-cv-pagination-wrapper {
400
+ clear: both !important;
401
+ position: relative !important;
402
+ }
403
+
404
+ .pt-cv-pagination.pagination {
405
+ -webkit-box-shadow: none !important;
406
+ box-shadow: none !important;
407
+ margin-left: 0 !important;
408
+ border: 0 !important;
409
+ padding: 0 !important;
410
+ margin: initial !important;
411
+ }
412
+
413
+ .pt-cv-pagination li {
414
+ display: inline !important;
415
+ background-image: none !important;
416
+ }
417
+
418
+ .pt-cv-pagination li:before {
419
+ content: '' !important;
420
+ }
421
+
422
+ .pt-cv-pagination a {
423
+ cursor: pointer !important;
424
+ }
425
+
426
+ .pt-cv-pagination li.active a {
427
+ border-color: rgba(66, 139, 202, 0.2) !important;
428
+ }
429
+
430
+ /* View type : Collapsible List */
431
+
432
+ .pt-cv-collapsible .panel-heading {
433
+ padding: 0 !important;
434
+ }
435
+
436
+ .pt-cv-collapsible .panel-heading a {
437
+ display: block !important;
438
+ padding: 10px 15px !important;
439
+ }
440
+
441
+ .pt-cv-collapsible .panel-body {
442
+ padding: 10px !important;
443
+ }
444
+
445
+ .pt-cv-view .collapse {
446
+ display: none !important;
447
+ visibility: hidden !important;
448
+ }
449
+
450
+ .pt-cv-view .collapse.in {
451
+ display: block !important;
452
+ visibility: visible !important;
453
+ overflow: auto !important;
454
+ }
455
+
456
+ /* View type : Scrollable List */
457
+
458
+ .pt-cv-scrollable {
459
+ margin-left: 0 !important;
460
+ margin-right: 0 !important;
461
+ }
462
+
463
+ /* Caption */
464
+
465
+ .pt-cv-scrollable .pt-cv-carousel-caption {
466
+ text-align: left !important;
467
+ bottom: 1em !important;
468
+ padding: 10px !important;
469
+ }
470
+
471
+ .pt-cv-scrollable .pt-cv-carousel-caption * {
472
+ text-shadow: none !important;
473
+ }
474
+
475
+ .pt-cv-scrollable .pt-cv-title {
476
+ padding-bottom: 0 !important;
477
+ }
478
+
479
+ .pt-cv-scrollable .pt-cv-carousel-caption {
480
+ margin-bottom: 10px !important;
481
+ }
482
+
483
+ .pt-cv-carousel-caption:empty {
484
+ display: none !important;
485
+ }
486
+
487
+ /* Prevent weird layout caused by theme style */
488
+
489
+ .pt-cv-scrollable .carousel .item {
490
+ height: auto !important;
491
+ margin: auto !important;
492
+ min-height: 0 !important;
493
+ max-height: none !important;
494
+ line-height: normal !important;
495
+ }
496
+
497
+ /* Caption with image */
498
+
499
+ .pt-cv-scrollable .pt-cv-cap-w-img {
500
+ background: rgba(0, 0, 0, 0.6) !important;
501
+ text-shadow: 0px 1px 1px #000 !important;
502
+ left: 15px !important;
503
+ right: 15px !important;
504
+ }
505
+
506
+ .pt-cv-cap-w-img * {
507
+ color: #fff !important;
508
+ }
509
+
510
+ .pt-cv-cap-w-img .pt-cv-title a {
511
+ color: #fff !important;
512
+ }
513
+
514
+ /* Caption without image */
515
+
516
+ .pt-cv-scrollable .pt-cv-cap-wo-img {
517
+ position: relative !important;
518
+ bottom: 0 !important;
519
+ left: 0 !important;
520
+ right: 0 !important;
521
+ }
522
+
523
+ .pt-cv-cap-wo-img * {
524
+ color: #000 !important;
525
+ }
526
+
527
+ .pt-cv-cap-wo-img .pt-cv-readmore {
528
+ color: #fff !important;
529
+ }
530
+
531
+ /* Control */
532
+
533
+ .pt-cv-view .carousel-control {
534
+ background-image: none !important;
535
+ height: 30px !important;
536
+ width: 40px !important;
537
+ bottom: 0 !important;
538
+ top: auto !important;
539
+ color: #00A100 !important;
540
+ }
541
+
542
+ /* Indicator */
543
+
544
+ .pt-cv-view .pt-cv-carousel-indicators {
545
+ bottom: 0 !important;
546
+ margin-bottom: 4px !important;
547
+ }
548
+
549
+ .pt-cv-view .pt-cv-carousel-indicators li {
550
+ background: #cecece !important;
551
+ border: 1px solid #cecece !important;
552
+ margin: 0 0 !important;
553
+ }
554
+
555
+ .pt-cv-view .pt-cv-carousel-indicators li.active {
556
+ background: #428bca !important;
557
+ border: 1px solid #428bca !important;
558
+ }
559
+
560
+ /* Layout */
561
+
562
+ .pt-cv-2-col .pt-cv-title {
563
+ clear: none !important;
564
+ }
565
+
566
+ /* Bootstrap: Panels-minified */
567
+
568
+ .pt-cv-view .panel {
569
+ margin-bottom: 20px !important;
570
+ background-color: #ffffff !important;
571
+ border: 1px solid transparent !important;
572
+ border-radius: 4px !important;
573
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05) !important;
574
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05) !important;
575
+ }
576
+
577
+ .pt-cv-view .panel-default {
578
+ border-color: #dddddd !important;
579
+ padding-bottom: 0 !important;
580
+ }
581
+
582
+ .pt-cv-view .panel-default > .panel-heading {
583
+ color: #333333 !important;
584
+ background-color: #f5f5f5 !important;
585
+ border-color: #dddddd !important;
586
+ margin-bottom: 0 !important;
587
+ }
588
+
589
+ /* Theme isuses */
590
+
591
+ .pt-cv-pagination:after,
592
+ .pt-cv-pagination:before {
593
+ content: none !important;
594
+ }
595
+
596
+ /* Media CSS */
597
+
598
+ @media (max-width: 480px) {
599
+ /* Disable 2 columns in extra small screens */
600
+
601
+ .pt-cv-nolf.pt-cv-2-col .pt-cv-thumbnail {
602
+ float: none !important;
603
+ margin: 0 !important;
604
+ }
605
+ }
606
+
607
+ @media print {
608
+ /* Remove plain text URL after each link in Print mode */
609
+
610
+ .pt-cv-view a[href]:after {
611
+ content: none !important;
612
+ }
613
+ }
public/assets/css/fix-damaged-output.css ADDED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Below very crucial properties (acompany with public.css) will be appended "!important" suffix
3
+ * to prevent damaged output caused by theme/another plugin's style
4
+ *
5
+ * @since 1.8.7
6
+ */
7
+
8
+ .pt-cv-wrapper .row {
9
+ margin-left: -15px;
10
+ margin-right: -15px;
11
+ }
12
+ .pt-cv-colsys [class^='col-'] {
13
+ padding-left: 15px;
14
+ padding-right: 15px;
15
+ }
16
+ .pt-cv-content-item {
17
+ padding-bottom: 1em;
18
+ }
19
+ .pt-cv-view .pt-cv-content-item > * {
20
+ margin-bottom: 10px;
21
+ }
22
+ .pt-cv-wrapper img {
23
+ vertical-align: middle;
24
+ }
25
+ .pt-cv-wrapper .btn {
26
+ display: inline-block;
27
+ margin-bottom: 0;
28
+ font-weight: normal;
29
+ text-align: center;
30
+ vertical-align: middle;
31
+ -ms-touch-action: manipulation;
32
+ touch-action: manipulation;
33
+ cursor: pointer;
34
+ background-image: none;
35
+ border: 1px solid transparent;
36
+ white-space: nowrap;
37
+ padding: 6px 12px;
38
+ font-size: 14px;
39
+ line-height: 1.42857143;
40
+ border-radius: 4px;
41
+ -webkit-user-select: none;
42
+ -moz-user-select: none;
43
+ -ms-user-select: none;
44
+ user-select: none;
45
+ }
46
+
47
+ /* Pagination */
48
+ .pt-cv-wrapper .pagination>li>a, .pt-cv-wrapper .pagination>li>span {
49
+ position: relative;
50
+ float: left;
51
+ padding: 6px 12px;
52
+ line-height: 1.42857143;
53
+ text-decoration: none;
54
+ color: #337ab7;
55
+ *background-color: #fff;
56
+ border: 1px solid #ddd;
57
+ margin-left: -1px;
58
+ }
59
+ .pt-cv-wrapper .pagination>.active>a, .pt-cv-wrapper .pagination>.active>span, .pt-cv-wrapper .pagination>.active>a:hover, .pt-cv-wrapper .pagination>.active>span:hover, .pt-cv-wrapper .pagination>.active>a:focus, .pt-cv-wrapper .pagination>.active>span:focus {
60
+ z-index: 2;
61
+ color: #fff;
62
+ background-color: #337ab7;
63
+ border-color: #337ab7;
64
+ cursor: default;
65
+ }
66
+
67
+ /* Collapsible list */
68
+ .pt-cv-wrapper .collapsing {
69
+ -webkit-transition-property: height,visibility;
70
+ -o-transition-property: height,visibility;
71
+ transition-property: height,visibility;
72
+ -webkit-transition-duration: .35s;
73
+ -o-transition-duration: .35s;
74
+ transition-duration: .35s;
75
+ -webkit-transition-timing-function: ease;
76
+ -o-transition-timing-function: ease;
77
+ transition-timing-function: ease
78
+ }
79
+
80
+ /* Scrollable list */
81
+ .pt-cv-scrollable .pt-cv-carousel-caption {
82
+ padding: 10px;
83
+ }
84
+ .pt-cv-wrapper .pt-cv-carousel-indicators, .pt-cv-wrapper .carousel-control {
85
+ text-align: center;
86
+ }
87
+ .pt-cv-wrapper .pt-cv-carousel-indicators {
88
+ margin-left: -30%;
89
+ }
90
+ .pt-cv-cap-w-img * {
91
+ color: #fff;
92
+ }
93
+ @media all and (transform-3d),(-webkit-transform-3d) {
94
+ .pt-cv-wrapper .carousel-inner>.item {
95
+ -webkit-transition: -webkit-transform .6s ease-in-out;
96
+ -o-transition: -o-transform .6s ease-in-out;
97
+ transition: transform .6s ease-in-out;
98
+ -webkit-backface-visibility: hidden;
99
+ backface-visibility: hidden;
100
+ -webkit-perspective: 1000px;
101
+ perspective: 1000px;
102
+ }
103
+
104
+ .pt-cv-wrapper .carousel-inner>.item.next,.pt-cv-wrapper .carousel-inner>.item.active.right {
105
+ -webkit-transform: translate3d(100%,0,0);
106
+ transform: translate3d(100%,0,0);
107
+ left: 0
108
+ }
109
+
110
+ .pt-cv-wrapper .carousel-inner>.item.prev,.pt-cv-wrapper .carousel-inner>.item.active.left {
111
+ -webkit-transform: translate3d(-100%,0,0);
112
+ transform: translate3d(-100%,0,0);
113
+ left: 0
114
+ }
115
+
116
+ .pt-cv-wrapper .carousel-inner>.item.next.left,.pt-cv-wrapper .carousel-inner>.item.prev.right,.pt-cv-wrapper .carousel-inner>.item.active {
117
+ -webkit-transform: translate3d(0,0,0);
118
+ transform: translate3d(0,0,0);
119
+ left: 0
120
+ }
121
+ }
122
+
123
+ /* Readmore */
124
+ .pt-cv-wrapper .btn-success {
125
+ color: #fff;
126
+ background-color: #5cb85c;
127
+ *border-color: #4cae4c;
128
+ }
public/templates/grid/html/main.php CHANGED
@@ -9,32 +9,19 @@
9
  * @link http://www.contentviewspro.com/
10
  * @copyright 2014 PT Guy
11
  */
12
- $html = array();
 
 
13
 
14
- $layout = $dargs[ 'layout-format' ];
15
-
16
- // Prevent the case: there are 2 columns but have not setting for thumbnail position
17
  if ( $layout == '2-col' && !isset( $dargs[ 'field-settings' ][ 'thumbnail' ] ) ) {
18
  $layout = '1-col';
19
  }
20
 
21
- switch ( $layout ) {
22
- case '1-col':
23
- foreach ( $fields_html as $field_html ) {
24
- $html[] = $field_html;
25
- }
26
- break;
27
- case '2-col':
28
-
29
- // Thumbnail html
30
- $html[] = $fields_html[ 'thumbnail' ];
31
-
32
- // Other fields html
33
- unset( $fields_html[ 'thumbnail' ] );
34
- $others_html = implode( "\n", $fields_html );
35
- $html[] = $others_html;
36
-
37
- break;
38
  }
39
 
40
- echo implode( "\n", $html );
 
9
  * @link http://www.contentviewspro.com/
10
  * @copyright 2014 PT Guy
11
  */
12
+ $html = array();
13
+ $o_fields_html = $fields_html;
14
+ $layout = $dargs[ 'layout-format' ];
15
 
 
 
 
16
  if ( $layout == '2-col' && !isset( $dargs[ 'field-settings' ][ 'thumbnail' ] ) ) {
17
  $layout = '1-col';
18
  }
19
 
20
+ if ( $layout == '2-col' ) {
21
+ $thumbnail = $fields_html[ 'thumbnail' ];
22
+ unset( $fields_html[ 'thumbnail' ] );
23
+ array_unshift( $fields_html, $thumbnail );
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  }
25
 
26
+ $html = $fields_html;
27
+ echo apply_filters( PT_CV_PREFIX_ . 'grid_item', implode( "\n", $html ), $o_fields_html );