Files
MokoSuiteCross/source/packages/com_mokosuitecross/config.xml
T
jmiller 99e4a83ed5
Universal: Auto Version Bump / Version Bump (push) Successful in 7s
feat: add AI caption generation with Claude and OpenAI support (#161)
- AiGeneratorHelper: Claude Messages API and OpenAI Chat Completions
  with structured JSON output for social/short/chat/email_subject
- AiController: AJAX endpoint with CSRF and ACL checks
- config.xml: new AI fieldset (provider, API key, model, tone)
- Content plugin: "Generate with AI" button in Share Content panel
- Language strings for all AI config and UI elements

Authored-by: Moko Consulting
2026-06-28 11:21:56 -05:00

293 lines
10 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<config>
<fieldset name="component" label="COM_MOKOSUITECROSS_CONFIG_COMPONENT">
<field
name="auto_post_on_publish"
type="radio"
label="COM_MOKOSUITECROSS_CONFIG_AUTO_POST"
description="COM_MOKOSUITECROSS_CONFIG_AUTO_POST_DESC"
default="1"
class="btn-group">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field
name="post_on_first_publish_only"
type="radio"
label="COM_MOKOSUITECROSS_CONFIG_FIRST_PUBLISH_ONLY"
description="COM_MOKOSUITECROSS_CONFIG_FIRST_PUBLISH_ONLY_DESC"
default="0"
class="btn-group"
showon="auto_post_on_publish:1">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field
name="delete_on_unpublish"
type="radio"
label="COM_MOKOSUITECROSS_CONFIG_DELETE_ON_UNPUBLISH"
description="COM_MOKOSUITECROSS_CONFIG_DELETE_ON_UNPUBLISH_DESC"
default="0"
class="btn-group">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field
name="retry_max"
type="number"
label="COM_MOKOSUITECROSS_CONFIG_RETRY_MAX"
description="COM_MOKOSUITECROSS_CONFIG_RETRY_MAX_DESC"
default="3"
min="0"
max="10"
/>
<field
name="retry_delay"
type="number"
label="COM_MOKOSUITECROSS_CONFIG_RETRY_DELAY"
description="COM_MOKOSUITECROSS_CONFIG_RETRY_DELAY_DESC"
default="300"
min="60"
max="3600"
/>
<field
name="log_retention_days"
type="number"
label="COM_MOKOSUITECROSS_CONFIG_LOG_RETENTION"
description="COM_MOKOSUITECROSS_CONFIG_LOG_RETENTION_DESC"
default="90"
min="7"
max="365"
/>
<field
name="default_template"
type="textarea"
label="COM_MOKOSUITECROSS_CONFIG_DEFAULT_TEMPLATE"
description="COM_MOKOSUITECROSS_CONFIG_DEFAULT_TEMPLATE_DESC"
default="{title}\n\n{introtext}\n\n{url}"
rows="4"
/>
</fieldset>
<fieldset name="utm" label="COM_MOKOSUITECROSS_CONFIG_UTM">
<field
name="utm_enabled"
type="radio"
label="COM_MOKOSUITECROSS_CONFIG_UTM_ENABLED"
description="COM_MOKOSUITECROSS_CONFIG_UTM_ENABLED_DESC"
default="0"
class="btn-group">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field
name="utm_source"
type="text"
label="COM_MOKOSUITECROSS_CONFIG_UTM_SOURCE"
description="COM_MOKOSUITECROSS_CONFIG_UTM_SOURCE_DESC"
default="{platform}"
showon="utm_enabled:1"
/>
<field
name="utm_medium"
type="text"
label="COM_MOKOSUITECROSS_CONFIG_UTM_MEDIUM"
description="COM_MOKOSUITECROSS_CONFIG_UTM_MEDIUM_DESC"
default="social"
showon="utm_enabled:1"
/>
<field
name="utm_campaign"
type="text"
label="COM_MOKOSUITECROSS_CONFIG_UTM_CAMPAIGN"
description="COM_MOKOSUITECROSS_CONFIG_UTM_CAMPAIGN_DESC"
default="mokosuitecross"
showon="utm_enabled:1"
/>
<field
name="utm_content"
type="text"
label="COM_MOKOSUITECROSS_CONFIG_UTM_CONTENT"
description="COM_MOKOSUITECROSS_CONFIG_UTM_CONTENT_DESC"
hint="Optional"
showon="utm_enabled:1"
/>
</fieldset>
<fieldset name="link_shortening" label="COM_MOKOSUITECROSS_CONFIG_LINK_SHORTENING">
<field
name="link_shortener"
type="list"
label="COM_MOKOSUITECROSS_CONFIG_LINK_SHORTENER"
description="COM_MOKOSUITECROSS_CONFIG_LINK_SHORTENER_DESC"
default="none">
<option value="none">COM_MOKOSUITECROSS_CONFIG_LINK_SHORTENER_NONE</option>
<option value="bitly">COM_MOKOSUITECROSS_CONFIG_LINK_SHORTENER_BITLY</option>
<option value="rebrandly">COM_MOKOSUITECROSS_CONFIG_LINK_SHORTENER_REBRANDLY</option>
<option value="yourls">COM_MOKOSUITECROSS_CONFIG_LINK_SHORTENER_YOURLS</option>
</field>
<field
name="link_shortener_api_key"
type="text"
label="COM_MOKOSUITECROSS_CONFIG_LINK_SHORTENER_API_KEY"
description="COM_MOKOSUITECROSS_CONFIG_LINK_SHORTENER_API_KEY_DESC"
showon="link_shortener:bitly,rebrandly"
/>
<field
name="link_shortener_yourls_url"
type="url"
label="COM_MOKOSUITECROSS_CONFIG_LINK_SHORTENER_YOURLS_URL"
description="COM_MOKOSUITECROSS_CONFIG_LINK_SHORTENER_YOURLS_URL_DESC"
hint="https://short.example.com/yourls-api.php"
showon="link_shortener:yourls"
/>
<field
name="link_shortener_yourls_token"
type="text"
label="COM_MOKOSUITECROSS_CONFIG_LINK_SHORTENER_YOURLS_TOKEN"
description="COM_MOKOSUITECROSS_CONFIG_LINK_SHORTENER_YOURLS_TOKEN_DESC"
showon="link_shortener:yourls"
/>
</fieldset>
<fieldset name="evergreen" label="COM_MOKOSUITECROSS_CONFIG_EVERGREEN">
<field
name="evergreen_enabled"
type="radio"
label="COM_MOKOSUITECROSS_CONFIG_EVERGREEN_ENABLED"
description="COM_MOKOSUITECROSS_CONFIG_EVERGREEN_ENABLED_DESC"
default="1"
class="btn-group">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field
name="evergreen_default_interval"
type="number"
label="COM_MOKOSUITECROSS_CONFIG_EVERGREEN_DEFAULT_INTERVAL"
description="COM_MOKOSUITECROSS_CONFIG_EVERGREEN_DEFAULT_INTERVAL_DESC"
default="30"
min="1"
max="365"
showon="evergreen_enabled:1"
/>
<field
name="evergreen_max_per_run"
type="number"
label="COM_MOKOSUITECROSS_CONFIG_EVERGREEN_MAX_PER_RUN"
description="COM_MOKOSUITECROSS_CONFIG_EVERGREEN_MAX_PER_RUN_DESC"
default="3"
min="1"
max="20"
showon="evergreen_enabled:1"
/>
</fieldset>
<fieldset name="queue" label="COM_MOKOSUITECROSS_CONFIG_QUEUE">
<field
name="queue_processing"
type="list"
label="COM_MOKOSUITECROSS_CONFIG_QUEUE_PROCESSING"
description="COM_MOKOSUITECROSS_CONFIG_QUEUE_PROCESSING_DESC"
default="scheduler">
<option value="scheduler">COM_MOKOSUITECROSS_CONFIG_QUEUE_SCHEDULER</option>
<option value="pageload">COM_MOKOSUITECROSS_CONFIG_QUEUE_PAGELOAD</option>
<option value="both">COM_MOKOSUITECROSS_CONFIG_QUEUE_BOTH</option>
</field>
<field
name="pageload_client"
type="list"
label="COM_MOKOSUITECROSS_CONFIG_PAGELOAD_CLIENT"
description="COM_MOKOSUITECROSS_CONFIG_PAGELOAD_CLIENT_DESC"
default="both"
showon="queue_processing:pageload,both">
<option value="both">COM_MOKOSUITECROSS_CONFIG_PAGELOAD_BOTH</option>
<option value="admin">COM_MOKOSUITECROSS_CONFIG_PAGELOAD_ADMIN</option>
<option value="site">COM_MOKOSUITECROSS_CONFIG_PAGELOAD_SITE</option>
</field>
<field
name="pageload_interval"
type="number"
label="COM_MOKOSUITECROSS_CONFIG_PAGELOAD_INTERVAL"
description="COM_MOKOSUITECROSS_CONFIG_PAGELOAD_INTERVAL_DESC"
default="300"
min="60"
max="3600"
showon="queue_processing:pageload,both"
/>
</fieldset>
<fieldset name="ai" label="COM_MOKOSUITECROSS_CONFIG_AI">
<field
name="ai_provider"
type="list"
label="COM_MOKOSUITECROSS_CONFIG_AI_PROVIDER"
description="COM_MOKOSUITECROSS_CONFIG_AI_PROVIDER_DESC"
default="none">
<option value="none">COM_MOKOSUITECROSS_CONFIG_AI_PROVIDER_NONE</option>
<option value="claude">COM_MOKOSUITECROSS_CONFIG_AI_PROVIDER_CLAUDE</option>
<option value="openai">COM_MOKOSUITECROSS_CONFIG_AI_PROVIDER_OPENAI</option>
</field>
<field
name="ai_api_key"
type="text"
label="COM_MOKOSUITECROSS_CONFIG_AI_API_KEY"
description="COM_MOKOSUITECROSS_CONFIG_AI_API_KEY_DESC"
showon="ai_provider:claude,openai"
/>
<field
name="ai_model"
type="text"
label="COM_MOKOSUITECROSS_CONFIG_AI_MODEL"
description="COM_MOKOSUITECROSS_CONFIG_AI_MODEL_DESC"
hint="claude-haiku-4-5 / gpt-4o-mini"
showon="ai_provider:claude,openai"
/>
<field
name="ai_tone"
type="list"
label="COM_MOKOSUITECROSS_CONFIG_AI_TONE"
description="COM_MOKOSUITECROSS_CONFIG_AI_TONE_DESC"
default="professional"
showon="ai_provider:claude,openai">
<option value="professional">COM_MOKOSUITECROSS_CONFIG_AI_TONE_PROFESSIONAL</option>
<option value="friendly">COM_MOKOSUITECROSS_CONFIG_AI_TONE_FRIENDLY</option>
<option value="casual">COM_MOKOSUITECROSS_CONFIG_AI_TONE_CASUAL</option>
</field>
</fieldset>
<fieldset name="category_rules" label="COM_MOKOSUITECROSS_CONFIG_CATEGORY_RULES">
<field
name="category_rules_note"
type="note"
label="COM_MOKOSUITECROSS_CONFIG_CATEGORY_RULES_NOTE"
description="COM_MOKOSUITECROSS_CONFIG_CATEGORY_RULES_NOTE_DESC"
/>
</fieldset>
<fieldset
name="permissions"
label="JCONFIG_PERMISSIONS_LABEL"
description="JCONFIG_PERMISSIONS_DESC">
<field
name="rules"
type="rules"
label="JCONFIG_PERMISSIONS_LABEL"
component="com_mokosuitecross"
filter="rules"
validate="rules"
section="component"
/>
</fieldset>
</config>