99e4a83ed5
Universal: Auto Version Bump / Version Bump (push) Successful in 7s
- 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
293 lines
10 KiB
XML
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>
|