Commit Graph

4 Commits

Author SHA1 Message Date
Jonathan Miller 75c34345f9 refactor: rename src/ to source/ per moko-platform standards
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Rename root source directory from src/ to source/ and update all
references in Makefile, manifest.xml, .gitignore, CI workflows,
and wiki documentation. Internal Joomla namespace paths (src/Extension)
are unchanged as they are plugin-internal structure.

CI workflows updated to check source/ first with src/ fallback for
backward compatibility across repos.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-06 08:11:29 -05:00
Jonathan Miller 430d6a79f4 feat: complete service credential fields + fix Twitter OAuth 1.0a
Universal: Auto Version Bump / Version Bump (push) Successful in 4s
Update Server / Update Server (push) Successful in 12s
Fix Twitter posting by replacing Bearer token (app-only, read-only)
with OAuth 1.0a HMAC-SHA1 signing using all 4 keys. Add credential
fields for 19 previously missing services and optional fields for
7 existing services. Add Developer Guide wiki page.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-28 15:37:25 -05:00
Jonathan Miller 2872ae2b97 feat: low-priority issues #19-#22
Universal: Auto Version Bump / Version Bump (push) Successful in 4s
Update Server / Update Server (push) Successful in 13s
#19 Per-article cross-posting: Content plugin injects "Cross-Posting"
    fieldset into article editor via onContentPrepareForm. Dynamic
    checkbox list of all enabled services. Skip toggle. System plugin
    reads article attribs for mokojoomcross_services (array of service
    IDs) and mokojoomcross_skip (boolean). Unchecked = post to all.

#20 Analytics dashboard: Posts-by-service breakdown table with
    success rate column (color-coded). Top cross-posted articles
    list. DashboardModel methods: getServiceBreakdown(),
    getDailyTrend(), getTopArticles().

#21 OAuth flows: OAuthHelper with authorize URL generation (Facebook,
    LinkedIn, Twitter), PKCE for Twitter, code→token exchange, token
    storage in service credentials. OauthController with authorize
    and callback actions. Reads client ID/secret from plugin params.

#22 Wiki documentation: Services guide (all 9 platforms, default vs
    custom mode), REST API reference, Message Templates guide with
    examples per platform, Troubleshooting guide.

Authored-by: Moko Consulting

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-28 13:42:07 -05:00
Jonathan Miller be3eb9b8e7 feat: initial MokoJoomCross package scaffold
Universal: Cascade Main -> Dev / Cascade main -> branches (push) Successful in 1s
Universal: Auto Version Bump / Version Bump (push) Successful in 4s
Update Server / Update updates.xml (push) Failing after 13s
Cross-posting Joomla content to social media, email marketing, and chat
platforms. Plugin-based service architecture with custom mokojoomcross
plugin group.

14 sub-extensions:
- com_mokojoomcross (admin component: dashboard, posts, services, logs)
- plg_system_mokojoomcross (triggers cross-posting on article publish)
- plg_content_mokojoomcross (admin article status badges)
- plg_webservices_mokojoomcross (REST API)
- 9 service plugins: facebook, twitter, linkedin, mastodon, bluesky,
  mailchimp, telegram, discord, slack

Includes Perfect Publisher Pro migration tool, message templates with
placeholders, post queue with retry logic, and default/custom bot modes
for services supporting universal bots.

Authored-by: Moko Consulting

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-28 12:54:43 -05:00