feat: per-service help links to KB articles on mokoconsulting.tech
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Update Server / Update Server (push) Has been cancelled

Service edit sidebar now shows a contextual "Setup Guide" button when
a service type is selected. Links to the matching KB article on the
live site (e.g., /kb/mokojoomcross/service-twitter-mokojoomcross).
All 34 service types mapped.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jonathan Miller
2026-05-28 17:39:51 -05:00
parent 1f76d7d2e9
commit dc53ef48d1
3 changed files with 57 additions and 0 deletions
+2
View File
@@ -39,6 +39,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
- **RSS Feed**: Feed title and max items config fields
- **OAuth services**: Added Pinterest, Tumblr, TikTok, Constant Contact, Blogger, Google Business to OAuth authorize flow
- **Developer Guide**: Comprehensive wiki page for building new service plugins
- **Help articles**: 42 KB articles on mokoconsulting.tech (overview, installation, 34 per-service guides, templates, queue, troubleshooting)
- **Service help link**: Per-service "Setup Guide" button in service edit sidebar links to the matching KB article
### Added (original)
@@ -399,6 +399,9 @@ COM_MOKOJOOMCROSS_CRED_WEBHOOK_BASIC_USER="Username"
COM_MOKOJOOMCROSS_CRED_WEBHOOK_BASIC_PWD="Password"
COM_MOKOJOOMCROSS_CRED_WEBHOOK_CONTENT_TYPE="Content Type"
; Service help link
COM_MOKOJOOMCROSS_SERVICE_HELP_LINK="%s Setup Guide"
; Setup help panel
COM_MOKOJOOMCROSS_SETUP_HELP_TITLE="How to set up"
COM_MOKOJOOMCROSS_SETUP_HELP_INTRO="Setting up a new service is easy:"
@@ -26,6 +26,45 @@ $serviceId = (int) ($this->item->id ?? 0);
// Services that support OAuth authorize flow
$oauthServices = ['facebook', 'linkedin', 'twitter', 'threads', 'pinterest', 'tumblr', 'tiktok', 'constantcontact', 'blogger', 'googlebusiness'];
$showAuthorize = in_array($serviceType, $oauthServices) && $serviceId > 0;
// Map service types to KB article aliases on mokoconsulting.tech
$helpArticles = [
'facebook' => 'service-facebook-mokojoomcross',
'twitter' => 'service-twitter-mokojoomcross',
'linkedin' => 'service-linkedin-mokojoomcross',
'mastodon' => 'service-mastodon-mokojoomcross',
'bluesky' => 'service-bluesky-mokojoomcross',
'threads' => 'service-threads-mokojoomcross',
'pinterest' => 'service-pinterest-mokojoomcross',
'reddit' => 'service-reddit-mokojoomcross',
'tumblr' => 'service-tumblr-mokojoomcross',
'tiktok' => 'service-tiktok-mokojoomcross',
'nostr' => 'service-nostr-mokojoomcross',
'activitypub' => 'service-activitypub-mokojoomcross',
'telegram' => 'service-telegram-mokojoomcross',
'discord' => 'service-discord-mokojoomcross',
'slack' => 'service-slack-mokojoomcross',
'teams' => 'service-teams-mokojoomcross',
'googlechat' => 'service-googlechat-mokojoomcross',
'whatsapp' => 'service-whatsapp-mokojoomcross',
'matrix' => 'service-matrix-mokojoomcross',
'ntfy' => 'service-ntfy-mokojoomcross',
'mailchimp' => 'service-mailchimp-mokojoomcross',
'sendgrid' => 'service-sendgrid-mokojoomcross',
'brevo' => 'service-brevo-mokojoomcross',
'convertkit' => 'service-convertkit-mokojoomcross',
'constantcontact' => 'service-constantcontact-mokojoomcross',
'medium' => 'service-medium-mokojoomcross',
'wordpress' => 'service-wordpress-mokojoomcross',
'devto' => 'service-devto-mokojoomcross',
'ghost' => 'service-ghost-mokojoomcross',
'hashnode' => 'service-hashnode-mokojoomcross',
'blogger' => 'service-blogger-mokojoomcross',
'googlebusiness' => 'service-googlebusiness-mokojoomcross',
'webhook' => 'service-webhook-mokojoomcross',
'rssfeed' => 'service-rssfeed-mokojoomcross',
];
$helpAlias = $helpArticles[$serviceType] ?? '';
?>
<form action="<?php echo Route::_('index.php?option=com_mokojoomcross&layout=edit&id=' . $serviceId); ?>"
method="post" name="adminForm" id="adminForm" class="form-validate">
@@ -77,6 +116,19 @@ $showAuthorize = in_array($serviceType, $oauthServices) && $serviceId > 0;
</div>
</div>
<?php if (!empty($helpAlias)) : ?>
<div class="card mt-3">
<div class="card-body text-center">
<a href="https://mokoconsulting.tech/kb/mokojoomcross/<?php echo $helpAlias; ?>"
target="_blank" rel="noopener"
class="btn btn-outline-info w-100">
<span class="icon-book" aria-hidden="true"></span>
<?php echo Text::sprintf('COM_MOKOJOOMCROSS_SERVICE_HELP_LINK', ucfirst($serviceType)); ?>
</a>
</div>
</div>
<?php endif; ?>
<?php if ($showAuthorize) : ?>
<div class="card mt-3">
<div class="card-header bg-warning text-dark">