Another panel theme question

Hi all -

I appreciate the topic of customising the panel has been well and truly covered, and that only the css can be changed. However I was just wondering why that decision was made (sure there’s a good reason), if anyone has had any success and if that will change in the future. I’ve had a couple of cases where I really could have done with editing the actual markup a bit beyond what css will allow, and I’ve taken a nose at the app.js file and it seems pretty intense!

Many thanks!

That’s only half true, because it is possible to override complete views (or at least this will be possible once the current issue is fixed).

Also, you can create custom fields and sections.

What exactly do you want to change?

Well for example I’d like to have the menu as a vertical nav on the left and show the logged in user at the top right. Also what do you mean by the current issue?

Thanks so much

Overriding views should be implemented, but doesn’t work.

But overriding views won’t actually help with modifying the top-bar or menu.

Ah ok thanks, so assume it cannot be done then. Thanks anyway!

Ok, I think it is possible after all, for example:

panel.plugin("texnixe/topbar", {
  components: {
    'k-topbar': {
      extends: 'k-topbar',
      template: '<div>Hello</div>'
    }
  }
});

This replaces the topbar with the div.

Intersting, thanks! I’ll have a go down that path and see how I get on :grinning:

Revisiting this one again, and thanks for your help @texnixe. Unfortunately I’m a bit lost so hoping you can help provide a re-steer. In the example above, where is that code going? I’ve read up on creating plugins but as soon as I get involved in the panel here things start to seem much more involved: https://getkirby.com/docs/guide/plugins/plugin-setup-panel

That goes into the main index.js file if you don’t use components. In case of components, the build process creates that main index.js file from the index.js file in the src folder.

Each plugin always also needs an index.php file, without that file, the plugin is not loaded.

Thanks - when you say main index.js file, do you mean as so (in the case of your example):

plugins/topbar/index.js

In which case does the index.php in this directory need:

Kirby::plugin('texnixe/topbar', [
]);

Yes, exactly.

Look at that I answered my own question… thanks for your help! Sometimes it helps to sound things out :sweat_smile: