=== Connections Business Directory === Contributors: shazahm1@hotmail.com Donate link: http://connections-pro.com/ Tags: addresses, address book, addressbook, bio, bios, biographies, business, businesses, business directory, business-directory, business directory plugin, directory widget, chamber of commerce, church, contact, contacts, connect, connections, directory, directories, hcalendar, hcard, ical, icalendar, image, images, list, lists, listings, member directory, members directory, members directories, microformat, microformats, page, pages, people, profile, profiles, post, posts, plugin, shortcode, staff, user, users, vcard, wordpress business directory, wordpress directory, wordpress directory plugin, wordpress business directory, wordpress local directory plugin Requires at least: 4.0 Tested up to: 4.2 Stable tag: 8.3.2 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html An easy to use directory plugin to create an addressbook, business directory, staff directory or church directory. == Description == [Homepage](http://connections-pro.com/) | [Showcase](http://connections-pro.com/showcase/) | [Documentation](http://connections-pro.com/documentation/plugin/) | [Support](http://connections-pro.com/support/) | [Templates](http://connections-pro.com/templates/) | [Extensions](http://connections-pro.com/extensions/) Quite simply, Connections Business Directory is the [best directory plugin available](https://wordpress.org/support/view/plugin-reviews/connections?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 for their directory needs. You can use Connections to create a simple address book, maintain a staff directory and run a business directory or link directory. Connections 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 has to offer... = Features = * **Seamless integration** with WordPress. * **[Highly rated support.](https://wordpress.org/support/view/plugin-reviews/connections?filter=5)** * [Continuously updated](https://wordpress.org/plugins/connections/changelog/) bringing you new features for free. * The photo and logo images are fully responsive with **HiDPI (Retina) display support**. * Dashboard admin page where you can see at a glance today's anniversaries and birthdays as well as upcoming anniversaries and birthdays. * Multiple entry types from which to choose. They are 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 church directories. * **Repeatable fields** for address, phone numbers, email, IM, social media, links and dates. * 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. * **Scalable,** manage directories which [contain hundreds of thousands of entries](https://wordpress.org/support/topic/scales-to-at-least-250000-entries). * **Category support.** Categories can be hierarchical and entries can be assigned to any number of categories. * **Role capability support**. * Displaying your entries on the frontend is as simple as putting a shortcode on a page. Don't let this simplicity fool you. The shortcode provides a dizzying array of options that are just too numerous to list. To learn more, [go here](http://connections-pro.com/documentation/plugin/shortcodes/). * **SEO.** Every entry outputs following the [hCard](http://microformats.org/wiki/hcard) spec. Soon to be updated to following Schema.org. * **[Extensible](http://connections-pro.com/extensions/)** and developer friendly. * Robust **templating support**. Several basic templates are provided to get you started with many more [premium templates available](http://connections-pro.com/templates/). = Extensible = Here are some great **free extensions** (with more on the way) that enhance your experience with the business directory: **Utility** * [Toolbar](http://wordpress.org/plugins/connections-toolbar/) :: Provide quick links to the admin pages from the admin bar. * [Login](http://wordpress.org/plugins/connections-business-directory-login/) :: Provides a simple to use login shortcode and widget. **Custom Fields** * [Business Hours](http://wordpress.org/plugins/connections-business-directory-hours/) :: Add the business open hours. * [Income Level](http://wordpress.org/plugins/connections-business-directory-income-levels/) :: Add an income level. * [Education Level](http://wordpress.org/plugins/connections-business-directory-education-levels/) :: Add an education level. * [Languages](http://wordpress.org/plugins/connections-business-directory-languages/) :: Add languages spoken. **Misc** * [Face Detect](https://wordpress.org/plugins/connections-business-directory-face-detect/) :: Applies face detection before cropping an image. **Premium Extensions** * [Authored](http://connections-pro.com/add-on/authored/) :: Displays a list of blog posts written by the entry on their profile page. * [Contact](http://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](http://connections-pro.com/add-on/csv-import/) :: Bulk import your data in to your directory. * [Custom Category Order](http://connections-pro.com/add-on/custom-category-order/) :: Order your categories exactly as you need them. * [Form](http://connections-pro.com/add-on/form/) :: Allow site visitor to submit entries to your directory. Also provides frontend editing support. * [Link](http://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](http://connections-pro.com/add-on/rot13-email-encryption/) :: Protect email addresses from being harvested from your business directory by spam bots. * [SiteShot](http://connections-pro.com/add-on/siteshot/) :: Show a screen capture of the entry's website. * [Widget Pack](http://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. = Developer Friendly = * Open development on [Github](https://github.com/shazahm1/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. The 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](http://connections-pro.com/2014/05/04/quicktip-custom-css/) * [Custom CSS for Templates](http://connections-pro.com/2014/05/07/quicktip-custom-css-templates/) * [Custom Template Override File](http://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 [86% Complete] * Catalan [76% Complete] * Croatian (Croatia) [35% Complete] * Danish [46% Complete] * Danish (Denmark) [40% Complete] * Dutch (Netherlands) [71% Complete] * French (France) [85% Complete] * German (Germany) [68% Complete] * Hebrew (Israel) [88% Complete] * Hungarian (Hungry) [75% Complete] * Italian (Italy) [45% Complete] * Norwegian [18% Complete] * Persian (Iran) [75% Complete] * Polish (Poland) [76% Complete] * Portuguese (Brazil) [72% Complete] * Portuguese (Portugal) [34% Complete] * Romanian (Romania) [99% Complete] * Russian (Russia) [39% Complete] * Serbian (Latin) [3% Complete] * Spanish (Latin America) [71% Complete] * Spanish (Spain) [88% Complete] * Thai [1% Complete] * Turkish (Turkey) [83% Complete] == Credits: == * This plugin was based off LBB, ["Little Black Book"](http://wordpress.org/extend/plugins/lbb-little-black-book/); which was based on [Addressbook](http://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/). * Image uploading and processing done by the class.upload.php by [Colin Verot](http://www.verot.net/php_class_upload.htm). * Update Notice in plugin admin inspired by Changelogger 1.2.8 by [Oliver Schlöbe](http://wordpress.org/extend/plugins/changelogger/). * TimThumb by [Ben Gillbanks and Mark Maunder](http://code.google.com/p/timthumb/). * Screen Options class by [Janis Elsts](http://w-shadow.com/blog/2010/06/29/adding-stuff-to-wordpress-screen-options/). * spin.js by [Felix Gnass](http://fgnass.github.com/spin.js/). * $.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/). * Preloading GIF generated by [Preloaders.net](http://www.preloaders.net/). * 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 Dashboard admin page. A snapshot of important information about the directory. 2. The Manage admin page. Here you can manage all the entries within the address book. 3. The Add New Entry admin page. From here you can add new entries to the addressbook. 4. The Categories admin page. Add as many categories as you wish to the directory. Categories do support parent/child relationships. 5. The Templates admin page. Here you choose which template that the business directory should use when displaying the directory. 6. The Settings admin page where you can configure the business directory options. 7. The Role and Capabilities admin page. Here you can assign which roles have which capabilities in viewing and managing the directory. [Connections running on live websites can be found here.](http://connections-pro.com/showcase/) == Installation == [Installation instructions can be found here.](http://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](http://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](http://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. = Requirements = * **WordPress version:** >= 3.8 * **PHP version:** >= 5.2.4 * **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. == Frequently Asked Questions == [FAQs can be found here.](http://connections-pro.com/faq/) = How do I display the business directory on my site? = We have a [QuickStart](http://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. = 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](http://connections-pro.com/documentation/connections/translation/). == Changelog == = 8.3.2 07/14/2015 = * BUG: Fix PHP ternary to be compatible with older version of PHP. This could cause the Connections : Tools admin page to not display. * BUG: Correct anchor target when a link is linked to the image or logo. * BUG: Correct CN_Email_Log_List_Table::column_default() to be compatible with parent::column_default(). * BUG: Remove indentation comment from displaying in the System Information. * TWEAK: Ensure data for registering a log type is valid before attempting to register it. * TWEAK: Ensure data for registering an email log type is valid before attempting to register it. * DEV: Prettify class cnImage() to better meet coding standards. = 8.3.1 07/10/2015 = * BUG: Fix PHP error `Parse error: syntax error, unexpected T_STATIC in ../wp-content/plugins/connections/includes/class.utility.php on line 1866` on older versions of PHP. = 8.3 07/09/2015 = * FEATURE: Add the Tools admin page with the System Info tab with the ability to email and/or share a secret URL to share the system info. * FEATURE: Introduce the ability to export/import the settings. * FEATURE: Introduce the ability for an admin to view and manage the email logs. * NEW: Introduce cnString::quickRandom(). * NEW: Introduce cnString::random(). * NEW: Introduce cnFunction::decodeJSON(). * NEW: Introduce cnSettingsAPI::getAll(), cnSettingsAPI::download() and cnSettingsAPI::import(). * NEW: Introduce cnLog::delete(). * NEW: Introduce cnLog::views(). * COMPATIBILITY: Include theme compatibility file with a filter to make images and logos compatible in the ProPhoto theme. * BUG: Fix bug in cnOutput::getContentBlock() that prevented the use of the content block name if the content block was registered as a single entry view content block. * BUG: Fix bug throughout cnEmail referring to a nonexistent charSet var. * BUG: Correct param default in cnAdminActions::setEntryStatus(). * BUG: Fix reference bug in cnLog::deleteConnected(). * TWEAK: Change cnFormatting::toYesNo() to a static method. * TWEAK: Do not create the .htaccess file in the TimThumb folder since it is no longer needed. * TWEAK: Move the vCard download template_redirect action callback function to static method cnvCard::download(). * TWEAK: Remove the dead code in the deactivation callback. * TWEAK: Remove the Dashboard System widget. * TWEAK: Remove use of the cnvCard class on the Manage admin page since it is no longer needed. * TWEAK: Refactor cnOutput::getPhoneNumberBlock() to cleanup code and added a couple new filters. * TWEAK: Update cnLog::getConnected() to support getting logs of multiple types. * TWEAK: Update cnLog::getCount() to support getting log count of multiple types. * TWEAK: Make cnLog::types() a public method. * OTHER: Correct misspellings in inline code comments. * I18N: Update the POT file. * I18N: Update all MO files. * DEV: Include the Browser class by Chris Schuld. * DEV: phpDoc fixes. * DEV: Add phpDoc for the vars being extracted in cnAdminMenu::menu(). * DEV: Use Yoda conditions. * DEV: Prettify cnvCard() to better meet coding standards. * DEV: Stub phpDoc for cnAdminAction class. = 8.2.10 06/26/2015 = * FEATURE: Allow admins and editors (roles with unfiltered_html capability) to use the Media Manager to insert images in the Bio and Notes fields. * NEW: Introduce the new stateful cnLog(). * NEW: Introduce logging of email sent using cnEmail(). This will enable logging of email sent via Contact and Form. * COMPATIBILITY: Add support for the WP Mail Logging plugin. * COMPATIBILITY: Add support for the Email Log plugin. * COMPATIBILITY: Add support for the Log Emails plugin. * COMPATIBILITY: Prevent WP Super Cache from purging the page cache when a log in added/updated by cnLog(). * COMPATIBILITY: Prevent WP Rocket from purging the page cache when a log in added/updated by cnLog(). * BUG: Ensure bio and notes fields are unslashed before displayed. * BUG: Fix admin sortable repeatable fieldsets. * BUG: Fix limit bug when retrieving phone numbers by type. * BUG: Fix limit bug when retrieving email addresses by type. * BUG: Correct the defaults array initialization in cnOutput::getAddressBlock(). * BUG: Remove unused param in cnOutput::getLogoImage(). * BUG: Remove unused global cnOutput::getImage(). * BUG: Properly init arrays throughout cnOutput(). * TWEAK: Add limit support when retrieving addresses. * TWEAK: Remove use of deprecated args sanitation function in cnOutput::getAddressBlock(). * TWEAK: Remove use of deprecated function in cnOutput::getImage(). * TWEAK: Remove use of deprecated args sanitization function throughout cnOutput(). * TWEAK: Rename cnLog() to cnLog_Stateless(), move it to its own folder/file and update its usage in cnImage(). * TWEAK: Refactor cnEmail::send(), break it apart into smaller more maintainable methods. * I18N: Update POT file. * I18N: Update all MO files. * I18N: Remove orphaned MO file. * DEV: Cleanup code alignment in cnOutput::getAddressBlock(). * DEV: Fix code alignment of defaults array in cnOutput::getImage(). * DEV: Correct several phpDoc params errors in cnOutput(). * DEV: Adjust filters and actions in cnEmail::send() for better compatibility. * DEV: Prettify code in cnDate() to better meet coding standards. = 8.2.9 06/19/2015 = * FEATURE: Bio and Notes fields now supports oEmbed. * NEW: Add new helper function cnImage::sideload(). * NEW: Introduce cnFunction::parseStringList(). * NEW: Introduce cnFormatting::prepareINPlaceholders(). * BUG: Default attributes for the slider field type were not properly being set in cnMetabox_Render::fields(). * BUG: Remove unnecessary string comparisons before concatenation. * TWEAK: Add support for lifetime support license keys. * TWEAK: Change several instances of hard coded directory separators to the the PHP constant instead. * TWEAK: Add thank you to admin footer. * TWEAK: Add support for the `action` override option for wp_handle_upload() in wrapper function cnFile::upload(). * TWEAK: Add the `cn_upload_file_options` filter to cnUpload::file() to allow the default overrides passed to wp_handle_upload() to be overridden. * TWEAK: Remove dead code in cnMetabox_Render::fields() in the `rte` field type. * TWEAK: Update the readme.txt file. * TWEAK: Use cnSanitize::html() for the rte field type in cnMetabox_Render::fields(). * TWEAK: Use cnSanitize::quicktag() for the quicktag field type in cnMetabox_Render::fields(). * TWEAK: Do not run the string thru wp_kses_post() if the current user has the unfiltered_html capability in cnSanitize::html(). * TWEAK: Do not run the string thru wp_kses_data() if the current user has the unfiltered_html capability in cnSanitize::quicktag(). * TWEAK: Apply all the filters applied to the post content to both the bio and notes fields when being displayed. * TWEAK: Remove all usages of deprecated admin message functions. * TWEAK: Remove unnecessary call to plugin_basename() when defining plugin constants. * TWEAK: Utilize cnFunction::parseStringList() throughout cnEntry to remove code duplication. * TWEAK: Simplify ternary in cnEntry::setAddresses(). * OTHER: Correct a couple misspelling in the phpDoc for cnMetabox_Render::fields(). * DEV: Add support for the bio and notes fields in cnSanitize::field(), matching the core WP filters for post_content on the content_save_pre hook. * DEV: Refactor cnEntry::getBio() to use cnSanitize::field(). * DEV: Refactor cnEntry::setBio() to use cnSanitize::field(). * DEV: Refactor cnEntry::getNotes() to use cnSanitize::field(). * DEV: Refactor cnEntry::setNotes() to use cnSanitize::field(). * DEV: Refactor cnOutput::getNotesBlock(), removing direct usage of WP_Embed::run_shortcode() and do_shortcode(). * DEV: Refactor cnOutput::getBioBlock(), removing direct usage of WP_Embed::run_shortcode() and do_shortcode(). * DEV: Refactor loadTextDomain() to be more variable for reuse. * DEV: Move cnFormatting::replaceWhatWith() to cnString::replaceWhatWith(). * DEV: Move cnFormatting::normalizeString() to cnString::normalizeString(). * DEV: Move cnFormatting::preslashit() and cnFormatting::unpreslashit() to cnURL. * DEV: Move cnFormatting::excerpt() to cnString::excerpt(). * DEV: phpDoc usages of the global $wpdb in many of the methods in cnRetrieve. * DEV: Add support for the address fields in cnSanitize::field(). * DEV: Add $context param to cnEntry::setAddresses(). * DEV: Cleanup phpDoc for cnEntry::setAddresses(). * DEV: Complete refactor of cnEntry::getAddresses() for better readability and code standards compliance. * DEV: Add the $context param to cnEntryMetabox::address(). * DEV: Cleanup phpDoc of cnEntryMetabox::address(). * DEV: Refactor cnRetrieve::setQueryVisibility() for better readability and code standards compliance. * DEV: Complete refactor of cnRetrieve::address() for better readability, code standards compliance and greater flexibility for defining queries. * DEV: Cleanup phpDoc for cnRetrieve::setQueryStatus(). * DEV: Update phpDoc for cnRetrieve::addresses(). = 8.2.8 06/05/2015 = * BUG: Escape URL for search message clear message button. * BUG: Refactor cnTemplate::locate() to fix inconsistencies in the priority loading order of template override resource files. * TWEAK: Remove use of deprecated function in cnTemplate::filenames(). * TWEAK: Add support for the `license_not_activable` error message response from EDD-SL. * TWEAK: Add support for base name in cnLocate when searching for template files. * TWEAK: Add a filter to cnURL::permalink() so the URL can be filtered. * TWEAK: Add a filter to the URL for cnTemplatePart::searchingMessage(). * TWEAK: Set the default template type to 'all' and only override if the `list_type` option is set in cnTemplateFactory::loadTemplate(). * TWEAK: Clear the options/transient caches when the permalink structure is changed. * TWEAK: Remove the notranslate class from a link title. * TWEAK: Remove use of deprecated function in cnLocate::fileNames(). * TWEAK: Prefix the contact-block class. * TWEAK: Tweaks to cnOutput::getLinkBlock() so filters to output could be added. * TWEAK: And additional filters to cnOutput::getEmailAddressBlock(). * TWEAK: Tweak to add a bit of padding to the metabox table rows. * TWEAK: Tweak logic in cnURL::permalink() to properly id the page_id query var to the site's static home page when the directory and/or widgets are added to the static home page. * TWEAK: Change cnTemplatePart::echoOrReturn() to be a protect function. * TWEAK: Move the before/after action list logic to their own callback functions and add them to the cn_action_list_{before|after} action hooks. * TWEAK: Add the cn_list_{before|after}_body action hooks. * TWEAK: Allow the results list body to be overridden by using a template override file in cnTemplatePart::body(). * TWEAK: Remove unnecessary PHP_EOL in cnTemplatePart::body(). * TWEAK: Assign get_query_var('cn-view') to the $view var for reuse in switch in cnShortcode::view(). * TWEAK: Make the shortcode view switch pluggable in cnShortcode::view() to allow new views to be registered and processed. * TWEAK: Change the default view from card to list to cleanup nomenclature for the forthcoming List View extension. * OTHER: Fix misspelling of search in phpDoc. * OTHER: Fix misspelling in code comment in cnTemplate::getPath(). * OTHER: Fix misspelling in phpDoc. * OTHER: Correct misspelling in phpDoc in cnLocate. * OTHER: Fix misspellings in code comment. * DEV: Stub phpDoc for class cnTemplate. * DEV: Fix phpDoc for cnTemplate::__construct(). * DEV: Cleanup phpDoc for cnTemplate::getAuthorURL(). * DEV: Cleanup phpDoc for cnTemplate::getThumbnail(). * DEV: Add a no inspection flag for phpStorm. * DEV: Add basic phpDoc to the Names template. * DEV: Refactor cnOutput::getEmailAddressBlock(). Cleanup code and add additional filters. * DEV: Refactor cnTemplatePart::listAction_ViewAll() to be more readable and add default options so the permalink would be properly resolve to the correct page. * DEV: Refactor cnTemplatePart::entryAction_Back() to be more readable by flowing options on multiple lines. = 8.2.7 05/12/2015 = * BUG: Add missing $default_term property to CN_Term_Admin_List_Table. * BUG: Set maximum character for indexes to 191 when creating indexes to support WordPress 4.2 move to utf8mb4. * BUG: Correct LinkedIn spelling. * BUG: Fix undefined index notice when updating entry meta. * TWEAK: Small schema tweaks when creating the db taxonomy tables. * TWEAK: Add support for WP Mailto Links plugin via a CSS tweak. * OTHER: Fix misspelling of urlencode(). = 8.2.6 05/01/2015 = * FEATURE: Introduce cnEntry_DB. * BUG: Correct usage of defined in cnRetrieve::entries() when checking for DOING_AJAX. * BUG: Removed couple unused variables in cnRetrieve:: search(). * BUG: Remove extra trailing semi-colon in cnRetrieve::search(). * BUG: Properly init the $defaults array in many of the methods in cnEntry. * BUG: Fix bug in cnEntry::Addresses() where incorrect address array was being referenced during argument sanitation and being passed via a filter. * BUG: Remove unused variable in cnEntry::processLegacyLogo(). * BUG: Properly init the $where array in cnEntry::update(). * BUG: Fix return value in cnSanitize::options(). * BUG: Fix bug with the duplicate term check when updating a term. * BUG: Fix the value of the unique ID field of am IM ID. * BUG: Remove unused var in cnTemplatePart::entryActions(). * BUG: Remove unused var in cnTemplatePart::JSON(). * BUG: Remove unused global in cnOutput::getLogoImage(). * BUG: Remove a couple unused vars in cnOutput. * BUG: cnTemplatePart::echoOrReturn() should be declared as static. * BUG: Only attempt to create FULLTEXT indexes if FULLTEXT search is enabled. * BUG: Init array in cnTemplatePart::searchMessage(). * BUG: Fix social media field label when adding a new social media URL. * TWEAK: Prune the changelog section of the readme.txt file. * TWEAK: Update the plugin shortcode description in the readme.txt file. * TWEAK: Remove error suppression in cnRegisterSettings::setSearchFields(). * TWEAK: Simplify several ternaries used within cnEntry. * TWEAK: Use Yoda Condition checks. * TWEAK: Line wrap long array in cnEntry::setAddresses(); * TWEAK: Fix several instance of incorrect array alignment in cnEntry. * TWEAK: Refactor cnEntry::getOriginalImageURL() to be cleaner. * TWEAK: Be more succinct in if statement in cnEntry::getFormattedTimeStamp(). * TWEAK: Use cnURL::prefix() to ensure social network URL rather than regex. * TWEAK: Fix misspelling in var name and update usages in cnEntry::processLegacyImages(). * TWEAK: Refactor cnEntry::update() to use $wpdb->update() rather than $wpdb->query() when updating the entry table. * TWEAK: Refactor cnEntry::save() so when saving the entry so wpdb::insert() is utilized rather than wpdb::query(). * TWEAK: Change the name of Cyrus Island to just Cyrpus to be more correct. * TWEAK: Refactor cnEntry::update() to utilize cnEntry_DB. * TWEAK: Use Yoda condition in cnEntry::save(). * TWEAK: Refactor cnEntry::save() to use cnEntry_DB. * TWEAK: Do not show wpdb insert/update errors in cnEntry::save() and cnEntry::update(). * TWEAK: Return empty string for list actions if it has been disabled via the settings. * TWEAK: Return empty string for entry actions if it has been disabled via the settings. * TWEAK: Return an empty string for the category description if it has been disabled via the settings. * TWEAK: Minor code cleanup of cnTemplatePart::searchMessage(). * TWEAK: Return empty string in cnTemplatePart::noResults(). * TWEAK: De-duplicate code to set entry defaults based on entry type before saving/updating. * TWEAK: Remove usage of global $connections var in cnEntry::update(). * TWEAK: Fix check to ensure $template is an object of cnTemplate in cnTemplatePart::noResults(). * TWEAK: Standardize output logic of most methods in cnOutput to use cnOutput::echoOrReturn() to reduce duplicate code usage. * TWEAK: Replace instances of cnFormatting::normalizeString() to use cnFormatting::replaceWhatWith(). * TWEAK: Replace all instances of preg_replace() with cnFormatting::replaceWhatWith() to remove code duplication. * TWEAK: Cleanup web page source code whitespace output from cnOutput to make it more readable. * TWEAK: Simply ternaries in cnOutput::getSocialMediaBlock(). * TWEAK: Return empty string in several instances in cnOutput rather than nothing or NULL so output is consistent across all methods. * TWEAK: Cleanup code alignment in cnOutput::getCardTelType(). * TWEAK: Cleanup code alignment in cnOutput::getCardAdrType(). * TWEAK: Refactor methods in cnTemplatePart to use cnTemplatePart::echoOrReturn() to remove code duplication and simplify output logic. * TWEAK: Simplify cnTemplatePart::formClose(). * TWEAK: Cleanup web page source code whitespace output from cnTemplatePart to make it more readable. * TWEAK: Remove unnecessary var init in cnTemplatePart::noResults(). * TWEAK: Remove unnecessary var init in cnTemplatePart::submit(). * TWEAK: Fix code alignment in cnTemplatePart::header(). * TWEAK: Fix code alignment in cnTemplatePart::cards(). * TWEAK: Fix code alignment in cnTemplatePart::listActions(). * TWEAK: Fix code alignment in cnTemplatePart::entryActions(). * TWEAK: Fix code alignment in cnTemplatePart::category description. * TWEAK: Remove use of deprecated function in cnTemplatePart::categoryDescription(). * TWEAK: Fix code alignment in cnTemplatePart::JSON(). * TWEAK: Fix code alignment in cnTemplatePart::noResults(). * TWEAK: Fix several default param values in cnTemplatePart. * TWEAK: Fix default param value in cnOutput::getAnniversaryBlock(). * TWEAK: Fix default param value in cnOutput::getBirthdayBlock(). * TWEAK: Fix code alignment in cnTemplatePart:cards(). * TWEAK: Fix code alignment in cnTemplatePart::footer(). * TWEAK: Correct type check in cnOutput::getBirthdayBlock() since default param value was changed. * TWEAK: Simplify cnEntry::setPropertyDefaultsByEntryType(). * OTHER: Correct a misspelling in a code comment in cnRetrieve::entries(). * OTHER: Correct misspelling of empty. * OTHER: Correct misspelling of character. * OTHER: Correct misspelling if encryption. * DEV: Fix a few exclude errors in .gitattributes. * DEV: Add phpDoc to global $wpdb in cnRetrieve::search(). * DEV: A few minor fixes to the phpDoc for several methods in cnRetrieve. * DEV: Add phpDoc to global $wpdb in cnRegisterSettings::setSearchFields(). * DEV: Minor fixes to phpDoc for cnRegisterSettings::setSearchFields(). * DEV: Update the phpDoc for many of the class properties of cnEntry. * DEV: Remove many extra blanks lines in cnEntry. * DEV: Fix code spacing in several places in cnEntry. * DEV: Update several phpDoc of several methods in cnEntry. * DEV: Add space between foreach and opening paren. * DEV: Delete some commented out dead code in cnEntry::update(). * DEV: Fix a misspelling in phpDoc for cnSanitize::checkbox(). * DEV: Fix @param var name to match name of actual variable being used. * DEV: Add cnSanitize::id(). * DEV: Correct indenting of closing bracket. * DEV: Add @todo in cnEntry to remove the use of a several properties in connectionsLoad. * DEV: Correct return type on cnTemplatePart::entryActions(). * DEV: Cleanup phpDoc for cnTemplatePart::categoryDescription(). * DEV: Cleanup phpDoc for cnTemplatePart::characterIndex(). * DEV: Cleanup phpDoc for cnTemplate::noResults(). * DEV: Doc global vars in cnTemplatePart::pagination(). * DEV: Doc global vars in cnTemplate::categoryLinkDescendant(). * DEV: Correct return type in cnTemplatePart::JSON(). * DEV: Add phpStorm no inspection flag for unused var in cnTemplatePart::cards(). * DEV: Add new helper method cnEntry_Output::echoOrReturn(). * DEV: Change up logic in cnOutput::echoOrReturn(). * DEV: Many little cleanup changes to phpDoc in cnOutput. * DEV: Add phpDoc to global var $connections in cnOutput::getPhoneNumberBlock(). * DEV: Add phpDoc to a couple instances of $wp_embed in cnOutput. * DEV: Add echoOfReturn() to cnTemplatePart. * DEV: Few minor phpDoc fixes in cnTemplatePart. * DEV: Add blank line to a couple methods in cnTemplatePart. * DEV: Remove extra space after var init. * DEV: Correct param type in phpDoc for cnFormatting::replaceWhatWith(). * DEV: Correct phpDoc for global used in cnCategory::getDescriptionBlock(). * DEV: Couple phpDoc fix in cnTemplatePart. = 8.2.5 04/24/2015 = * FEATURE: Introduce cnSiteShot. * FEATURE: Introduce cnMeta_Query. * BUG: Fix broken CSS dependency for the jQuery UI Datepicker when in the admin. * BUG: Set correct param default in cnFormatting::sanitizeString(). * BUG: Remove unused var in cnColor::rgb2hex2rgb(). * BUG: Remove unused global var in cnEntry::getWebsites(). * BUG: Add missing 64px icon size to cnOutput::getEmailAddressBlock(). * BUG: Correct the img tag name and remove the px from the with and height attributes in cnOutput::getEmailAddressBlock(). * BUG: Remove unused var in cnEntry::getLinks(). * BUG: Remove dead code in cnURL::prefix(). * BUG: Remove unused $updateObjectCache class var in cnEntry. * BUG: Fix bug in typecasting the anniversary and birthday vars in cnEntry::__construct(). * BUG: Remove unused var in cnEntry::getAddresses(). * BUG: Remove the use of the unused $connections global var in several methods in cnEntry. * BUG: Remove unused $phoneNumbers in cnEntry::getPhoneNumbers(). * BUG: Remove unused $emailAddresses var in cnEntry::getEmailAddresses(). * BUG: Remove unused $imIDs var from cnEntry::getIm(). * BUG: Remove unused $socialMediaIDs from cnEntry::getSocialMedia(). * BUG: Remove unused $dates var in cnEntry::getDates(). * BUG: Fix bug in cnEntry::update() where the honorific suffix was not be emptied when updating an entry of the organization type. * BUG: No need to set the various image size variation names to class vars in cnEntry because they are no longer used. * BUG: Remove unused class var $websites from cnEntry. * BUG: Fix bug in cnEntry_Action::visibility() where the sanitized entry ID/s where not being used in the query. * BUG: Remove unused var in cnTemplatePart::index(). * BUG: Fix bug in the template file override code. * BUG: If an invalid image preset is supplied in cnOutput::getImage() set the image display to false and force the display of the image fallback block with the message stating; "Photo preset %s is not valid." * TWEAK: Move Dashboard template styles to the admin CSS style sheet. * TWEAK: Remove margins on admin widgets "Remove" buttons. * TWEAK: Remove text align left on the bio and notes fields from the front end style sheet. * TWEAK: Add a RTL admin style sheet. * TWEAK: Register and enqueue the RTL admin style sheet is the current local RTL. * TWEAK: Use PHP native function to prefix URL with a protocol. * TWEAK: Add icons that can be used for links. * TWEAK: Remove use of deprecated function call in cnEntry::getWebsites(). * TWEAK: Remove use of global $connections in cnEntry::getUpcoming(). * TWEAK: If the local is RTL, float right instead of left in the core templates. * TWEAK: Change the licensing API calls to use the new API endpoint. * TWEAK: Declare cnEntry::__construct() as public. * TWEAK: Set default date format from NULL to 'm/d/Y' in cnEntry::getDateAdded() and refactor code accordingly. * TWEAK: Remove use of deprecated function cnValidate::attributesArray() in cnEntry. Now uses cnSanitize::args(). * TWEAK: Remove use of deprecated function connectionsLoad::setErrorMessage() in cnEntry. Use cnMessage::set() instead. * TWEAK: Remove usage of deprecated function connectionsLoad::setErrorMessage(). Use cnMessage::set() instead(). * TWEAK: Simplify the ternary in cnEntry::setAnniversary(). * TWEAK: Simplify the ternary in cnEntry::setBirthday(). * TWEAK: No need to set the logo file name to class vars in cnEntry because it is no longer used. The helper methods should always be used instead. * TWEAK: The the user display name by using WP_User::get() rather than the magic __get() method. * TWEAK: Add a few class vars that are being added to the connectionsLoad class. * TWEAK: Use the more explicit is_null() on the $entry param in cnEntry::__construct(). * TWEAK: Make cnMeta::tableName() public. * TWEAK: Add meta query support to cnRetrieve::entries(). * TWEAK: Add ordering by meta_key support to cnRetrieve::entries(). * TWEAK: Add `cn_process_status` to cnEntry_Action::status(). * TWEAK: Add `cn_process_visibility` action to cnEntry_Action::visibility(). * TWEAK: Add `cn_process_bulk_delete` action to cnEntry_Action::delete(). * TWEAK: Use `wp_parse_id_list()` in cnEntry_Action::visibility() to simplify the method. * TWEAK: Use `wp_parse_id_list()` in cnEntry_Action::status() to simplify the method. * TWEAK: Remove the params from cnEntry_Action::clearCache() and update the phpDoc. * TWEAK: Move action `cn_process_cache-entry` action from cnEntry_Action::process() to cnEntry_Action::clearCache(). * TWEAK: Add various actions to the cnEntry_Action::clearCache() method so the entry caches are cleared when those actions are fired. * TWEAK: Add the `cn_clean_entry_cache` action to cnEntry_Action::clearCache() and deprecate the existing `cn_process_cache-entry` action. * TWEAK: Add cnEntry_action::updateTermCount(). * TWEAK: Add actions to update the term taxonomy counts when entry status or visibility has been updated via the bulk actions. * TWEAK: Set $atts['enhanced'] to FALSE if wp_is_mobile() in CN_Walker_Term_Select_List_Enhanced::render(). * TWEAK: Ensure URL is escaped in cnLicense::license(). * TWEAK: Ensure the entry status filter links on the Manage admin page are escaped. * TWEAK: Ensure the pagination links on the Manage admin page are escaped. * TWEAK: Ensure the entry action links on the Manage admin page are escaped. * TWEAK: Ensure the "Linked to" profile link is escaped on the Manage admin page. * TWEAK: Ensure the image src URLs and logo/photo links are escaped. * TWEAK: Ensure the vCard URL and the icon src URLs are escaped. * TWEAK: Ensure the tab URL on the Settings admin page is escaped. * TWEAK: Ensure the index links in cnTemplatePart::characterIndex() are escaped(). * TWEAK: Ensure the character links in cnTemplatePart::index() are escaped. * TWEAK: Add the geometry library to the Google Maps API when it is registered. * TWEAK: Clean up the code for cnOutput::getContactNameBlock(). * TWEAK: Check is doing AJAX in cnRetrieve::entries() before processing query vars. * I18N: Update the .pot file. * I18N: Update the .mo files. * OTHER: Fix the page source HTML whitespace in CN_Walker_Term_Radio_Group. * OTHER: Update minified CSS. * OTHER: Fix spelling of $visibility. * OTHER: Fix misspelling of $protocol. * OTHER: Fix misspellings in cnLog. * OTHER: Fix spelling error in phpDoc for cnEntry::getUpcoming(). * OTHER: Fix spelling of visibility in phpDoc. * OTHER: Correct the misspelling of empty in several places in cnEntry. * OTHER: Corrected misspelling of preferred in several places in cnEntry. * OTHER: Correct misspelling of overridden in several places in cnEntry. * OTHER: Remove the space between the $wpdb->prepare function and open paren per coding style in several instances in cnEntry. * OTHER: Correct misspelling of var $compatibilityDate(). * OTHER: Correct misspelling of apparently in cnEntry. * OTHER: Correct misspelling of cnEntry::displayVisibilityType() and update any instances of its usage. * OTHER: Correct param type for $entry in cnEntry::__construct(). * OTHER: Correct param type in cnEntry::setEntryType(). * OTHER: Run the Members template thru the phpStorm code formatter to get it much closer to following the coding style guidelines. * OTHER: Update link in readme.txt to point the Live Samples page to the Showcase page. * OTHER: Fix a couple instances of misspellings of department in the phpDoc. * DEV: Cleanup phpDoc in cnScript. * DEV: Cleanup coding style of cnFormatting::toYesNo(). * DEV: Cleanup phpDoc for cnFormatting::toBoolean(). * DEV: Bring cnValidate::url() up to code style standards. * DEV: Bring cnValidate::email() up to coding standards. * DEV: Bring cnValidate::userPermitted() up to coding standards. * DEV: Cleanup phpDoc for cnURL::encode(). * DEV: Clean up phpDoc for cnURL::prefix(). * DEV: Cleanup phpDoc for cnURL::fromPath(). * DEV: Update phpDoc for cnURL::permalink(). * DEV: Fix code formatting in cnUtility::getUUID(). * DEV: Cleanup code formatting of cnUtility::remapRange(). * DEV: Add phpDoc to cnLog. * DEV: Cleanup code formatting in cnLog. * DEV: Clean up code formatting of the colors array. * DEV: phpDoc fixes in cnColor. * DEV: Cleanup code formatting a couple conditional statements in cnColor. * DEV: phpDoc fixes in cnString. * DEV: Add cnOptions::loginRequired() helper function. * DEV: Refactor cnValidate::userPermitted(). * DEV: Add the ability to sanitize URL/s to cnSanitize::field(). * DEV: Update phpDoc for cnEntry::getLinks(). * DEV: Code cleanup of cnEntry::getLinks(). * DEV: Code cleanup of cnEntry::setLinks(). * DEV: Cleanup phpDoc for cnEntry::setLinks(). * DEV: Cleanup the code in cnOutput::getLinkBlock(). * DEV: Update .gitattributes to exclude assets in archives. * DEV: Fix phpDoc type for var connectionsLoad::$links. * DEV: Update phpDoc for cnEntry::getUpcoming(). * DEV: Add phpDoc to class vars in cnEntry. * DEV: Add phpDoc for global $connections usage in cnEntry::__construct(). * DEV: Add phpDoc to cnEntry::__construct(). * DEV: Add phpDoc to cnEntry::getHumanTimeDiff(). * DEV: Add phpDoc to cnEntry::getDateAdded(). * DEV: Add phpDoc to several methods in cnEntry where the extract() function is used. * DEV: Add phpDoc to several methods in cnEntry to document usage of the $connections global var. * DEV: Update the phpDoc for several methods for the $saving attribute. * DEV: Add phpDoc to cnEntry::getAnniversary(). * DEV: Add phpDoc to cnEntry::setAnniversary(). * DEV: Add phpDoc to cnEntry::getBirthday(). * DEV: Add phpDoc to cnEntry::setBirthday(). * DEV: Add phpDoc to cnEntry::getBio(). * DEV: Add phpDoc to cnEntry::setBio(). * DEV: Add phpDoc to cnEntry::getNotes(). * DEV: Add phpDoc to cnEntry::setNotes(). * DEV: Add phpDoc to cnEntry::getLogoDisplay(). * DEV: Add phpDoc to cnEntry::setLogoDisplay(). * DEV: Add phpDoc to cnEntry::getLogoLinked(). * DEV: Add phpDoc to cnEntry::setLogoLinked(). * DEV: Add phpDoc to cnEntry::setLogoName(). * DEV: Add phpDoc for cnEntry::getAddedBy(). * DEV: Add phpDoc to cnEntry::getSortColumn(). * DEV: Add phpDoc to cnEntry::getEditedBy(). * DEV: Add phpDoc to cnEntry::delete(). * DEV: Add phpDoc to cnEntry::save(). * DEV: Add phpDoc to cnEntry::update(). * DEV: Add phpDoc to cnEntry::save() for the global $connections var(). * DEV: Add @return to phpDoc for cnEntry::getFormattedTimestamp(). * DEV: Add phpDoc for the $slug param to cnEntry::setSlug(). * DEV: Cleanup of phpDoc for cnEntry::displayVisibilityType(). * DEV: Cleanup phpDoc for cnEntry::getStatus(). * DEV: Cleanup phpDoc for cnEntry::setStatus(). * DEV: Bring cnEntry::getAddedBy() up to coding style standards. * DEV: Bring cnEntry::getEditedBy() up to coding style standards. * DEV: Clean up phpDoc for cnRetrieve::entry(). * DEV: Fix the @return type tag in cnRetrieve::entry(). * DEV: Correct the phpDoc var type of several constants. * DEV: Cleanup a few phpDoc issues in cnUpload. * DEV: Correct phpDoc var type in phpDoc for cnMeta_Query::get_sql(). * DEV: Update phpDoc for cnEntry_action::status(). * DEV: Update phpDoc for cnEntryAction::visibility(). * DEV: Update phpDoc for cnEntry_Action::delete(). * DEV: Add phpDoc to the `cn_process_status` action hook. * DEV: Add phpDoc to the `cn_process_visibility` action hook. * DEV: Add phpDoc to the `cn_process_bulk_delete` action hook. * DEV: Fix misspelling in phpDoc for cnLicense::license(). * DEV: Add phpDoc the the global vars used in cnOutput::vcard(). * DEV: Cleanup phpDoc for cnTemplatePart::index(). * DEV: Cleanup phpDoc for cnTemplatePart::currentCharacter(). = 8.2.4 04/03/2015 = * FEATURE: Introduce CN_Walker_Term_Select_List_Enhanced. * FEATURE: Introduce CN_Walker_Term_Radio_Group. * BUG: When creating an excerpt the `more` string should only be appended if `length` is exceeded. * BUG: Add missing var to the `cn_meta_field- {type}` action. * BUG: Fix CSS border on search message display div. * BUG: In CN_Walker_Term_Select_List_Enhanced::render(), ensure when querying by `parent_id` ensure that `child_of` is reset to its default value of `0`. * BUG: Refactor cnTerm::tree() to vastly improve its performance. * TWEAK: Replace existing code in cnTemplatePart::categorySelect() to use CN_Walker_Term_Select_List_Enhanced. * TWEAK: Replace \n with PHP_EOL. * TWEAK: Streamline CN_Walker_Term_List a little to make it more efficient. * TWEAK: Set current category in CN_Walker_Term_List. * TWEAK: Use CN_Walker_Term_Check_List to render the link list of categories rather than using cnTemplatePart::categoryLink(). * TWEAK: Remove dead code in cnTemplatePart::categoryLink(). * TWEAK: Add querying by `parent_id` support to CN_Walker_Term_List::render(). * TWEAK: Update cnTemplatePart::category() to use the cnTemplatePart::categoryChecklist() helper function when layout is not a table. * TWEAK: Update cnTemplatePart::category() to use the cnTemplatePart::categoryRadioGroup() helper function when layout is not a table. * TWEAK: Remove the old code that the new term radio group and checklist walkers replaced. * I18N: Update the POT file. * I18N: Correct settings for _n() keyword in the grunt checktextdomain command. * DEV: Exclude the node_modules folder in the makepot grunt task. * DEV: Add the cnTemplatePart::categoryChecklist() helper function. * DEV: Add the cnTemplatePart::categoryRadioGroup() helper function. * OTHER: Remove unused var. * OTHER: Remove extra white space. * OTHER: Insert whitespace. * OTHER: Fix a couple misspellings. * OTHER: Fix code alignment. = 8.2.3 03/26/2015 = * FEATURE: Add Stitcher to the social media options. * BUG: Fix the path to the markerclusterer library. * BUG: Fix the CN_CUSTOM_TEMPLATE_URL path to properly point to the content_url(). * BUG: Adjust the substring position and length in cnRetieve::upcoming() so it only returns MM-DD. * BUG: When performing an upcoming date(s) query, do not convert the date from @@session.time_zone to +00.00 because it caused entries to be returned from +1day more than what should have been returned. * BUG: Make sure to pass the $homeID var when calling get_permalink() when not $wp_rewrite->using_permalink(). * BUG: Custom field titles/names should not be wrapped in the