== Changelog ==

= 3.3.1 - 2026/07/03 =
* Security - Hardening release: added capability checks to several admin AJAX handlers, removed an unused legacy compatibility routine, and tightened data sanitization/escaping in a few places.
* Tweak - Minor code-quality cleanup.

= 3.3.0 - 2026/04/09 =
* This maintenance release has bug fixes and compatibility with WordPress 7.0
* Tweak - Tested for compatibility with WordPress 7.0
* Tweak - Update Portfolio Blocks for compatibility with WordPress 7.0 Block Editor
* Tweak - Improved plugin initialization sequence for better reliability
* Tweak - Update meta box for compatibility with WordPress 7.0 Block Editor
* Fix - Resolved PHP warnings on image size registration when settings are not yet saved
* Fix - Resolved admin interface loading issue on taxonomy edit pages
* Framework - Updated LESS compiler for compatibility with PHP 8.2 onwards

= 3.2.4 - 2025/04/24 =
* This maintenance release has a bug fix plus tested for compatibility with WordPress 6.8
* Fix - validate first argument is array for array_merge func
* Tweak - Test for compatibility with WordPress 6.8

= 3.2.3 - 2024/11/09 =
* This maintenance release contains a bug fix plus compatibility with WordPress major release version 6.7
* Tweak - Tested for compatibility with WordPress major version 6.7
* Fix - validate $numberItems is isset

= 3.2.2 - 2024/07/15 =
* This release has various tweaks for compatibility with WordPress 6.6
* Tweak - Tested for compatibility with WordPress 6.6
* Tweak - Validate and correct block.json based schema from WordPress Block

= 3.2.1 - 2024/01/18 =
* This release has a breaking bug fix that came out of the 3.2.0 major release.
* Fix - Call to correct a3_portfolio_title_filter_content_template instead of a3_portfolio_filter_content_template for filter the title.

= 3.2.0 - 2024/01/12 =
* This feature release adds Stickers for item cards and expander, a new Tags Meta Block and the Gutenberg editor to item posts.
* Feature - new Portfolio Tags Meta block for use on Content or Single Portfolio Block Page
* Feature - new Stickers for Item Card and Item Expander.
* Feature - Portfolio Tags can be sued as to Create the Stickers. Add Sticker Colour on the tag edit page.
* Feature - Add support for Gutenberg editor for content of Portfolio Edit page
* Fix - make block Previews show
* Fix - make Category meta and Tag meta show correct format on Portfolio Content.

= 3.1.2 - 2023/11/23 =
* This maintenance release has plugin framework updates for compatibility with PHP 8.1 onwards, plus compatibility with WordPress 6.4.1
* Tweak - Test for compatibility with WordPress 6.4.1
* Framework - Set parameter number of preg_match function from null to 0 for compatibility with PHP 8.1 onwards
* Framework - Validate empty before call trim for option value

= 3.1.1 - 2023/04/08 =
* This release has a vulnerability security patch, please upgrade now.
* Security - Add escaping the URL of Launch Button before output.
* Tweak - Test for compatibility with WordPress 6.2.
* Props - Security researcher Yuki Haruma reported via Patchstack.

= 3.1.0 - 2023/01/03 =
* This feature release removes the fontawesome lib and replaces icons with SVGs plus adds Default Topography option to font controls.
* Feature - Convert icon from font awesome to SVG
* Feature - Update styling for new SVG icons
* Plugin Framework - Update typography control from plugin framework to add support for Default value
* Plugin Framework - Default value will get fonts set in the theme.
* Plugin Framework - Change generate typography style for change on typography control
* Plugin Framework - Remove fontawesome lib

= 3.0.1 - 2022/09/19 =
* This maintenance release fixes a missing content filter on portfolio item pages
* Fix - apply filters the_content into content-single-portfolio so all shortcode, embed media that can show on portfolio single detail page

= 3.0.0 - 2022/05/24 =
* This feature release has compatibility tweaks for WordPress major version 6.0 and includes various code tweaks for FSE compatibility and tweaks for hardening security.
* Feature - Add BlockTemplatesController for control block templates of Portfolio singular, category and tag
* Feature - Define single-a3-portfolio.html block template with custom layout of portfolio item on FSE
* Feature - Define taxonomy-portfolio_cat.html block template with custom layout from plugin on FSE
* Feature - Define taxonomy-portfolio_tag.html block template with custom layout from plugin on FSE
* Tweak - Test for compatibility with WordPress 6.0
* Tweak - Test for compatibility with WordPress 6.0
* Tweak - Add filter on generate_border_style_css
* Tweak - Add filter on generate_border_corner_css
* Framework – Upgrade Plugin Framework to version 2.6.0
* Security - Various code hardening tweaks.
* Security - Escape all $-variable
* Security - Sanitize all $_REQUEST, $_GET, $_POST
* Security - Apply wp_unslash before sanitize

= 2.10 - 2022/01/21 =
* This release has a new Google Fonts API Validation feature plus compatibility with WordPress major version 5.9
* Feature - Add Ajax Validate button for the Google Font API field, for quick and easy Validation of API keys
* Dev - Add dynamic help text to Google Font API fields
* Tweak - Test for compatibility with WordPress 5.9
* Tweak - Test for compatibility with latest version of Gutenberg from WordPress 5.9
* Framework - Update a3rev Plugin Framework to version 2.5.0

= 2.9.13 - 2021/11/20 =
* This maintenance release has a bug fix for compatibility with PHP 8.x
* Tweak - Test for compatibility with PHP 8.x
* Fix - Update some defined functions without an optional parameter when followed by a required parameter. This is deprecated as of PHP 8.0.0

= 2.9.12 - 2021/07/19 =
* This maintenance release has code tweaks for WordPress 5.8 compatibility plus Security Hardening.
* Tweak - Test for compatibility with WordPress 5.8
* Tweak - Test for compatibility with Gutenberg 10.7
* Security - Add more variable, options and html escaping
* Security - Get variable via name instead of use extract

