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

Version Description

  • 2017/03/28 =
  • New: Add setting to change HTML tag for Title
  • Update: Show message in Preview panel when enabled Pagination but there is only 1 page
  • Tweak: More useful information in Content Views >> Settings page
  • Improvement: Refactor some code to improve performance
Download this release

Release Info

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

Code changes from version 1.9.6 to 1.9.7

README.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://www.contentviewspro.com/pricing/?utm_source=wporg&utm_mediu
4
  Tags: post, posts, page, pages, grid, author, category, categories, tag, responsive, title, thumbnail, content
5
  Requires at least: 3.3
6
  Tested up to: 4.7.3
7
- Stable tag: 1.9.6
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -116,7 +116,13 @@ If you are using "Your latest posts" as home page, you should paste this code `<
116
 
117
  == Changelog ==
118
 
119
- = 1.9.6 - March 08 2017 =
 
 
 
 
 
 
120
  * Fix: Shortcode of "Visual Composer" plugin is visible in content of posts loaded by Ajax pagination
121
  * Fix: Show wrong order of posts, caused by impact of "Post Types Order" plugin
122
  * Update: Add Romania translation, thanks to "Dan Caragea"
@@ -125,49 +131,49 @@ If you are using "Your latest posts" as home page, you should paste this code `<
125
  * Update: Add Russian translation, thanks to @snakecom
126
  * Tweak: Add some filters to customize authors list, thumbnail, excerpt
127
 
128
- = 1.9.5 - February 08 2017 =
129
  * Fix: In some cases, HTML output of excerpt is broken when allows HTML tags in excerpt
130
  * Improvement: More clear and simple label, text for some settings
131
  * Update: Remove `<!-- [et_pb_line_break_holder] -->` of Divi theme from excerpt
132
  * Update: Hide empty `<p>` tag from excerpt (which can add unnecessary blank space to content area)
133
  * Update: Add default font-style normal for link & button
134
 
135
- = 1.9.4 - January 25 2016 =
136
  * New: Show link to add new View from Admin bar
137
 
138
- = 1.9.3.3 - January 21 2016 =
139
  * Fix: Correct output of Scrollable list in Tablet devices
140
 
141
- = 1.9.3.2 - January 11 2016 =
142
  * Update: simplify label of some settings in Add/Edit View page
143
  * Improvement: simplify code base and improve performance of Grid, Collapsible List
144
  * Improvement: some style adjustments for Scrollable List
145
 
146
- = 1.9.3.1 - December 27 2016 =
147
  * Update: Save temporary View data to WordPress transient if SESSION is not available
148
  * Improvement: Show all content of Collapsible list when printing
149
 
150
- = 1.9.3 - November 22 2016 =
151
  * Improvement: Remove prefix "by", "in" (before taxonomy, author) to save translation effort
152
  * Improvement: More accurate, time-saving mechanism to remove raw shortcodes text of other plugins in post content
153
  * Fix: "View maybe not exist" error, caused by custom filter hook (which modifies `post_type` in WordPress query) of another plugin
154
 
155
- = 1.9.2.1 - November 05 2016 =
156
  * Tweak: Update message when something went wrong, show exact error in Preview panel
157
  * Tweak: Update description for keyword setting
158
  * Tweak: Introduce filter "pt_cv_link_html" to modify HTML output of title, thumbnail, read-more button
159
 
160
- = 1.9.2 - October 24 2016 =
161
  * Revert force_balance_tags() for item HTML wrapper, to prevent broken output
162
  * Tweak: Remove unused functions
163
  * Tweak: Introduce filter "pt_cv_pagination_text" to customize pagination text
164
 
165
- = 1.9.1 - October 10 2016 =
166
  * Fix: XSS security flaw (a big thank to Tristan Madani)
167
  * Tweak: Improve logic/coding in settings processing, view output functions
168
  * Tweak: Update some descriptions in View dashboard
169
 
170
- = 1.9.0 - September 19 2016 =
171
  * Update: Make excerpt length works with languages which don't use spaces between words
172
  * Update: Validate session ID before using to prevent session hijacking
173
 
