jmiller 2cf42b79b7
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 3s
Universal: Auto Version Bump / Version Bump (push) Successful in 25s
Universal: PR Check / Validate PR (pull_request) Failing after 8s
Universal: PR Check / Secret Scan (pull_request) Successful in 8s
Generic: Project CI / Lint & Validate (pull_request) Failing after 12s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 9s
Universal: Build & Release / Promote to RC (pull_request) Failing after 9s
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Failing after 35s
Generic: Project CI / Tests (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report: Scripts Governance (pull_request) Has been cancelled
Generic: Repo Health / Report: Repository Health (pull_request) Has been cancelled
chore: drop duplicate workflow-sync-trigger.yml left at old path
PR #36 moved this workflow to custom/; the merge of main into dev
re-surfaced the old-path copy. Remove it so dev matches main's layout.

Authored-by: Moko Consulting
2026-07-04 01:24:51 -05:00

Template-Joomla

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

Structure

.mokogitea/workflows/   ← CI/CD workflow suite (lint, validate, release)
samples/
  manifest/             ← Reference manifest XML for each extension type
    component_sample.xml
    template_sample.xml
    module_sample.xml
    plugin_sample.xml
    package_sample.xml
    library_sample.xml
  script/               ← Reference install/update script (script.php) templates
    script_component.php
    script_module.php
    script_plugin.php
    script_package.php
source/                 ← Your extension source lives here (CI scans this dir)

Usage

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

Samples

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

  • manifest/ — a well-formed <extension> manifest for each of the six Joomla extension types, showing the expected structure, namespace declaration, media/SQL wiring, and update-server hookup.
  • script/ — the standard script.php install/uninstall/update handler pattern shared across Moko extension repos. Copy, then replace {REPONAME} (UPPERCASE) and {PACKAGENAME} (e.g. com_myextension).

CI/CD

.mokogitea/workflows/ci-joomla.yml validates every push and PR against source/:

Check What it verifies
Manifest Well-formed XML, required elements, version
SQL #__ prefixes, IF [NOT] EXISTS, ENGINE=InnoDB, utf8mb4, install/uninstall pairing, version-named update files
Language keys Keys used in code are defined; orphan (unused) keys flagged
PHP CodeSniffer Joomla coding standard (falls back to PSR-12)
Security No direct superglobals, raw SQL in setQuery(), eval(), or missing _JEXEC guard
updates.xml Well-formed, required <update> children, <targetplatform>
Assets joomla.asset.json is valid and its URIs exist
MVC naming View/Controller/Model/Table classes follow suffix conventions
Router Components ship a Router implementing the router interface
ACL access.xml action keys are defined in language files
Webservices Webservices plugins register API routes
ZIP dry-run Every file/folder the manifest references actually exists
JS/CSS Syntax + balanced braces (ESLint/Stylelint if configured)

Standards

This repo follows MokoStandards. Documentation lives in the Template-Joomla Wiki.

License

GPL-3.0-or-later — Moko Consulting

S
Description
Unified Joomla extension scaffolding templates — plugin, template, module, component, package, library
Readme GPL-3.0
916 KiB
2026-06-18 17:46:15 +00:00
Languages
Markdown 57.3%
CSS 18.1%
PHP 14.6%
JavaScript 4.7%
XML 4.2%
Other 1.1%