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

Version Description

  • New feature: Able to disable feature "responsive image" of WordPress 4.4 to prevent blurry thumbnail
  • New feature: Able to disable 2-columns format in Mobile devices & extra small screens
  • Update: Better output when shows only Title of post
  • Update: Add filter to allow HTML tags in heading of Collapsible list
  • Update: Decrease margin of thumbnail
  • Tweak: Add some filter hooks
Download this release

Release Info

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

Code changes from version 1.7.4 to 1.7.5

README.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: pt-guy
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=JGUF974QBRKQE
4
  Tags: post, display, recent, posts, recent post, page, pages, query, queries, search, display, show, grid, column, layout, author, blog, categories, category, comment, content, custom, editor, filter, Formatting, image, list, meta, plugin, responsive, shortcode, excerpt, title, tag, term, Taxonomy, thumbnail, pagination, date, scrollable, slider, collapsible
5
  Requires at least: 3.3
6
- Tested up to: 4.3.1
7
- Stable tag: 1.7.4
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -150,6 +150,14 @@ add_filter( 'pt_cv_start_session', '__return_false' );
150
 
151
  == Changelog ==
152
 
 
 
 
 
 
 
 
 
153
  = 1.7.4 =
154
  * Bug fixed: "Session start" warning
155
  * Improvement: Rename & restructure Content Views menus in WordPress dashboard
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=JGUF974QBRKQE
4
  Tags: post, display, recent, posts, recent post, page, pages, query, queries, search, display, show, grid, column, layout, author, blog, categories, category, comment, content, custom, editor, filter, Formatting, image, list, meta, plugin, responsive, shortcode, excerpt, title, tag, term, Taxonomy, thumbnail, pagination, date, scrollable, slider, collapsible
5
  Requires at least: 3.3
6
+ Tested up to: 4.4
7
+ Stable tag: 1.7.5
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
150
 
151
  == Changelog ==
152
 
153
+ = 1.7.5 =
154
+ * New feature: Able to disable feature "responsive image" of WordPress 4.4 to prevent blurry thumbnail
155
+ * New feature: Able to disable 2-columns format in Mobile devices & extra small screens
156
+ * Update: Better output when shows only Title of post
157
+ * Update: Add filter to allow HTML tags in heading of Collapsible list
158
+ * Update: Decrease margin of thumbnail
159
+ * Tweak: Add some filter hooks
160
+
161
  = 1.7.4 =
162
  * Bug fixed: "Session start" warning
163
  * Improvement: Rename & restructure Content Views menus in WordPress dashboard
admin/assets/js/admin.js CHANGED
@@ -675,6 +675,10 @@
675
 
676
  // Validate number
677
  $self.validate_number();
 
 
 
 
678
  }
679
  };
680
  }( jQuery ) );
675
 
676
  // Validate number
677
  $self.validate_number();
678
+
679
+ $( '.pt-accordion-a' ).click( function ( e ) {
680
+ e.preventDefault();
681
+ } );
682
  }
683
  };
684
  }( jQuery ) );
admin/views/view.php CHANGED
@@ -493,16 +493,57 @@ PT_CV_Functions::view_submit();
493
  apply_filters( PT_CV_PREFIX_ . 'responsive_settings', array() ),
494
  // Layout format of output item