= 2.9.11 - 2021/07/12 =
* This small maintenance release contains a security patch.
* Security - Added escaping for the shortcode parameters
* Tweak - Skipped version 2.9.10 to avoid PHP misread

= 2.9.9 - 2021/03/17 =
* This maintenance release updates 23 deprecated jQuery functions for compatibility with the latest version of jQuery in WordPress 5.7
* Tweak - Update JavaScript on plugin framework for compatibility with latest version of jQuery and resolve PHP warning event shorthand is deprecated.
* Tweak - Replace deprecated .change( handler ) with .on( 'change', handler )
* Tweak - Replace deprecated .change() with .trigger('change')
* Tweak - Replace deprecated .focus( handler ) with .on( 'focus', handler )
* Tweak - Replace deprecated .focus() with .trigger('focus')
* Tweak - Replace deprecated .click( handler ) with .on( 'click', handler )
* Tweak - Replace deprecated .click() with .trigger('click')
* Tweak - Replace deprecated .select( handler ) with .on( 'select', handler )
* Tweak - Replace deprecated .select() with .trigger('select')
* Tweak - Replace deprecated .blur( handler ) with .on( 'blur', handler )
* Tweak - Replace deprecated .blur() with .trigger('blur')
* Tweak - Replace deprecated .resize( handler ) with .on( 'resize', handler )
* Tweak - Replace deprecated .submit( handler ) with .on( 'submit', handler )
* Tweak - Replace deprecated .scroll( handler ) with .on( 'scroll', handler )
* Tweak - Replace deprecated .mousedown( handler ) with .on( 'mousedown', handler )
* Tweak - Replace deprecated .mouseover( handler ) with .on( 'mouseover', handler )
* Tweak - Replace deprecated .mouseout( handler ) with .on( 'mouseout', handler )
* Tweak - Replace deprecated .keydown( handler ) with .on( 'keydown', handler )
* Tweak - Replace deprecated .attr('disabled', 'disabled') with .prop('disabled', true)
* Tweak - Replace deprecated .removeAttr('disabled') with .prop('disabled', false)
* Tweak - Replace deprecated .attr('selected', 'selected') with .prop('selected', true)
* Tweak - Replace deprecated .removeAttr('selected') with .prop('selected', false)
* Tweak - Replace deprecated .attr('checked', 'checked') with .prop('checked', true)
* Tweak - Replace deprecated .removeAttr('checked') with .prop('checked', false)

= 2.9.8 - 2021/03/09 =
* This maintenance release is for compatibility with WordPress 5.7 and Gutenberg 10.0
* Tweak - Test for compatibility with WordPress 5.7
* Tweak - Test for compatibility with Gutenberg 10.0

= 2.9.7 - 2020/12/30 =
* This is an important maintenance release that updates our scripts for compatibility with the latest version of jQuery released in WordPress 5.6
* Tweak - Update JavaScript on plugin framework for work compatibility with latest version of jQuery
* Fix - Replace .bind( event, handler ) by .on( event, handler ) for compatibility with latest version of jQuery
* Fix - Replace :eq() Selector by .eq() for compatibility with latest version of jQuery
* Fix - Replace .error() by .on( “error” ) for compatibility with latest version of jQuery
* Fix - Replace :first Selector by .first() for compatibility with latest version of jQuery
* Fix - Replace :gt(0) Selector by .slice(1) for compatibility with latest version of jQuery
* Fix - Remove jQuery.browser for compatibility with latest version of jQuery
* Fix - Replace jQuery.isArray() by Array.isArray() for compatibility with latest version of jQuery
* Fix - Replace jQuery.isFunction(x) by typeof x === “function” for compatibility with latest version of jQuery
* Fix - Replace jQuery.isNumeric(x) by typeof x === “number” for compatibility with latest version of jQuery
* Fix - Replace jQuery.now() by Date.now() for compatibility with latest version of jQuery
* Fix - Replace jQuery.parseJSON() by JSON.parse() for compatibility with latest version of jQuery
* Fix - Remove jQuery.support for compatibility with latest version of jQuery
* Fix - Replace jQuery.trim(x) by x.trim() for compatibility with latest version of jQuery
* Fix - Replace jQuery.type(x) by typeof x for compatibility with latest version of jQuery
* Fix - Replace .load( handler ) by .on( “load”, handler ) for compatibility with latest version of jQuery
* Fix - Replace .size() by .length for compatibility with latest version of jQuery
* Fix - Replace .unbind( event ) by .off( event ) for compatibility with latest version of jQuery
* Fix - Replace .unload( handler ) by .on( “unload”, handler ) for compatibility with latest version of jQuery

= 2.9.6 - 2020/12/15 =
* This maintenance release adds block preview images for block discovery
* Tweak - Add support for Block Discovery Preview

= 2.9.5 - 2020/12/08 =
* This maintenance release has tweaks and fixes for compatibility with WordPress major version 5.6 and PHP 7.4.8 and Gutenberg 9.4
* Tweak - Test for compatibility with PHP 7.4.8
* Tweak - Test for compatibility with WordPress 5.6
* Tweak - Test for compatibility with Gutenberg 9.4
* Tweak - Update the Spacing component to latest version 1.0.10
* Fix - Update plugin framework script, remove jQuery.browser is deprecated to resolve conflict with jQuery Migrate Helper plugin

= 2.9.4 - 2020/08/08 =
* This maintenance release is for compatibility with WordPress major version 5.5 and WooCommerce 4.3.1.
* Tweak - Test for compatibility with WordPress 5.5
* Tweak - Test for compatibility with WooCommerce 4.3.1

