Ho qualcosa del genere nella scheda JS del mio tema:
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer("0.11.1", (api) => {
api.renderInOutlet("above-main-container",
<template>
<div>
html stuff
</div>
</template>
);
});
Ho copiato e incollato quel codice, funziona (è solo un esempio)
Come posso fare in modo che venga renderizzato solo nella home page o solo nella pagina delle categorie?
Scusate se questa non è una buona domanda
È una buona domanda, non preoccuparti! Questo funzionerà:
import Component from "@glimmer/component";
import { service } from "@ember/service";
import { apiInitializer } from "discourse/lib/api";
import { defaultHomepage } from "discourse/lib/utilities";
class HomepageOnly extends Component {
@service router;
get shouldShow() {
return this.router.currentRouteName === `discovery.${defaultHomepage()}`;
}
<template>
{{#if this.shouldShow}}
<div>
roba html
</div>
{{/if}}
</template>
}
export default apiInitializer((api) => {
api.renderInOutlet("above-main-container", HomepageOnly);
});
Questo crea un nuovo componente, che utilizza il servizio router e l’utilità defaultHomepage per verificare se si è nella homepage. Successivamente, il componente viene reso nell’outlet.
Ci sono alcuni dettagli in più qui: Add custom content that only appears on your homepage
Grazie Kris, funziona perfettamente. Grazie anche per il link, sto cercando di imparare.