495
  array(
496
- 'label' => array(
497
  'text' => __( 'Layout format', PT_CV_TEXTDOMAIN ),
498
  ),
499
- 'params' => array(
 
 
 
 
 
500
  array(
501
- 'type' => 'radio',
502
- 'name' => 'layout-format',
503
- 'options' => PT_CV_Values::layout_format(),
504
- 'std' => PT_CV_Functions::array_get_first_key( PT_CV_Values::layout_format() ),
505
- 'desc' => __( 'This is layout format of output for each post', PT_CV_TEXTDOMAIN ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
506
  ),
507
  ),
508
  ),
493
  apply_filters( PT_CV_PREFIX_ . 'responsive_settings', array() ),
494
  // Layout format of output item
495
  array(
496
+ 'label' => array(
497
  'text' => __( 'Layout format', PT_CV_TEXTDOMAIN ),
498
  ),
499
+ 'extra_setting' => array(
500
+ 'params' => array(
501
+ 'wrap-class' => PT_CV_Html::html_group_class(),
502
+ ),
503
+ ),
504
+ 'params' => array(
505
  array(
506
+ 'type' => 'group',
507
+ 'params' => array(
508
+ array(
509
+ 'label' => array(
510
+ 'text' => '',
511
+ ),
512
+ 'extra_setting' => array(
513
+ 'params' => array(
514
+ 'width' => 12,
515
+ ),
516
+ ),
517
+ 'params' => array(
518
+ array(
519
+ 'type' => 'radio',
520
+ 'name' => 'layout-format',
521
+ 'options' => PT_CV_Values::layout_format(),
522
+ 'std' => PT_CV_Functions::array_get_first_key( PT_CV_Values::layout_format() ),
523
+ 'desc' => __( 'This is layout format of output for each post', PT_CV_TEXTDOMAIN ),
524
+ ),
525
+ ),
526
+ ),
527
+ array(
528
+ 'label' => array(
529
+ 'text' => '',
530
+ ),
531
+ 'extra_setting' => array(
532
+ 'params' => array(
533
+ 'width' => 12,
534
+ ),
535
+ ),
536
+ 'params' => array(
537
+ array(
538
+ 'type' => 'checkbox',
539
+ 'name' => 'lf-mobile-disable',
540
+ 'options' => PT_CV_Values::yes_no( 'yes', __( 'Disable 2 columns format on mobile devices & extra small screens', PT_CV_TEXTDOMAIN ) ),
541
+ 'std' => '',
542
+ ),
543
+ ),
544
+ 'dependence' => array( 'layout-format', '2-col' ),
545
+ ),
546
+ ),
547
  ),
548
  ),
549
  ),
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.7.4
15
  * Author: PT Guy
16
  * Author URI: http://profiles.wordpress.org/pt-guy
17
  * Text Domain: content-views-query-and-display-post-page
@@ -27,7 +27,7 @@ if ( !defined( 'WPINC' ) ) {
27
  /*
28
  * Define Constant
29
  */
30
- define( 'PT_CV_VERSION', '1.7.4' );
31
  define( 'PT_CV_FILE', __FILE__ );
32
  $pt_cv_path = plugin_dir_path( __FILE__ );
33
  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.7.5
15
  * Author: PT Guy
16
  * Author URI: http://profiles.wordpress.org/pt-guy
17
  * Text Domain: content-views-query-and-display-post-page
27
  /*
28
  * Define Constant
29
  */
30
+ define( 'PT_CV_VERSION', '1.7.5' );
31
  define( 'PT_CV_FILE', __FILE__ );
32
  $pt_cv_path = plugin_dir_path( __FILE__ );
33
  include_once( $pt_cv_path . 'includes/defines.php' );
includes/functions.php CHANGED
@@ -417,7 +417,8 @@ if ( !class_exists( 'PT_CV_Functions' ) ) {
417
  // Get list of taxonomies
418
  $taxonomies = get_taxonomies( '', 'names' );
419
 
420
- $taxonomies = apply_filters( PT_CV_PREFIX_ . 'taxonomies_list', $taxonomies );
 
421
 
422
  // Get post ID
423
  $post_id = is_object( $post ) ? $post->ID : $post;
@@ -427,7 +428,7 @@ if ( !class_exists( 'PT_CV_Functions' ) ) {
427
 
428
  foreach ( $terms as $term ) {
429
  $include_this = apply_filters( PT_CV_PREFIX_ . 'terms_include_this', true, $term );
430
- if ( $include_this ) {
431
  $href = esc_url( get_term_link( $term, $term->taxonomy ) );
432
  $text = __( 'View all posts in', PT_CV_TEXTDOMAIN );
433
  $term_name = esc_attr( $term->name );
417
  // Get list of taxonomies
418
  $taxonomies = get_taxonomies( '', 'names' );
419
 
420
+ // List of taxonomies to show
421
+ $taxonomies_to_show = apply_filters( PT_CV_PREFIX_ . 'taxonomies_to_show', $taxonomies );
422
 
423
  // Get post ID
424
  $post_id = is_object( $post ) ? $post->ID : $post;
428
 
429
  foreach ( $terms as $term ) {
430
  $include_this = apply_filters( PT_CV_PREFIX_ . 'terms_include_this', true, $term );
431
+ if ( $include_this && in_array( $term->taxonomy, $taxonomies_to_show ) ) {
432
  $href = esc_url( get_term_link( $term, $term->taxonomy ) );
433
  $text = __( 'View all posts in', PT_CV_TEXTDOMAIN );
434
  $term_name = esc_attr( $term->name );
includes/hooks.php CHANGED
@@ -23,6 +23,12 @@ if ( !class_exists( 'PT_CV_Hooks' ) ) {
23
  // Filter Output
24
  add_filter( PT_CV_PREFIX_ . 'validate_settings', array( __CLASS__, 'filter_validate_settings' ), 10, 2 );
25
 
 
 
 
 
 
 
26
  // Do action
27
  add_action( PT_CV_PREFIX_ . 'before_query', array( __CLASS__, 'action_before_query' ) );
28
  }
@@ -104,6 +110,19 @@ if ( !class_exists( 'PT_CV_Hooks' ) ) {
104
  return array_filter( $errors );
105
  }
106
 
 
 
 
 
 
 
 
 
 
 
 
 
 
107
  public static function action_before_query() {
108
  /** Fix problem with Paid Membership Pro plugin
109
  * It resets (instead of append) "post__not_in" parameter of WP query which makes:
23
  // Filter Output
24
  add_filter( PT_CV_PREFIX_ . 'validate_settings', array( __CLASS__, 'filter_validate_settings' ), 10, 2 );
25
 
26
+ /**
27
+ * @since 1.7.5
28
+ * able to disable responsive image of WordPress 4.4
29
+ */
30
+ add_filter( 'wp_get_attachment_image_attributes', array( __CLASS__, 'filter_disable_wp_responsive_image' ), 1000 );
31
+
32
  // Do action
33
  add_action( PT_CV_PREFIX_ . 'before_query', array( __CLASS__, 'action_before_query' ) );
34
  }
110
  return array_filter( $errors );
111
  }
112
 
113
+ // Disable WP 4.4 responsive image
114
+ public static function filter_disable_wp_responsive_image( $args ) {
115
+
116
+ if ( PT_CV_Functions::setting_value( PT_CV_PREFIX . 'field-thumbnail-nowprpi' ) ) {
117
+ if ( isset( $args[ 'sizes' ] ) )
118
+ unset( $args[ 'sizes' ] );
119
+ if ( isset( $args[ 'srcset' ] ) )
120
+ unset( $args[ 'srcset' ] );
121
+ }
122
+
123
+ return $args;
124
+ }
125
+
126
  public static function action_before_query() {
127
  /** Fix problem with Paid Membership Pro plugin
128
  * It resets (instead of append) "post__not_in" parameter of WP query which makes:
includes/html.php CHANGED
@@ -229,11 +229,12 @@ if ( !class_exists( 'PT_CV_Html' ) ) {
229
  $dargs = (array) PT_CV_Functions::get_global_variable( 'dargs' );
230
 
231
  // If only show Title
232
- if ( isset( $dargs[ 'fields' ] ) && count( (array) $dargs[ 'fields' ] ) == 1 && $dargs[ 'fields' ][ 0 ] === 'title' ) {
233
  $class .= ' ' . PT_CV_PREFIX . 'only-title';
234
  }
235
 
236
- $item_class = apply_filters( PT_CV_PREFIX_ . 'content_item_class', array( $class, PT_CV_PREFIX . 'content-item', PT_CV_PREFIX . $dargs[ 'layout-format' ] ) );
 
237
  $item_filter = apply_filters( PT_CV_PREFIX_ . 'content_item_filter_value', '', $post_id );
238
 
239
  // Add custom HTML for each item
@@ -587,6 +588,14 @@ if ( !class_exists( 'PT_CV_Html' ) ) {
587
  'class' => apply_filters( PT_CV_PREFIX_ . 'field_thumbnail_class', implode( ' ', array_filter( $thumbnail_class ) ) ),
588
  );
589
 
 
 
 
 
 
 
 
 
590
  // Get thumbnail dimensions
591
  $dimensions = (array) apply_filters( PT_CV_PREFIX_ . 'field_thumbnail_dimension_output', PT_CV_Functions::field_thumbnail_dimensions( $fargs ), $fargs );
592
 
@@ -728,10 +737,10 @@ if ( !class_exists( 'PT_CV_Html' ) ) {
728
  );
729
 
730
  // Join fields
731
- $meta_html = implode( $seperator, (array) $meta_html );
732
 
733
  // Wrap
734
- $html = sprintf( $wrapper, $meta_html );
735
 
736
  return $html;
737
  }
229
  $dargs = (array) PT_CV_Functions::get_global_variable( 'dargs' );
230
 
231
  // If only show Title
232
+ if ( isset( $dargs[ 'fields' ] ) && count( apply_filters( PT_CV_PREFIX_ . 'core_fields', (array) $dargs[ 'fields' ] ) ) === 1 && $dargs[ 'fields' ][ 0 ] === 'title' ) {
233
  $class .= ' ' . PT_CV_PREFIX . 'only-title';
234
  }
235
 
236
+ $extra_class = PT_CV_Functions::setting_value( PT_CV_PREFIX . 'lf-mobile-disable' ) ? PT_CV_PREFIX . 'nolf' : '';
237
+ $item_class = apply_filters( PT_CV_PREFIX_ . 'content_item_class', array( $class, PT_CV_PREFIX . 'content-item', PT_CV_PREFIX . $dargs[ 'layout-format' ], $extra_class ), $post_id );
238
  $item_filter = apply_filters( PT_CV_PREFIX_ . 'content_item_filter_value', '', $post_id );
239
 
240
  // Add custom HTML for each item
588
  'class' => apply_filters( PT_CV_PREFIX_ . 'field_thumbnail_class', implode( ' ', array_filter( $thumbnail_class ) ) ),
589
  );
590
 
591
+ /**
592
+ * @since 1.7.5
593
+ * able to disable responsive image of WordPress 4.4
594
+ */
595
+ if ( PT_CV_Functions::setting_value( PT_CV_PREFIX . 'field-thumbnail-nowprpi' ) ) {
596
+ $gargs[ 'srcset' ] = 1;
597
+ }
598
+
599
  // Get thumbnail dimensions
600
  $dimensions = (array) apply_filters( PT_CV_PREFIX_ . 'field_thumbnail_dimension_output', PT_CV_Functions::field_thumbnail_dimensions( $fargs ), $fargs );
601
 
737
  );
738
 
739
  // Join fields
740
+ $meta_html = implode( $seperator, (array) apply_filters( PT_CV_PREFIX_ . 'meta_field_html', $meta_html ) );
741
 
742
  // Wrap
743
+ $html = !empty( $meta_html ) ? sprintf( $wrapper, $meta_html ) : '';
744
 
745
  return $html;
746
  }
includes/settings.php CHANGED
@@ -339,15 +339,10 @@ if ( !class_exists( 'PT_CV_Settings' ) ) {
339
  PT_CV_PREFIX_ . 'excerpt_settings', array(
340
  // Excerpt length
341
  array(
342
- 'label' => array(
343
  'text' => __( 'Excerpt settings', PT_CV_TEXTDOMAIN ),
344
  ),
345
- 'extra_setting' => array(
346
- 'params' => array(
347
- 'width' => 9,
348
- ),
349
- ),
350
- 'params' => array(
351
  array(
352
  'type' => 'number',
353
  'name' => $prefix . 'excerpt-length',
@@ -368,7 +363,6 @@ if ( !class_exists( 'PT_CV_Settings' ) ) {
368
  'extra_setting' => array(
369
  'params' => array(
370
  'wrap-class' => PT_CV_PREFIX . 'full-fields',
371
- 'width' => 9,
372
  ),
373
  ),
374
  'params' => array(
@@ -574,20 +568,36 @@ if ( !class_exists( 'PT_CV_Settings' ) ) {
574
  $result = array(
575
  // Size
576
  array(
577
- 'label' => array(
578
  'text' => __( 'Thumbnail size', PT_CV_TEXTDOMAIN ),
579
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
580
  'extra_setting' => array(
581
  'params' => array(
582
- 'width' => 9,
583
  ),
584
  ),
585
  'params' => array(
586
  array(
587
- 'type' => 'select',
588
- 'name' => $prefix . 'thumbnail-size',
589
- 'options' => PT_CV_Values::field_thumbnail_sizes(),
590
- 'std' => 'medium',
 
591
  ),
592
  ),
593
  ),
339
  PT_CV_PREFIX_ . 'excerpt_settings', array(
340
  // Excerpt length
341
  array(
342
+ 'label' => array(
343
  'text' => __( 'Excerpt settings', PT_CV_TEXTDOMAIN ),
344
  ),
345
+ 'params' => array(
 
 
 
 
 
346
  array(
347
  'type' => 'number',
348
  'name' => $prefix . 'excerpt-length',
363
  'extra_setting' => array(
364
  'params' => array(
365
  'wrap-class' => PT_CV_PREFIX . 'full-fields',
 
366
  ),
367
  ),
368
  'params' => array(
568
  $result = array(
569
  // Size
570
  array(
571
+ 'label' => array(
572
  'text' => __( 'Thumbnail size', PT_CV_TEXTDOMAIN ),
573
  ),
574
+ 'params' => array(
575
+ array(
576
+ 'type' => 'select',
577
+ 'name' => $prefix . 'thumbnail-size',
578
+ 'options' => PT_CV_Values::field_thumbnail_sizes(),
579
+ 'std' => 'medium',
580
+ ),
581
+ ),
582
+ ),
583
+ // Disable WP 4.4 responsive image
584
+ !PT_CV_Functions::wp_version_compare( '4.4' ) ? '' :
585
+ array(
586
+ 'label' => array(
587
+ 'text' => '',
588
+ ),
589
  'extra_setting' => array(
590
  'params' => array(
591
+ 'wrap-class' => 'checkbox-inline',
592
  ),
593
  ),
594
  'params' => array(
595
  array(
596
+ 'type' => 'checkbox',
597
+ 'name' => $prefix . 'thumbnail-nowprpi',
598
+ 'options' => PT_CV_Values::yes_no( 'yes', __( 'Disable responsive image of WordPress 4.4', PT_CV_TEXTDOMAIN ) ),
599
+ 'std' => '',
600
+ 'desc' => __( 'Check this option if thumbnail looks blurry', PT_CV_TEXTDOMAIN ),
601
  ),
602
  ),
603
  ),
public/assets/css/public.css CHANGED
@@ -72,6 +72,12 @@
72
  padding-bottom: 0;
73
  }
74
 
 
 
 
 
 
 
75
  /* Title */
76
  .pt-cv-title {
77
  margin-top: 0 !important;
@@ -87,16 +93,16 @@
87
  height: auto;
88
  max-width: 100% !important;
89
  margin-top: 0 !important;
90
- margin-bottom: 15px !important;
91
  min-width: inherit !important;
92
  }
93
 
94
  .pt-cv-thumbnail.pull-left {
95
- margin-right: 20px !important;
96
  }
97
 
98
  .pt-cv-thumbnail.pull-right {
99
- margin-left: 20px;
100
  }
101
 
102
  .pt-cv-no-image {
@@ -229,7 +235,7 @@
229
  text-align: left;
230
  left: 0;
231
  right: 15px;
232
- bottom: 1.8em;
233
  }
234
 
235
  .pt-cv-view .pt-cv-carousel-caption * {
@@ -299,6 +305,13 @@
299
  .pt-cv-view .pt-cv-2-col .pt-cv-title {
300
  clear: none !important;
301
  }
 
 
 
 
 
 
 
302
 
303
  /* @Panels-minified */
304
  .pt-cv-view .panel {
72
  padding-bottom: 0;
73
  }
74
 
75
+ .pt-cv-only-title a {
76
+ display: list-item;
77
+ margin-left: 20px;
78
+ list-style-type: square;
79
+ }
80
+
81
  /* Title */
82
  .pt-cv-title {
83
  margin-top: 0 !important;
93
  height: auto;
94
  max-width: 100% !important;
95
  margin-top: 0 !important;
96
+ margin-bottom: 10px !important;
97
  min-width: inherit !important;
98
  }
99
 
100
  .pt-cv-thumbnail.pull-left {
101
+ margin-right: 15px !important;
102
  }
103
 
104
  .pt-cv-thumbnail.pull-right {
105
+ margin-left: 15px;
106
  }
107
 
108
  .pt-cv-no-image {
235
  text-align: left;
236
  left: 0;
237
  right: 15px;
238
+ bottom: 16px;
239
  }
240
 
241
  .pt-cv-view .pt-cv-carousel-caption * {
305
  .pt-cv-view .pt-cv-2-col .pt-cv-title {
306
  clear: none !important;
307
  }
308
+ @media (max-width: 480px) {
309
+ .pt-cv-nolf.pt-cv-2-col .pt-cv-thumbnail{
310
+ float: none !important;
311
+ margin: 0;
312
+ }
313
+ }
314
+
315
 
316
  /* @Panels-minified */
317
  .pt-cv-view .panel {
public/templates/collapsible/html/main.php CHANGED
@@ -42,17 +42,21 @@ switch ( $layout ) {
42
  break;
43
  }
44
 
45
- $random_id = PT_CV_Functions::string_random();
46
  ?>
47
  <div class="panel panel-default pt-cv-content-item">
48
  <?php echo apply_filters( PT_CV_PREFIX_ . 'collapsible_before_heading', '' ); ?>
49
  <div class="panel-heading">
50
  <a class="panel-title" data-toggle="collapse" data-parent="#<?php echo esc_attr( PT_CV_PREFIX_UPPER . 'ID' ); ?>" href="#<?php echo esc_attr( $random_id ); ?>">
51
- <?php echo strip_tags( $heading ); ?>
 
 
 
 
52
  </a>
53
  <?php
54
  // Custom toggle icon
55
- $toggle_icon = apply_filters( PT_CV_PREFIX_ . 'scrollable_toggle_icon', '' );
56
  echo $toggle_icon;
57
  ?>
58
  </div>
42
  break;
43
  }
44
 
45
+ $random_id = PT_CV_Functions::string_random();
46
  ?>
47
  <div class="panel panel-default pt-cv-content-item">
48
  <?php echo apply_filters( PT_CV_PREFIX_ . 'collapsible_before_heading', '' ); ?>
49
  <div class="panel-heading">
50
  <a class="panel-title" data-toggle="collapse" data-parent="#<?php echo esc_attr( PT_CV_PREFIX_UPPER . 'ID' ); ?>" href="#<?php echo esc_attr( $random_id ); ?>">
51
+ <?php
52
+ // Able to allow some HTML tags here: span, strong...
53
+ $allowable_tags = (array) apply_filters( PT_CV_PREFIX_ . 'collapsible_heading_tags', array() );
54
+ echo strip_tags( $heading, implode( '', $allowable_tags ) );
55
+ ?>
56
  </a>
57
  <?php
58
  // Custom toggle icon
59
+ $toggle_icon = apply_filters( PT_CV_PREFIX_ . 'scrollable_toggle_icon', '' );
60
  echo $toggle_icon;
61
  ?>
62
  </div>