Joomla 5管理

joomla-5

by andongne

Joomla 5 site management via REST API, SFTP, and direct database access. Use when working with a Joomla 5 site to: manage articles, categories, menus, and modules via the REST API; edit files via SFTP (templates, .htaccess, robots.txt, configuration.php); run DB queries or patches via a custom PHP endpoint; configure SEO (sitemap, canonical, hreflang, robots.txt); tune performance (gzip, cache, session handler, Varnish); manage extensions and plugins; work with SP Page Builder content; configure FaLang multilingual translations; configure JSitemap Pro; or diagnose Core Web Vitals issues.

4.5k效率与工作流未扫描2026年4月27日

安装

claude skill add --url https://github.com/openclaw/skills

文档

Joomla 5 — Site Management

Access Patterns

Three complementary access layers — choose the right one for each task:

LayerUse forTool
REST APIArticles, categories, menus (read/write)urllib / requests
SFTPTemplate files, .htaccess, configuration.php, robots.txtparamiko
DB endpoint (sppb5.php)Direct DB queries, extension params, plugin config, cache purgeurllib

⚠️ Never use curl --noproxy '*' in this sandbox — it errors. Always use Python urllib.

⚠️ configuration.php is chmod 444 — use SFTP chmod(0o644) before write, restore 0o444 after.

REST API

Base: $JOOMLA_BASE_URL/api/index.php/v1/
Auth: Authorization: Bearer $JOOMLA_API_TOKEN

python
import urllib.request, json, os

BASE = os.environ['JOOMLA_BASE_URL']
TOKEN = os.environ['JOOMLA_API_TOKEN']

def api(method, path, body=None):
    url = f"{BASE}/api/index.php/v1/{path}"
    data = json.dumps(body).encode() if body else None
    req = urllib.request.Request(url, data=data, method=method,
        headers={'Authorization': f'Bearer {TOKEN}',
                 'Accept': 'application/vnd.api+json',
                 'Content-Type': 'application/json'})
    with urllib.request.urlopen(req) as r:
        return json.loads(r.read())

Key endpoints:

  • content/articles — list/create articles
  • content/articles/{id} — read/update/delete
  • content/categories — categories
  • menus/{menutype}/items — menu items
  • extensions?filter[type]=plugin — list extensions

SFTP Access

python
import paramiko, os

def sftp_connect():
    key = paramiko.Ed25519Key.from_private_key_file(os.environ['GANDI_SSH_KEY'])
    t = paramiko.Transport((os.environ['GANDI_SFTP_HOST'], 22))
    t.connect(username=os.environ['GANDI_SFTP_USER'], pkey=key)
    return paramiko.SFTPClient.from_transport(t), t

sftp, transport = sftp_connect()
# Read
with sftp.open('/path/to/file', 'r') as f: content = f.read().decode()
# Write (for read-only files: chmod first)
sftp.chmod('/path/to/configuration.php', 0o644)
with sftp.open('/path/to/configuration.php', 'w') as f: f.write(new_content)
sftp.chmod('/path/to/configuration.php', 0o444)

DB Endpoint (sppb5.php)

Custom PHP endpoint at /falang-inject/sppb5.php. Auth: X-Falang-Token header.
See references/sppb5-actions.md for all available actions.

python
import urllib.request, json, os

SPPB = os.environ['SPPB_URL']   # https://site.org/falang-inject/sppb5.php
TOKEN = os.environ['FALANG_SECRET_TOKEN']

def sppb(action, params='', body=None):
    url = f"{SPPB}?action={action}{params}"
    data = json.dumps(body).encode() if body else None
    req = urllib.request.Request(url, data=data,
        headers={'X-Falang-Token': TOKEN,
                 **(({'Content-Type': 'application/json'}) if body else {})})
    with urllib.request.urlopen(req) as r:
        return json.loads(r.read())

Quick actions:

python
sppb('purge_cache')                                    # purge Joomla file cache
sppb('ext_params', '&ext_id=10156')                   # read extension params
sppb('set_plugin_enabled', '&ext_id=123&enabled=0')   # disable plugin
sppb('select_query', body={'sql': 'SELECT ...'})       # read-only DB query

SEO Configuration

See references/seo.md for detailed SEO workflows covering:

  • Sitemap XML (JSitemap Pro)
  • robots.txt
  • Canonical tags
  • hreflang / FaLang multilingual
  • Core Web Vitals / TTFB

SP Page Builder

See references/sppagebuilder.md for direct content editing patterns.

FaLang Multilingual

See references/falang.md for translation and URL routing architecture.

Performance / TTFB

See references/performance.md for cache, gzip, session, and Varnish analysis.

相关 Skills

技能工坊

by anthropics

Universal
热门

覆盖 Skill 从创建到迭代优化全流程:起草能力、补测试提示、跑评测与基准方差分析,并持续改写内容和描述,提升效果与触发准确率。

技能工坊把技能从创建、迭代到评测串成闭环,方差分析加描述优化,特别适合把触发准确率打磨得更稳。

效率与工作流
未扫描147.7k

PPT处理

by anthropics

Universal
热门

处理 .pptx 全流程:创建演示文稿、提取和解析幻灯片内容、批量修改现有文件,支持模板套用、合并拆分、备注评论与版式调整。

涉及PPTX的创建、解析、修改到合并拆分都能一站搞定,连备注、模板和评论也能处理,做演示文稿特别省心。

效率与工作流
未扫描147.7k

PDF处理

by anthropics

Universal
热门

遇到 PDF 读写、文本表格提取、合并拆分、旋转加水印、表单填写或加解密时直接用它,也能提取图片、生成新 PDF,并把扫描件通过 OCR 变成可搜索文档。

PDF杂活别再来回切工具了,文本表格提取、合并拆分到OCR识别一次搞定,连扫描件也能变可搜索。

效率与工作流
未扫描147.7k

相关 MCP 服务

文件系统

编辑精选

by Anthropic

热门

Filesystem 是 MCP 官方参考服务器,让 LLM 安全读写本地文件系统。

这个服务器解决了让 Claude 直接操作本地文件的痛点,比如自动整理文档或生成代码文件。适合需要自动化文件处理的开发者,但注意它只是参考实现,生产环境需自行加固安全。

效率与工作流
86.9k

by wonderwhy-er

热门

Desktop Commander 是让 AI 直接执行终端命令、管理文件和进程的 MCP 服务器。

这工具解决了 AI 无法直接操作本地环境的痛点,适合需要自动化脚本调试或文件批量处理的开发者。它能让你用自然语言指挥终端,但权限控制需谨慎,毕竟让 AI 执行 rm -rf 可不是闹着玩的。

效率与工作流
6.1k

EdgarTools

编辑精选

by dgunning

热门

EdgarTools 是无需 API 密钥即可解析 SEC EDGAR 财报的开源 Python 库。

这个工具解决了金融数据获取的痛点——直接让 AI 读取结构化财报,比如让 Claude 分析苹果的 10-K 文件。适合量化分析师或金融开发者快速构建数据管道。但注意,它依赖 SEC 网站稳定性,高峰期可能延迟。

效率与工作流
2.3k

评论