Anteprima elenco argomenti (legacy)

Ciao, grazie per l’ottimo plugin!

Purtroppo, con l’ultimo aggiornamento, le immagini che non sono ospitate direttamente su Discourse non vengono più visualizzate nella griglia o nelle tessere. Potresti controllarlo?

Ad esempio, se un post contiene un’immagine da un altro server (Blogger, Picasa, …), queste non vengono più mostrate. In precedenza, funzionava perfettamente senza alcun problema.

1 Mi Piace

Le miniature vengono ora generate dal nucleo di Discourse e ho poco controllo su questo.

Gran parte della logica di generazione delle miniature è stata rimossa e affidata a Discourse.

Potresti voler sollevare la questione qui: Theme modifiers: A brief introduction

2 Mi Piace

Grazie! Ho appena creato una risposta lì. Sono un po’ scettico riguardo a tutti gli aggiornamenti, dato che tutte le mie immagini non sono ospitate su un server locale.

2 Mi Piace

Credo che dovrebbe funzionare comunque se i tuoi ‘uploads’ sono ospitati su un server remoto tramite le impostazioni, ma non effettuerà più hotlink a siti remoti e a terze parti non affiliate.

Non ha più senso gestire questa parte del codice nel plugin, dato che ora è gestita dal core. È assolutamente corretto che tu ti rivolga a loro :+1:

4 Mi Piace

Grazie. Capisco la situazione. Non è una soluzione semplice per il mio sito, dato che utilizziamo un altro server per ospitare le immagini. Ora è troppo difficile spostarci sul server affiliato con molti post, mentre è troppo grande per essere ospitato sul server locale.

1 Mi Piace

Il problema che ho è che quando il plugin eventi è abilitato, le miniature non vengono più visualizzate su mobile, come discusso in precedenza. Pensavo che questo fosse a cui ti riferivi.

Le miniature si vedono bene per me. Sei sicuro di aver aggiornato gli Eventi come indicato da @fzngagan?

2 Mi Piace

Deve averlo unito subito dopo che l’avevo testato, grazie ragazzi, ora funziona tutto!

3 Mi Piace

Ho aggiornato ieri e ho riscontrato prestazioni piuttosto scarse. Analizzando il profiler, ho individuato questa query di TLP che sembra essere la causa del problema: forse manca un indice qui?

Curiosamente, questa query appare ancora quando eseguo il sito in modalità sicura :thinking:

1 Mi Piace

Caratteristiche Immagini. Questa query non è cambiata da un’eternità (tipo anni!). Sei sicuro che si tratti di un nuovo problema?

Stai ordinando per data di creazione del tag? Quasi certamente si tratta di una query complicata. Ordinare per “Ultimo” sarà più agevole.

Puoi sempre disattivare questa funzione per il momento.

Il Componente Tema utilizza l’API core. Potresti sempre passare a quella per il momento, se ti sta creando problemi.

1 Mi Piace

È una novità da quando ho aggiornato a PG12, credo. E abbiamo davvero bisogno di ordinare per data di creazione del tag, che è piuttosto una funzionalità fondamentale della nostra community. Cosa mi mancherebbe se passassi al TC?

P.S.: Ricordo vagamente di aver discusso dello stesso problema con la riga in evidenza con te anni fa, farò delle ricerche.

2 Mi Piace

Sei sicuro che l’aggiornamento PG 12 abbia completato la re-indicizzazione? Molti utenti hanno segnalato un periodo di prestazioni ridotte durante questo processo (e tali segnalazioni non erano correlate a TLP)

A proposito, riflettendoci, potrebbe esserci stato un altro cambiamento: ora è necessario unire con topic_thumbnails, ma ciò è avvenuto già da un po’ di tempo e non abbiamo ricevuto altre segnalazioni. Sospetto che prima venisse utilizzato direttamente l’hotlink image_url nell’oggetto Topic, il che sarebbe stato più veloce (un join in meno), ma con il cambiamento del core non è più possibile. Questo potrebbe essere un fattore contributivo.

1 Mi Piace

Sì, la reindicizzazione è terminata. L’ordinamento per data di creazione del topic presenta lo stesso problema. Ecco l’output EXPLAIN per entrambe le query:

Ordinato per data di tagging:

