Nosso(s) site(s) é/são quase exclusivamente restrito(s) à nossa nação.
Temos um problema específico em que nosso fuso horário se parece com um local específico em nosso país e, portanto, pode confundir os usuários quando visto com o campo de localização imediatamente abaixo dele:
Neste caso, o evento (local) está sendo realizado em um estabelecimento local bem conhecido a cerca de 1000 km da cidade de Auckland (em outra cidade). Ter (Auckland) ali é bastante enganoso.
Houve alguma discussão no tópico vinculado sobre isso:
Seria muito útil poder ocultar o fuso horário (especialmente em Eventos) para eventos locais no nível do site, mas não consigo ver como fazer isso com CSS - e ask.discourse.com não ajuda.
Junto a isso, seria muito útil poder definir eventos locais como padrão.
O fuso horário da cidade do evento só é exibido se “Mostrar Hora Local” estiver ativado nas configurações do evento
“Mostrar Hora Local” está desativado por padrão
Então, presumo que você tenha usuários ativando “Mostrar Hora Local” e você não quer isso.
E se você ocultar a configuração “Mostrar Hora Local” para que não possa ser ativada?
.event-field.show-local-time {
display: none;
}
Novos eventos exibirão então a hora e a cidade do fuso horário do usuário. (Não vejo uma maneira de ocultar a cidade, pois é conteúdo gerado.)
por exemplo, um evento criado no fuso horário de Phoenix será exibido com meu próprio horário local e “Chicago”.
Não exatamente - este não é o problema. Na verdade, não importa muito se é local ou do usuário (será o mesmo na maioria dos casos).
O problema é que nosso fuso horário específico é enganoso devido ao texto que ele contém (é o único fuso horário da Nova Zelândia). Isso também se aplica a você: no seu exemplo acima, implica que o evento será realizado em Little Creek, Chicago.
Bem, depois de bater a cabeça na parede da codificação de vibração por um tempo, eu tenho este trecho de javascript (colocado na aba JS de um Componente de Tema local) que está resolvendo o problema para mim:
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer("swap-auckland-for-nz", (api) => {
function swapTimezones(root = document) {
root.querySelectorAll('.relative-time').forEach(elem => {
if (elem.textContent && elem.textContent.includes('(Auckland)')) {
elem.textContent = elem.textContent.replace('(Auckland)', '(NZ)');
}
});
}
api.onPageChange(() => {
swapTimezones(document);
// Configurar observador de mutação persistente para eventos dinâmicos/saída de calendário
const observer = new MutationObserver(() => {
swapTimezones(document);
});
observer.observe(document.body, { childList: true, subtree: true });
// Opcionalmente, também executar novamente após outros eventos de navegação
window.addEventListener("hashchange", () => swapTimezones(document));
window.addEventListener("popstate", () => swapTimezones(document));
});
});
Se eu tiver tempo, vou empacotar isso como um Componente de Tema instalável para que outros possam usá-lo, se desejarem.
Eu não percebi que a Nova Zelândia tinha apenas um fuso horário, mas quando terminei lá, tive a sensação de que seu problema precisaria de javascript. Que bom que você conseguiu uma solução em JS!