The definitive guide to XOOPS 2026 module manifest files.
XOOPS 2026 replaces the legacy xoops_version.php with a modern JSON-based manifest. This provides better tooling support, validation, and interoperability.
{"$schema":"https://xoops.org/schemas/module-1.0.json","name":"goldstandard","version":"1.0.0","title":"Gold Standard","description":"Reference implementation for XOOPS 2026 modules","license":"GPL-2.0-or-later","homepage":"https://github.com/xoops/goldstandard","authors":[{"name":"XOOPS Team","email":"team@xoops.org","homepage":"https://xoops.org","role":"Developer"}],"support":{"email":"support@xoops.org","issues":"https://github.com/xoops/goldstandard/issues","forum":"https://xoops.org/forums/goldstandard","docs":"https://docs.xoops.org/goldstandard"},"xoops":{"min":"2026.1","max":null,"php":">=8.2","extensions":["pdo","json","mbstring"],"category":"content"},"database":{"tables":["goldstandard_articles","goldstandard_categories","goldstandard_tags"],"migrations":"migrations/"},"assets":{"css":["assets/css/main.css"],"js":["assets/js/app.js"],"images":"assets/images/"},"templates":{"frontend":"templates/frontend/","admin":"templates/admin/","blocks":"templates/blocks/","mail":"templates/mail/"},"routes":{"web":"config/routes.php","api":"config/api-routes.php"},"services":"config/services.php","middleware":"config/middleware.php","menu":{"admin":[{"title":"Dashboard","link":"admin/index.php","icon":"fa-dashboard"},{"title":"Articles","link":"admin/articles.php","icon":"fa-file-text","submenu":[{"title":"All Articles","link":"admin/articles.php"},{"title":"Add New","link":"admin/articles.php?op=new"},{"title":"Categories","link":"admin/categories.php"}]},{"title":"Settings","link":"admin/settings.php","icon":"fa-cog"}]},"blocks":[{"name":"recent_articles","title":"Recent Articles","description":"Displays the most recent articles","template":"blocks/recent_articles.tpl","handler":"Xoops\\GoldStandard\\Block\\RecentArticles","options":[{"name":"limit","type":"int","default":5},{"name":"category","type":"int","default":0},{"name":"show_date","type":"bool","default":true}],"cacheable":true,"cache_time":3600},{"name":"category_list","title":"Categories","description":"Displays article categories","template":"blocks/category_list.tpl","handler":"Xoops\\GoldStandard\\Block\\CategoryList","options":[{"name":"show_count","type":"bool","default":true}]}],"config":[{"name":"articles_per_page","title":"Articles per Page","description":"Number of articles to display per page","type":"int","default":10,"options":null},{"name":"enable_comments","title":"Enable Comments","description":"Allow comments on articles","type":"bool","default":true},{"name":"default_status","title":"Default Article Status","description":"Status for newly created articles","type":"select","default":"draft","options":{"draft":"Draft","published":"Published"}},{"name":"allowed_html","title":"Allowed HTML Tags","description":"HTML tags allowed in article content","type":"textarea","default":"<p><br><strong><em><ul><ol><li><a><img>"}],"permissions":[{"name":"view","title":"View Articles","description":"Can view published articles","default":["guest","registered"]},{"name":"create","title":"Create Articles","description":"Can create new articles","default":["registered"]},{"name":"edit_own","title":"Edit Own Articles","description":"Can edit own articles","default":["registered"]},{"name":"edit_all","title":"Edit All Articles","description":"Can edit any article","default":["admin"]},{"name":"delete","title":"Delete Articles","description":"Can delete articles","default":["admin"]},{"name":"publish","title":"Publish Articles","description":"Can publish articles","default":["admin"]}],"notifications":[{"name":"article","title":"Article Notifications","description":"Notifications related to articles","events":[{"name":"new","title":"New Article","description":"Notify when a new article is published","template":"mail/article_new.tpl","subject":"New article: {ARTICLE_TITLE}"},{"name":"comment","title":"New Comment","description":"Notify article author of new comments","template":"mail/article_comment.tpl","subject":"New comment on: {ARTICLE_TITLE}"}]}],"search":{"enabled":true,"handler":"Xoops\\GoldStandard\\Search\\ArticleSearch","content_types":["article","category"]},"comments":{"enabled":true,"handler":"Xoops\\GoldStandard\\Comment\\ArticleComment"},"hooks":{"install":"Xoops\\GoldStandard\\Installer::install","update":"Xoops\\GoldStandard\\Installer::update","uninstall":"Xoops\\GoldStandard\\Installer::uninstall"},"events":{"subscribe":[{"event":"user.deleted","handler":"Xoops\\GoldStandard\\Event\\UserDeletedHandler"}],"publish":["article.created","article.published","article.deleted"]},"cli":[{"name":"goldstandard:import","description":"Import articles from external source","handler":"Xoops\\GoldStandard\\Cli\\ImportCommand"},{"name":"goldstandard:cleanup","description":"Clean up old drafts and orphaned data","handler":"Xoops\\GoldStandard\\Cli\\CleanupCommand"}],"api":{"enabled":true,"version":"1.0","prefix":"/api/v1/goldstandard","authentication":["bearer","api_key"],"rate_limit":{"requests":100,"window":60}},"extra":{"custom_key":"custom_value"}}
flowchart TB
subgraph Permission["Permission Structure"]
N[name: unique identifier]
T[title: display name]
D[description: help text]
DEF[default: initial groups]
end
subgraph Groups["Default Groups"]
G[guest]
R[registered]
A[admin]
W[webmaster]
end
DEF --> Groups
{"permissions":[{"name":"view","title":"View Content","description":"Permission to view module content","default":["guest","registered"],"item_based":false},{"name":"edit_item","title":"Edit Item","description":"Permission to edit specific items","default":["admin"],"item_based":true}]}
{"permissions":[{"name":"manage_sensitive_data","title":"Manage Sensitive Data","description":"WARNING: Grants access to personal user information. Only assign to trusted administrators.","default":["admin"]}]}