The app store category cache (cache-categories) held the name and description of every category in every language, about 170 KB, stored as a regular app config value. Nextcloud loads all regular values of all apps on every request, so this one value was read on every page load. It was only refreshed with the "remove cache" button. - Keep only the category ids and names, store the cache as a lazy value so it is only loaded when categories are needed, and refresh it after a week. - Only load the categories where they are used: the menus with categories, and the app list when custom categories are set. - Save all settings in one request to a new admin endpoint, which accepts only known settings, then clears the category cache and changes the stylesheet cache key. The settings page sent one request per setting and reloaded right after; with Nextcloud's short-lived local config cache, the reloaded page could show a half-saved configuration, so a change sometimes had to be made twice.
🤙 Nextcloud app / Custom menu 🎨
Allows you to modify the position of the main menu by creating a panel on the left of the interface or with a big menu on the top. You can also add and sort custom categories, define apps that must be displayed in the top menu, etc. Fully customisable.
This application is rather suitable for instances that activate a lot of applications.
You can customize colors depending of the theme (Dark theme and Breeze Dark).
You like this app and you want to support me? ☕ Buy me a coffee or Donate with liberapay
📘 Read the documentation
Requirements
- PHP >= 8.1
Installation and upgrade
Custom menu is available from the app store.
$ cd /path/to/nextcloud
$ php occ app:install side_menu
If you want to install it from source, go to https://gitnet.fr/deblan/side_menu/releases and copy the link to the last release (side_menu_vX.Y.Z.tar.gz). Then:
$ cd /path/to/nextcloud/apps
$ VERSION=x.y.z; curl -sS "https://gitnet.fr/deblan/side_menu/releases/download/${VERSION}/side_menu_v${VERSION}.tar.gz" | tar xvfz -
Administrators can edit many settings using the administration page.
Users can disable the menu using the page of personal settings.
Use the shortcut Ctrl+o to open and to hide the side menu. Use tab to navigate.
Use first top menu app as default app
You can easily let Custom Menu redirect to the first app in the top menu by changing the following parameter in your config/config.php:
'defaultapp' => 'side_menu',
If the top menu is empty then it redirects to files.
How to contribute?
You can report a bug or request a feature by opening an issue: https://gitnet.fr/deblan/side_menu/issues
You are a translator
Translations are managed from translate.codeberg.org.
You are a developer
- fork the repository
- install an instance of Nextcloud
- go to
apps/and clone your repository - go to
apps/side_menuand runmake dep
Build javascripts using make build (or make watch to build them in real time).
Then commit and create a pull request.
Support
You can join the official room on Matrix: #custommenu:neutralnetwork.org.
Notice
Because I believe in a free and decentralized Internet, Gitnet is self-hosted at home. In case of downtime, you can download Custom Menu from here.