izharaazmi / joomla-cms Goto Github PK
View Code? Open in Web Editor NEWThis project forked from joomla/joomla-cms
Home of the Joomla! Content Management System
Home Page: http://joomla.org
License: GNU General Public License v2.0
This project forked from joomla/joomla-cms
Home of the Joomla! Content Management System
Home Page: http://joomla.org
License: GNU General Public License v2.0
The code will be pushed to https://github.com/izharaazmi/joomla-cms/tree/admin-menu-manager
It may be broken sometimes as I do it on my leisures and random places with no known definite schedule.
Pinging @brianteeman for great ideas and inputs :)
The Joomla admin menus are one of the few things in Joomla that you cannot truly customise. The location of the menu items is as a result of arbitrary decisions made many years ago.
Wouldn't you like to perhaps separate the utilities from the content creation components.
It is just a component. I am sure the logic was that it was a component that is used so often that it deserves its own place. But what if you don't use com_content and use com_seblod - or you even have a photo gallery as your main content creating component.
Wouldn't it be great if you could build and customise the admin menu however you want? I am sure many people have had this thought as well but have you ever looked at the code that generates the menus in the Joomla admin? If you have then I am pretty sure that you will have run away scared.
All the menu items except for the Components menu are hard coded with lots of if statements to cope with the few places that we have options.
I am proposing that we switch the entire admin menu system to be database driven and customisable via an admin menu component. Thecomponent will allow people to move menu items, create and remove top level menus etc.
By default without any modifications the site should look exactly the same.
The big BC issue to address is where do the menu links for NEW components that a user installs get created. The problem is that the user could have removed the "components" top level menu. I would suggest that just as we have to flag a top level menu item as default homepage in the frontend we would have to flag a top level menu item in the admin as well for the default location that new component menu items are created.
Unlike the frontend I would suggest that the admin menu manager can only manage ONE menu and not one per language. Instead of user created menu titles as in the front end we can continue to use the strings from the language files. This will ensure that a site with multiple admin languages installed will only need to manage one menu and that everything will be in the same place in all languages.
Currently the jos_extensions table contains all extensions so we would just need to update that table to contain the id for the menu link
[copy pasted from https://github.com/joomla/issues/5492]
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.