@@ -259,351 +265,6 @@ If you are using "Your latest posts" as home page, you should paste this code `<
259
  * Improvement: Better View dashboard (simplified text & description, improved styles & scripts, improved display in Tablet)
260
  * Improvement: Better performance by better solution
261
 
262
- = 1.7.5 =
263
- * New feature: Able to disable feature "responsive image" of WordPress 4.4 to prevent blurry thumbnail
264
- * New feature: Able to disable 2-columns format in Mobile devices & extra small screens
265
- * Update: Better output when shows only Title of post
266
- * Update: Add filter to allow HTML tags in heading of Collapsible list
267
- * Update: Decrease margin of thumbnail
268
- * Tweak: Add some filter hooks
269
-
270
- = 1.7.4 =
271
- * Bug fixed: "Session start" warning
272
- * Improvement: Rename & restructure Content Views menus in WordPress dashboard
273
- * Improvement: Remove/Update appended value (for example: 1 → 6) which can make misunderstand about limitation of some numerical settings
274
-
275
- = 1.7.3 =
276
- * Bug fixed: Empty date caused by custom hook to WordPress "get_the_date" filter (of another plugin/active theme)
277
- * Bug fixed: Different output between preview and front-end when excludes some posts (caused by Paid Membership Pro plugin)
278
- * Improvement: Improve code for better performance
279
- * Tweak: Rename 'In list' to 'Include only' and update its description
280
- * Tweak: Replace "Leave a comment" by "0 Comment"
281
-
282
- = 1.7.2 =
283
- * Improvement: Reduce processing time by optimizing conditional statements & functions
284
- * Bug fixed: "No post found" when one of selected terms is hierarchical and operator is AND
285
- * Bug fixed: Some style issues of pagination (caused by impact of style from active theme)
286
- * Tweak: Add more helpful descriptions about advanced features in Pro plugin
287
-
288
- = 1.7.1 =
289
- * Bug fixed: Fix error in some one-page themes
290
- * Update: Add woff2 file of Bootstrap font
291
- * Improvement: Code cleanup & remove no more used filters
292
- * Tweak: Add some filter actions
293
-
294
- = 1.7.0 =
295
- * Improvement: Completely avoid layout issues or style conflict with theme
296
- * Bug fixed: Collapsible layout does not animate smoothly
297
- * Improvement: Disable annoy scroll when select content type
298
- * Tweak: Update text, description of some settings
299
- * Tweak: Add filter 'post_types_taxonomies', 'view_executed', filter to hide output if No post found
300
-
301
- = 1.6.8.4 =
302
- * Bug fixed: Solve problems with category/tag name in non-latin languages
303
- * Improvement: Use cleaner loading icon
304
- * Tweak: Add class for <a> tag of thumbnail
305
- * Tweak: Add filter to load Content Views assets (styles, scripts) only in page which uses View
306
- * Tweak: Add filter to allow All HTML tags in excerpt
307
-
308
- = 1.6.8.3 =
309
- * Tweak: Change text domain from "content-views" to "content-views-query-and-display-post-page" and update pot file (prepare for language packs at http://translate.wordpress.org)
310
-
311
- = 1.6.8.2 =
312
- * Bug fixed: Trimming excerpt of non-latin languages cause broken characters
313
-
314
- = 1.6.8.1 =
315
- * Bug fixed: Excerpt length
316
-
317
- = 1.6.8 =
318
- * Improvement: More elegant UI for Fields settings
319
- * Improvement: Performance improvement by merging filers
320
- * Bug fixed: Slug of term on Non-Latin languages does not show correctly
321
- * Bug fixed: Fix Javascript error "Uncaught query function not defined for Select2 undefined"
322
- * Update: Add filter "terms_include_this" to exclude terms from meta-fields output
323
- * Update: CSS improvements
324
-
325
-
326
- = 1.6.7 =
327
- * Bug fixed: Missing section in some one-page themes when put multiple View shortcodes to sections
328
- * Update: Revert filter "view_type_dir"
329
- * Tested up to: 4.3.1
330
-
331
- = 1.6.6 =
332
- * Bug fixed: Layout of Scrollable List was broken if active theme uses classes of Bootstrap carousel
333
- * Bug fixed: Page is not activated when click on pagination button in Preview
334
- * Update: Little improvement on output of Collapsible List
335
- * Update: Add filter to modify date format
336
- * Update: Rename 'Regular pagination' to 'Numbered pagination'
337
-
338
- = 1.6.5.2 =
339
- * Tested in WordPress 4.3
340
- * Update: Update Content Views icon
341
- * Update: Add new filter to customize current page of pagination
342
- * Update: Print debug message (if the debug mode is enable: PT_CV_DEBUG = true)
343
-
344
- = 1.6.5.1 =
345
- * Bug fixed: Duplicate callback called after pagination finished
346
- * Tested in WordPress 4.2.4
347
-
348
- = 1.6.5 =
349
- * Update: Big update to improve page performance
350
-
351
- = 1.6.4 =
352
- * Bug fixed: Can't translate content
353
-
354
- = 1.6.3.1 =
355
- * Improvement: Prevent negative value for some setting options
356
-
357
- = 1.6.3 =
358
- * Bug fixed: Date of post is incorrect in some cases
359
- * Bug fixed: Dropdown menu is hidden
360
-
361
- = 1.6.2.1 =
362
- * Bug fixed: Redirect to new View page when click "Save" button
363
-
364
- = 1.6.2 =
365
- * Security: Fix XSS Vulnerability problem
366
- * Bug fixed: Plugin does not rendering anything sometimes
367
- * Bug fixed: Title is missing when move Bootstrap to top of all styles
368
- * Improvement: Optimize CSS properties
369
-
370
- = 1.6.1 =
371
- * Update: Update translation function & re-generate .po file
372
- * Bug fixed: Call non-static function
373
-
374
- = 1.6.0 =
375
- * Tested up to: 4.2.2
376
- * Bug fixed: Fix WordPress bug which can't get valid thumbnail if meta field "_thumbnail_id" is string value instead of integer value
377
- * Update: Add class for taxonomies in View output
378
- * Bug fixed: Multiple paginations don't work in same page
379
- * Update: Restructure plugin's core functions
380
-
381
- = 1.5.7.1 =
382
- * Update: Show confirm message before close a View page to prevent missing changes
383
- * Tested up to: 4.2.1
384
-
385
- = 1.5.7 =
386
- * Update: Some update styles for Scrollable, Collapsible layouts
387
-
388
- = 1.5.6 =
389
- * Bug fixed: "undefined" Bootstrap stylesheet link
390
- * Update: Add some custom filters
391
-
392
- = 1.5.5 =
393
- * Bug fixed: Multiple paginations on same page do not work
394
- * Bug fixed: Fix some UI bugs in Add/Edit View page
395
-
396
- = 1.5.4 =
397
- * Bug fixed: "Invalid post type" error in "All Views" page
398
- * Update: Better responsive output of Scrollable List on Mobile
399
- * Update: Auto changes line-breaks in the excerpt into HTML paragraphs (if allows HTML tags in excerpt)
400
- * Tested up to: 4.1.1
401
-
402
- = 1.5.3 =
403
- * Update: Supports qTranslate family plugins (qTranslate, mqTranslate, qTranslate-X)
404
-
405
- = 1.5.2 =
406
- * Bug fixed: Scrollable list does not show navigation and indicator
407
- * Bug fixed: Prevent duplicated content caused by other plugins (translation plugins...)
408
-
409
- = 1.5.1 =
410
- * Bug fixed: Javascript error in WordPress version 3.4
411
- * Improvement: Code & description clearance
412
-
413
- = 1.5.0 =
414
- * New feature: Able to use Normal pagination (without Ajax)
415
- * Update: Add filter allows to customize labels for pagination
416
-
417
- = 1.4.9 =
418
- * Update: Able to check/uncheck to allow HTML tags in excerpt (to preventing broken HTML output)
419
-
420
- = 1.4.8 =
421
- * Bug fixed: Some code appears in excerpt
422
-
423
- = 1.4.6 =
424
- * Improvement: Allow some HTML tags (a, br, strong, em, strike, i, ul, ol, li) in excerpt
425
- * Update: Exclude Views from front-end search results
426
-
427
- = 1.4.5 =
428
- * Test up to 4.1
429
- * Improvement: Add shortcode column to All Views page
430
- * Improvement: Add some css properties to prevent style overwrite problem
431
-
432
- = 1.4.4 =
433
- * Bug fixed: Length of excerpt is wrong if there is filter of other plugins or active theme
434
- * Improvement: GUI improvement in "Fields settings" group
435
-
436
- = 1.4.3 =
437
- * Bug fixed: Scrollable list without image display blank output
438
- * Bug fixed: Position of pagination button is incorrect after pagination finished (in some case)
439
- * Improvement: Code refinement
440
-
441
- = 1.4.2 =
442
- * Bug fixed: Style of Panel (.panel) is weird
443
-
444
- = 1.4.1 =
445
- * Bug fixed: Excerpt show stranger character if content of post contains nothing but a url
446
- * Bug fixed: Height of thumbnail does not match the thumbnail size setting if current WordPress theme set CSS 'min-width' property for images
447
-
448
- = 1.4.0 =
449
- * Bug fixed: Grid only shows 1 column
450
- * Improvement: Update description, styles, refine code
451
-
452
- = 1.3.9 =
453
- * Bug fixed: Menu bar is disappeared
454
-
455
- = 1.3.8 =
456
- * Bug fixed: Admin bar is hidden on pages which do not use View
457
- * Bug fixed: Fix warning message in Dashboard
458
- * Improvement: Don't auto expand width of items (follow 'Items per row' setting completely)
459
-
460
- = 1.3.6 =
461
- * Improvement: A very new customized Bootstrap style
462
- * Bug fixed: script which hooks to wp_footer is not loaded
463
-
464
- = 1.3.5.1 =
465
- * Bug fixed: Bootstrap style ruins theme layout
466
-
467
- = 1.3.5 =
468
- * Bug fixed: Show more posts than Limit value in some cases when pagination is enable
469
- * Improvement: Customized Bootstrap style which only contains necessary properties
470
- * Update: Display inline assets of View right after HTML if possible
471
- * Update: Refine Javascript code for Preview/Front-end
472
-
473
- = 1.3.4.1 =
474
- * Improvement: Clean up 'Read more' button code
475
- * Improvement: Remove unused code of Order setting
476
-
477
- = 1.3.4 =
478
- * Bug fixed: Read more button is invisible (color is white and no background color)
479
- * Update: Able to set 0 as 'Excerpt length'
480
-
481
- = 1.3.3 =
482
- * Bug fixed: Return 'Empty settings' message for pagination request
483
-
484
- = 1.3.2 =
485
- * Update: Official refined Bootstrap version (bring here from Pro plugin)
486
- * Update: Apply "Open in" setting for "Read more" button, too
487
- * Bug fixed: Get wrong excerpt if content of post contains shortcode tags
488
-
489
- = 1.3.1.9 =
490
- * Update: Add some new hook for customizing options
491
-
492
- = 1.3.1.8 =
493
- * Bug fixed: Fix row style bug
494
-
495
- = 1.3.1.6 =
496
- * Improvement: Update page title as "Edit View" in edit View page
497
- * Bug fixed: Fix some warnings in PHP 5.2
498
-
499
- = 1.3.1.5 =
500
- * Test up to 4.0
501
-
502
- = 1.3.1.4 =
503
- * Update: Fix some layout problems by influence of "box-sizing" property of Bootstrap
504
- * Improvement: Code improvement for Grid rendering
505
-
506
- = 1.3.1.3 =
507
- * Update: Restructure Taxonomy filter (remove "Not In" list, add operator[In, Not in, And])
508
-
509
- = 1.3.1.2 =
510
- * Bug fixed: Loosing translation (WPML) in Ajax pagination
511
- * Improvement: Performance optimization (when get settings of View)
512
- * Improvement: Update style if only Title is selected to display (to have a more beautiful list of Posts title)
513
-
514
- = 1.3.1.1 =
515
- * Bug fixed: Thumbnail dimensions are empty
516
- * Improvement: CSS code refinement
517
-
518
- = 1.3.1 =
519
- * Update: Important update about caching mechanism
520
- * Update: Update translation file
521
-
522
- = 1.3.0.2 =
523
- * Refine Javascript code
524
- * Update description in Setting page
525
-
526
- = 1.3.0.1 =
527
- * Update filter priority
528
- * Update plugin description
529
-
530
- = 1.3.0 =
531
- * Bug fixed: Pagination returns Empty settings
532
- * Improvement: UI improvement (Add icon to tabs. Show shortcode in text field for easier selecting. )
533
- * Improvement: Assets loading improvement
534
-
535
- = 1.2.6 =
536
- * Fix bug: Javascript error of missing function
537
- * Update description for some options
538
- * Update styles
539
-
540
- = 1.2.5 =
541
- * Fix bug: does not save Layout format value when select '2 columns' option
542
- * Fix notice about constant value
543
-
544
- = 1.2.4 =
545
- * Update translation feature: load translation file from /wp-content/languages/content-views/
546
- * Fix pagination bug
547
-
548
- = 1.2.3 =
549
- * Fix warning: Cannot send session cache limiter - headers already sent
550
-
551
- = 1.2.2 =
552
- * Performance optimization for pagination request
553
- * Add translation file (.po)
554
-
555
- = 1.2.1 =
556
- * Fix pagination bug if number of pages > 10
557
- * Fix bug of Preview button: click event fires twice
558
- * Enable other user roles (Editor, Author, Contributor) to see Content Views menu and manage Views
559
-
560
- = 1.2.0 =
561
- * Remove shortcodes in excerpt
562
- * Fix Scroll bug when click Show/Hide preview
563
- * Update Pagination setting
564
- * Optimize filters system
565
- * Compatibility update
566
-
567
- = 1.1.6 =
568
- * Fix bug auto selected terms which its value is number in Taxonomy settings box
569
-
570
- = 1.1.5 =
571
- * Fix pagination bug (return 0)
572
-
573
- = 1.1.4 =
574
- * Fix pagination bug when don't load Bootstrap in front-end
575
-
576
- = 1.1.3 =
577
- * Add option to Settings page to enable/disable load Bootstrap in front-end
578
- * Enable to search by View ID in "All Views" page
579
- * Fix bug Scrollable List (when slide count = 1)
580
- * Update settings page
581
- * Add some custom filters
582
-
583
- = 1.1.2 =
584
- * Fix offset bug
585
-
586
- = 1.1.1 =
587
- * Fix pagination bug
588
-
589
- = 1.1 =
590
- * Add "Parent page" option to query child pages of a parent page
591
- * Show shortcode [pt_view id="VIEW_ID"] to able to copy in editing page of a View
592
- * Add link to Thumbnail
593
- * Update Settings page
594
- * Fix import/export bugs
595
- * Classify "Add New View" vs "Edit View"
596
-
597
- = 1.0.2 =
598
- * Add some WP filters
599
- * Add main action for Pro plugin to trigger
600
-
601
- = 1.0.1 =
602
- * Adjust styles
603
-
604
- = 1.0.0 =
605
- * Initial release
606
-
607
 
608
 
609
  == Upgrade Notice ==
4
  Tags: post, posts, page, pages, grid, author, category, categories, tag, responsive, title, thumbnail, content
5
  Requires at least: 3.3
6
  Tested up to: 4.7.3
7
+ Stable tag: 1.9.7
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
116
 
117
  == Changelog ==
118
 
119
+ = 1.9.7 - 2017/03/28 =
120
+ * New: Add setting to change HTML tag for Title
121
+ * Update: Show message in Preview panel when enabled Pagination but there is only 1 page
122
+ * Tweak: More useful information in Content Views >> Settings page
123
+ * Improvement: Refactor some code to improve performance
124
+
125
+ = 1.9.6 - 2017/03/08 =
126
  * Fix: Shortcode of "Visual Composer" plugin is visible in content of posts loaded by Ajax pagination
127
  * Fix: Show wrong order of posts, caused by impact of "Post Types Order" plugin
128
  * Update: Add Romania translation, thanks to "Dan Caragea"
131
  * Update: Add Russian translation, thanks to @snakecom
132
  * Tweak: Add some filters to customize authors list, thumbnail, excerpt
133
 
134
+ = 1.9.5 - 2017/02/08 =
135
  * Fix: In some cases, HTML output of excerpt is broken when allows HTML tags in excerpt
136
  * Improvement: More clear and simple label, text for some settings
137
  * Update: Remove `<!-- [et_pb_line_break_holder] -->` of Divi theme from excerpt
138
  * Update: Hide empty `<p>` tag from excerpt (which can add unnecessary blank space to content area)
139
  * Update: Add default font-style normal for link & button
140
 
141
+ = 1.9.4 - 2017/01/25 =
142
  * New: Show link to add new View from Admin bar
143
 
144
+ = 1.9.3.3 - 2017/01/21 =
145
  * Fix: Correct output of Scrollable list in Tablet devices
146
 
147
+ = 1.9.3.2 - 2017/01/11 =
148
  * Update: simplify label of some settings in Add/Edit View page
149
  * Improvement: simplify code base and improve performance of Grid, Collapsible List
150
  * Improvement: some style adjustments for Scrollable List
151
 
152
+ = 1.9.3.1 - 2016/12/27 =
153
  * Update: Save temporary View data to WordPress transient if SESSION is not available
154
  * Improvement: Show all content of Collapsible list when printing
155
 
156
+ = 1.9.3 - 2016/11/22 =
157
  * Improvement: Remove prefix "by", "in" (before taxonomy, author) to save translation effort
158
  * Improvement: More accurate, time-saving mechanism to remove raw shortcodes text of other plugins in post content
159
  * Fix: "View maybe not exist" error, caused by custom filter hook (which modifies `post_type` in WordPress query) of another plugin
160
 
161
+ = 1.9.2.1 - 2016/11/05 =
162
  * Tweak: Update message when something went wrong, show exact error in Preview panel
163
  * Tweak: Update description for keyword setting
164
  * Tweak: Introduce filter "pt_cv_link_html" to modify HTML output of title, thumbnail, read-more button
165
 
166
+ = 1.9.2 - 2016/10/24 =
167
  * Revert force_balance_tags() for item HTML wrapper, to prevent broken output
168
  * Tweak: Remove unused functions
169
  * Tweak: Introduce filter "pt_cv_pagination_text" to customize pagination text
170
 
171
+ = 1.9.1 - 2016/10/10 =
172
  * Fix: XSS security flaw (a big thank to Tristan Madani)
173
  * Tweak: Improve logic/coding in settings processing, view output functions
174
  * Tweak: Update some descriptions in View dashboard
175
 
176
+ = 1.9.0 - 2016/09/19 =
177
  * Update: Make excerpt length works with languages which don't use spaces between words
178
  * Update: Validate session ID before using to prevent session hijacking
179
 
265
  * Improvement: Better View dashboard (simplified text & description, improved styles & scripts, improved display in Tablet)
266
  * Improvement: Better performance by better solution
267
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
268
 
269
 
270
  == Upgrade Notice ==
admin/content-views-admin.php CHANGED
@@ -77,6 +77,8 @@ class PT_Content_Views_Admin {
77
  // Filter Title of Edit View page
78
  add_filter( 'admin_title', array( $this, 'filter_admin_title' ), 10, 2 );
79
 
 
 
80
  // Custom hooks for both preview & frontend
81
  PT_CV_Hooks::init();
82
 
@@ -262,6 +264,17 @@ class PT_Content_Views_Admin {
262
  wp_dequeue_style( 'ssrc_grid_admin_styles' );
263
  wp_dequeue_script( 'ssrc_grid_admin_scripts' );
264
  wp_dequeue_script( 'chartjs' ); /* optimizePressExperiments/js/chart.min.js */
 
 
 
 
 
 
 
 
 
 
 
265
  do_action( PT_CV_PREFIX_ . 'remove_unwanted_assets' );
266
  }
267
  }
@@ -460,4 +473,18 @@ class PT_Content_Views_Admin {
460
  return $admin_title;
461
  }
462
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
463
  }
77
  // Filter Title of Edit View page
78
  add_filter( 'admin_title', array( $this, 'filter_admin_title' ), 10, 2 );
79
 
80
+ add_filter( PT_CV_PREFIX_ . 'field_title_settings', array( $this, 'filter_field_title_settings' ), 10, 2 );
81
+
82
  // Custom hooks for both preview & frontend
83
  PT_CV_Hooks::init();
84
 
264
  wp_dequeue_style( 'ssrc_grid_admin_styles' );
265
  wp_dequeue_script( 'ssrc_grid_admin_scripts' );
266
  wp_dequeue_script( 'chartjs' ); /* optimizePressExperiments/js/chart.min.js */
267
+
268
+ // WP Email Users plugin caused: click on tabs doesn't work
269
+ wp_dequeue_script( 'wp-email-user-script' );
270
+
271
+ // Remove style of theme Jobcareer, plugin WP Jobhunt
272
+ wp_dequeue_style( 'cs_admin_styles_css' );
273
+ wp_dequeue_style( 'jobcareer_admin_styles_css' );
274
+
275
+ // Remove style of theme Tesseract
276
+ wp_dequeue_style( 'tesseract-custom' );
277
+
278
  do_action( PT_CV_PREFIX_ . 'remove_unwanted_assets' );
279
  }
280
  }
473
  return $admin_title;
474
  }
475
 
476
+ /**
477
+ * Add title heading setting to existed Title group in CVPro
478
+ *
479
+ * @since 1.9.7
480
+ * @param array $result
481
+ * @param type $prefix
482
+ * @return type
483
+ */
484
+ public function filter_field_title_settings( $result, $prefix ) {
485
+ array_unshift( $result, PT_CV_Settings::title_heading_tag( $prefix ) );
486
+
487
+ return $result;
488
+ }
489
+
490
  }
admin/includes/templates/settings-section-one.php CHANGED
@@ -1,2 +1 @@
1
- <p><br>Thank you for using Content Views.</p>
2
- <p>You are using version <code><?php echo esc_html( PT_CV_Functions::plugin_info( PT_CV_FILE, 'Version' ) ); ?></code></p>
1
+ <p><br>Thank you for using Content Views (version <code><?php echo esc_html( PT_CV_Functions::plugin_info( PT_CV_FILE, 'Version' ) ); ?></code>).</p>
 
admin/includes/templates/settings-section-two.php CHANGED
@@ -1,32 +1,36 @@
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
 
32
  .cvform {display: none}
@@ -40,37 +44,38 @@ $cp = '?utm_source=client&utm_medium=settings_page&utm_campaign=gopro';
40
 
41
  <hr>
42
 
43
- <h2 class="cvgopro">You need advanced features?</h2>
44
 
45
- <div class="col-md-12" id="pt-cv-features">
46
- <div class="col-md-6">
47
- <h3>Most beautiful & attractive layouts</h3>
48
  <div>
49
  <ul>
50
- <li>Pinterest</li>
51
- <li>Masonry</li>
52
- <li>Facebook Timeline</li>
53
  </ul>
54
  </div>
55
  </div>
56
-
57
- <div class="col-md-6">
58
- <h3>Powerful settings for all your needs</h3>
59
  <div>
60
- <ul>
61
- <li>support custom post types (WooCommerce, Easy Digital Downloads...)</li>
62
- <li>support custom fields (Advanced Custom Fields...)</li>
63
- <li>support custom taxonomies</li>
64
- </ul>
65
  </div>
66
  </div>
 
 
 
 
 
 
 
 
67
  </div>
68
 
69
  <div style="clear:both"></div>
70
- <p>
71
- <a href="https://www.contentviewspro.com/features/<?php echo $cp; ?>" target="_blank" class="btn btn-success">All PRO Features</a>
72
- </p>
73
 
74
- <hr>
75
 
76
- <p><a href="https://www.contentviewspro.com/contact/<?php echo $cp; ?>" target="_blank">Contact us!</a></p>
1
  <style>
2
  #pt-cv-features {
3
+ padding: 0;
4
+ overflow: hidden;
 
5
  }
6
 
7
  #pt-cv-features * {
8
+ font-size: 14px;
9
  }
10
 
11
  .cvgopro {
12
  color: #fe1243;
13
+ font-size: 2em;
14
  }
15
 
16
  h3 {
17
  font-size: 1.2em!important;
18
  margin: 0 0 10px!important;
19
+ color: #111!important;
20
  }
21
 
22
+ #pt-cv-features > div {
23
+ margin-bottom: 20px;
24
  }
25
 
26
  #pt-cv-features ul {
27
  list-style: circle;
28
  margin-left: 20px;
29
+ margin-bottom: 0;
30
+ }
31
+
32
+ #pt-cv-features a{
33
+ color: #fe1243;
34
  }
35
 
36
  .cvform {display: none}
44
 
45
  <hr>
46
 
47
+ <h2 class="cvgopro">More benefits and value for your site:</h2>
48
 
49
+ <div class="row" id="pt-cv-features">
50
+ <div class="col-md-12">
51
+ <h3>Filter Any Content</h3>
52
  <div>
53
  <ul>
54
+ <li>support custom post type: WooCommerce, Easy Digital Downloads, Events... (<a href="http://sample.contentviewspro.com/supports/woocommerce-3/<?php echo $cp; ?>" target="_blank">view sample</a>)</li>
55
+ <li>support custom field: Advanced Custom Fields, Pods, Types... (<a href="http://sample.contentviewspro.com/supports/advanced-custom-fields/<?php echo $cp; ?>" target="_blank">view sample</a>)</li>
56
+ <li>support custom taxonomy</li>
57
  </ul>
58
  </div>
59
  </div>
60
+ <div class="col-md-12">
61
+ <h3>More Amazing Layouts</h3>
 
62
  <div>
63
+ Pinterest, Masonry, Timeline, One & others, Glossary, Overlay... (<a href="http://sample.contentviewspro.com/view-type/pinterest/<?php echo $cp; ?>" target="_blank">view sample</a>)
 
 
 
 
64
  </div>
65
  </div>
66
+ <div class="col-md-12">
67
+ <h3>Replace Layout</h3>
68
+ <div>Use beautiful grid for Blog, Category, Tag, Search results... page in seconds, without coding (<a href="http://docs.contentviewspro.com/completely-replace-wordpress-layout-by-content-views-pro-layout/<?php echo $cp; ?>" target="_blank">view demo</a>)</div>
69
+ </div>
70
+ <div class="col-md-12">
71
+ <h3>Make Money Online</h3>
72
+ <div>Make money from your website, by displaying your Google Adsense, affiliate banners... between posts in grid, list easily (<a href="https://www.contentviewspro.com/<?php echo $cp; ?>#show-ads" target="_blank">read more</a>)</div>
73
+ </div>
74
  </div>
75
 
76
  <div style="clear:both"></div>
77
+ <a href="https://www.contentviewspro.com/<?php echo $cp; ?>" target="_blank" class="btn btn-success">Learn more about Pro version</a>
 
 
78
 
79
+ <p><br><a href="https://www.contentviewspro.com/contact/<?php echo $cp; ?>" target="_blank">Report bugs, ask questions? Contact Us Now.</a></p>
80
 
81
+ <hr>
admin/views/view.php CHANGED
@@ -224,7 +224,7 @@ PT_CV_Functions::view_submit();
224
  'name' => 'limit',
225
  'std' => '10',
226
  'min' => '1',
227
- 'desc' => __( 'The number of posts to show. Leave empty to show all found posts', 'content-views-query-and-display-post-page' ),
228
  ),
229
  ),
230
  ),
224
  'name' => 'limit',
225
  'std' => '10',
226
  'min' => '1',
227
+ 'desc' => __( 'Total number of posts to show. Leave empty to show all found posts', 'content-views-query-and-display-post-page' ),
228
  ),
229
  ),
230
  ),
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.9.6
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( 'ABSPATH' ) ) {
26
  }
27
 
28
  // Define Constant
29
- define( 'PT_CV_VERSION', '1.9.6' );
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.9.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.9.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/assets.php CHANGED
@@ -1,5 +1,4 @@
1
  <?php
2
-
3
  /**
4
  * Asset management
5
  *
@@ -139,7 +138,7 @@ if ( !class_exists( 'PT_CV_Asset' ) ) {
139
  $last_param = isset( $data[ 'media' ] ) ? $data[ 'media' ] : 'all';
140
  } else {
141
  // Auto enqueue script in footer
142
- $last_param = isset( $data[ 'in_footer' ] ) ? $data[ 'in_footer' ] : self::load_script_in_footer();
143
  }
144
  $function = "wp_{$action}_{$type}";
145
  if ( function_exists( $function ) ) {
@@ -188,15 +187,6 @@ if ( !class_exists( 'PT_CV_Asset' ) ) {
188
  }
189
  }
190
 
191
- /**
192
- * Check if load script at footer (by default) or header (when there was JS error/issue caused by another script)
193
- * @since 1.7.9
194
- * @return type
195
- */
196
- private static function load_script_in_footer() {
197
- return is_admin() ? true : !get_option( PT_CV_SOLVE_SCRIPT_ERROR );
198
- }
199
-
200
  }
201
 
202
  }
1
  <?php
 
2
  /**
3
  * Asset management
4
  *
138
  $last_param = isset( $data[ 'media' ] ) ? $data[ 'media' ] : 'all';
139
  } else {
140
  // Auto enqueue script in footer
141
+ $last_param = isset( $data[ 'in_footer' ] ) ? $data[ 'in_footer' ] : true;
142
  }
143
  $function = "wp_{$action}_{$type}";
144
  if ( function_exists( $function ) ) {
187
  }
188
  }
189
 
 
 
 
 
 
 
 
 
 
190
  }
191
 
192
  }
includes/compatibility.php CHANGED
@@ -18,17 +18,17 @@ if ( !function_exists( 'cv_filter_js_defer' ) ) {
18
 
19
  }
20
 
21
- # Page Builder by SiteOrigin: incorrect excerpt
22
- add_filter( 'pt_cv_field_content_excerpt', 'cv_field_content_excerpt_siteorigin', 9, 3 );
23
- if ( !function_exists( 'cv_field_content_excerpt_siteorigin' ) ) {
24
- function cv_field_content_excerpt_siteorigin( $args, $fargs, $this_post ) {
25
- // Prevent recursive call
26
- if ( empty( $fargs ) ) {
27
- return $args;
28
- }
29
 
 
30
  if ( function_exists( 'siteorigin_panels_filter_content' ) ) {
31
- $args = siteorigin_panels_filter_content( $args );
 
 
 
 
32
  }
33
 
34
  return $args;
@@ -82,7 +82,7 @@ if ( !function_exists( 'cv_divitheme_before_generate_excerpt' ) ) {
82
  add_action( 'pt_cv_before_content', 'cv_fix_shortcode_visible_in_pagination', 9 );
83
  if ( !function_exists( 'cv_fix_shortcode_visible_in_pagination' ) ) {
84
  function cv_fix_shortcode_visible_in_pagination() {
85
- if ( defined( 'PT_CV_DOING_PAGINATION' ) && method_exists( 'WPBMap', 'addAllMappedShortcodes' ) ) {
86
  WPBMap::addAllMappedShortcodes();
87
  }
88
  }
18
 
19
  }
20
 
21
+ add_filter( 'pt_cv_field_content_excerpt', 'cv_filter_fce', 9, 3 );
22
+ if ( !function_exists( 'cv_filter_fce' ) ) {
23
+ function cv_filter_fce( $args, $fargs, $this_post ) {
 
 
 
 
 
24
 
25
+ # Page Builder by SiteOrigin: Fix incorrect excerpt
26
  if ( function_exists( 'siteorigin_panels_filter_content' ) ) {
27
+ if ( !isset( $this_post->cv_so_content ) ) {
28
+ $this_post->cv_so_content = siteorigin_panels_filter_content( $args );
29
+ }
30
+
31
+ $args = $this_post->cv_so_content;
32
  }
33
 
34
  return $args;
82
  add_action( 'pt_cv_before_content', 'cv_fix_shortcode_visible_in_pagination', 9 );
83
  if ( !function_exists( 'cv_fix_shortcode_visible_in_pagination' ) ) {
84
  function cv_fix_shortcode_visible_in_pagination() {
85
+ if ( (defined( 'PT_CV_DOING_PAGINATION' ) || defined( 'PT_CV_DOING_PREVIEW' )) && class_exists( 'WPBMap' ) && method_exists( 'WPBMap', 'addAllMappedShortcodes' ) ) {
86
  WPBMap::addAllMappedShortcodes();
87
  }
88
  }
includes/defines.php CHANGED
@@ -1,5 +1,4 @@
1
  <?php
2
-
3
  /**
4
  * Defines common constant
5
  *
@@ -38,8 +37,6 @@ define( 'PT_CV_VIEW_TYPE_OUTPUT', PT_CV_PATH . 'public/templates/' );
38
  // Enable/Disable debug mode
39
  define( 'PT_CV_DEBUG', false );
40
 
41
- // Script error
42
- define( 'PT_CV_SOLVE_SCRIPT_ERROR', 'cv_solve_script_error_181' );
43
  /**
44
  * Check if CV layout was damaged by theme/another plugin's style
45
  * @since 1.8.7
1
  <?php
 
2
  /**
3
  * Defines common constant
4
  *
37
  // Enable/Disable debug mode
38
  define( 'PT_CV_DEBUG', false );
39
 
 
 
40
  /**
41
  * Check if CV layout was damaged by theme/another plugin's style
42
  * @since 1.8.7
includes/functions.php CHANGED
@@ -250,12 +250,12 @@ if ( !class_exists( 'PT_CV_Functions' ) ) {
250
  return strip_shortcodes( $text );
251
  }
252
 
253
- global $shortcode_tags, $cv_sc_tagnames, $cv_sc_complete;
254
- if ( $cv_sc_complete ) {
255
  $tagnames = array_keys( $shortcode_tags );
256
  $tagregexp = join( '|', array_map( 'preg_quote', $tagnames ) );
257
  } else {
258
- $tagregexp = $cv_sc_tagnames;
259
  }
260
 
261
  if ( $strip_all ) {
@@ -434,7 +434,6 @@ if ( !class_exists( 'PT_CV_Functions' ) ) {
434
  * @param bool $backend Get settings from Backend form
435
  */
436
  static function settings_values_by_prefix( $prefix, $backend = FALSE ) {
437
-
438
  $view_settings = PT_CV_Functions::get_global_variable( 'view_settings' );
439
 
440
  if ( !$view_settings && $backend ) {
@@ -442,12 +441,12 @@ if ( !class_exists( 'PT_CV_Functions' ) ) {
442
  $view_settings = $pt_cv_admin_settings;
443
  }
444
 
445
- $result = array();
446
-
447
  foreach ( (array) $view_settings as $name => $value ) {
448
- // If name of setting match with prefix string, got it name
449
- if ( substr( $name, 0, strlen( $prefix ) ) === $prefix ) {
450
- $result[ substr( $name, strlen( $prefix ) ) ] = $value;
451
  }
452
  }
453
 
@@ -627,6 +626,8 @@ if ( !class_exists( 'PT_CV_Functions' ) ) {
627
  return sprintf( __( 'Error: View %s may not exist', 'content-views-query-and-display-post-page' ), "<strong>$view_id</strong>" );
628
  }
629
 
 
 
630
  global $pt_cv_glb, $pt_cv_id;
631
 
632
  if ( !isset( $pt_cv_glb ) ) {
@@ -668,7 +669,7 @@ if ( !class_exists( 'PT_CV_Functions' ) ) {
668
  $cv_live_id = $view_id;
669
 
670
  if ( defined( 'PT_CV_DOING_PAGINATION' ) ) {
671
- $sdata = CV_Session::get( $vdata_key, array( 'args' => '', 'dargs' => '' ) );
672
  $args = $sdata[ 'args' ];
673
  $dargs = $sdata[ 'dargs' ];
674
  $sc_params = $sdata[ 'shortcode_params' ];
@@ -734,14 +735,22 @@ if ( !class_exists( 'PT_CV_Functions' ) ) {
734
  // Total number of pages
735
  $items_per_page = (int) PT_CV_Functions::setting_value( PT_CV_PREFIX . 'pagination-items-per-page', $view_settings );
736
  $max_num_pages = ceil( $total_items / $items_per_page );
 
737
 
738
  // Output pagination
739
- if ( (int) $max_num_pages > 0 ) {
740
  $html .= "\n" . PT_CV_Html::pagination_output( $max_num_pages, $current_page, $pt_cv_id );
 
 
 
 
 
741
  }
742
  }
743
  }
744
 
 
 
745
  return $html;
746
  }
747
 
250
  return strip_shortcodes( $text );
251
  }
252
 
253
+ global $shortcode_tags, $cv_shortcode_tags_backup;
254
+ if ( !isset( $cv_shortcode_tags_backup ) ) {
255
  $tagnames = array_keys( $shortcode_tags );
256
  $tagregexp = join( '|', array_map( 'preg_quote', $tagnames ) );
257
  } else {
258
+ $tagregexp = $cv_shortcode_tags_backup;
259
  }
260
 
261
  if ( $strip_all ) {
434
  * @param bool $backend Get settings from Backend form
435
  */
436
  static function settings_values_by_prefix( $prefix, $backend = FALSE ) {
 
437
  $view_settings = PT_CV_Functions::get_global_variable( 'view_settings' );
438
 
439
  if ( !$view_settings && $backend ) {
441
  $view_settings = $pt_cv_admin_settings;
442
  }
443
 
444
+ $result = array();
445
+ $strlen = strlen( $prefix );
446
  foreach ( (array) $view_settings as $name => $value ) {
447
+ // If name of setting match with prefix string, got it
448
+ if ( strpos( $name, $prefix ) === 0 ) {
449
+ $result[ substr( $name, $strlen ) ] = $value;
450
  }
451
  }
452
 
626
  return sprintf( __( 'Error: View %s may not exist', 'content-views-query-and-display-post-page' ), "<strong>$view_id</strong>" );
627
  }
628
 
629
+ do_action( PT_CV_PREFIX_ . 'view_process_start' );
630
+
631
  global $pt_cv_glb, $pt_cv_id;
632
 
633
  if ( !isset( $pt_cv_glb ) ) {
669
  $cv_live_id = $view_id;
670
 
671
  if ( defined( 'PT_CV_DOING_PAGINATION' ) ) {
672
+ $sdata = CV_Session::get( $vdata_key, array( 'args' => '', 'dargs' => '', 'shortcode_params' => '' ) );
673
  $args = $sdata[ 'args' ];
674
  $dargs = $sdata[ 'dargs' ];
675
  $sc_params = $sdata[ 'shortcode_params' ];
735
  // Total number of pages
736
  $items_per_page = (int) PT_CV_Functions::setting_value( PT_CV_PREFIX . 'pagination-items-per-page', $view_settings );
737
  $max_num_pages = ceil( $total_items / $items_per_page );
738
+ $max_num_pages = (int) $max_num_pages;
739
 
740
  // Output pagination
741
+ if ( $max_num_pages > 1 ) {
742
  $html .= "\n" . PT_CV_Html::pagination_output( $max_num_pages, $current_page, $pt_cv_id );
743
+ } else {
744
+ if ( $max_num_pages == 1 && defined( 'PT_CV_DOING_PREVIEW' ) ) {
745
+ $reason = sprintf( '%s %s', ($total_items == $found_posts) ? __( 'the number of results', 'content-views-query-and-display-post-page' ) : __( 'the <b>Limit</b> value', 'content-views-query-and-display-post-page' ), __( 'is less than or equal to (&le;) the <b>Items per page</b> value', 'content-views-query-and-display-post-page' ) );
746
+ $html .= "\n" . sprintf( '<p class="alert alert-warning" style="padding: 10px 5px">%s %s.</p>', __( '[Preview only] Pagination is disabled when there is only 1 page, because of', 'content-views-query-and-display-post-page' ), $reason );
747
+ }
748
  }
749
  }
750
  }
751
 
752
+ do_action( PT_CV_PREFIX_ . 'view_process_end' );
753
+
754
  return $html;
755
  }
756
 
includes/hooks.php CHANGED
@@ -39,9 +39,6 @@ if ( !class_exists( 'PT_CV_Hooks' ) ) {
39
  add_action( PT_CV_PREFIX_ . 'before_process_item', array( __CLASS__, 'action_before_process_item' ) );
40
  add_action( PT_CV_PREFIX_ . 'after_process_item', array( __CLASS__, 'action_after_process_item' ) );
41
  add_action( PT_CV_PREFIX_ . 'before_content', array( __CLASS__, 'action_before_content' ) );
42
-
43
- // For only Frontend
44
- add_action( 'init', array( __CLASS__, 'action_init' ), 1 );
45
  }
46
 
47
  /**
@@ -247,52 +244,27 @@ if ( !class_exists( 'PT_CV_Hooks' ) ) {
247
  PT_CV_Functions::disable_view_shortcode( 'recovery' );
248
  }
249
 
 
 
 
 
 
 
250
  public static function action_before_content() {
251
- global $shortcode_tags, $cv_refresh_sct, $cv_get_sct, $cv_sc_tagnames, $cv_sc_complete;
252
- $trans_key = 'cv_shortcode_tags_193';
253
- # Make it theme independently
254
- $cv_sc_complete = get_option( 'cv_save_sc_complete' );
255
-
256
- if ( !defined( 'PT_CV_DOING_PAGINATION' ) && !defined( 'PT_CV_DOING_PREVIEW' ) ) {
257
- if ( !$cv_refresh_sct ) {
258
- if ( $cv_sc_complete ) {
259
- set_transient( $trans_key, $shortcode_tags, HOUR_IN_SECONDS );
260
- } else {
261
- $tagnames = array_keys( $shortcode_tags );
262
- $cv_sc_tagnames = join( '|', array_map( 'preg_quote', $tagnames ) );
263
- set_transient( $trans_key, $cv_sc_tagnames, HOUR_IN_SECONDS );
264
- }
265
-
266
- $cv_refresh_sct = 1;
267
- }
268
- } else {
269
- if ( !$cv_get_sct && $stored_sct = get_transient( $trans_key ) ) {
270
- if ( $cv_sc_complete ) {
271
- $shortcode_tags = $stored_sct;
272
- } else {
273
- $cv_sc_tagnames = $stored_sct;
274
- }
275
-
276
- $cv_get_sct = 1;
277
  }
278
  }
279
  }
280
 
281
- public static function action_init() {
282
- $user_can = current_user_can( 'administrator' ) || current_user_can( PT_CV_Functions::get_option_value( 'access_role' ) );
283
- if ( !($user_can) ) {
284
- return;
285
- }
286
-
287
- if ( !empty( $_GET[ PT_CV_SOLVE_SCRIPT_ERROR ] ) ) {
288
- update_option( PT_CV_SOLVE_SCRIPT_ERROR, true, false );
289
- }
290
-
291
- if ( !empty( $_GET[ 'cv_undo_solve_error' ] ) ) {
292
- delete_option( PT_CV_SOLVE_SCRIPT_ERROR );
293
- }
294
- }
295
-
296
  }
297
 
298
  }
39
  add_action( PT_CV_PREFIX_ . 'before_process_item', array( __CLASS__, 'action_before_process_item' ) );
40
  add_action( PT_CV_PREFIX_ . 'after_process_item', array( __CLASS__, 'action_after_process_item' ) );
41
  add_action( PT_CV_PREFIX_ . 'before_content', array( __CLASS__, 'action_before_content' ) );
 
 
 
42
  }
43
 
44
  /**
244
  PT_CV_Functions::disable_view_shortcode( 'recovery' );
245
  }
246
 
247
+ /**
248
+ * Issue: shortcode is visible in pagination, preview
249
+ * Solution: Backup shortcode tag in live page, to use for preview, pagination request
250
+ *
251
+ * @since 1.9.3
252
+ */
253
  public static function action_before_content() {
254
+ global $shortcode_tags, $cv_shortcode_tags_backup;
255
+
256
+ if ( !$cv_shortcode_tags_backup ) {
257
+ $trans_key = 'cv_shortcode_tags_193';
258
+ if ( !defined( 'PT_CV_DOING_PAGINATION' ) && !defined( 'PT_CV_DOING_PREVIEW' ) ) {
259
+ $tagnames = array_keys( $shortcode_tags );
260
+ $cv_shortcode_tags_backup = join( '|', array_map( 'preg_quote', $tagnames ) );
261
+ set_transient( $trans_key, $cv_shortcode_tags_backup, DAY_IN_SECONDS );
262
+ } else {
263
+ $cv_shortcode_tags_backup = get_transient( $trans_key );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
264
  }
265
  }
266
  }
267
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
268
  }
269
 
270
  }
includes/html-viewtype.php CHANGED
@@ -189,13 +189,6 @@ if ( !class_exists( 'PT_CV_Html_ViewType' ) ) {
189
  // Get responsive class
190
  $res_class = apply_filters( PT_CV_PREFIX_ . 'item_col_class', array(), 6 );
191
 
192
- /**
193
- * Able to show one item per row, per column
194
- */
195
- if ( apply_filters( PT_CV_PREFIX_ . 'scrollable_one', false ) ) {
196
- $columns = $rows = 1;
197
- }
198
-
199
  // Split items to slide
200
  $slides_item = array_chunk( $content_items, $columns * $rows );
201
  $pids = array_keys( $content_items );
189
  // Get responsive class
190
  $res_class = apply_filters( PT_CV_PREFIX_ . 'item_col_class', array(), 6 );
191
 
 
 
 
 
 
 
 
192
  // Split items to slide
193
  $slides_item = array_chunk( $content_items, $columns * $rows );
194
  $pids = array_keys( $content_items );
includes/html.php CHANGED
@@ -389,7 +389,7 @@ if ( !class_exists( 'PT_CV_Html' ) ) {
389
  */
390
  static function _field_title( $post, $fargs ) {
391
  $title_class = apply_filters( PT_CV_PREFIX_ . 'field_title_class', PT_CV_PREFIX . 'title' );
392
- $tag = apply_filters( PT_CV_PREFIX_ . 'field_title_tag', 'h4' );
393
  $title = get_the_title( $post );
394
  if ( empty( $title ) ) {
395
  $title = __( '(no title)', 'content-views-query-and-display-post-page' );
@@ -458,12 +458,6 @@ if ( !class_exists( 'PT_CV_Html' ) ) {
458
  the_content();
459
  $content = ob_get_clean();
460
 
461
- # Strip any raw shortcode if it is not executed
462
- global $cv_sc_complete;
463
- if ( !$cv_sc_complete ) {
464
- $content = PT_CV_Functions::cv_strip_shortcodes( $content, false );
465
- }
466
-
467
  break;
468
  }
469
 
@@ -658,9 +652,10 @@ if ( !class_exists( 'PT_CV_Html' ) ) {
658
  * @return type
659
  */
660
  static function pagination_output( $max_num_pages, $current_page, $sid ) {
661
- if ( !$max_num_pages || (int) $max_num_pages === 1 ) {
662
  return '';
663
  }
 
664
  global $cv_unique_id;
665
  $dargs = PT_CV_Functions::get_global_variable( 'dargs' );
666
  $pagination_btn = '';
389
  */
390
  static function _field_title( $post, $fargs ) {
391
  $title_class = apply_filters( PT_CV_PREFIX_ . 'field_title_class', PT_CV_PREFIX . 'title' );
392
+ $tag = !empty( $fargs[ 'title' ][ 'tag' ] ) ? $fargs[ 'title' ][ 'tag' ] : 'h4';
393
  $title = get_the_title( $post );
394
  if ( empty( $title ) ) {
395
  $title = __( '(no title)', 'content-views-query-and-display-post-page' );
458
  the_content();
459
  $content = ob_get_clean();
460
 
 
 
 
 
 
 
461
  break;
462
  }
463
 
652
  * @return type
653
  */
654
  static function pagination_output( $max_num_pages, $current_page, $sid ) {
655
+ if ( !$max_num_pages ) {
656
  return '';
657
  }
658
+
659
  global $cv_unique_id;
660
  $dargs = PT_CV_Functions::get_global_variable( 'dargs' );
661
  $pagination_btn = '';
includes/settings.php CHANGED
@@ -284,7 +284,28 @@ if ( !class_exists( 'PT_CV_Settings' ) ) {
284
  // Upgrade to Pro: Drag & Drop
285
  !get_option( 'pt_cv_version_pro' ) ? PT_CV_Settings::get_cvpro( __( 'Show Custom Fields, show Title above Thumbnail...', 'content-views-query-and-display-post-page' ), 12, 'margin-top: -15px; margin-bottom: 5px; width: 100%;' ) : '',
286
  // Title settings
287
- apply_filters( PT_CV_PREFIX_ . 'settings_title_display', array(), $prefix, $prefix2 ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
288
  // Thumbnail settings
289
  array(
290
  'label' => array(
@@ -878,6 +899,36 @@ if ( !class_exists( 'PT_CV_Settings' ) ) {
878
  );
879
  }
880
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
881
  }
882
 
883
  }
284
  // Upgrade to Pro: Drag & Drop
285
  !get_option( 'pt_cv_version_pro' ) ? PT_CV_Settings::get_cvpro( __( 'Show Custom Fields, show Title above Thumbnail...', 'content-views-query-and-display-post-page' ), 12, 'margin-top: -15px; margin-bottom: 5px; width: 100%;' ) : '',
286
  // Title settings
287
+ get_option( 'pt_cv_version_pro' ) ? apply_filters( PT_CV_PREFIX_ . 'settings_title_display', array(), $prefix, $prefix2 ) :
288
+ array(
289
+ 'label' => array(
290
+ 'text' => __( 'Title' ),
291
+ ),
292
+ 'extra_setting' => array(
293
+ 'params' => array(
294
+ 'group-class' => PT_CV_PREFIX . 'field-setting',
295
+ 'wrap-class' => PT_CV_Html::html_group_class() . ' ' . PT_CV_PREFIX . 'title-setting',
296
+ ),
297
+ ),
298
+ 'params' => array(
299
+ array(
300
+ 'type' => 'group',
301
+ 'params' => array(
302
+ PT_CV_Settings::title_heading_tag( $prefix )
303
+ ),
304
+ ),
305
+ ),
306
+ 'dependence' => array( $prefix2 . 'title', 'yes' ),
307
+ )
308
+ ,
309
  // Thumbnail settings
310
  array(
311
  'label' => array(
899
  );
900
  }
901
 
902
+ /**
903
+ * Adjust title heading tag
904
+ *
905
+ * @since 1.9.7
906
+ * @param string $prefix
907
+ * @return array
908
+ */
909
+ static function title_heading_tag( $prefix ) {
910
+ $tags = apply_filters( PT_CV_PREFIX_ . 'filter_title_tag', array( 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'div' ) );
911
+
912
+ return array(
913
+ 'label' => array(
914
+ 'text' => __( 'HTML tag', 'content-views-query-and-display-post-page' ),
915
+ ),
916
+ 'extra_setting' => array(
917
+ 'params' => array(
918
+ 'wrap-class' => PT_CV_PREFIX . 'w200',
919
+ ),
920
+ ),
921
+ 'params' => array(
922
+ array(
923
+ 'type' => 'select',
924
+ 'options' => array_combine( $tags, $tags ),
925
+ 'name' => $prefix . 'title-tag',
926
+ 'std' => apply_filters( PT_CV_PREFIX_ . 'field_title_tag', 'h4' ),
927
+ ),
928
+ ),
929
+ );
930
+ }
931
+
932
  }
933
 
934
  }
includes/values.php CHANGED
@@ -248,22 +248,29 @@ if ( !class_exists( 'PT_CV_Values' ) ) {
248
  * @return array
249
  */
250
  static function user_list() {
 
251
 
252
- $result = array();
253
- $show = 'display_name';
 
 
 
254
 
255
- $args = array(
256
- 'fields' => array( 'ID', $show ),
257
- 'orderby' => 'display_name',
258
- 'order' => 'ASC',
259
- );
260
 
261
- $users = get_users( apply_filters( PT_CV_PREFIX_ . 'user_list', $args ) );
262
- foreach ( (array) $users as $user ) {
263
- $user->ID = (int) $user->ID;
264
- $display = !empty( $user->$show ) ? $user->$show : '(' . $user->user_login . ')';
 
 
 
265
 
266
- $result[ $user->ID ] = esc_html( $display );
267
  }
268
 
269
  return $result;
248
  * @return array
249
  */
250
  static function user_list() {
251
+ global $cv_admin_users_list;
252
 
253
+ if ( !empty( $cv_admin_users_list ) ) {
254
+ $result = $cv_admin_users_list;
255
+ } else {
256
+ $result = array();
257
+ $show = 'display_name';
258
 
259
+ $args = array(
260
+ 'fields' => array( 'ID', $show ),
261
+ 'orderby' => 'display_name',
262
+ 'order' => 'ASC',
263
+ );
264
 
265
+ $users = get_users( apply_filters( PT_CV_PREFIX_ . 'user_list', $args ) );
266
+ foreach ( (array) $users as $user ) {
267
+ $user->ID = (int) $user->ID;
268
+ $display = !empty( $user->$show ) ? $user->$show : '(' . $user->user_login . ')';
269
+
270
+ $result[ $user->ID ] = esc_html( $display );
271
+ }
272
 
273
+ $cv_admin_users_list = $result;
274
  }
275
 
276
  return $result;