Skip to content
Merged
Show file tree
Hide file tree
Changes from 52 commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
d7084e2
Revert "Add system menu management (downport from XOOPS 2.7.0)"
mambax7 Mar 19, 2026
203d9dd
feat(menus): add system menu constant, config, and admin registration
mambax7 Mar 19, 2026
7182712
feat(menus): add menu table creation and idempotent seed logic
Mar 19, 2026
dd491ac
feat(menus): add XoopsMenusCategory kernel object and handler
mambax7 Mar 19, 2026
0c7f069
feat(menus): add XoopsMenusItems kernel object and handler
Mar 19, 2026
ad76b81
feat(menus): add SystemMenusTree validator with cycle and depth checks
Mar 19, 2026
e6f09d0
feat(menus): add loadMenus() and theme integration for frontend menu …
Mar 19, 2026
294d145
feat(menus): add English language constants for menu admin
Mar 19, 2026
a6d9563
feat(menus): add admin controller with CRUD, tree validation, and AJA…
Mar 19, 2026
3a01956
feat(menus): add admin template, CSS, and JavaScript with SortableJS
Mar 19, 2026
e3581c3
feat(menus): add theme nav-menu templates with xoMenuCategories rende…
Mar 19, 2026
9475607
feat(menus): add frontend multilevel menu CSS and JS
Mar 19, 2026
d70331b
feat(menus): add form description constants and disabled-item error m…
Mar 19, 2026
cb6b431
feat(menus): add handler methods, getNewEnreg, language fallback, and…
Mar 19, 2026
cb9b57e
fix(menus): improve theme integration — target strings, handler metho…
Mar 19, 2026
9ac5732
fix(menus): version-gate update, add FA icons, NULL migration, seed U…
Mar 19, 2026
3fa6378
fix(menus): block editing and deleting inactive menu items
Mar 19, 2026
9ac4622
fix(menus): add Escape key, click-outside, aria-expanded, and toolbar…
Mar 19, 2026
d004fed
fix(menus): use target strings, language constants in fallback, aria-…
Mar 19, 2026
e3384f8
feat(menus): add menu icon PNGs for all admin themes and image field …
Mar 19, 2026
adf6843
test(menus): add regression tests for schema conventions, security, a…
Mar 19, 2026
f0ef78e
fix(menus): use exec() for DDL/DML statements, query() only for SELEC…
Mar 19, 2026
be737b1
fix(menus): remove @package tag from SystemMenusTree, fix test namesp…
Mar 19, 2026
c65b521
docs(menus): add //2.5.12 version markers to language files and updat…
Mar 19, 2026
05f5537
refactor(menus): use xoops_loadLanguage() instead of manual language …
Mar 19, 2026
b1a5f3a
refactor(menus): rename form variables from $xxxEl to $xxxField for c…
Mar 19, 2026
0f0115d
fix(menus): align test namespaces with existing modulessystem convention
Mar 19, 2026
2a112ae
updates
mambax7 Mar 19, 2026
4c89eda
feat(menus): add xoops_cp_header/footer, breadcrumbs, xoAdminIcons, s…
Mar 19, 2026
9a02848
docs(menus): add NAV_CATEGORY constant to lang_diff.txt
Mar 19, 2026
bef83eb
docs(menus): improve PHPDoc to explain why and who calls each method,…
Mar 19, 2026
d091acd
fix(menus): fix regex delimiter collision in normalizeMenuUrl — # use…
Mar 19, 2026
80b35c6
fix(menus): restore full navbar wrapper in theme templates — was miss…
Mar 19, 2026
bf14bf0
fix(menus): set template_main before xoops_cp_header — admin page was…
Mar 19, 2026
3262f6c
fix(menus): include xoopsformloader before using form classes in getF…
Mar 19, 2026
06102e9
fix(menus): include grouppermform.php — XoopsGroupPermForm is not in …
Mar 19, 2026
cdd3a83
fix(menus): remove setDescription on XoopsGroupPermForm — method does…
Mar 19, 2026
d00180e
fix(menus): replace XoopsGroupPermForm with Xmf\Module\Helper\Permiss…
Mar 19, 2026
185b9dd
fix(menus): align item_id parameter name between JS, templates, and c…
Mar 19, 2026
3bd1903
Clean-room system menu administration
mambax7 Mar 19, 2026
38fde18
Address review findings: orphan guard, active-state check, version_co…
mambax7 Mar 19, 2026
a4ef68d
Update regression test to match idempotent permission seeding
mambax7 Mar 19, 2026
056971c
Harden reorder, save, and update against crafted payloads
mambax7 Mar 19, 2026
5d23856
Fix double-escaping, viewcat markup, position base, dead code, and j…
mambax7 Mar 19, 2026
9bfd2af
Check insert() results in AJAX handlers, validate new item category…
mambax7 Mar 19, 2026
c8066a7
Fix CI, harden handlers, allow inactive edit/delete, Scrutinizer cl…
mambax7 Mar 19, 2026
0217f7e
Check DB exec results, 1-based item positions
mambax7 Mar 19, 2026
cf41be1
Short-circuit reorder on failure, whitelist constant resolution, Scru…
mambax7 Mar 19, 2026
ff3b8c1
Drop orphaned tree nodes, protect target on seed rows, harden isNew …
mambax7 Mar 19, 2026
8ee49e5
Fail fast on delete errors, validate reorder tree shape and complet…
mambax7 Mar 19, 2026
ccde896
Exact item set validation for reorder, whitelist URL schemes
mambax7 Mar 19, 2026
dd4aee9
Order-insensitive set comparison, decode entities before URL scheme…
mambax7 Mar 19, 2026
d04d803
Split dropdown toggle from category link in frontend nav themes
mambax7 Mar 19, 2026
f38d42b
Fix frontend nav dropdown: hover-open, split toggle, submenu arrows,…
mambax7 Mar 19, 2026
e52b61d
Add touch-friendly dropdown: first tap opens submenu, second tap nav…
mambax7 Mar 19, 2026
0a1e635
Extend touch-friendly tap to nested submenus
mambax7 Mar 19, 2026
0d00109
Title:
mambax7 Mar 19, 2026
8319aee
Close open dropdowns on outside tap
mambax7 Mar 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 82 additions & 0 deletions docs/lang_diff.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,88 @@ Below are language differences from a version to next version.
================================
2025/03/30: Version 2.5.12-Betas
================================
/htdocs/modules/system/language/english/admin.php
- added define('_AM_SYSTEM_MENUS', 'Menus');
- added define('_AM_SYSTEM_MENUS_DESC', 'Manage site navigation menus');

