=== Connections Business Directory === Contributors: shazahm1@hotmail.com Donate link: https://connections-pro.com/ Tags: address book, business directory, chamber of commerce, church directory, company directory, contact directory, directory, listings directory, local business directory, link directory, member directory, staff directory Requires at least: 5.0 Tested up to: 5.6 Requires PHP: 5.6.20 Stable tag: 10.1 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html An easy to use directory plugin to create an addressbook, business directory, member directory, staff directory or church directory. == Description == [Showcase](https://connections-pro.com/showcase/) | [Documentation](https://connections-pro.com/documentation/contents/) | [Support](https://wordpress.org/support/plugin/connections/) | [Templates](https://connections-pro.com/templates/) | [Extensions](https://connections-pro.com/extensions/) Connections Business Directory is one of the [best business directory plugins available](https://wordpress.org/support/plugin/connections/reviews/?filter=5) for WordPress. Its simplicity in design and function, vast array of unique features and versatility are the reasons more and more people are turning to Connections Business Directory for their directory needs. You can use Connections to create a simple address book, maintain a staff or member directory and run a business directory or link directory. Connections Business Directory was built bottom up to be as configurable as possible while providing the features you need. Read on to learn about some of the best features Connections Business Directory has to offer... = Features = * Compatible with all themes including popular themes such as Avada, Divi, Enfold and OceanWP. * Compatible with most popular page builders such as Elementor, Beaver Builder, Brizy, Visual Composer, Fusion, SiteOrigin, etc... * Supports the WordPress Block (Gutenberg) Editor with the following blocks. * [Carousel Block](https://connections-pro.com/documentation/block/carousel/) :: Display your directory as a carousel. * [Directory Block](https://connections-pro.com/documentation/block/directory/) :: Use this block to embed your directory in a page. * [Team Block](https://connections-pro.com/documentation/block/team/) :: It's easy to use Connections to build your team page! Team Block is a full featured block with multiple layout styles. While premium team plugins can set you back $20 or more, Team Block is free for all Connections users. * [Upcoming List Block](https://connections-pro.com/documentation/block/upcoming-list/) :: Use this block to display an upcoming list of anniversaries, birthdays or other events. * **[Highly rated support.](https://wordpress.org/support/plugin/connections/reviews/?filter=5)** * [Continuously updated](https://wordpress.org/plugins/connections/#developers) bringing you new features for free. * A growing selection of Content Blocks: * [Related Entries](https://connections-pro.com/connections-9-8-related-content-blocks/):: Display related Entries in a mobile responsive carousel. * [Nearby Entries](https://connections-pro.com/connections-9-9-nearby-entries-content-block/):: Increase discoverability of Entries by displaying nearby Entries in a mobile responsive carousel. * [Recently Viewed](https://connections-pro.com/connections-9-10-recently-viewed-entries-content-blocks/):: A list a directory Entries the user has recently viewed. * Last Viewed:: The last directory Entry the user viewed. * Frontend Entry Management:: Management options include a quick link to edit the Entry and a Delete option. * Entry Meta:: Display details such as when the Entry was added nad last modified and by whom. * Dashboard admin page where you can see at a glance today's anniversaries and birthdays as well as upcoming anniversaries and birthdays of members in your directory. * Multiple entry types from which to choose; such as individual, organization and family. The family entry type is unique to Connections. This entry type allows you to group individuals together as a family which makes Connections ideally suited for creating a church directory. * You control which entries are viewable to the public and which entries are private, viewable for logged in users only. You can even have entries set as unlisted so only admins can view them. * **[Repeatable fields](https://connections-pro.com/documentation/add-entry/#Repeatable_Fields)** for address, phone numbers, email, IM, social media, links and dates which allow you to add as much or as little as you need for each business in your business directory. * Hierarchical (nested) **category support**. Businesses and members in your business directory can be added to any number of categories. * Include a biographical text for an individual member or business description for each entry in your business directory using an easy to use rich text editor. * You can easily add a business logo or photo of the staff member for each entry in your business directory or staff directory. The photo and logo images are fully responsive with **HiDPI (Retina) display support**. * **Scalable,** manage directories which [contain hundreds of thousands of entries](https://wordpress.org/support/topic/scales-to-at-least-250000-entries). * **[CSV Export](https://connections-pro.com/documentation/tools/#Export)** of addresses, phone numbers, email addresses and dates. * **[CSV Import](https://connections-pro.com/documentation/tools/#Categories-2)** of **nested** categories. * **[Role capability support](https://connections-pro.com/documentation/roles/)**. * [Displaying your business directory on the frontend is as simple as putting a shortcode on a page.](https://connections-pro.com/documentation/install/#Step_4_Displaying_your_Directory) Don't let this simplicity fool you. The shortcode provides a large array of options that are just too numerous to list. To learn more, [go here](https://connections-pro.com/documentation/plugin/shortcodes/). * **SEO.** Every entry in your business directory outputs following the [hCard](http://microformats.org/wiki/hcard) spec. Soon to be updated to following Schema.org. * [Supports the native sitemaps](https://connections-pro.com/connections-10-0-seo-sitemaps/) feature available in WordPress versions 5.5 and newer. * [Yoast SEO and Rank Math sitemaps integration.](https://connections-pro.com/connections-10-1-seo-sitemaps-integrations/) * **[Extensible](https://connections-pro.com/extensions/)** and developer friendly. * Robust **templating support** with the [Template Customizer](https://connections-pro.com/2015/07/27/feature-preview-template-customizer/). Several basic templates are provided to get you started with you business directory with many more [premium templates available](https://connections-pro.com/templates/) to really make your business directory shine. = Extensible = Here are some great **free extensions** (with more on the way) that enhance your experience with Connections Business Directory: **Utility** * [Toolbar](https://wordpress.org/plugins/connections-toolbar/) :: Provides quick links to the admin pages from the admin bar. * [Login](https://wordpress.org/plugins/connections-business-directory-login/) :: Provides a simple to use login shortcode and widget. * [Anniversary and Birthday Emails](https://wordpress.org/plugins/connections-business-directory-anniversary-and-birthday-emails) :: Add the ability to automatically send a customizable email to entries on their anniversary or birthday. **Custom Fields** * [Business Open Hours](https://wordpress.org/plugins/connections-business-directory-hours/) :: Add the business open hours. * [Certifications](https://wordpress.org/plugins/connections-business-directory-certifications/) :: Create and assign certifications to individuals in your directory. * [Local Time](https://wordpress.org/plugins/connections-business-directory-local-time/) :: Add the business local time. * [Facilities](https://wordpress.org/plugins/connections-business-directory-facilities/) :: Add the business facilities. * [Income Level](https://wordpress.org/plugins/connections-business-directory-income-levels/) :: Add an income level. * [Education Level](https://wordpress.org/plugins/connections-business-directory-education-levels/) :: Add an education level. * [Languages](https://wordpress.org/plugins/connections-business-directory-languages/) :: Add languages spoken. * [Hobbies](https://wordpress.org/plugins/connections-business-directory-hobbies/) :: Add hobbies. **Misc** * [Face Detect](https://wordpress.org/plugins/connections-business-directory-face-detect/) :: Applies face detection before cropping an image. **[Premium Extensions](https://connections-pro.com/extensions/)** * [Authored](https://connections-pro.com/add-on/authored/) :: Displays a list of blog posts written by the entry on their profile page. * [Contact](https://connections-pro.com/add-on/contact/) :: Displays a contact form on the entry's profile page to allow your visitors to contact the entry without revealing their email address. * [CSV Import](https://connections-pro.com/add-on/csv-import/) :: Bulk import your data in to your directory. * [Custom Category Order](https://connections-pro.com/add-on/custom-category-order/) :: Order your categories exactly as you need them. * [Custom Entry Order](https://connections-pro.com/add-on/custom-entry-order/) :: Allows you to easily define the order that your business directory entries should be displayed. * [Enhanced Categories](https://connections-pro.com/add-on/enhanced-categories/) :: Adds many features to the categories. * [Form](https://connections-pro.com/add-on/form/) :: Allow site visitor to submit entries to your directory. Also provides frontend editing support. * [Link](https://connections-pro.com/add-on/link/) :: Links a WordPress user to an entry so that user can maintain their entry with or without moderation. * [ROT13 Encryption](https://connections-pro.com/add-on/rot13-email-encryption/) :: Protect email addresses from being harvested from your business directory by spam bots. * [SiteShot](https://connections-pro.com/add-on/siteshot/) :: Show a screen capture of the entry's website. * [Widget Pack](https://connections-pro.com/add-on/widget-pack/) :: A set of feature rich, versatile and highly configurable widgets that can be used to enhance your directory. **[Premium Templates](https://connections-pro.com/templates/)** Connections Business Directory comes with a couple templates to get you started which fully support the [Template Customizer](https://connections-pro.com/2015/07/27/feature-preview-template-customizer/). In addition to these free templates there are many premium templates available to take your business directory the level visually. * [Circled](https://connections-pro.com/add-on/circled/) :: A simple but bold template specifically designed for displaying small team or staff directory. * [cMap](https://connections-pro.com/add-on/cmap/) :: Our most popular go to template for a business directory and chamber of commerce business directory, featuring full Template Customizer support. * [Excerpt Plus](https://connections-pro.com/add-on/excerpt-plus/) :: Simple design which features a directory entry name, photo thumbnail and excerpt. * [Gridder](https://connections-pro.com/add-on/gridder/) :: Another simple but bold template which displays the directory in a grid layout. Perfect for displaying a small team or staff directory * [Slim Plus](https://connections-pro.com/add-on/slim-plus/) :: Specifically designed to take up as little space on the page as possible. * [Tile Plus](https://connections-pro.com/add-on/tile-plus/) :: This template was purposely designed to display the directory in a grid or column layout. = Developer Friendly = * Open development on [Github](https://github.com/Connections-Business-Directory/Connections). * Access to **180 action hooks** and over **300 filters** ... and counting. * Term API. * Custom Metabox and Fields API. * Template Engine and API. * Fragment Cache API. * Log API (stateless and stateful). * Admin Notices API. * Email API. * Settings API. Connections Business Directory has a very flexible template engine. The loading of template and CSS are context aware. This means you could create specific templates that load when a user visits a specific entry, category, postal code and more. Templates and CSS overriding is very granular and update safe. Check out these links for the details: * [Custom Core CSS](https://connections-pro.com/2014/05/04/quicktip-custom-css/) * [Custom CSS for Templates](https://connections-pro.com/2014/05/07/quicktip-custom-css-templates/) * [Custom Template Override File](https://connections-pro.com/2014/06/04/quicktip-custom-template-override-files/) = Languages = Connections Business Directory has been embraced around the world and has been translated by its users in the following languages. * Arabic [60% Complete] * Catalan [52% Complete] * Croatian (Croatia) [22% Complete] * Danish [31% Complete] * Danish (Denmark) [29% Complete] * Dutch (Netherlands) [49% Complete] * Finnish [78% Complete] * French (France) [90% Complete] * German (Germany) [86% Complete] * Greek (Greece) [69% Complete] * Hebrew (Israel) [61% Complete] * Hungarian (Hungry) [52% Complete] * Italian (Italy) [58% Complete] * Norwegian [13% Complete] * Persian (Iran) [52% Complete] * Polish (Poland) [52% Complete] * Portuguese (Brazil) [77% Complete] * Portuguese (Portugal) [24% Complete] * Romanian (Romania) [69% Complete] * Russian (Russia) [40% Complete] * Serbian (Latin) [2% Complete] * Spanish (Latin America) [49% Complete] * Spanish (Mexico) [99% Complete] * Spanish (Spain) [99% Complete] * Sweden (Swedish) [96% Complete] * Turkish (Turkey) [58% Complete] == Credits: == * Connection Business Directory was based off LBB, ["Little Black Book"](https://wordpress.org/extend/plugins/lbb-little-black-book/); which was based on [Addressbook](https://wordpress.org/extend/plugins/addressbook/), both of which can be found in the Plugin Directory. * vCard class is a modified version by [Troy Wolf](http://www.troywolf.com/articles/php/class_vcard/). * Update Notice in plugin admin inspired by Changelogger 1.2.8 by [Oliver Schlöbe](https://wordpress.org/extend/plugins/changelogger/). * Screen Options class by [Janis Elsts](http://w-shadow.com/blog/2010/06/29/adding-stuff-to-wordpress-screen-options/). * $.goMap() jQuery Google Maps Plugin by [Jevgenijs Shtrauss](http://www.pittss.lv/jquery/gomap/). * MarkerClustererPlus jQuery Google Maps Marker Clustering Plugin by [Gary Little](http://gmaps-utility-library-dev.googlecode.com/svn/tags/markerclusterer/). * Validation jQuery plugin by [Jörn Zaefferer](http://bassistance.de/jquery-plugins/jquery-plugin-validation/). * Chosen jQuery plugin by [Harvest](https://github.com/harvesthq/chosen/). * qTip jQuery plugin by [Craig Thompson](http://craigsworks.com/projects/qtip2/). * Email and URL validation methods by [Gizmo Digital Fusion](http://wpcodesnippets.info/blog/two-useful-php-validation-functions.html). * Social media icons by [WPZOOM.com](http://www.wpzoom.com/wpzoom/500-free-icons-wpzoom-social-networking-icon-set/); license [CC BY-SA 3.0](http://creativecommons.org/licenses/by-sa/3.0/). * iTunes icon by [Paul Robert Lloyd](http://paulrobertlloyd.com/); license [Attribution-ShareAlike 2.0 UK: England & Wales (CC BY-SA 2.0)](http://creativecommons.org/licenses/by-sa/2.0/uk/). * Podcast icon by [schollidesign](http://findicons.com/icon/94188/podcast_new); license GNU/GPL. * CSS theme and image used for the jQuery UI Datepicker by [helenhousandi](https://github.com/helenhousandi/wp-admin-jquery-ui). == Screenshots == 1. The many possible faces of your business directory. Connections Business Directory supports templates. This screenshot showcases (left to right) [Excerpt Plus](https://connections-pro.com/add-on/excerpt-plus/), [Circled](https://connections-pro.com/add-on/circled/), [Gridder](https://connections-pro.com/add-on/gridder/), [Tile Plus](https://connections-pro.com/add-on/tile-plus/) and [Slim Plus](https://connections-pro.com/add-on/slim-plus/). 2. Another screenshot showcasing the different templates that can be used to style your business directory. Left to right; [Circled](https://connections-pro.com/add-on/circled/), [cMap](https://connections-pro.com/add-on/cmap/) and [Gridder](https://connections-pro.com/add-on/gridder/). 3. The [Dashboard admin page](https://connections-pro.com/documentation/dashboard/). A snapshot of important information about the business directory. 4. The [Manage admin page](https://connections-pro.com/documentation/manage/). Here you can manage all the entries within the address book. 5. The [Add New Entry admin page](https://connections-pro.com/documentation/add-entry/). From here you can add new entries to the addressbook. 6. The [Categories admin page](https://connections-pro.com/documentation/categories/). Add as many categories as you wish to the directory. Categories do support parent/child relationships. 7. The [Templates admin page](https://connections-pro.com/documentation/templates/). Here you choose which template that the business directory should use when displaying the directory. 8. The [Settings admin page](https://connections-pro.com/documentation/settings/) where you can configure the business directory options. 9. The [Role and Capabilities admin page](https://connections-pro.com/documentation/roles/). Here you can assign which roles have which capabilities in viewing and managing the directory. 10. The [Tools :: Export admin page](https://connections-pro.com/documentation/tools/#Export) contains many different CSV export tools to allow you to easily export the data from your business directory. 11. The [Tools :: Import admin page](https://connections-pro.com/documentation/tools/#Categories-2) allows you to quickly bulk import nested categories into your business directory. 12. In the event that you need support the [Tools :: System Information admin page](https://connections-pro.com/documentation/tools/#System_Information) contains all the information needs about your directory installation which can be easily and quickly shared. 13. Need to move the configuration of your business directory from one site to another? The [Tools : Settings Import/Export admin page](https://connections-pro.com/documentation/tools/#Settings_ImportExport) allows you to do it with zero fuss. This will even migrate the Template Customizer settings applied to template and any of the settings for the [premium extensions](https://connections-pro.com/extensions/). [Connections running on live websites can be found here.](https://connections-pro.com/showcase/) == Frequently Asked Questions == A comprehensive list of [FAQs can be found here.](https://connections-pro.com/faq/) = How do I install Connections? == [Installation instructions can be found here.](https://connections-pro.com/documentation/plugin/install/) Using the WordPress Plugin Search 1. Navigate to the `Add New` sub-page under the Plugins admin page. 2. Search for `connections business directory`. 3. The plugin should be listed first in the search results. 4. Click the `Install Now` link. 5. Lastly click the `Activate Plugin` link to activate the plugin. Uploading in WordPress Admin 1. [Download the plugin zip file](https://wordpress.org/plugins/connections/) and save it to your computer. 2. Navigate to the `Add New` sub-page under the Plugins admin page. 3. Click the `Upload` link. 4. Select Connections Business Directory zip file from where you saved the zip file on your computer. 5. Click the `Install Now` button. 6. Lastly click the `Activate Plugin` link to activate the plugin. Using FTP 1. [Download the plugin zip file](https://wordpress.org/plugins/connections/) and save it to your computer. 2. Extract the Connections Business Directory zip file. 3. Create a new directory named `connections` directory in the `../wp-content/plugins/` directory. 4. Upload the files from the folder extracted in Step 2. 4. Activate the plugin on the Plugins admin page. = How do I display the business directory on my site? = We have a [QuickStart](https://connections-pro.com/quickstart/) available that'll walk you thru the most basic setup. Basically all you need to do is, create a page, and add the `[connections]` shortcode and then start adding entries to your directory. = Will it work with my theme? = Connections Business Directory has been designed to work with any theme. = Is Connections Business Directory translation-ready? = Yes it is. Connections Business Directory comes with many user supplied translations. We use Transifex to manage translations. This service make it easy for us manage and easy for you to translate. To read more, see [this page](https://connections-pro.com/documentation/translation/). = Is Connections Business Directory compatible with WordPress Multisite? = Yes it is. However, do not Network activate Connections. Activate it on only the subsites that you wish to use Connections. = Is it possible to share entries with other sites within a WordPress Multisite installation? = Yes this is possible but there is a special setup required to do so. It is recommended this is done before added entries to your business directory. 1. Activate Connections Business Directory the primary site. 2. Add `define( 'CN_MULTISITE_ENABLED', FALSE );` to your `wp-config.php` file. **NOTE:** If you have added any entries to any of your subsites, that data will be lost as Connections will read the directory entry data from the primary site's database tables. 3. Activate Connections Business Directory on the subsites you wish to use Connections. = What are the requirements to run Connections? = * **WordPress version:** >= 4.4 * **PHP version:** >= 5.2.4 ( >= 7.0 is highly recommended) * **NOTE:** Upgrading from version 0.6.1 and newer only, is supported. Previous version must upgrade to 0.6.1 before upgrading to the current version. == Changelog == [Complete Changelog can be found here.](https://connections-pro.com/changelog/) = 10.1 12/15/2020 = * FEATURE: Support for Yoast SEO sitemaps. * FEATURE: Support for Rank Math sitemaps. * TWEAK: Change the date format used in the sitemaps from DATE_ATOM to DATE_W3C. * TWEAK: Change `Provider::getQueryArgs()` from protected to public so it can be used in integrations. * TWEAK: Add several public methods to `Provider` so the protect/private properties can be accessed for integrations. * TWEAK: The persistent logs should not be public queryable. * TWEAK: Only supported custom types should be used when defining a Directory Homepage ID. * TWEAK: Use the `set_screen_option_connections` instead of the `set-screen-option` filter hook needed for the Screen Options tab settings to be saved appropriately. * TWEAK: If only a single instance of Connections is on a page, no need to add the instance ID to he sitemap index links. * DEV: phpDoc updates. * DEV: Inline code comment. * DEV: Remove no inspection tag. = 10.0 12/08/2020 = * FEATURE: Support for WordPress sitemaps. * TWEAK: Ensure the persistent log posts do not display in the WP sitemaps if the site is in debug mode. * TWEAK: Use `rawurlencode()` when encoding the permalink for department, organization, district, county, locality, region, and country. * BUG: Correct find shortcode logic. * OTHER: Update readme.txt to make mention of the support of the native sitemaps support introduced in WordPress 5.5. = 9.17 11/24/2020 = * TWEAK: Remove use of deprecated methods `cnSanitize::htmlClass()` and cnFunction::escAttributeDeep()` in the term list class. * TWEAK: Remove use of deprecated method `cnValidate::userPermitted()`. * TWEAK: Remove use of deprecated methods `cnSanitize::htmlClass()` and cnFunction::escAttributeDeep()` in the term list class. * TWEAK: Do not apply the `wpseo_title` filter in the admin. * TWEAK: Comment out code legacy Yoast SEO compatibility code. * TWEAK: Do not apply `array_filter()` to shortcode `$atts` when viewing the single Entry detail/profile page. * TWEAK: Apply clear float fix to the form. * TWEAK: Use the `get_cananical_url` filter instead of the `page_link` filter to set the canonical page URL. * TWEAK: Relation separator should be within a span tag. * TWEAK: Add a few filters which should be reset between shortcode instances. * TWEAK: Use self when referencing method. * TWEAK: Add random support to the `[cn-entry]` shortcode. * TWEAK: Ensure the `force_home` option for the `[cn-entry]` shortcode is a boolean. * OTHER: Update readme.txt support link. * OTHER: Update fontawesome from 5.13.0 to 5.15.1. * DEV: Correct code formatting. * DEV: Update package.json dependencies. * DEV: Update webpack.config.js. * DEV: Update dist files. = 9.16 11/06/2020 = * TWEAK: Add filter to the `[cn-content]` shortcode to support the Page Builder plugin by SiteOrigin. * OTHER: Remove the legacy social network icons to reduce plugin package size. * DEV: Code alignment. * DEV: Correct the replacement method for a deprecated method debug message. * DEV: Remove use of deprecated method `cnValidate::userPermitted()`. * DEV: Remove use of deprecated method `cnCountry::getCode()`. * DEV: Remove use of deprecated method `cnOptions::getDateOptions()`. * DEV: Remove use of deprecated method `cnFormatting::toCamelCase()`. * DEV: Remove use of deprecated method `cnFunction::isDimensionalArray()`. * DEV: Remove use of deprecated method `cnEntry::getFullFirstLastName()`. * DEV: Remove use of deprecated methods `cnSanitize::htmlClass()` and cnFunction::escAttributeDeep()` in the term list class. * DEV: Remove use of deprecated method `cnUser::getFilterPage()`. * DEV: Remove use of deprecated method `cnUtility::getUUID()`. * DEV: Remove use of deprecated method `cnFormatting::maybeJSONencode()`. * DEV: Remove use of deprecated method `cnFormatting::maybeJSONdecode()`. * DEV: Remove use of deprecated method `cnUtility::toNumericHash()`. * DEV: Remove use of deprecated method in `cnRetrieve`. = 9.15 10/30/2020 = * TWEAK: Pass additional parameters to the `Connections_Directory/Shortcode/Conditional_Content/is_condition/{$this->atts['condition']}` filter. * DEV: Change class variable from private to protected. * DEV: Add deprecated notices throughout so usages can be removed and old code cleaned up. = 9.14 10/22/2020 = * NEW: Introduce the `[cn-content]` shortcode. * TWEAK: Rename "Custom Fields" metablock and Content Block to "Custom Metadata Fields" to help reduce confusion between "Custom Fields" and "custom fields". * TWEAK: Rename the "Entry Meta" Content Block to "Entry Metadata" for uniformity. * TWEAK: Minor tweak to ensure the section head di is not rendered if both the current character and repeat character index are disabled. * TWEAK: Add version check for Yoast SEO. Minimum supported version is 14.0. * TWEAK: Minor tweaks to the `[cn-entry]` shortcode initialization. * OTHER: CSS tweak, change double-quote to single-quote to match style. * DEV: Add phpDoc to filter. * DEV: Remove use of a couple deprecated methods. * DEV: Update dist files. = 9.13 10/06/2020 = * NEW: Introduce Rank Math integration. * NEW: Introduce `cnSEO::getImageMeta()`. * TWEAK: If both the Entry excerpt and bio are empty, fallback to the Entry address for the Entry meta description. * TWEAK: Add additional check to see if Yoast SEO is active or not before setting up integration. * TWEAK: Set Yoast SEO integration to run at priority 15, after Yoast SEO sets itself up. * TWEAK: Use `cnSEO::getImageMeta()` within the Yoast SEO integration. Providing common logic which is shared with the other SEO integrations. * TWEAK: Use `self` instead of `static`. * TWEAK: Tweak the fallback meta description to include address (for organization) and title|department|organization (for individuals). * BUG: Correct bug in address to string helper where district would output instead on county. * OTHER: Deprecate `Yoast_SEO::getImageMeta()` * DEV: phpDoc correction. = 9.12 10/01/2020 = * NEW: Improve Yoast SEO integration. * NEW: Introduce the `Connections_Directory/Content_Block/Content/{$id}` action. * TWEAK: Change priority of the `cnSEO::metaDesc()` action callback to `1`. * TWEAK: Declare `cnSEO::metaTitle()` as public. * TWEAK: Limit meta description to 155 characters. * TWEAK: Remove the `Content-Length` header when downloading vCard to deal with some web hosts which seem to add BOM to downloads corrupting the vCard. * DEV: Correct phpDoc and add missing deprecated file call. * DEV: phpDoc updates in `cnSEO`. * DEV: Add @todo for Rank Math compatibility. * DEV: Lay foundation for the new Conditional Content shortcode. = 9.11 09/21/2020 = * NEW: Introduce `_string::toKebabCase()`. * NEW: Introduce the `Connections_Directory/Content_Block/Entry/Categories/Attributes` filter. * DEV: Move the color utility class to its own namespaced file. * DEV: Move the dateutility class to its own namespaced file. * DEV: The `_date` class should be final. * DEV: Move the string utility class to its own namespaced file. * DEV: Move the formatting utility class to its own namespaced file. * DEV: `cnSanitize::currency()` should be static. * DEV: Remove unnecessary break statement. * DEV: Add `_deprecated_file()` calls to a couple deprecated files. * DEV: Add `_deprecated_function()` to a couple deprecated methods. * DEV: phpDoc updates. * DEV: Move the siteshot utility class to its own namespaced file. * DEV: Remove unused `cnFunction::var_dump_error_log()` method. * DEV: Move the utility functions class to its own namespaced file. * DEV: Move the URL utility class to its own namespaced file. * DEV: Add `_deprecated_function()` to the `cnValidate::attributesArray()` method. * DEV: Move the validate utility class to its own file. * DEV: Deprecate methods in the cnUtility class nad move code to the `_` class to consolidate utility methods under a shortcode classname. * DEV: Moved several methods to be in the proper utility class and deprecated the existing methods. * DEV: Deprecate and pair on unused methods in cnValidate. = 9.10 09/10/2020 = * FEATURE: Introduce the Recently Viewed and Last Viewed Content Blocks. * NEW: Introduce the `Connections_Directory/Block/Carouse/Query_Parameters` filter. * NEW: Add the `link` field to the Entry REST endpoint. * NEW: Add support for the `exclude` parameter in the REST API. * NEW: Introduce the Recently Viewed REST API Endpoint. * TWEAK: Check for instance of `cnAddress` before access its properties. * TWEAK: Keep core WP Editor from displaying the slider navigation text in the Carousel Block. * TWEAK: Rename `cn-user.js` to `frontend.js`. * TWEAK: Delete the `frontend.min.js` file as it is not needed since webpack will minify file. * TWEAK: Remove unused code in the `frontend.js` file. * TWEAK: Make a single call to `cnQuery::getVar()` when rendering an Entry on the frontend for improved performance. * TWEAK: Remove several unnecessary object buffers when rendering an Entry. * TWEAK: Rename Entry render variable to be more descriptive. * TWEAK: Move logic on whether to display the character index and section head to within where the Entry is rendered. * TWEAK: Remove the `cn-list-head` div.id attribute. * TWEAK: Remove the `cn-list-foot` div.id attribute. * TWEAK: Apply `array_unique()` and `array_filter()` to the list head and body container classes. * TWEAK: Remove the `cn-list-foot` div.id attribute. * TWEAK: Remove the legacy `connections-list` class from the body container. * TWEAK: Move setting `$is_single` to outside of the loop. No need to set it on each iteration. * TWEAK: Cleanup the applied body classes. The `cn-list-row` and `cn-list-row-alternate` is applied only in the list view. Introduce the `cn-list-item` and `cn-is-single` classes. * TWEAK: Minor CSS tweaks to remove unnecessary specificity. * TWEAK: CSS clear after several core list containers. Necessary after removing the class that did the clear from the containers. * TWEAK: Do not show the character index when viewing the single Entry. * TWEAK: Abstract out template body section heading. * TWEAK: Abstract out the generation of the Entry card classes. * TWEAK: Ensure the `permission_callback` parameter is set when registering REST API Endpoints. * TWEAK: Add check to prevent index not found notice. * TWEAK: Implement limit on the Team Block to ensure page can be saved by WP. * TWEAK: Add `'data-skip-lazy="1"` if lazy loading is `false`. * TWEAK: Move cnArray to a namespaced class and stub out files and autoloading for other utility classes and functions to consolidate and better organize the codebase. * TWEAK: Remove use of a few deprecated React components in the Team and Upcoming blocks. * TWEAK: Add `lodash` as a script dependency for the frontend script bundle. * TWEAK: Finally deprecate the cnOutput class because it was ambiguous. * TWEAK: Bumped "Tested up to:" to version 5.5 in readme.txt. * TWEAK: Bump "Requires at least:" to version 5.0 in readme.txt. * TWEAK: Update EntryName component with a `asPermalink` attribute. * TWEAK: Update the frontend script dependencies to support the Recently View Content Block. * TWEAK: Add placeholder support to the Entry Image React component. * TWEAK: Add default image width/height for unknown image types to prevent undefined index notifications. * TWEAK: Deprecate several template actions, replacing them with namespaced hook handles. * BUG: Correct another instance of implode "Passing glue string after array is deprecated." notice. * BUG: Correct the style applied to the `.cn-image-none` class in the related carousels. * DEV: Remove extra newline. * DEV: Include JavaScript Cookie v2.2.1 as a vendor library. * DEV: Configure webpack entry point to create the frontend javascript bundle. * DEV: Register and enqueue the frontend javascript bundle with WordPress. * DEV: Remove commented code. * DEV: Rename variable to camelCase. * DEV: Remove comment block from CSS. * DEV: phpDoc updates. * DEV: Update Travis testing matrix. * DEV: Update min/max WP version in requirements check. * DEV: Update the dist files. = 9.9.1 07/22/2020 = * TWEAK: Set the related Content Block margin to 0 to ensure margins are not inherited from theme, plugins, and such. * BUG: Correct usage of the `cn_load_template` filter. * DEV: Update the dist files. = 9.9 07/17/2020 = * FEATURE: [Introduce the Entries Nearby Content Block.](https://connections-pro.com/connections-9-9-nearby-entries-content-block/) * NEW: Introduce `cnArray::push()` helper method. * TWEAK: Make the image not available placeholder responsive friendly while retaining the aspect ratio. * TWEAK: Add a few basic styles to the Entry Actions vs relying on theme styling for lists. * TWEAK: Add a few basic styles for the Content Block layout for better more consistent presentation. * TWEAK: Introduce additional related carousel parameters that can be adjusted via a filter. * TWEAK: Add CSS to make the "image not available" placeholder responsive friendly while maintaining aspect ratio. * TWEAK: Make a few carousel CSS selectors a bit more specific to help ensure they are not easily overridden. * TWEAK: If the Content Block order has not yet been saved, fetch them via `cnOptions::getContentBlocks()`. * TWEAK: Flipped the logic when Content Blocks should be included/excluded. * TWEAK: Remove the hardcoded limit with querying related Entries. Instead, use the supplied attribute. * BUG: Prevent output of empty heading tags in Content Blocks. * BUG: The `$blocks` variable should always be defined. * OTHER: Readme.txt tweaks. * DEV: Update the dist files. = 9.8.2 07/11/2020 = * TWEAK: Remove unnecessary `trim` of Content Block IDs. * TWEAK: Simplify logic for excluding/including Content Blocks. * TWEAK: Include/exclude Content Blocks before setting up the block ID to avoid unnecessary processing. * TWEAK: Simplify the default parameters for Content Blocks. = 9.8.1 07/09/2020 = * BUG: Correct logic for the include parameter for Content Blocks. * BUG: Content Blocks need to default to the order of the `active` blocks and not the `order` of the `active` blocks. * OTHER: Add link to blog post in changelog. * I18N: Update POT file. * I18N: Update MO files. = 9.8 07/07/2020 = * FEATURE: [Add 10 "Related To Entry" Content Blocks.](https://connections-pro.com/connections-9-8-related-content-blocks/) * NEW: Add `id__not_in` parameter to `cnRetrieve::entries()` * NEW: Introduce `cnUtility::numHash()`. * NEW: Introduce the `cn_entry_query_random_seed` filter. * NEW: Add Entry helper functions class. Includes the `relatedTo()` helper method. * TWEAK: Pass the entry object in the bio, excerpt and note filter. * TWEAK: `Content_Block::content()` should echo not return string. * TWEAK: Correct `implode()` parameters. * TWEAK: Make carousels show one slide and scroll one slide in mobile. * TWEAK: Ensure uniform Content Block ID attribute when rendered via action or thru the Content Block API. * TWEAK: Set called class short-name property when constructing a Content Block to utilize in dynamic hooks. * TWEAK: Update hooks to make them dynamic utilizing the called class short-name. * TWEAK: Move the HTML markup from the `heading()` method in the Content Block to the `render()` method for uniformity with other class methods. This also allows for easier setting of the heading parameter to allow for dynamic Content Block headings. * TWEAK: Update the Static Google Maps Content Block to utilize the Entry helper functions class. * OTHER: Correct misspelling. * DEV: Add phpDoc. * DEV: Update rinvex/countries to version 7.0.1. = 9.7.2 06/24/2020 = * BUG: Correct Map Block permissions. * DEV: Standardize namespace and move files to correct folders. = 9.7.1 06/23/2020 = * TWEAK: Strict comparison checks. * TWEAK: Compute the size beforehand, and not on each iteration. * TWEAK: Ensure Google Maps API Key is a string before setting the key as class property. * TWEAK: Check to ensure `connections_options` is an array before setting class property. * TWEAK: Check to ensure email template is object. * OTHER: Remove use of unnecessary variable for return. * OTHER: Remove unused variable. * OTHER: Correct misspelling. * OTHER: Update URL to license. * DEV: phpDoc corrections. * DEV: Fix code format. * DEV: Suppress IDE HTML tag warnings. = 9.7 06/19/2020 = * NEW: Introduce the `cn_csv_export_suspicious_value_prefix` filter. * TWEAK: Fix for Team Block which in some scenarios would fail to display in the Block Editor. * TWEAK: Adjust the Settings API filters to `20`. * TWEAK: Refactor the new Content Blocks API to tidy up the code making it more maintainable and extensible. * TWEAK: Refactor the Entry categories utilizing the Content Block API. * TWEAK: Refactor the static map and interactive map to utilize the Content Block API. * SECURITY: Add protection against CSV Injection, also known as Formula Injection. thx @rudSarkar for reporting! * BUG: Correct bug which could result in PHP error when all social network types are deselected. * BUG: For button for database upgrade start. * BUG: Correct include/exclude logic when displaying the Content Blocks. * OTHER: Correct typo. * DEV: Update ForceUTF8 to 2.0.4. * DEV: Add @todo. * DEV: Update `dist` files. * DEV: phpDoc update. = 9.6 05/20/2020 = * NEW: Introduce `cnEntry::getDeletePermalink()` and `cnOutput::deletePermalink()`. * NEW: Add `delete` to supported permalink types in `cnURL::permalink()`. * NEW: Introduce the Content Blocks API. * NEW: Introduce the Custom Fields, Entry Meta and Entry Management Content Blocks. * TWEAK: Correct `implode()` parameter usage for PHP 7.4 so it does not generate a warning. * TWEAK: Check for array key to prevent PHP warning. * TWEAK: Use `is_file()` instead of `file_exists()` to test if image exists. * TWEAK: Set `font-style` of brand icons to `normal` to help prevent theme's from making them bold and/or italic. * TWEAK: Further improve the REST API by better defining the schema, support the `_fields` parameter to reduce response size while improving response time and adding support for the `DELETE` request to delete an Entry. * TWEAK: Improve the Carousel block by querying the REST for only the required fields. * TWEAK: Refactor `cnOutput::getContentBlock()` to utilize the Content Block API. * TWEAK: Remove the hardcoded "Custom Fields" so it can be refactored using the Content Block API. * BUG: Pass expected parameters for the `setted_transient` and `set_transient_{$key}` actions. * BUG: Define variable before use. * OTHER: Correct typo. * OTHER: Correct misspelling. * DEV: Update npm and dev dependencies. * DEV: phpDoc corrections. = 9.5.1 04/28/2020 = * NEW: Introduce the `getEditPermalink()` and the `editPermalink()` functions. * TWEAK: Add permalink root to attributes in the `cn_permalink` filter. * BUG: Fix instances where "Sorry, you are not allowed to access this page." error message would display when attempting to edit a category on the Connections Categories admin page. * DEV: phpDoc updates. = 9.5 04/20/2020 = * NEW: Introduce the `[cn-entry]` shortcode. * TWEAK: Do not render the character section heads if the character index has been disabled. == Upgrade Notice == = 9.5 = It is recommended to backup before updating. Requires WordPress >= 4.7.12 and PHP >= 5.6.20 PHP version >= 7.1 recommended. = 9.5.1 = It is recommended to backup before updating. Requires WordPress >= 4.7.12 and PHP >= 5.6.20 PHP version >= 7.1 recommended. = 9.6 = It is recommended to backup before updating. Requires WordPress >= 4.7.12 and PHP >= 5.6.20 PHP version >= 7.1 recommended. = 9.7 = It is recommended to backup before updating. Requires WordPress >= 4.7.12 and PHP >= 5.6.20 PHP version >= 7.2 recommended. = 9.7.1 = It is recommended to backup before updating. Requires WordPress >= 4.7.12 and PHP >= 5.6.20 PHP version >= 7.2 recommended. = 9.7.2 = It is recommended to backup before updating. Requires WordPress >= 4.8 and PHP >= 5.6.20 PHP version >= 7.2 recommended. = 9.8 = It is recommended to backup before updating. Requires WordPress >= 4.8 and PHP >= 5.6.20 PHP version >= 7.2 recommended. = 9.8.1 = It is recommended to backup before updating. Requires WordPress >= 4.8 and PHP >= 5.6.20 PHP version >= 7.2 recommended. = 9.8.2 = It is recommended to backup before updating. Requires WordPress >= 4.8 and PHP >= 5.6.20 PHP version >= 7.2 recommended. = 9.9 = It is recommended to backup before updating. Requires WordPress >= 4.8 and PHP >= 5.6.20 PHP version >= 7.2 recommended. = 9.9.1 = It is recommended to backup before updating. Requires WordPress >= 4.8 and PHP >= 5.6.20 PHP version >= 7.2 recommended. = 9.10 = It is recommended to backup before updating. Requires WordPress >= 5.0 and PHP >= 5.6.20 PHP version >= 7.2 recommended. = 9.11 = It is recommended to backup before updating. Requires WordPress >= 5.0 and PHP >= 5.6.20 PHP version >= 7.2 recommended. = 9.12 = It is recommended to backup before updating. Requires WordPress >= 5.0 and PHP >= 5.6.20 PHP version >= 7.2 recommended. = 9.13 = It is recommended to backup before updating. Requires WordPress >= 5.0 and PHP >= 5.6.20 PHP version >= 7.2 recommended. = 9.14 = It is recommended to backup before updating. Requires WordPress >= 5.0 and PHP >= 5.6.20 PHP version >= 7.2 recommended. = 9.15 = It is recommended to backup before updating. Requires WordPress >= 5.0 and PHP >= 5.6.20 PHP version >= 7.2 recommended. = 9.16 = It is recommended to backup before updating. Requires WordPress >= 5.0 and PHP >= 5.6.20 PHP version >= 7.2 recommended. = 9.17 = It is recommended to backup before updating. Requires WordPress >= 5.0 and PHP >= 5.6.20 PHP version >= 7.2 recommended. = 10.0 = It is recommended to backup before updating. Requires WordPress >= 5.0 and PHP >= 5.6.20 PHP version >= 7.2 recommended. = 10.1 = It is recommended to backup before updating. Requires WordPress >= 5.0 and PHP >= 5.6.20 PHP version >= 7.2 recommended.