Ok, questo potrebbe essere il problema con alcune miniature, ma non spiega le altre. Abbiamo diversi argomenti (alcuni pubblicati oggi e altri prima dell’aggiornamento del plugin TLP, risalenti a diverse settimane fa) che contengono immagini caricate di oltre 2000px di larghezza, ma che generano miniature molto piccole di 50px e 100px per la pagina principale.
No, vogliamo una larghezza e una risoluzione standard uniche, con altezza variabile in base alle nostre impostazioni:
topic_list_thumbnail_width è 284 topic_list_thumbnail_height è 0 topic_list_thumbnail_resolution_level è 4 (ho dovuto usare 4 perché il valore predefinito di 2 non era corretto… Generava miniature da 1024px quando lasciato al predefinito di 2, mentre mi serviva la dimensione 400 che sembra corrispondere a 4)
Come io intendo queste impostazioni sono:
Le miniature delle immagini avranno una larghezza di 400px
Le tessere visualizzeranno le immagini a 284px di larghezza e altezza variabile in base al rapporto dell’immagine originale caricata
Tuttavia, il forum sembra servire casualmente miniature larghe 50px o 100px su alcuni argomenti… E queste immagini vengono visualizzate all’interno del riquadro della tessera, che è sempre di 284px sul nostro sito, da qui la sfocatura dovuta allo stiramento della miniatura più piccola per riempire la tessera.
Penso di aver capito esattamente cosa sta succedendo… questa è la mia migliore ipotesi basata su ciò che vedo:
È un problema legato a come TLP accede a thumbnails in /latest.json. thumbnails non contiene sempre lo stesso numero di elementi per argomento. Se l’immagine originale dell’argomento scelta per creare l’anteprima è in realtà inferiore a 1024px, quella dimensione di anteprima non verrà generata e non sarà presente come elemento/voce nell’array thumbnails. Poiché thumbnails manca di un elemento, il conteggio del plugin sarà errato di uno e restituirà la dimensione sbagliata dell’anteprima. Se l’immagine originale dell’argomento è più stretta di 800px, allora le larghezze 1024 e 800 non verranno generate e il conteggio del plugin sarà errato di due, restituendo un’anteprima ancora più piccola e sbagliata
Sembra che il plugin stia percorrendo l’array thumbnails fino a un elemento predefinito, quando invece dovrebbe cercare un elemento con un max_width specifico che corrisponda all’impostazione del sito relativa alla risoluzione della lista degli argomenti. In questo modo, gli argomenti possono avere array thumbnails di diverse lunghezze in latest.json e restituire comunque la larghezza corretta dell’anteprima.
Questo spiegherebbe perché alcune tessere degli argomenti sul nostro forum mostravano larghezze di 50px, altre di 100px, mentre la maggior parte aveva la corretta larghezza di 400px… gli argomenti con larghezze più piccole avevano immagini originali inferiori a 1024px di larghezza o inferiori a 800px.
Spero che abbia senso!
Inoltre, potresti aggiungere register_topic_thumbnail_size [300, 300]? Abbiamo bisogno di una larghezza di 284px per le nostre tessere, e caricare anteprime da 300px è preferibile per noi rispetto a caricare quelle da 400px. Idealmente, preferiremmo generare esattamente la larghezza corretta, ma probabilmente passerò al Componente Tema quando verrà rilasciato ufficialmente, aggiungendo la mia larghezza personalizzata.
Grazie per il tuo lavoro sia sul plugin che sul componente!
La tua soluzione di esempio non è pertinente perché non genera miniature superiori a 800x800. L’immagine con la risoluzione più alta nell’array è semplicemente l’immagine originale.
In ogni caso, pensavo che la tua preoccupazione riguardasse le immagini a bassa risoluzione; perché fornire un esempio relativo a un’immagine così grande? Stai dicendo che questa immagine di grandi dimensioni viene visualizzata a una risoluzione di 50x50?
Sì, naturalmente la lunghezza dell’array delle miniature varia. L’algoritmo è progettato per gestirlo. Potrebbe esserci un bug, ma il fatto che l’elenco delle miniature abbia una lunghezza variabile è già un’ipotesi implicita nel codice attuale.
Seleziona il livello di risoluzione delle miniature che hai scelto e lo modifica se necessario. Ad esempio:
Se lo schermo viene identificato come Retina, sposta la selezione di un livello in modo che il risultato abbia una risoluzione più alta.
Se la risoluzione non è disponibile, seleziona la successiva più alta disponibile.
Come ho detto, se è disponibile solo una risoluzione di 50x50, dovrei probabilmente disabilitare completamente le miniature in Tiles.
Se desideri aggiungere risoluzioni personalizzate, per il momento ti invito a eseguire un fork del plugin. Le miniature sono deliberatamente doppie l’una dell’altra. Modificarle solo per te aumenterebbe l’utilizzo dello spazio su disco per tutti gli utenti. Non penso che sia così importante corrispondere così strettamente agli originali: si tratta solo di anteprime in miniatura. Detto questo, forse c’è un motivo per avere una risoluzione che corrisponda più da vicino al caso d’uso comune di Tiles. Fammici pensare.
Sì, stiamo notando diversi argomenti in cui un’immagine grande viene visualizzata a livello 50x50, anche se sono disponibili anche livelli 400x400 e 200x200. L’unica coerenza che ho notato tra questi argomenti è che l’immagine originale caricata aveva una larghezza inferiore a 1024 pixel o inferiore a 800 pixel, rendendo quindi assenti quelle dimensioni nell’array delle miniature. Questo mi ha portato a credere che il modo in cui il plugin accede alle miniature sia in qualche modo correlato alla lunghezza dell’array delle miniature.
Capisco perfettamente la decisione di non aggiungere dimensioni personalizzate. Grazie per la spiegazione dettagliata
Puoi inviarmi in privato un’immagine completa che causa il problema così posso testarla? Conferma inoltre il livello di risoluzione impostato e il dispositivo su cui riscontri il problema.
Non so se sia solo un problema mio, ma le miniature su mobile con il componente del tema hanno smesso di funzionare. Funzionano ancora con il componente del tema delle miniature degli argomenti, quindi sembra un bug. Per tua informazione, non vedo nulla di rilevante nella console.
OK a tutti, la finestra di aggiornamento si chiuderà questo fine settimana.
Ho appena effettuato un breve controllo su Plugin e TC e tutto sembra procedere bene.
Vi chiedo di non procedere con l’aggiornamento dopo domenica. Non mi impegnerò a risolvere le modifiche che rompono la compatibilità fino al mese prossimo.
Ho fornito maggiori dettagli via messaggio privato, ma fondamentalmente sembra esserci un problema con le dimensioni di risoluzione personalizzate di TLP. Se carichiamo un’immagine con larghezza pari o inferiore a 1024px, non viene generata l’anteprima da 1024x1024. Se carichiamo un’immagine con larghezza pari o inferiore a 800px, non viene generata l’anteprima da 800x800. Questo è il comportamento atteso finora.
Ciò che non è atteso è che il livello di risoluzione 2 non carichi effettivamente le dimensioni 400x400, ma invece carichi quanto segue:
Anteprime 1024x1024 per tutti i topic in cui la larghezza originale dell’immagine caricata era superiore a 1024px
Anteprime 800x800 per tutti i topic in cui la larghezza originale dell’immagine caricata era inferiore a 1024px ma superiore a 800px
Anteprime 400x400 per tutti i topic in cui la larghezza originale dell’immagine caricata era inferiore a 800px ma superiore a 400px
Anteprime 100x100 per tutti i topic in cui la larghezza originale dell’immagine caricata era inferiore a 400px ma superiore a 100px
Pensavo che il livello di risoluzione 2 corrispondesse semplicemente a anteprime di dimensioni 400x400 per tutti i topic.
OK, ho rivisto l’algoritmo che utilizzavo per scegliere la risoluzione e ho apportato dei miglioramenti.
Questa versione è stata distribuita nel TC e nel Plugin.
NB: la nuova scala di risoluzione va da 0 a 6, con 0 che corrisponde all’immagine originale, 1 alla risoluzione immediatamente superiore e 6 alla risoluzione più bassa.
Aggiornate il vostro plugin/TC e fatemi sapere se questo risolve il problema.
Grazie, Rob. Purtroppo questo non ha risolto il mio problema; c’è ancora un conflitto con il plugin degli eventi. Puoi vedere sul mio sito di produzione che le miniature non funzionano su mobile, mentre sul mio sito di sviluppo, con gli eventi disabilitati, funzionano.
Non riesco a vedere come abbiano mai funzionato insieme (plugin TLP incluso). Entrambi stanno sovrascrivendo il template dell’elemento della lista degli argomenti per dispositivi mobili. Questo è un punto di rottura. Per ora dovrai scegliere tra i due.
In futuro potrei sperimentare una versione basata solo su outlet CSS/plugin per evitare la sovrascrittura del template, ma al momento non è una priorità da pagare per coprire le spese.
Tuttavia, l’entità della sovrascrittura richiesta da TLP per renderizzare un Tile potrebbe non essere realizzabile utilizzando solo gli outlet.
Peccato, ero entusiasta di riavere finalmente gli eventi, haha! Trovo curioso che il componente del tema Topic Thumbnails funzioni con il plugin eventi; non sto mettendo in discussione la tua conclusione, sto solo cercando di aiutare. Sembra che anche quello stia sovrascrivendo il template? Per chiarezza, mi riferisco al plugin eventi di Pavilion, non a quello del team di Discourse nel plugin calendario.
Poiché il layout che utilizza non richiede una sovrascrittura del modello. In TLP sto disponendo più elementi e alcuni di essi si trovano in div nidificati, quindi non funzioneranno allo stesso modo: devo fare affidamento su una sovrascrittura del modello. Di solito questo non è molto rischioso perché si tratta di un nodo foglia.