Miniature nelle Categorie - Page 2 Miniature nelle Categorie - Page 2
 

News:

CPG Release 1.6.26
Correct PHP8.2 issues with user and language managers.
Additional fixes for PHP 8.2
Correct PHP8 error with SMF 2.0 bridge.
Correct IPTC supplimental category parsing.
Download and info HERE

Main Menu

Miniature nelle Categorie

Started by bingo, December 12, 2009, 04:03:02 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

bingo

Quote from: VEGA
puoi ripristinare schiacciando unsolved
Non vorrei fare altri errori. Io ho un pulsante "quote", un pulsante di "spunta" che rappresenta il "solved" e un pulsante "x" che nell'url mi indica sempre "solved". Non so se è quello, a me dà l'impressione di un "delete".

VEGA

la x è rifiuta risposte e l'altro simbolo accetta risposte

bingo

Le ultime modifiche riguardano il controllo della presenza della miniatura associata alla Categoria e la miniatura stessa che diventa un link.
Ecco la function:
// Function per ricavare il nome della miniatura associata alle Categorie
function cid_cat($link_cat){
$cat1 = str_replace('">','cat=', $link_cat);
$cat1 = str_replace('</a>','cat=', $cat1);
$cat2 = explode('cat=', $cat1);
$cid_cor = $cat2[1];
$img_cor = "images/images_cat/cat_" . $cid_cor . ".jpg";
if (is_file($img_cor)){
$img_cat = "<a href='index.php?cat=$cid_cor' alt='$cat2[2]'><img src='$img_cor' border='0'></a>";
}else{
$img_cat = '' ;
}
return $img_cat ;
}

Se non esiste la miniatura la variabile resta vuota.

Questo è il risultato; (la Galleria è ancora in costruzione, per ora solo le tre Categorie principali hanno una immagine associata)
http://www.actafungorum.org/actagallery/

VEGA

trovo questa modifica interessante. Basta copiare ed incollare la funzione nel file theme.php?

ps ti riporto un link sul significato dei pulsanti.
http://forum.coppermine-gallery.net/index.php/topic,55415.msg270631.html#msg270631

Ludo

#24
La variabile $cid, contenente l'id della categoria, è valorizzata praticamente in tutte le pagine, non serve una funzione per ricavarla.
A quel punto, dato lo scopo del mod, io lo congegnerei aggiungendo semplicemente alla miniatura per le immagini non presenti una con lo stesso id o nome della categoria, da cercare in un'apposita cartella in "images". In questo modo l'amministratore potrà scegliere dal menu a tendina in catmgr.php:
1) la miniatura standard caricata per la categoria
2) le miniature degli album contenuti nella categoria
3) se non presenti album, le miniature degli album nelle categorie superiori (seguendo le indicazioni di cui al mio post precedente)

Ragazzi, se volete creare mod per CPG dovete entrare nella logica di programmazione della Galleria e pensarli in modo che siano utili a tutta la comunità ;-)

bingo

Quote from: Ludo on December 17, 2009, 09:08:20 AM
Ragazzi, se volete creare mod per CPG dovete entrare nella logica di programmazione della Galleria e pensarli in modo che siano utili a tutta la comunità ;-)

Perfettamente d'accordo ma uno fa quello che riesce a fare con le proprie capacità e conoscenze per risolvere il proprio problema.
Che ci siano più soluzioni, a volte molto più semplici, in informatica è normale, presupposto però è una buona conoscenza di come funziona CPG e questa è cosa che si acquisisce un pò alla volta. Sono sicuro che le tue soluzioni sono più semplici e corrette ma in questo momento e sulla base delle mie capacità ho trovato più semplice seguire questa strada.
Devo dire che le tue indicazioni sono state molto gradite e utili per capire meglio come sia strutturato Coppermine.
Mi sono letto il codice di tutti i file per capire dove veniva creato l'array e alla fine ci sono riuscito.

La variabile $cid immaginavo che ci fosse ma non riuscivo a individuarla, io sono un informatico autodidatta, certamente semplifica le cose.
Alla fine il mio scopo l'ho ottenuto, che poi si cerchi di renderlo compatibile con la filosofia CPG e utile agli altri utenti sono d'accordo e cercherò di fare il possibile per seguire questa strada.