= 2.9.2 - 2020/03/24 =
* This maintenace release fixes a bug that creates an error with JSON loaded from AJAX
* Fix - Hook 'a3_portfolio_set_global_page' to action 'plugins_loaded' tag to stop warning that effect to JSON value from AJAX

= 2.9.1 - 2020/03/21 =
* This maintenance release has compatibility with WordPress 5.4 plus completion of framework refactor to Composer, implement Travis CI unit testing and compat tweaks for PHP 7.0 to 7.4 and Gutenberg 7.5
* Tweak - Test for compatibility with WordPress 5.4
* Tweak - Run Travis CI unit build tests for PHP compatibility issues with PHP 7.0 to 7.4
* Tweak - Plugin Framework fully refactored to Composer for cleaner code and faster PHP code
* Tweak - Update Gutenberg block for work compatibility with Gutenberg latest version 7.5
* Fix - Update global ${$this- to $GLOBALS[$this to resolve 7.0+ PHP warnings
* Fix - Update global ${$option to $GLOBALS[$option to resolve 7.0+ PHP warnings
* Fix - Update less PHP lib that use square brackets [] instead of curly braces {} for Array , depreciated in PHP 7.4
* Fix - Validate for not use get_magic_quotes_gpc function for PHP 7.4

= 2.9.0 - 2019/11/28 =
* This feature release has a lot including compatibility with WordPress 5.3 PHP upgrade to Composer PHP Dependency Manger, a full security review plus a bug fix.
* Feature - Plugin fully refactored to Composer for cleaner and faster PHP code
* Tweak - Remove the hard coded PHP error_reporting display errors false from compile sass to css
* Tweak - Test for compatibility with WordPress 5.3.0
* Dev - Replace file_get_contents with HTTP API wp_remote_get
* Dev - Ensure that all inputs are sanitized and all outputs are escaped
* Fix - Called remove_filter( 'the_title', array( $this, 'portfolio_the_title' ) ); after add filter, so that html code is not added into attribute of image on card , solves the item card showing code on category pages

= 2.8.1 - 2019/10/12 =
* This maintenance update is to fix PHP query arg function errors
* Fix - Parse parameter to add_query_arg function

= 2.8.0 - 2019/09/07 =
* This feature upgrade adds a3Portfolio Gutenberg Block plus 5 filter blocks. Also includes inclusion of shortcodes into core for those still using the legacy editor.
* Feature - a3 Portfolio Premium shortcodes plugin discontinued, shortcodes now included in the parent plugin.
* Feature - Add a3 Portfolio Gutenberg block.
* Feature - Add Portfolio Items Gutenberg block
* Feature - Add Portfolio Categories Gutenberg block
* Feature - Add Portfolio Tags Gutenberg block
* Feature - Add Portfolio Recent Gutenberg block
* Feature - Add Portfolio Sticky Gutenberg block
* Tweak - Remove a3 Portfolio Shortcode placecard and link from admin dashboard sidebar

= 2.7.6 - 2019/09/03 =
* This upgrade is for compatibility with Responsi Framework 7.6.0
* Refactor - Rewrite frontend HTML, CSS, JS and Variables Class and ID names to the new framework 7.6.0 namespaces
* Refactor - Rewrite customizer HTML, CSS, JS and Variables Class and ID names to the new framework 7.6.0 namespaces
* Refactor - HTML, CSS, JS and Variables Class and ID names called from the framework making plugin file sizes smaller and faster to load

= 2.7.5 - 2019/08/01 =
* This maintenance upgrade is to fix a style conflict with fontawesome icons and a Categories layout style on Posts
* Fix - fontawesome icons not able to get correct style on frontend when the fontawesome script is loaded on the page by theme or another plugin.
* Fix - Categories layout style on Portfolio Post items

= 2.7.4 - 2019/07/25 =
* This upgrade has some small tweaks for compatibility with Responsi Framework 7.5.0
* Refactor - Up grade all plugin CSS and JS called from Responsi Framework from Class ID to Class name for the new Responsi Class names.

= 2.7.3 - 2019/06/29 =
* This is a maintenance upgrade to fix a potentially fatal error conflict with sites running PHP 7.3 plus compatibility with WordPress v 5.2.2
* Fix - PHP warning continue targeting switch is equivalent to break for compatibility on PHP 7.3

= 2.7.2 - 2019/05/25 =
* This is a small maintenance update to fix a PHP 7.3 count warning
* Fix - count Parameter must be an array or an object that implements Countable

= 2.7.1 - 2019/05/23 =
* This maintenance upgrade adds support for ALT text on all portfolio images plus compatibility with WordPress 5.2.1
* Tweak - Add ALT text support for item card feature image and default gallery images
* Tweak - Test for compatibility with WordPress 5.2.1

= 2.7.0 - 2019/01/12 =
* This upgrade includes 2 new sort features on the Portfolio Category Widget plus 1 bug fix on it.
* Feature - Portfolio Categories widget - Add option to exclude Categories from showing on the frontend
* Feature - Portfolio Categories widget - Add sort option for category items with show Newest first or show Oldest first
* Fix - Category Order option, show by the order set on the Categories menu was not working

= 2.6.9 - 2019/01/05 =
* This maintenance update is for compatibility with WordPress 5.0.2 and PHP 7.3. It also includes performance updates to the plugin framework.
* Tweak - Test for compatibility with WordPress 5.0.2 and WordPress 4.9.9
* Tweak - Create new structure for future development of Gutenberg Blocks
* Framework - Performance improvement.  Replace wp_remote_fopen  with file_get_contents for get web fonts
* Framework - Performance improvement. Define new variable `is_load_google_fonts` if admin does not require to load google fonts
* Credit - Props to Derek for alerting us to the framework google fonts performance issue
* Framework - Register style name for dynamic style of plugin for use with Gutenberg block
* Framework - Update Modal script and style to version 4.1.1
* Framework - Update a3rev Plugin Framework to version 2.1.0
* Framework - Test and update for compatibility with PHP 7.3

= 2.6.8 - 2018/09/18 =
* This maintenance update fixes an item card layout bug when 1 card is added to show full width in a single column when inserted by shortcode.
* Tweak - Test for compatibility with WordPress 4.9.8
* Fix - Update layout style for apply full wide for card on one column

= 2.6.7 - 2018/07/23 =
* This maintenance upgrade has code tweaks for compatibility with Responsi Header Extender add-on and a3 Lazy Load plugin plus WordPress 4.9.7
* Tweak - Open the expander at correct position for compatibility with Responsi Header Extender addon
* Tweak - Called masonry for calculate height of card item after image is loaded by Lazy script for compatibility with a3 Lazy Load plugin
* Tweak - Test for compatibility with WordPress 4.9.7

= 2.6.6 - 2018/06/21 =
* Fix - An issue with compress JS script file with yesterdays 2.6.5 upgrade

= 2.6.5 - 2018/06/20 =
* Maintenance update to fix a display issue in Chrome and Categories display issue on item posts plus a fix for Item Extender URL
* Tweak - Change priority value from 2 to 9 for apply single Portfolio template so that content shows correct
* Fix - Update JavaScript for trigger correct so that it opens popup from the item extender URL

= 2.6.4 - 2018/06/19 =
* Maintenance update has 1 bug fix and 1 tweak when adding shortcodes to posts to show in item expander.
* Tweak - Change priority value from 12 to 2 for apply single Portfolio template so that shortcode content can work correctly
* Framework - Fix for Framework Global Box open and close settings options
* Framework - Update a3rev Plugin Framework to version 2.0.5
* Fix - Called wpautop before do_shortcode for the content show on Expander so that it does not add more space to content loaded by shortcode

= 2.6.3 - 2018/06/16 =
* Tweak - Test for compatibility with WordPress 4.9.6
* Fix - Add a3-notlazy class to Expander main gallery image to resolve conflict with a3 Lazy Load plugin

= 2.6.2 - 2018/05/26 =
* This maintenance update is for compatibility with WordPress 4.9.6 and the new GDPR compliance requirements for users in the EU
* Tweak - Test for compatibility with WordPress 4.9.6
* Tweak - Check for any issues with GDPR compliance. None Found
* Framework - Update a3rev Plugin Framework to version 2.0.3

= 2.6.1 - 2018/03/07 =
* This is a big Maintenance Update. IMPORTANT clear all caches after this update. 3 Bug Fixes plus 2 Mobile UI and UX tweaks. Big fix for conflict with themes that filter Content in wp head.
* Tweak - Mobile break point to display items one column in portrait on new Apple and Android wider screen phones.
* Tweak - Update script to remove auto close expander when scroll on mobile for improved UX
* Fix - Changed from filtering the content at wp head to filter the title and call wp content from there to resolve issues with themes that filter the content at wp head.
* Fix - Item Cards alignment in PC and tablet for portfolio items without description.
* Fix - Image Scale and Crop options which had stopped working

= 2.6.0 - 2018/03/05 =
* Feature Upgrade. This version adds full compatibility with the popular Divi premium theme by adding Category and Tags templates when that theme is used.
* Feature -  Added taxonomy templates that are used when the Divi theme is activated.

= 2.5.2 - 2018/02/14 =
* Fix - Set correct name A3_PORTFOLIO_VERSION for update version

= 2.5.1 - 2018/02/13 =
* Maintenance Update. Under the bonnet tweaks to keep your plugin running smoothly and is the foundation for new features to be developed this year
* Framework - Update a3rev Plugin Framework to version 2.0.2
* Framework - Add Framework version for all style and script files
* Tweak - Update for full compatibility with a3rev Dashboard plugin
* Tweak - Test for compatibility with WordPress 4.9.4

= 2.5.0 - 2017/06/10 =
* Feature - Launched a3 Portfolio public Github Repository
* Feature - WordPress Translation activation. Add text domain declaration in file header.
* Tweak - Tested for compatibility with WordPress major version 4.8.0
* Tweak - Include bootstrap modal script into plugin framework
* Tweak - Update a3rev plugin framework to latest version

= 2.4.6 - 2017/05/03 =
* Tweak - Tested for full compatibility with WordPress version 4.7.4
* Dev - Define new a3_portfolio_get_permalink_structure function to get new permalink structure of Portfolio on WP 4.7.4
* Fix - Set rewrite rules just for sub pages of main Portfolio pages to resolve conflicts with other plugins that have custom rewrite rules

= 2.4.5 - 2017/03/31 =
* Tweak - Changed facebook social share image size from thumbnail to medium size for better display when share from the Item Expander
* Tweak - Tested for full compatibility with WordPress version 4.7.3
* Fix - Update facebook social share parameters to rectify not being able to get the featured image in the facebook share pop up

= 2.4.4 - 2017/02/09 =
* Tweak - Change global $$variable to global ${$variable} for compatibility with PHP 7.0
* Tweak - Removed auto redirect to plugins admin panel on activation
* Tweak - Update a3 Revolution to a3rev Software on plugins description
* Tweak - Added Settings link to plugins description on plugins menu
* Tweak - Tested for full compatibility with WordPress version 4.7.2
* Fix - Show $number as string with use str_replace instead of preg_replace. $ value amounts not showing in item expander description
* Fix - Update Portfolio script so that portfolio item cards display correctly without overlapping in mobile.

= 2.4.3 - 2017/01/03 =
* Tweak - Remove auto redirect to settings page when first install and activate the plugin
* Tweak - Add Settings link to the plugins place maker on Plugins menu
* Tweak - Update By A3 Revolution to a3rev Software on plugins place marker
* Fix - Remove space from gallery image ids value when add or remove images

= 2.4.2 - 2016/12/12 =
* Tweak - Tested for full compatibility with WordPress version 4.7
* Fix - Validate empty file that are parsed to a3_portfolio_get_template

= 2.4.1 - 2016/06/24 =
* Tweak - Update Portfolio Gallery box to enable a3 Portfolio Dynamic Gallery plugin to hook to it
* Tweak - Update 'a3.portfolio.js' script to support a3 Portfolio Dynamic Gallery plugin
* Tweak - Tested for full compatibility with WordPress version 4.5.3
* Fix - Check $post variable is defined
* Fix - Called 'wp_reset_query' at end of custom portfolio query to fix pagination can show items
* Fix - Hooked 'a3_portfolio_term_description' to 'a3_portfolio_before_category_content' instead of 'a3_portfolio_before_template_part' to resolve category description duplication on Portfolio Category pages

= 2.4.0 - 2016/05/19 =
* Feature - Created new 'Settings' panel page for plugin
* Feature - Add 'Portfolio Item Images' settings box for 'Settings' panel. Set Gallery and Thumbnail dimension
* Feature - Add Hard Crop option for Gallery images and Thumbnails
* Feature - Add lightbox image pop up on Portfolio Item post gallery image option. Image shows in the pop up at full size
* Tweak - Move 'Plugin Framework Global Settings' box from 'Item Cards' panel to 'Settings' panel.
* Tweak - Changed all image size from default WP to custom image dimensions set from the plugin.
* Tweak - Updated 'a3.portfolio.css' style file for support new features
* Tweak - Updated 'a3.portfolio.single.js' script file for support new features
* Tweak - Change thumbnail image show on frontend from hard code 80 x 80 px to Gallery Thumbnail Size set from plugin settings
* Tweak - Updated 'content-single-portfolio.php' template file
* Tweak - Updated 'expander/gallery-thumbs.php' template file
* Tweak - Tested for full compatibility with WordPress version 4.5.2

= 2.3.0 - 2016/05/04 =
* Feature - Add new 'Image Links Opens' ITEM POST or ITEM EXPANDER option for when click on Card Image when Card Title is set Under Image
* Feature - Add new 'Title Links Opens' ITEM POST or ITEM EXPANDER option for when click on Card Title
* Feature - Add new 'View More Link Opens' ITEM POST or ITEM EXPANDER option for when click on View More button
* Feature - Add new 'View More Button Text' option into Button tab of Portfolio Data box on individual Portfolio Item for support change the button text on each Portfolio item
* Tweak - Make condition logic for show or hide options that have relationship
* Tweak - Update 'a3.portfolio.css' and 'a3.portfolio.less' style file for support new features
* Tweak - Update 'a3.portfolio.js' and 'a3.portfolio.min.js' script file for support new features
* Tweak - Change layout structure of card item for support new features
* Tweak - Make On Hover Background screen just show on the Image Container instead of the whole Item Card
* Tweak - Filter for change View More Button Text on each card item.
* Tweak - Update Portfolio Permalinks for when Permalinks are set as pretty or plain
* Fix - Auto flush rewrite rules when first time plugin is activated for solved the issue return 404 page when go to Portfolio item detail page

= 2.2.0 - 2016/04/14 =
* Feature - Expander - Added option to set 'Thumbnail Position' on expander. Options are show on right or below main gallery
* Tweak - Update 'a3.portfolio.css' for new feature
* Tweak - Apply style and script for new term.php page on WordPress 4.5
* Tweak - Change hook tag from 'portfolio_cat_edit_form_fields' to 'portfolio_cat_edit_form' to fix settings box show on Portfolio Category Edit page
* Tweak - Apply settings box for Portfolio Category Add and Edit page
* Tweak - Update 'content-portfolio.php' template
* Tweak - Update 'gallery-thumbs.php' template
* Tweak - Tested for full compatibility with WordPress major version 4.5

= 2.1.0 - 2016/04/01 =
* Feature - Build new Portfolio Attribute feature as an upgrade of Feature Data
* Feature - Create Portfolio Attribute page and Terms page as custom taxonomy
* Feature - Portfolio Attribute with 2 types Select | Text .
* Feature - Attribute with 'Select' type support terms and for using to make filter from widget.
* Feature - Attribute with 'Text' type to give the same feature as old Feature Data option
* Feature - Create new Attribute menu on the Portfolio Item Data box on Portfolio Edit page.
* Feature - Attribute meta box with select attributes and terms to apply to this item.
* Feature - Attribute meta box with expand attribute and sort by drag and drop.
* Feature - Define Portfolio Attribute Filter Widget. This new widget is used to filter multiple Attribute based terms.
* Feature - Portfolio Attribute Filter Widget can add to Sidebar but just show on main Portfolio page or Portfolio Category page or Portfolio Tag page, don't show on another page.
* Feature - Define new settings for select position to show Attribute Table on Expander and Item Post.
* Feature - Upgrade all current icons to fontawesome icons
* Tweak - Update admin meta box style and script from plugin framework
* Tweak - Register fontawesome in plugin framework with style name is 'font-awesome-styles'
* Tweak - Register jquery blockUI script to support new features
* Tweak - Update 'a3.portfolio.css' file to support new features
* Tweak - Update 'a3.portfolio.metabox.admin.css' file to support new features
* Tweak - Update 'a3.portfolio.js' file to support new features
* Tweak - Update 'a3.portfolio.metabox.admin.js' file to support new features
* Tweak - Include new a3-portfolio-ajax.php file to support AJAX from plugin
* Tweak - Remove Feature Data page and Feature Data tab from Portfolio Item Data box
* Tweak - Make upgrade function for auto convert data from Feature Data to Attribute data as 'Text' type
* Tweak - Update 'content-portfolio.php' template
* Tweak - Update 'content-single-portfolio.php' template
* Tweak - Update 'entry-metas.php' template
* Tweak - Update 'category-navbar.php' template
* Tweak - Update 'main-navbar.php' template
* Tweak - Update 'tag-navbar.php' template
* Tweak - Define new 'attribute-table.php' template
* Tweak - Define new 'attribute-filter-widget.php' template

= 2.0.0 - 2016/03/22 =
* Feature - Plugin Framework Mobile First focus upgrade
* Feature - Massive improvement in admin UI and UX in PC, tablet and mobile browsers
* Feature - Introducing opening and closing Setting Boxes on admin panels.
* Feature - Added Plugin Framework Customization settings box. Control how the admin panel settings show when editing.
* Feature - Added Option to set Google Fonts API key to directly access latest fonts and font updates from Google
* Feature - Added Housekeeping function to Plugin Framework Global Settings. Clean up on Deletion.  Option - Choose if you ever delete this plugin it will completely remove all tables and data it created.
* Tweak - Update plugin framework to latest version
* Tweak - Register fontawesome in plugin framework with style name 'font-awesome-styles'
* Tweak - Separate Settings tab to 2 Item Cards settings tabs and Item Expander settings tab for better UI
* Tweak - Remove Add-on page, put available Add-ons on right sidebar
* Tweak - Move Watermark help text onto the a3 Plugin Framework settings box
* Tweak - Change Title switch name from ON MOUSE OVER to SHOW ON HOVER for better clarity
* Tweak - Upgraded various setting box titles, option names and help text
* Tweak - Make upgrade function for auto convert old structure to new structure of settings

= 1.9.0 - 2016/03/18 =
* Feature - Added full support for WordPress 'Sticky' posts feature to apply to Portfolio Items for themes that support the Sticky feature to show posts on the home page
* Feature - Created new Sticky options menu on the Portfolio Item meta box with ON | OFF switch to apply the Sticky feature to that Portfolio Item
* Tweak - Update 'a3_portfolio_get_main_page' function to parse 3 new arguments - Type, Number of Items, Show Navbar. They support Recent and Sticky now
* Tweak - Update 'a3_portfolio_get_categories_page' function for parse 2 new arguments - Number of Items, Show Navbar.
* Tweak - Update 'a3_portfolio_get_tags_page' function for parse 2 new arguments - Number of Items, Show Navbar.
* Tweak - Update 'a3.portfolio.metabox.admin.css' for new Sticky feature

= 1.8.0 - 2016/03/15 =
* Feature - Added new option to enter Item Card Custom Description instead of the first few lines of the item description
* Feature - New Card Description tab shows on Portfolio Item meta box when Item Card Description is switched ON in General Settings
* Feature - If enter a Custom Description it is used - if nothing is entered the fall back is get text for item card from the item description
* Tweak - Check if Item Card Description feature is OFF then don't show Card Description tab on Portfolio Item meta box
* Tweak - Sort include PHP file to fix PHP warning when add shortcode to page in the Dashboard
* Tweak - Update 'a3_portfolio_get_main_page' function to support Shortcode when called from 3rd party plugins

= 1.7.0 - 2016/03/05 =
* Feature - Add new Item Card 'View More' button. Button shows at bottom of the Item Card. When clicked it opens the item expander
* Feature - Add new Item Card 'View More' button display ON | OFF option
* Feature - Add new Item Expander 'Post Meta Cats' display ON | OFF option
* Feature - Add new Item Expander 'Post Meta Tags' display ON | OFF option
* Feature - Post title under image on item card now links to the post instead of opening the item expander
* Feature - Refactor item card CSS to support Image, Dynamic Title, Description and View More button layout
* Tweak - Update a3 Portfolio styles and scripts for new behavior on open Expander
* Tweak - Updated 'archive-portfolio.php' template file
* Tweak - Updated 'content-portfolio.php' template file
* Tweak - Updated 'content-single-portfolio.php' template file
* Dev - Defined 'a3_portfolio_get_main_page' function. 3rd party plugin can use function to get main portfolio cards on any page
* Dev - Defined 'a3_portfolio_get_item_ids_page' function. 3rd party plugin can use function to get portfolios list cards from portfolio ids list on any page
* Dev - Defined 'a3_portfolio_get_categories_page' function. 3rd party plugin can use function to get portfolios list card from portfolio category ids list on any page
* Dev - Defined 'a3_portfolio_get_tags_page' function. 3rd party plugin can use function to get portfolios list card from portfolio tag ids list on any page
* Dev - Added new 'portfolio-categories.php' template file to support new functions
* Dev - Added new 'portfolio-tags.php' template file to support new functions
* Dev - Added new 'portfolio-item-cards.php' template file to support new functions

= 1.6.0 - 2016/03/03 =
* Feature - Add more Item Expander setting options
* Feature - Added Item Expander Post Meta ON | OFF options for Post Author and Post Date meta
* Feature - Added Item Expander Social Share ON | OFF options
* Feature - Add new settings 'Expander Top Alignment' to set value of alignment from top of screen when Expander open.
* Feature - Added apply Top Alignment to Mobile or custom value in px
* Tweak - Saved the time number into database for one time customize style and Save change on the Plugin Settings
* Tweak - Replace version number by time number for dynamic style file are generated by Sass to solve the issue get cache file on CDN server
* Tweak - Update a3 Portfolio script to move Expander container to top of screen when it opens
* Tweak - Update a3 Portfolio script to get Top Alignment value to change position of Expander container when open
* Tweak - Update 'entry-metas.php' template from path '/templates/expander/' to check to show or hide Author, Date, Social Share meta

= 1.5.1 - 2016/02/25 =
* Tweak - Update script for Auto scale the height of card image when is resizing the window for when set Fixed Height with % of Wide
* Tweak - Update script for show image on the gallery faster than when click on thumbnail inside the expander with decrease the time of effect show and hide the Processing bar
* Tweak - Update script for auto scroll to border bottom of activated card image when the expander is open for see full content from expander
* Tweak - Update script for auto scroll to border top of activated card image when the expander is close
* Tweak - Update Portfolio style for auto scale thumbnail image when viewing on Tablet

= 1.5.0 - 2016/02/22 =
* Feature - Major refactor of portfolio item cards fist load. Loads much faster with far less resources used
* Feature - Update portfolio scripts for support 'scrset' and 'sizes' for new WordPress v4.4 responsive images feature
* Feature - Support the Responsive Image with 2 new attribute 'scrset' and 'sizes' are put on card image, main image and thumbnail image for decrease the total size of images are load on frontend for small screen
* Feature - Added Item card 'Image Display Height' and 'Image Height as a % of Width' options.
* Feature - Set Height of Item Card Image Container as FIXED or DYNAMIC based % Width of Image Container.
* Feature - Added new loading UI when Expander is opened and loading the expander content
* Feature - Added new loading UI when Gallery image is loaded by clicking a thumbnail in the expander
* Feature - Define new 'Background Color' type on plugin framework with ON | OFF switch to disable background or enable it
* Feature - Define new function - hextorgb() - for convert hex color to rgb color on plugin framework
* Feature - Define new function - generate_background_color_css() - for export background style code on plugin framework that is used to make custom style
* Feature - Define new 'strip_methods' argument for Uploader type, allow strip http/https or no
* Tweak - Updated a3 Plugin Framework to the latest version
* Tweak - Defined 'A3_PORTFOLIO_VERSION' to parse into all portfolio scripts and styles for ask CDN get new scripts or styles when plugin is updated
* Tweak - Remove 'a3-portfolio' image size, use 'large' size from WordPress
* Tweak - Remove Item Card Image Thumbnails settings
* Tweak - Update style for thumbnails inside expander to remove excessive space between thumbnails
* Tweak - Remove lazyloaxt script and all addon of that script from a3 Portfolio plugin
* Tweak - Update expander/gallery-thumbs.php template
* Tweak - Tested for full compatibility with WordPress version 4.4.2
* Fix - Remove built in lazyload of all Portfolio images. Was causing load delays and browser freezing on first load when combine with a3 Portfolio Isotope plugin

= 1.4.0 - 2015/12/08 =
* Feature - Added Option to set Google Fonts API key to directly access latest fonts and font updates from Google
* Feature - Added full support for Right to Left RTL layout on plugins admin dashboard.
* Feature - Change media uploader to New UI of WordPress media uploader with WordPress Backbone and Underscore
* Tweak - Update the uploader script to save the Attachment ID and work with New Uploader
* Tweak - Change the heading on Plugin Settings from h2 to h1 with new WordPress v4.4 UI
* Tweak - Update the style for meta box at Portfolio Item Edit page
* Tweak - Updated a3 Plugin Framework to the latest version
* Tweak - Tested for full compatibility with WordPress major version 4.4

= 1.3.2 - 2015/08/19 =
* Feature - Added support for show content in the item expander and item post that is created by shortcode from other plugins
* Tweak - Tested for full compatibility with WordPress major version 4.3.0
* Tweak - include new CSSMin lib from https://github.com/tubalmartin/YUI-CSS-compressor-PHP-port into plugin framework instead of old CSSMin lib from http://code.google.com/p/cssmin/ , to avoid conflict with plugins or themes that have CSSMin lib
* Tweak - Make __construct() function for 'Compile_Less_Sass' class instead of using a method with the same name as the class for compatibility on WP 4.3 and is deprecated on PHP4
* Tweak - Change class name from 'lessc' to 'a3_lessc' so that it does not conflict with plugins or themes that have another Lessc lib
* Fix - Check 'request_filesystem_credentials' function, if it does not exists then require the core php lib file from WP where it is defined
* Fix - Make __construct() function for 'A3_Portfolio_Categories_Widget' class instead of using a method with the same name as the class for compatibility on WP 4.3 and is deprecated on PHP4
* Fix - Make __construct() function for 'A3_Portfolio_Recently_Viewed_Widget' class instead of using a method with the same name as the class for compatibility on WP 4.3 and is deprecated on PHP4

= 1.3.1 - 2015/06/03 =
* Tweak - Security Hardening. Removed all php file_put_contents functions in the plugin framework and replace with the WP_Filesystem API
* Tweak - Security Hardening. Removed all php file_get_contents functions in the plugin framework and replace with the WP_Filesystem API
* Fix - Update dynamic stylesheet url in uploads folder to the format //domain.com/ so it's always is correct when loaded as http or https

= 1.3.0 - 2015/05/11 =
* Feature - Added support for setting a custom permalink structure for Portfolio page
* Feature - Added support change the permalink structure for Portfolio Category page
* Feature - Added support change the permalink structure for Portfolio Tag page
* Tweak - Added new options into Settings -> Permalinks page on Dashboard
* Tweak - Tested and Tweaked for full compatibility with WordPress Version 4.2.2
* Tweak - Put <code>%[portfoliopage]%</code> as arguments for $wpdb-prepare than parse it direct to mysql query
* Tweak - Don't auto added #hash on url bar of browser when first reload the page has portfolios

= 1.2.1 - 2015/04/21 =
* Tweak - Tested and Tweaked for full compatibility with WordPress Version 4.2.0
* Tweak - Changed <code>dbDelta()</code> function to <code>$wpdb->query()</code> for creating plugin table database.
* Tweak - Added style for social icon to a3.portfolio
* Tweak - Update style of plugin framework. Removed the [data-icon] selector to prevent conflict with other plugins that have font awesome icons
* Fix - Thumb images are not showing on single portfolio page. Added <code>a3-portfolio-lazy-hidden</code> into <code>a3.portfolio.single.js</code> file

= 1.2.0 - 2015/04/17 =
* Feature - Added option to show the first part of the Item description text on item cards. Description shows on footer of the card.
* Feature - Added 'Description Height' feature to set number lines of description text that shows on item cards. Option is 1 - 6 lines
* Tweak - Numerous a3.portfolio.js script file tweaks to add support for newly released a3 Portfolio shortcode add-on.
* Dev - Defined <code>@desc_background_color</code> variable inside a3.portfolio.base.less so dev can change the background color for new Description feature. Default color is <code>#555555</code>
* Dev - Added .a3-portfolio-card-description class into a3.portfolio.less so dev can change the default style for the new Item Description feature and compile own style for theme
* Dev - Defined 'a3_portfolio_card_item_description' function to get the description container of portfolio
* Dev - Defined 'a3_portfolio_main_page_scripts' function that enqueues all portfolio scripts and supports load portfolio container. This adds support for 3rd party plugins including the new a3 Portfolio Shortcodes add-on to call portfolio script from another page

= 1.1.1 - 2015/04/01 =
* Tweak - Added New Release a3 Portfolio Item Switcher Add-On plugin Card to the Add-Ons menu
* Tweak - Mobile UX improvement - increased the size of the item expander close X icon in mobile browsers so that it is easier to tap
* Tweak - Mobile UI improvement - added border to the bottom the Item expander gallery main image container to better define the image
* Tweak - Updated the plugins wordpress.org description.
* Dev - Convert function inside a3.portfolio.js file to global function so that the function can be called from another plugin
* Dev - Defined the trigger 'a3_portfolio_open_expander' when the expander is opened
* Dev - Changed WP_CONTENT_DIR to WP_PLUGIN_DIR. Is set a custom WordPress file structure then it can get the correct path of plugin

= 1.1.0 - 2015/03/27 =
* Feature - Added new global option - Post Display tab - Single Portfolio Template option of 1 or 2 column layout
* Feature - Added new post meta for Portfolio Item - Post Display - admin can override the global 1 or 2 Column layout option for post item.
* Dev - Defined new function 'a3_portfolio_single_get_layout_column' to get layout column for each single post item
* Dev - Updated header comment in portfolio template files from '/portfolio/' to '/portfolios/' for template over-rides from theme.
* Dev - Note! Updated single-portfolio.php template file for new Single Layout Column. Custom template over-rides will need updating
* Dev - Note! Updated content-single-portfolio.php template file for new feature Single Layout Column. Custom template over rides will need updating.
* Tweak - Tweak the Meta Box UI with checkbox switcher to toggle 1 Column | 2 Column layout

= 1.0.5 - 2015/03/18 =
* Tweak - Tested and tweaked for 100% compatibility with WordPress Version 4.1.1
* Tweak - Added jQuery.lazyLoadXT.onshow.addClass='lazy-hidden a3-portfolio-lazy-hidden'; into Portfolio script so that it still show the image for portfolio when site is using a3 lazy load
* Fix - Called wp_enqueue_script( 'jquery-masonry' ); when Portfolio page is showing to fix the javascript error that masonry script is not function

= 1.0.4 - 2015/01/28 =
* Tweak - Add New Release a3 Portfolio Dynamic Stylesheet Add-On plugin Card to the Add-Ons menu
* Tweak - Added an image to the a3 Portfolio Isotope Add-On Card on the Add-Ons menu

= 1.0.3 - 2015/01/26 =
* Tweak - Update background of portfolio mobile control to be the same background color of item expander.
* Dev - Defined 'a3_portfolio_cards_title_class' filter tag. Developers can filter to add new class name for Card Title on Card Layout
* Dev - Defined 'a3_portfolio_backend_launch_button_text' filter tag. Developers can filter to change Launch button text that shows inside the item Expander
* Fix - Change <code>parameter == undefined</code> to <code>typeof parameter === 'undefined'</code> inside portfolio script to fix JavaScript undefined parameter error

= 1.0.2 - 2015/01/12 =
* Fix - Fatal Error on first install on some installs. Hook the 'set_default_settings' function into 'init' action instead hook into 'register_activation_hook'
* Fix - Item main image caption not showing. Updated if <code>( ! is_array( $gallery ) )</code> to <code>if ( is_array( $gallery ) )</code>
* Credit - Thanks to wordpress.org memeber [jmdev](https://wordpress.org/support/profile/jmdev) for reporting the issue.

= 1.0.1 - 2015/01/05 =
* Feature - Add a3 Portfolio Isotope Add-On Free plugin download from the Add-On's menu
* Tweak - Updated the plugins description with details about the Isotope Add-On plugin
* Tweak - Link from the Isotope Add-On plugin to http://a3rev.com/my-account/free-downloads/
* Tweak - Add Registration and Login features to the /free-downloads/ page
* Tweak - Add License agreement for first download of a3 Portfolio Isotope plugin
* Tweak - Added effect mouse over on the card for Add-On page
* Tweak - Remove custom colour for Add-On submenu title
* Dev - Hooked framework code into 'plugins_loaded' action. Allows developers to add their child plugin admin menu as a a3 Portfolio sub menu
* Dev - Defined 'a3_portfolio_before_portfolio_enqueue_styles' action tag
* Dev - Defined 'a3_portfolio_after_portfolio_enqueue_styles' action tag
* Dev - Defined 'a3_portfolio_before_portfolio_enqueue_styles_rtl' action tag
* Dev - Defined 'a3_portfolio_after_portfolio_enqueue_styles_rtl' action tag
* Dev - Defined 'a3_portfolio_before_single_enqueue_styles' action tag
* Dev - Defined 'a3_portfolio_after_single_enqueue_styles' action tag
* Dev - Defined 'a3_portfolio_before_single_enqueue_styles_rtl' action tag
* Dev - Defined 'a3_portfolio_after_single_enqueue_styles_rtl' action tag

= 1.0.0 - 2014/12/16 =
* First working release
