Errore quando si clicca sul logo della homepage

Ciao.
Ti mostrerò con le immagini.
Stavo ricevendo questo errore prima dell’ultimo aggiornamento.
Dopo aver installato l’aggiornamento, continuo a ricevere questo errore.

(Aggiornato - Current)
Ekran görüntüsü 2024-05-03 153512

E ho rimosso tutto il codice dal sito e ho riprovato, ricevo ancora l’errore.

Traduci

Errore
Si è verificato un errore.

Succede anche in modalità provvisoria? Potresti anche controllare la console del browser per eventuali errori quando ci fai clic, oltre a controllare in /logs per vedere se ci sono maggiori dettagli.

1 Mi Piace

La modalità provvisoria è attiva e non viene visualizzato alcun errore nella pagina dei log. Forse non capisco.

Ultimi log.
Ekran görüntüsü 2024-05-03 154929

Ho provato a disattivare la modalità provvisoria. Ricevo ancora lo stesso errore.

A proposito, quando ci clicco per la seconda volta, l’errore scompare e appare la home page.

Vedo alcuni errori quando i componenti del tema vengono caricati e i plugin vengono scaricati.

Potresti dare un’occhiata alle tue recenti personalizzazioni.

1 Mi Piace

Grazie per il tuo interesse.

Ultimo plugin: GIF

Tutti i plugin

Hai personalizzazioni JS al di fuori dei componenti remoti?

Proverei a disabilitare tutti i componenti e ad abilitarli uno per uno finché non si verifica l’errore.

<script>
function moveTagsToTitle() {
    const mainLinks = document.querySelectorAll('.main-link');
    mainLinks.forEach(mainLink => {
        const discourseTags = mainLink.querySelector('.discourse-tags');
        const titleElement = mainLink.querySelector('.title');

        if (discourseTags && titleElement) {
            const tags = discourseTags.querySelectorAll('.discourse-tag');

            tags.forEach(tag => {
                const tagSpan = document.createElement('span');
                tagSpan.className = 'discourse-tag box';
                tagSpan.textContent = tag.textContent;
                tagSpan.style.fontSize = 'var(--font-down-2)';
                tagSpan.style.borderRadius = '10px';
                tagSpan.style.border = '1px solid #444460';
                tagSpan.style.backgroundColor = '#1f1f33';
                tagSpan.style.margin = '2px';
                tagSpan.style.display = 'inline-block';
                tagSpan.style.overflow = 'hidden';
                tagSpan.style.whiteSpace = 'nowrap';
                tagSpan.style.textOverflow = 'ellipsis';
                tagSpan.style.verticalAlign = 'middle';
                tagSpan.style.marginRight = '5px';
                tagSpan.style.marginLeft = '-6px';
                titleElement.insertBefore(tagSpan, titleElement.firstChild);
            });

            if (discourseTags.parentNode) {
                discourseTags.parentNode.removeChild(discourseTags);
            }
        }
    });

    const topicHeaderExtras = document.querySelectorAll('.topic-header-extra');

    topicHeaderExtras.forEach(topicHeaderExtra => {
        const discourseTags = topicHeaderExtra.querySelector('.discourse-tags');
        const tags = discourseTags.querySelectorAll('.discourse-tag');

        tags.forEach(tag => {
            tag.className = 'discourse-tag box';

            tag.style.borderRadius = '10px';
            tag.style.border = '1px solid #444460';
            tag.style.backgroundColor = '#1f1f33';
            tag.style.margin = '1px';
            tag.style.padding = '2px 8px';
            tag.style.display = 'inline-block';
            tag.style.overflow = 'hidden';
            tag.style.whiteSpace = 'nowrap';
            tag.style.textOverflow = 'ellipsis';
            tag.style.verticalAlign = 'middle';
            tag.style.marginRight = '5px';
            tag.style.marginBottom = '5px';
        });
    });
}

window.addEventListener('load', moveTagsToTitle);
const observer = new MutationObserver(moveTagsToTitle);
const targetNode = document.body;
const observerOptions = {
    childList: true,
    subtree: true
};
observer.observe(targetNode, observerOptions);

</script>

Questi codici causano questo errore.
Non so come risolverlo.
Ho bisogno di questi codici :frowning:

Stai spostando elementi che contengono componenti Emberjs (qui è l’elenco dei tag), il che penso possa interrompere il ciclo di vita del componente.

La tua migliore opzione qui è usare l’API.

