Pubblicherò un componente tematico su GitHub per aggiungere un pulsante di logout al menu in alto se qualcuno potesse farmi sapere come aggiornare il codice di @pfaffman qui…
I got it! I won’t promise that it’ll work for you, but this might do it for you.
This is common/header.html
<script type="text/discourse-plugin" version="0.8">
const { iconNode } = require("discourse-common/lib/icon-library");
const { logout } = require("discourse/lib/logout");
api.decorateWidget("header-buttons:before", helper => {
if (!Discourse.User.current()) return;
currentUser = Discourse.User.current();
let container = api.container,
lo…
(Al momento, seguire quelle istruzioni e abilitare il componente fa scomparire l’intero menu in alto )
1 Mi Piace
Qualcosa del genere. Sentiti libero di adattarlo alle tue esigenze.
import DButton from "discourse/components/d-button";
import routeAction from "discourse/helpers/route-action";
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer("1.28.0", (api) => {
if (api.getCurrentUser()) {
api.headerIcons.add(
"logout",
`<template>
<li class="logout">
<DButton
@action={{routeAction "logout"}}
class="btn-flat icon"
@icon="sign-out-alt"
@title="user.log_out"
@label="user.log_out"
/>
</li>
</template>`,
{ before: "auth" }
);
}
});
.d-header-icons .logout {
margin-left: 1em;
button.icon {
width: auto;
padding-left: 0.5em;
padding-right: 0.5em;
svg {
margin-right: 0.2em;
width: 1em;
}
}
}
3 Mi Piace
OK, l’ho implementato ma apprezzerei qualsiasi test prima di inviarlo a Meta…
(Ho finito per usare Central Theme Header User Icons - #4 by carson di Carson come punto di partenza)
Adds a Log Out button to the header in Discourse (except in Mobile)
2 Mi Piace
Sconsiglio l’uso di un widget; alla fine scomparirà come parte della modernizzazione principale.
Lo stesso vale per api.addToHeaderIcons; ora è deprecato a favore di api.headerIcons.add.
Ecco alcuni suggerimenti:
Ti incoraggio a usare GitHub - discourse/discourse-theme-skeleton: Template for Discourse themes come riferimento quando crei un componente tema. Contiene i file di configurazione più recenti. È utile per il linting/prettifying del codice ed è una buona pratica avere una struttura standard.
Quando usi la sintassi \u003ctemplate\u003e, rinomina il file con .gjs (glimmer JS); altrimenti, potrebbe non funzionare.
Nel mio esempio, potresti spostare il template nel suo file, ad esempio:
/javascripts/discourse/components/logout-header-button.gjs
import DButton from "discourse/components/d-button";
import routeAction from "discourse/helpers/route-action";
const LogoutHeaderButton = \u003ctemplate\u003e
\u003cli class="logout"\u003e
\u003cDButton
@action={{routeAction "logout"}}
class="btn-flat icon"
@icon="sign-out-alt"
@title="user.log_out"
@label="user.log_out"
/\u003e
\u003c/li\u003e
\u003c/template\u003e;
export default LogoutHeaderButton;
Quindi, nell’initializer, importi il componente e lo usi come parametro in headerIcons:
import LogoutHeaderButton from "../components/logout-header-button";
export default apiInitializer("1.28.0", (api) =\u003e {
if (api.getCurrentUser()) {
api.headerIcons.add("logout", LogoutHeaderButton, { before: "auth" });
}
});
La posizione del pulsante può essere regolata. Puoi leggere la documentazione:
https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/lib/plugin-api.gjs#L1838-L1886
Fammi sapere se hai domande. Posso sempre fare un PR più tardi se hai bisogno di un esempio.
3 Mi Piace
Semplicemente fantastico. Grazie mille per aver dedicato del tempo a guidarmi!
1 Mi Piace
system
(system)
Chiuso
17 Giugno 2024, 3:30pm
6
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.