Un'immagine per più categorie

Buongiorno,

Ho una domanda se è possibile caricare un’immagine per una categoria e utilizzare la stessa immagine caricata per le sottocategorie e le sottosottocategorie. Di seguito è riportata la struttura

Categoria A
    Categoria A1
    Categoria A2
    Categoria A3
    Categoria A4

Categoria B
    Categoria B1
        Categoria B11
        Categoria B12
    Categoria B2
    Categoria B3
    Categoria B4
        Categoria B41
        Categoria B42

Categoria C
    Categoria C1
        Categoria C11

Categoria D
    Categoria D1
    Categoria D2
    Categoria D3
    Categoria D4

Le categorie da A a D hanno un’immagine per la categoria. Navigando al primo livello viene mostrata l’immagine di quella categoria, andando al terzo livello non viene mostrata l’immagine, quindi devo aggiungerla manualmente. Purtroppo ho molte categorie (non per mia scelta) quindi è molto lavoro e consuma spazio su disco sul server (chiamami vecchio stile, sono abituato a lavorare con cose con risorse molto limitate).

L’ereditarietà sarebbe il primo prezzo. Altri modi per raggiungere questo obiettivo, ho solo bisogno di caricare l’immagine una volta e preferibilmente non dover modificare ogni sottosottocategoria?

Nota che sono un principiante assoluto con Discourse, attualmente sto rinnovando un sito esistente basato su Discourse.

Grazie in anticipo.

Non lo fa. Le immagini vengono archiviate tramite un hash, quindi verrà creata/archiviata una sola copia indipendentemente da quante volte viene caricata.

Se hai accesso a Rails puoi fare qualcosa del genere:

parent=Category.find_by_slug('category_a');
children=Category.where(parent_category_id: parent.id);
children.update_all(uploaded_logo_id: parent.uploaded_logo_id);

I punti e virgola finali impediscono a Rails di inserire l’output in un visualizzatore, quindi puoi incollare tutte e tre le righe contemporaneamente. Potresti ometterli quando provi questo. Dovresti fare un backup ed essere disposto a ripristinarlo se non stai provando questo prima su una sorta di sito di test o di staging.

Puoi suggerire ai tuoi superiori di leggere È ora di parlare di tag. O forse c’è qualche buon motivo per tutte le sottocategorie. A meno che tu non abbia bisogno di limitare l’accesso a quelle sottocategorie o le persone vorranno guardare/silenziare quelle categorie, probabilmente peggioreranno le cose per tutti (tranne per la persona che otterrà il diritto di vantarsi che la sua cattiva idea è stata quella accettata dall’intera azienda).

1 Mi Piace

Grazie per la risposta

Ottimo, una preoccupazione in meno.

Ho solo accesso al sito di staging (ospitato da Discourse); quindi dubito di avere accesso a Ruby :wink:

In tal caso, potresti escogitare qualcosa di simile con l’API, ma per questo sei da solo. Inizieresti con Ingegneria inversa dell’API di Discourse. . .

Ehi ascolta, ho detto che ero un principiante :rofl:

Grazie per i due link che hai fornito :+1:

1 Mi Piace

Sì. Mi dispiace. A meno che tu non sia già bravo a interagire con un’API (magari con curl), temo che dovrai fare un sacco di clic.

1 Mi Piace