/htdocs/modules/system/language/english/modinfo.php
- added define('_MI_SYSTEM_MENUS_ACTIVE', 'Enable Menu System');
- added define('_MI_SYSTEM_MENUS_ACTIVE_DESC', 'Enable the built-in menu management system for site navigation');

/htdocs/modules/system/language/english/admin/menus.php (NEW FILE)
- added define('_AM_SYSTEM_MENUS_NAV_MAIN', 'Menu Manager');
- added define('_AM_SYSTEM_MENUS_NAV_BACK', 'Back to Menu List');
- added define('_AM_SYSTEM_MENUS_NAV_CATEGORY', 'Category View');
- added define('_AM_SYSTEM_MENUS_NAV_TIPS', '<strong>Tips:</strong><ul>...');
- added define('_AM_SYSTEM_MENUS_ACTIVE', 'Active');
- added define('_AM_SYSTEM_MENUS_ACTIVE_YES', 'Enabled');
- added define('_AM_SYSTEM_MENUS_ACTIVE_NO', 'Disabled');
- added define('_AM_SYSTEM_MENUS_SAVED', 'Saved successfully');
- added define('_AM_SYSTEM_MENUS_DELETED', 'Deleted successfully');
- added define('_AM_SYSTEM_MENUS_ORDER_SAVED', 'Order saved');
- added define('_AM_SYSTEM_MENUS_LISTCAT', 'List Categories');
- added define('_AM_SYSTEM_MENUS_LISTITEM', 'List Items');
- added define('_AM_SYSTEM_MENUS_ADDCAT', 'Add Category');
- added define('_AM_SYSTEM_MENUS_EDITCAT', 'Edit Category');
- added define('_AM_SYSTEM_MENUS_DELCAT', 'Delete Category');
- added define('_AM_SYSTEM_MENUS_CATTITLE', 'Category Title');
- added define('_AM_SYSTEM_MENUS_CATTITLE_DESC', 'A language constant name (e.g. MENUS_HOME) can be used here so the label is translatable.');
- added define('_AM_SYSTEM_MENUS_CATPREFIX', 'Prefix (HTML)');
- added define('_AM_SYSTEM_MENUS_CATPREFIX_DESC', 'Optional markup shown before the category title, such as a Font Awesome icon.');
- added define('_AM_SYSTEM_MENUS_CATSUFFIX', 'Suffix (HTML)');
- added define('_AM_SYSTEM_MENUS_CATSUFFIX_DESC', 'Optional markup shown after the category title.');
- added define('_AM_SYSTEM_MENUS_CATURL', 'URL');
- added define('_AM_SYSTEM_MENUS_CATURL_DESC', 'Link for the category itself, such as "index.php" or an absolute URL.');
- added define('_AM_SYSTEM_MENUS_CATTARGET', 'Link Target');
- added define('_AM_SYSTEM_MENUS_CATPOSITION', 'Position');
- added define('_AM_SYSTEM_MENUS_DELCAT_CONFIRM', 'Are you sure you want to delete the category "%s" and all its items?');
- added define('_AM_SYSTEM_MENUS_ADDITEM', 'Add Item');
- added define('_AM_SYSTEM_MENUS_EDITITEM', 'Edit Item');
- added define('_AM_SYSTEM_MENUS_DELITEM', 'Delete Item');
- added define('_AM_SYSTEM_MENUS_ITEMTITLE', 'Item Title');
- added define('_AM_SYSTEM_MENUS_ITEMTITLE_DESC', 'A language constant name can be used here so the label is translatable.');
- added define('_AM_SYSTEM_MENUS_ITEMPREFIX', 'Prefix (HTML)');
- added define('_AM_SYSTEM_MENUS_ITEMPREFIX_DESC', 'Optional markup shown before the item title, such as a Font Awesome icon.');
- added define('_AM_SYSTEM_MENUS_ITEMSUFFIX', 'Suffix (HTML)');
- added define('_AM_SYSTEM_MENUS_ITEMSUFFIX_DESC', 'Optional markup shown after the item title. Supports the <{xoInboxCount}> placeholder.');
- added define('_AM_SYSTEM_MENUS_ITEMURL', 'URL');
- added define('_AM_SYSTEM_MENUS_ITEMTARGET', 'Link Target');
- added define('_AM_SYSTEM_MENUS_ITEMPOSITION', 'Position');
- added define('_AM_SYSTEM_MENUS_ITEMPARENT', 'Parent Item');
- added define('_AM_SYSTEM_MENUS_ITEMCATEGORY', 'Category');
- added define('_AM_SYSTEM_MENUS_DELITEM_CONFIRM', 'Are you sure you want to delete the item "%s" and its sub-items?');
- added define('_AM_SYSTEM_MENUS_TARGET_SELF', 'Same window');
- added define('_AM_SYSTEM_MENUS_TARGET_BLANK', 'New window');
- added define('_AM_SYSTEM_MENUS_PERMISSION_VIEW_CATEGORY', 'Groups that can see this category');
- added define('_AM_SYSTEM_MENUS_PERMISSION_VIEW_CATEGORY_DESC', 'Users must have category access before any of its items become visible.');
- added define('_AM_SYSTEM_MENUS_PERMISSION_VIEW_ITEM', 'Groups that can see this item');
- added define('_AM_SYSTEM_MENUS_PERMISSION_VIEW_ITEM_DESC', 'Item permissions are checked after the parent category permission.');
- added define('_AM_SYSTEM_MENUS_ERROR_CATNOTFOUND', 'Category not found');
- added define('_AM_SYSTEM_MENUS_ERROR_CATPROTECTED', 'Cannot delete a protected category');
- added define('_AM_SYSTEM_MENUS_ERROR_CATINACTIVE', 'Cannot activate: the category is inactive');
- added define('_AM_SYSTEM_MENUS_ERROR_ITEMNOTFOUND', 'Item not found');
- added define('_AM_SYSTEM_MENUS_ERROR_ITEMPROTECTED', 'Cannot delete a protected item');
- added define('_AM_SYSTEM_MENUS_ERROR_ITEMPARENT', 'Invalid parent item selected');
- added define('_AM_SYSTEM_MENUS_ERROR_ITEMCYCLE', 'Cannot set parent: it would create a circular reference');
- added define('_AM_SYSTEM_MENUS_ERROR_ITEMDEPTH', 'Maximum nesting depth (3 levels) exceeded');
- added define('_AM_SYSTEM_MENUS_ERROR_PARENTINACTIVE', 'Cannot activate: the parent item is inactive');
- added define('_AM_SYSTEM_MENUS_ERROR_NOITEMS', 'There are no submenu items in this category.');
- added define('_AM_SYSTEM_MENUS_ERROR_ITEMEDIT', 'Enable this item before editing it');
- added define('_AM_SYSTEM_MENUS_ERROR_ITEMDISABLE', 'Enable this item before deleting it');
- added define('MENUS_HOME', 'Home');
- added define('MENUS_ADMIN', 'Administration');
- added define('MENUS_ACCOUNT', 'Account');
- added define('MENUS_ACCOUNT_EDIT', 'Edit Account');
- added define('MENUS_ACCOUNT_LOGIN', 'Login');
- added define('MENUS_ACCOUNT_LOGOUT', 'Logout');
- added define('MENUS_ACCOUNT_REGISTER', 'Sign Up');
- added define('MENUS_ACCOUNT_MESSAGES', 'Messages');
- added define('MENUS_ACCOUNT_NOTIFICATIONS', 'Notifications');
- added define('MENUS_ACCOUNT_TOOLBAR', 'Toolbar');

/htdocs/modules/system/constants.php
- added define('XOOPS_SYSTEM_MENUS', 19);

/htdocs/modules/system/language/english/blocks.php
-added define('_MB_SYSTEM_WAITING_CONTENT_DEPRECATED', "Block 'Waiting Contents' is deprecated since XOOPS 2.5.11, please use Waiting module");

Expand Down
Loading
Loading