#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>