pterodactyl / panel

Pterodactyl® is a free, open-source game server management panel built with PHP, React, and Go. Designed with security in mind, Pterodactyl runs all game servers in isolated Docker containers while exposing a beautiful and intuitive UI to end users.
https://pterodactyl.io
Other
6.81k stars 1.74k forks source link

Child themes #4016

Closed VirtualHorror closed 2 years ago

VirtualHorror commented 2 years ago

Is there an existing feature request for this?

Describe the feature you would like to see.

I have noticed a lot of Pterodactyl installations which use customized themes and do not update their panel since it tends to break after an update/major version change. This potentially means that users are missing out on security fixes and new features that are introduced in the update. The solution to this; Child themes.

Describe the solution you'd like.

A Child Theme is a theme that inherits templates and assets from another theme, referred to as the Parent Theme. A parent theme is a complete theme that includes all of the Pterodactyl panel template files and assets that the theme requires in order to work.

With a Child Theme, your theme would only need to contain the template files you wish to customise and change. For CSS styling-only customisations, your theme doesn’t have to contain any template files at all.

The result is a smaller theme that’s easier to maintain without touching any core files, a practice that safeguards those customization when performing updates to the parent theme.

This has two important consequences: 1) Separation of Customisations — A Child Theme can be used to customise any part of a parent theme in a way that keeps those customisations separate from the Parent Theme’s files. 2) Simplified Maintenance and Updates — Using a Child Theme has the benefit of referencing all uncustomised files from the Parent Theme. This makes updates easier by having changes in the Parent Theme automatically take effect within the Child Theme.

Additional context to this request.

A lot of popular systems have already implemented this system:

Wordpress WHMCS WooCommerce

DaneEveritt commented 2 years ago

People can already do this if they approach theming in a way that isn't just a brutalist replacement of all files. As mentioned in multiple previous issues though, I'm really not interested in building or maintaining any type of theme system to that degree.