bingo

Quote from: VEGA on December 17, 2009, 08:18:19 AM
trovo questa modifica interessante. Basta copiare ed incollare la funzione nel file theme.php?

ps ti riporto un link sul significato dei pulsanti.
http://forum.coppermine-gallery.net/index.php/topic,55415.msg270631.html#msg270631
Scusa Vega, mi era sfuggita la tua richiesta per la risposta di Ludo.
Grazie per il link di spiegazione dei pulsanti.

Per la Modifica da farsi ci sarebbe ancora da lavorare, come dice Ludo, ma intanto funziona.
Il problema è legato alla struttura. Se tu hai, come me, tre livelli di categorie, abbiamo stabilito che il terzo livello può prendere le miniature dagli Album, le prime due no.
Se devi inserire le miniature solo al primo livello la cosa è più semplice e la funzione da inserire nel file theme.php è questa:
// Function per ricavare il nome della miniatura associata alle Categorie
function cid_cat($link_cat){
$cat1 = str_replace('">','cat=', $link_cat);
$cat1 = str_replace('</a>','cat=', $cat1);
$cat2 = explode('cat=', $cat1);
$cid_cor = $cat2[1];
$img_cor = "images/images_cat/cat_" . $cid_cor . ".jpg";
if (is_file($img_cor)){
$img_cat = "<a href='index.php?cat=$cid_cor' alt='$cat2[2]'><img src='$img_cor' border='0'></a>$spazio";
}else{
        $img_cat = '' ;
}
return $img_cat ;
}

In pratica la funzione recupera il "cid" e controlla che nella cartella "images_cat" ci sia un file di nome cat_{$cid}.jpg.
Se questo è vero la funzione ritorna un risultato, altrimenti no.
La funzione va poi inserita sempre nel file "theme.php" nella "function theme_display_cat_list(...)" e precisamente:
if (count($category) == 3) {
            $params = array('{CAT_TITLE}' => $category[0],
                '{CAT_THUMB}' => cid_cat($category[0]).$category['cat_thumb'],
                '{CAT_DESC}' => $category[1]
                );

aggiungendo "cid_cat($category[0])." prima del valore di  "$category['cat_thumb']" che è vuota.

A questo punto non devi far altro che inserire le miniature, il resto lo fa il programma.

Se invece devi inserire le miniature anche nella seconda categoria, ci vuole una modifica, altrimenti avresti le miniature senza indentazione, quindi vanno inseriti degli spazi.
La soluzione che ho adottato non è ortodossa e giustamente Ludo mi bacchetterà, ma per ora non avevo soluzioni più giuste.

Dato che le categorie principali hanno un numero ID basso ho messo un controllo che inserisce uno spazio prima della miniatura solo alle Categorie superiori a 4.
Ecco la variante:
// Function per ricavare il nome della miniatura associata alle Categorie
function cid_cat($link_cat){
$spazio = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
$cat1 = str_replace('">','cat=', $link_cat);
$cat1 = str_replace('</a>','cat=', $cat1);
$cat2 = explode('cat=', $cat1);
$cid_cor = $cat2[1];
$img_cor = "images/images_cat/cat_" . $cid_cor . ".jpg";
if (is_file($img_cor)){
if($cid_cor > 4){
$img_cat = $spazio . "<a href='index.php?cat=$cid_cor' alt='$cat2[2]'><img src='$img_cor' border='0'></a>";
}else{
$img_cat = "<a href='index.php?cat=$cid_cor' alt='$cat2[2]'><img src='$img_cor' border='0'></a>$spazio";
}
}else{
$img_cat = '' ;
}
return $img_cat ;
}

Naturalmente devi cambiare il numero ID e devi creare le miniature da inserire nella cartella images_cat. E' possibile anche rinunciare alla cartella images_cat e inserire nella cartella di default "images" modificando il percorso.
E' certamente da migliorare ma per ora funziona, questo è il risultato (provvisorio): http://www.actafungorum.org/actagallery/