2
Home
Jonathan Miller edited this page 2026-07-05 21:58:19 +00:00

Template-Joomla Wiki

Unified scaffolding templates for all Joomla extension types — component, template, module, plugin, package, and library.

This is the canonical source of truth for Joomla extension scaffolding and CI/CD workflows at Moko Consulting. New Joomla extension repos are generated from this template.

Repository Layout

.mokogitea/workflows/   CI/CD workflow suite (lint, validate, release)
samples/
  manifest/             Reference <extension> manifest XML per type
  script/               Reference script.php install/update templates
source/                 Your extension source lives here (CI scans this)

Getting Started

  1. Create a new repo from this template.
  2. Build your extension under source/.
  3. Copy the matching manifest from samples/manifest/ into source/, rename it, and replace the placeholder name, namespace, and version.
  4. If you need install/update logic, copy the matching samples/script/ file and replace the {REPONAME} (UPPERCASE) and {PACKAGENAME} (e.g. com_myextension) placeholders.
  5. Push — the workflows validate the manifest, source, SQL, language keys, and build.

Samples

samples/ is read-only reference material — do not build against it directly.

Directory Contents
samples/manifest/ A well-formed <extension> manifest for each of the six types, showing structure, namespace, media/SQL wiring, and update-server hookup
samples/script/ The standard script.php install/uninstall/update handler pattern shared across Moko extension repos

CI Validation

.mokogitea/workflows/ci-joomla.yml validates every push and PR against source/: manifest well-formedness, SQL conventions (#__ prefixes, IF [NOT] EXISTS, ENGINE=InnoDB, utf8mb4, install/uninstall pairing), language-key consistency and orphans, PHP CodeSniffer (Joomla standard), security patterns (no superglobals, raw SQL, eval(), or missing _JEXEC guard), updates.xml structure, asset existence, MVC naming conventions, router presence, ACL language keys, webservices API routing, ZIP dry-run build, and JS/CSS linting.

Standards Reference