Commit Graph

3 Commits

Author SHA1 Message Date
peptiderepo
5c483fdc34 fix: PHP 8.3 TypeError in dashboard top-articles SUM casts + CHANGELOG (#32)
- admin/partials/dashboard.php lines 108-109: cast $article->total_clicks
  and $article->total_unique to (int) before number_format(). Both are
  SUM() aggregate columns from $wpdb->get_results() returned as strings;
  same PHP 8.3 TypeError vector as the articles-list fix.
- tests/unit/DashboardTopArticlesCastTest.php: two unit tests mirroring
  the ArticlesListTotalCastTest pattern (numeric string + null cases).
- CHANGELOG [2.5.1]: fix (# 31) typo -> (#32); add dashboard fix entry.
- $topic['total_clicks'] at line 137 is safe (already cast to int in
  Peptide_News_Analytics_Reports::get_popular_topics() at assignment).
- $total_clicks/$total_unique at lines 48/52 are safe (array_sum coerces).

Agent-Session: engineer-infra-dashboard-cast-fix-20260617
2026-06-17 06:09:49 +00:00
peptiderepo
bf87c82f69 fix: PHP 8.3 TypeError in articles-list total count (int cast)
number_format() in PHP 8.3 strictly requires int|float; $wpdb->get_var()
returns string|null. Cast $total to (int) at point of assignment in
admin/partials/articles-list.php to fix HTTP 500 on Articles admin page.

Also add PHPUnit test covering the string->int cast contract.

Fixes #31. Version bump 2.5.0 -> 2.5.1.

Agent-Session: fix-articles-500-20260617
2026-06-17 05:50:50 +00:00
peptiderepo
ff474326fb Adopt reusable CI standard (#30)
Squash-merged from claude/adopt-ci-20260616.

QA-approved; all CI checks green on 3b4e3f04.

Agent-Session: deploy-ci-rollout-news-plugin-2026-06-16
2026-06-16 21:30:24 +07:00