Skip to content

Releases: schlebek/content-quality-analyzer

v1.5.2 — Fatal error fix on duplicate plugin folder

Choose a tag to compare

@schlebek schlebek released this 27 May 09:16

What's fixed

All global PHP functions (cqa_autoload, cqa_activate, cqa_uninstall, cqa_init, cqa_load_textdomain, cqa_invalidate_cache) are now guarded with function_exists().

Problem

Uploading a new plugin ZIP through WordPress admin extracts to a folder with a suffix such as content-quality-analyzer-master. If the previous version (content-quality-analyzer/) is still active, both plugin files load simultaneously, causing:

Fatal error: Cannot redeclare cqa_autoload() (previously declared in
.../content-quality-analyzer/content-quality-analyzer.php:28)
in .../content-quality-analyzer-master/content-quality-analyzer.php on line 37

Fix

Every global function is now wrapped in if ( ! function_exists( '...' ) ) { ... }, so the second instance silently skips redeclaration.

Upgrade path

Delete the old content-quality-analyzer-master/ directory from wp-content/plugins/ after uploading the new version, or rename the extracted folder to content-quality-analyzer before activating.

v1.5.0

Choose a tag to compare

@schlebek schlebek released this 12 May 07:28

What's new

Added

  • Manual overrides for AI-Friendly criteria — each warn/fail criterion now has a "Verified / Added" checkbox. Checking it promotes the item to pass and recalculates the AI-Friendly score live. Override state is saved per post in _cqa_aifriendly_overrides post meta and restored on next metabox load.
  • Green "manual" badge displayed on overridden criteria so it's clear which items were verified by hand.

Fixed

  • Unicode encoding bug — Polish and other non-ASCII characters were stored as \uXXXX escape sequences in cached results and localized JS data. Fixed by replacing wp_localize_script() with wp_add_inline_script() and adding JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES flags to all wp_json_encode() and wp_send_json_success() calls.
  • Stale cache auto-invalidation — on first metabox load after the update, any cached results containing escaped Unicode are automatically cleared so the next analysis stores clean data.

v1.2.0

Choose a tag to compare

@schlebek schlebek released this 20 Apr 10:33

Content Quality Analyzer v1.2.0

WP.org Compliance Release

  • Named hook functions (no anonymous closures)
  • Removed sslverify => false from all HTTP requests
  • Added sanitize_callback to all register_setting() calls
  • Replaced @set_time_limit() with function_exists() guard
  • Added register_uninstall_hook() for clean removal
  • Full i18n support with load_plugin_textdomain()
  • Activation hook with default options
  • Proper plugin header (Text Domain, Requires at least, Requires PHP, License)