Scusate, vorrei sapere se è possibile inserire una Miniatura nella Home a fianco delle Categorie nel caso la struttura sia del tipo:
Categoria 1
---> Categoria 2
------> Categoria 3
---------> Album A
---------> Album B
Ho notato che c'è la possibilità di inserire una miniatura al livello di "Categoria 3" mentre nelle Categorie 1 e 2 non compare l'icona delle Thumbs nella funzione di inserimento/modifica Categorie.
Sbaglio qualcosa o non è possibile ?
Ho aggiornato alla 1.4.25.
tu hai la categoria 1, dentro la 1 hai la categoria 2 e dentro la categoria 2 hai la 3 giusto?
crei l'album nella categoria 3, fai l'upload dell'immagine e troverai come per la categoria 1 e 2 l'opzione per selezionare l'icona Thumbs
Quote from: VEGA on December 14, 2009, 12:17:37 PM
tu hai la categoria 1, dentro la 1 hai la categoria 2 e dentro la categoria 2 hai la 3 giusto?
crei l'album nella categoria 3, fai l'upload dell'immagine e troverai come per la categoria 1 e 2 l'opzione per selezionare l'icona Thumbs
Forse mi sono spiegato male: l'icona della Categoria 3 la trovo perchè nella Categoria 3 ci sono degli Albums
Le categorie sono esattamente come indicato, la 2 nella 1 e la 3 nella 2.
Nelle Categorie 1 e 2 non ci sono Albums, solo SottoCategorie e qui sta probailmente il problema. Io volevo inserire una icona alle Categorie "madri".
Era questo che volevo spiegare. Si riesce a mettere l'immagine perchè all'interno c'è un album dal quale si prende la thumb. Tu vorresti comunque mettere una thumb anche senza album presente all'interno!? Senza album credo si debba mettere mano al codice.
tu dirai :"del credo ci faccio poco..", :) ma è per dirti che anche nella mia galleria non ho la possibilità
Grazie Vega, almeno ho conferma di quello che sospettavo.
Per intervenire sul codice bisogna prima capire il meccanismo. Nel file template.html ci sono parecchi "Include" che bisogna capire dove vengono creati. Ad esempio {GALLERY} o le funzioni previste in index.php come "list_users()" e "list_albums()".
Cercherò di indagare un pò ma lo spezzettamento del codice rende tutto abbastanza complesso.
Credo che la Lista delle Categorie derivi dal seguente codice che si trova nel file "theme.php"
<!-- BEGIN catrow_noalb -->
<tr>
<td class="catrow_noalb" colspan="3"><table border="0"><tr><td align="left">{CAT_THUMB}</td><td align="left"><span class="catlink"><b>{CAT_TITLE}</b></span>{CAT_DESC}</td></tr></table></td>
</tr>
<!-- END catrow_noalb -->
Si tratta adesso di capire dove viene assegnata la variabile {CAT_THUMB} e quindi assegnare una miniatura alle Categorie che non hanno Albums
io di php sono una zappa allucinante, ma c'è Ludo che se ci legge potrebbe aiutarci
Credo di essere sulla buona strada, la variabile relativa alle thumbs delle Categorie è proprio {CAT_THUMB} solo che nel caso delle Categorie senza Albums è vuota.
Ora si tratta ti trovare dove viene creato l'array "catrow_noalb()" e associare una immagine alle Categorie.
Concettualmente, un mod per visualizzare le miniature delle categorie prive di album dovrebbe essere molto simile al mio mod per le miniature negli album-parola chiave: potete prender spunto da quello.
Quote from: Ludo on December 15, 2009, 03:32:40 PM
Concettualmente, un mod per visualizzare le miniature delle categorie prive di album dovrebbe essere molto simile al mio mod per le miniature negli album-parola chiave: potete prender spunto da quello.
Ciao Ludo, è un pò che non mi faccio vivo ma ero occupato con altre cose, ora devo risolvere il problema Galleria per AF.
Darò un'occhiata alla tua Mod ma avrei anche un'altra idea:
Dato che il codice che provvede a visualizzare la Lista delle Categorie è nel file theme.php e precisamente:
<td class="catrow_noalb" colspan="3"><table border="0"><tr><td align="left">{CAT_THUMB}</td><td align="left"><span class="catlink"><b>{CAT_TITLE}</b></span>{CAT_DESC}</td></tr></table></td>
e in particolare la variabile {CAT_THUMB} che visualizza l'immagine (se presente) e {CAT_TITLE} che visualizza il Nome della Categoria in forma di link.
Infatti, il risultato della variabile {CAT_TITLE} è
<span class="catlink"><b><a href="index.php?cat=1">Nome_Categoria</a></b></span>
Ora a noi servono delle immagini da associare alla Categoria.
Non ho trovato dove si forma l'array ma si può aggirare l'ostacolo ricavando da {CAT_TITLE} il "cid", nel caso mostrato il numero "1".
Questo si potrebbe ottenere con una funzione o con un codice di questo tipo:
$cat_tmp = str_replace('">','cat=', {CAT_TITLE}); // trasformo la stringa "> in cat=
$cat = explode('cat=', $cat_tmp); // creo un array utilizzando "cat=" come separatore
$cid_cat = $cat[2]; // il cid è il terzo campo dell'array
$thumb_cat = $path . "/thumbs_cat/thumbcat". $cid_cat . ".jpg" ; /il nome della miniatura
Adesso che ho il "cid" posso creare una eventuale immagine del tipo "thumbcat_1.jpg" da associare alla Categoria 1
caricando delle miniature in una cartella "thumbs_cat" e utilizzando un is_file($thumb_cat) per controllare se esiste.
Il codice diventerebbe:
<td align="left">if (...il file esiste...){...visualizza la miniatura...}else{{CAT_THUMB}}</td>
....
Ci provo e poi vi so dire.
Potrà funzionare, per carità, ma è contorto, completamente estraneo alla logica di programmazione di CPG e privo di un'interfaccia utente.
La soluzione pulita e semplice consisterebbe nel far selezionare la miniatura dagli album delle sottocategorie che ne contengono, nella funzione form_alb_thumb() in catmgr.php.
Il motivo che mi porta a non usare le immagini degli Album delle Sottocategorie è che volevo associare alle Categorie una miniatura che non è presente negli Album stessi, pensavo a un disegno che identifichi meglio la Categoria, non una immagine prelevata da un Album..
Sono d'accordo che non c'è interfaccia con utente, comunque proverò anche le strade consigliate.
Beh, basterebbe caricare le miniature desiderate in un album visibile solo dagli admin...a questo punto inserendolo direttamente nella categoria desiderata, et voila, non ci sarebbe nemmeno più bisogno di un mod 8)
Quote from: Ludo on December 16, 2009, 09:12:46 AM
Beh, basterebbe caricare le miniature desiderate in un album visibile solo dagli admin...a questo punto inserendolo direttamente nella categoria desiderata, et voila, non ci sarebbe nemmeno più bisogno di un mod 8)
Questa non la sapevo, grazie Ludo.
Quindi è possibile inserire in una Categoria sia subcategorie che album, quest'ultimi si possono nascondere agli utenti ?
Si tratta di creare un Album per ogni Categoria che voglio associare a un'immagine oppure creare un Album invisibile nelle Sottocategorie che contenga più miniature e far puntare le Categorie superiori su questo album per le thumbs.
Il problema è che se imposto la visualizzazione dell'Album solo agli Amministratori poi gli utenti non vedono la thumb.
Vero anche questo, ops :)
comunque, piano piano ci sto arrivando.
Ho inserito nel file "theme.php" la seguente funzione che ricava il "cid" della Categoria e predispone il nome della miniatura:
// Function per ricavare il nome della miniatura associata alle Categorie
function cid_cat($link_cat){
$cat1 = str_replace('">','cat=', $link_cat);
$cat2 = explode('cat=', $cat1);
$cid_cor = $cat2[1];
$img_cat = "<img src='images/images_cat/cat_" . $cid_cor . ".jpg'>";
return $img_cat ;
}
Poi ho inserito, sempre in "theme.php" la function nella riga
'{CAT_THUMB}' => cid_cat($category[0]) . $category['cat_thumb'],
Ho creato una cartella "images/images_cat" dove ho inserito le miniature nominandole cat_1.jpg, cat_2.jpg, ecc.
Non sarà ordodosso ma funziona. Devo solo sistemare un paio di controlli (il controllo se esiste il file e inserire l'alternativa alla variabile {CAT_THUMB}
Pardon, ho schiacciato per sbaglio il pulsante "solved".
Non esiste la possibilità di correggere un post?
Quote from: bingo on December 16, 2009, 03:26:51 PM
Pardon, ho schiacciato per sbaglio il pulsante "solved".
puoi ripristinare schiacciando unsolved
QuoteNon esiste la possibilità di correggere un post?
una volta pubblicato no. :(
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".
la x è rifiuta risposte e l'altro simbolo accetta risposte
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/ (http://www.actafungorum.org/actagallery/)
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 (http://forum.coppermine-gallery.net/index.php/topic,55415.msg270631.html#msg270631)
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à ;-)
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.
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 (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 = " ";
$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/ (http://www.actafungorum.org/actagallery/)