Nel tuo caso, o:

  • Utilizzando gli outlet dei plugin come ho mostrato nel tuo ultimo argomento. Tuttavia, poiché non esiste per gli argomenti più recenti nella pagina della categoria, dovrai richiederlo.

  • Sovrascrivi il template. Questa non è una buona soluzione per motivi di compatibilità, ma può essere un’alternativa immediata.

1 Mi Piace

Ho trovato questi codici.

Questo non è quello che volevo, ma per ora andrà bene.

 var pElement = document.getElementById('site-logo').parentNode;
                    //var pElement = document.createElement('a');
                    //pElement.innerHTML = aElement.innerHTML;
                    //aElement.replaceWith(pElement);
                    pElement.href = '#';
                    pElement.style.cursor = 'pointer';
                    pElement.onclick = function() {
                      window.location.href = '/';
                    };
                    //document.getElementById('site-logo').parentNode.href = '/';

Se qualcuno può aiutare, sto aspettando. Grazie :pray:

Consiglio vivamente di non intraprendere quella strada. È come applicare un cerotto a un effetto collaterale invece di risolvere la causa principale del problema. Creerai altri problemi con essa (come il tuo ultimo topic a causa del codice sopra)

Puoi rendere il tuo JS un po’ più “discourse friendly” (il modo migliore è comunque usare un plugin outlet quando puoi).
Ecco un esempio. Utilizza l’API al cambio pagina, esegue codice su un percorso specifico e copia l’HTML prima del link (in modo da poter fare clic sul tag):

JS
<script type="text/discourse-plugin" version="0.8">
  const { next } = require("@ember/runloop");
  
  function moveTags() {
    const mainLinks = document.querySelectorAll(".main-link:not(.tags-moved)");
    
    mainLinks.forEach((mainLink) => {
      const discourseTags = mainLink.querySelector(".discourse-tags");
      const titleElement = mainLink.querySelector("a[data-topic-id]");

      if (discourseTags && titleElement) {
        titleElement.insertAdjacentHTML("beforebegin", discourseTags.outerHTML);
        mainLink.classList.add('tags-moved');
      }
    });
  }

  api.registerModelTransformer("topic", async (topics) => {
    next(() => {
      moveTags();
    })
  });

  api.onPageChange((url) => {
    if (url.startsWith("/categories")) {
      moveTags();
    }
  });
</script>
CSS
.top-row, 
.link-top-line {
    .discourse-tag {
        font-size: var(--font-down-2) !important;
        padding: 2px 8px;
        margin: 2px 5px 2px -6px;
        border-radius: 10px;
        border: 1px solid #444460;
        background-color: #1f1f33;
    }
    
    .discourse-tag::after {
        content: '' !important;
        margin-left: 0 !important;
    }
}

.bottom-row, 
.link-bottom-line {
    .discourse-tags {
        display: none;
    }
}
2 Mi Piace

Ciao @Arkshine
Cambiare il link del logo non ha aiutato, ho cancellato questi codici.

Ma non c’è altro modo. Ho bisogno di posizionare i tag in questo modo.
https://pvpfarm.com

Se pago qualcuno, può scrivere codici decenti che funzionano?

E dove trovi questi codici? (JS) Da GitHub - discourse/discourse: A platform for community discussion. Free, open, simple.?

Puoi creare un argomento in Marketplace se hai bisogno/vuoi assistenza a pagamento. :+1:

1 Mi Piace

Ho fornito il codice per questo in #11.

Ciao di nuovo @Arkshine
Ho aggiunto i codici che mi hai dato dopo averli cancellati, ma non funzionano. Sto commettendo un errore?

Funziona per me:

Assicurati di mantenere \u003cscript type=\"text/discourse-plugin\" version=\"0.8\"\u003e. , altrimenti non funzionerà.

Sì, funziona!
C’è solo un piccolo errore.
Quando faccio clic sul logo, il numero di tag aumenta.

Ho aggiornato il mio codice sopra.

2 Mi Piace

Non so come ringraziarti. Grazie mille! :pray: :heart:

@Arkshine Mi dispiace per aver ripreso nuovamente l’argomento.
Grazie ancora. Ho trovato un errore nei codici che mi hai dato.
Puoi aiutarmi per favore?
Ho provato a correggere i codici ma non ci sono riuscito.

Nella sezione Ultimi, appare solo il tag nell’argomento taggato aperto più di recente.


E quando entri in una categoria, i tag non appaiono.

@ogulcan1787 Ho aggiornato il codice sopra.

1 Mi Piace