discourse=# explain SELECT "topics"."id", "topics"."title", "topics"."last_posted_at", "topics"."created_at", "topics"."updated_at", "topics"."views", "topics"."posts_count", "topics"."user_id", "topics"."last_post_user_id", "topics"."reply_count", "topics"."featured_user1_id", "topics"."featured_user2_id", "topics"."featured_user3_id", "topics"."deleted_at", "topics"."highest_post_number", "topics"."like_count", "topics"."incoming_link_count", "topics"."category_id", "topics"."visible", "topics"."moderator_posts_count", "topics"."closed", "topics"."archived", "topics"."bumped_at", "topics"."has_summary", "topics"."archetype", "topics"."featured_user4_id", "topics"."notify_moderators_count", "topics"."spam_count", "topics"."pinned_at", "topics"."score", "topics"."percent_rank", "topics"."subtype", "topics"."slug", "topics"."deleted_by_id", "topics"."participant_count", "topics"."word_count", "topics"."excerpt", "topics"."pinned_globally", "topics"."pinned_until", "topics"."fancy_title", "topics"."highest_staff_post_number", "topics"."featured_link", "topics"."reviewable_score", "topics"."image_upload_id" 
discourse-# FROM "topics" 
discourse-# INNER JOIN "topic_tags" 
discourse-# ON "topic_tags"."topic_id" = "topics"."id" 
discourse-# INNER JOIN "tags" ON "tags"."id" = "topic_tags"."tag_id" 
discourse-# WHERE ("topics"."deleted_at" IS NULL) 
discourse-# AND "topics"."visible" = TRUE 
discourse-# AND (NOT topics.closed AND NOT topics.archived AND topics.deleted_at IS NULL) 
discourse-# AND (topics.image_upload_id in (
discourse(#         SELECT image_upload_id FROM topic_thumbnails
discourse(#       ))
discourse-# AND (tags.id IN (1)) 
discourse-# 
discourse-# ORDER BY (
discourse(#  SELECT created_at FROM topic_tags
discourse(#         WHERE topic_id = topics.id
discourse(#         AND tag_id IN (1)
discourse(#         LIMIT 1
discourse(# )
discourse-# 
discourse-# DESC LIMIT 6; 
                                                                    QUERY PLAN                                                         
            
---------------------------------------------------------------------------------------------------------------------------------------
------------
 Limit  (cost=2631719.94..2631719.95 rows=6 width=569)
   ->  Sort  (cost=2631719.94..2631721.73 rows=717 width=569)
         Sort Key: ((SubPlan 1)) DESC
         ->  Nested Loop  (cost=0.43..2631707.09 rows=717 width=569)
               ->  Seq Scan on tags  (cost=0.00..4.51 rows=1 width=4)
                     Filter: (id = 1)
               ->  Nested Loop  (cost=0.43..2625737.13 rows=717 width=565)
                     ->  Seq Scan on topic_tags  (cost=0.00..860.33 rows=1539 width=8)
                           Filter: (tag_id = 1)
                     ->  Index Scan using topics_pkey on topics  (cost=0.43..1705.57 rows=1 width=561)
                           Index Cond: (id = topic_tags.topic_id)
                           Filter: ((deleted_at IS NULL) AND visible AND (NOT closed) AND (NOT archived) AND (deleted_at IS NULL) AND (
SubPlan 2))
                           SubPlan 2
                             ->  Seq Scan on topic_thumbnails  (cost=0.00..2966.64 rows=171664 width=8)
               SubPlan 1
                 ->  Limit  (cost=0.29..8.31 rows=1 width=8)
                       ->  Index Scan using index_topic_tags_on_topic_id_and_tag_id on topic_tags topic_tags_1  (cost=0.29..8.31 rows=1
 width=8)
                             Index Cond: ((topic_id = topics.id) AND (tag_id = 1))
 JIT:
   Functions: 25
   Options: Inlining true, Optimization true, Expressions true, Deforming true
(21 righe)

Ordinato per data del topic:

discourse=# explain SELECT "topics"."id", "topics"."title", "topics"."last_posted_at", "topics"."created_at", "topics"."updated_at", "topics"."views", "topics"."posts_count", "topics"."user_id", "topics"."last_post_user_id", "topics"."reply_count", "topics"."featured_user1_id", "topics"."featured_user2_id", "topics"."featured_user3_id", "topics"."deleted_at", "topics"."highest_post_number", "topics"."like_count", "topics"."incoming_link_count", "topics"."category_id", "topics"."visible", "topics"."moderator_posts_count", "topics"."closed", "topics"."archived", "topics"."bumped_at", "topics"."has_summary", "topics"."archetype", "topics"."featured_user4_id", "topics"."notify_moderators_count", "topics"."spam_count", "topics"."pinned_at", "topics"."score", "topics"."percent_rank", "topics"."subtype", "topics"."slug", "topics"."deleted_by_id", "topics"."participant_count", "topics"."word_count", "topics"."excerpt", "topics"."pinned_globally", "topics"."pinned_until", "topics"."fancy_title", "topics"."highest_staff_post_number", "topics"."featured_link", "topics"."reviewable_score", "topics"."image_upload_id" FROM "topics" INNER JOIN "topic_tags" ON "topic_tags"."topic_id" = "topics"."id" INNER JOIN "tags" ON "tags"."id" = "topic_tags"."tag_id" WHERE ("topics"."deleted_at" IS NULL) AND "topics"."visible" = TRUE AND (NOT topics.closed AND NOT topics.archived AND topics.deleted_at IS NULL) AND (topics.image_upload_id in (
        SELECT image_upload_id FROM topic_thumbnails
      )) AND (tags.id IN (1)) ORDER BY (SELECT created_at FROM topic_tags
        WHERE topic_id = topics.id
        AND tag_id IN (1)
        LIMIT 1)
        DESC LIMIT 6; 
                                                                    QUERY PLAN                                                         
            
---------------------------------------------------------------------------------------------------------------------------------------
------------
 Limit  (cost=2631719.94..2631719.95 rows=6 width=569)
   ->  Sort  (cost=2631719.94..2631721.73 rows=717 width=569)
         Sort Key: ((SubPlan 1)) DESC
         ->  Nested Loop  (cost=0.43..2631707.09 rows=717 width=569)
               ->  Seq Scan on tags  (cost=0.00..4.51 rows=1 width=4)
                     Filter: (id = 1)
               ->  Nested Loop  (cost=0.43..2625737.13 rows=717 width=565)
                     ->  Seq Scan on topic_tags  (cost=0.00..860.33 rows=1539 width=8)
                           Filter: (tag_id = 1)
                     ->  Index Scan using topics_pkey on topics  (cost=0.43..1705.57 rows=1 width=561)
                           Index Cond: (id = topic_tags.topic_id)
                           Filter: ((deleted_at IS NULL) AND visible AND (NOT closed) AND (NOT archived) AND (deleted_at IS NULL) AND (
SubPlan 2))
                           SubPlan 2
                             ->  Seq Scan on topic_thumbnails  (cost=0.00..2966.64 rows=171664 width=8)
               SubPlan 1
                 ->  Limit  (cost=0.29..8.31 rows=1 width=8)
                       ->  Index Scan using index_topic_tags_on_topic_id_and_tag_id on topic_tags topic_tags_1  (cost=0.29..8.31 rows=1
 width=8)
                             Index Cond: ((topic_id = topics.id) AND (tag_id = 1))
 JIT:
   Functions: 25
   Options: Inlining true, Optimization true, Expressions true, Deforming true
(21 righe)
2 Mi Piace

Utile. Grazie.

Scusa, non sono sicuro di quando potrò occuparmene.

Tieni anche presente che il nuovo join potrebbe essere migliorato ma non riesco a eliminarlo. (oh sì, potrei!).

1 Mi Piace

OK, ho lavorato offline con @bartv per migliorare questo.

Questo riguarda solo il Plugin, non il TC:

Consiglio di aggiornare per sfruttarlo, poiché si tratta di un notevole miglioramento per i siti che utilizzano le immagini in evidenza.

5 Mi Piace

Sei un rockstar! :guitar:

3 Mi Piace

Anche la tua meticolosa indagine è stata fondamentale, Bart, grazie.

3 Mi Piace

Ciao, ho aggiunto l’URL di git clone al file app.yml dei container, ma quando provo a ricostruire l’app ricevo un errore:

(<unknown>): trovato un carattere di tabulazione che viola l'indentazione mentre si scansiona uno scalare semplice alla riga 91 colonna 13 -e LANG=en_US.UTF-8

e il sito non funziona.

Ho rimosso l’URL di git clone per il plugin e ora funziona di nuovo.

1 Mi Piace

Non credo che il tuo problema sia specifico di questo plugin. Non puoi usare le tabulazioni nel tuo file app.yml. Usa gli spazi.

2 Mi Piace

Ok, scusa, ho incollato l’ultima riga del plugin e modificato l’URL di git clone. Ora funziona, grazie :slight_smile:

2 Mi Piace