Buongiorno forum
il mio primo CMS è in dirittura d'arrivo ed ora ho bisogno di far funzionare le immagini!
ho provato i due modi che mi convincevano di più (come risultato) ed ho problemi con entrambe!!!
Qui illustro il problema con imagecache associato a imagefield - dirò in altro post del problema con image attach
partendo da un lavoro trovato in rete
ho creato un tipo.contenuto ad hoc in cui ho i field coverr, descr, foto
ho inserito testo e foto di prova (attraverso imagefield) e fin qui ok! scelgo dal pc, carico (vanno nella cartella sites\default\files), vedo la preview, se cambio idea cancello ...tutto molto semplice e perfetto per il mio futuro unico redattore
poi ho creato in imagecache due preset: copertina e thumbnail
quindi, come da istruzioni trovate ho creato il node-pippo.tpl.php e ci o scritto questo codice
<div class="content">
<div class="reportages">
<p> <?php print theme('imagecache2', 'copertina', $field_cover[0]['filepath']); ?></p>
<p><?php print $node->field_descr[0]['view'] ?><p>
<p><strong>Altre immagini</strong>
<hr />
<br />
<?php foreach ($field_foto as $image) {
print theme('imagecache2', 'thumbnail', $image['filepath']);
}
?>
</div>
</div>
mentre in template.php, sempre come da istruzioni, ho messo la funzione imagecache2
function MIOTEMA_imagecache2($namespace, $path, $alt = '', $title = '', $attributes = NULL) {
$attributes = drupal_attributes($attributes);
$imagecache_path = file_create_url(file_directory_path() .'/imagecache/'. $namespace .'/'. $path);
return '<a href="'. check_url(file_create_url($path)) .'" class="thickbox img-'. $namespace .'" rel="immagine"><img src="'. $imagecache_path .'" alt="'. check_plain($alt) .'" class="thickbox" title="'. check_plain($title) .'" '. $attributes .' /></a>';
}
dove miotema è in questo momento twt_journic sviluppato da Genesis
e a questo punto ...sono scomparse le immagini!!!
se guardo il sorgente che mi restituisce dall'html non vedo la funzione in atto! solo un p che si apre e chiude con in mezzo il nulla!!!
cosa può essere?! ho visto che altri usano questa funzione ma i problemi che descrivono sono diversi ...ho anche visto che in questo forum scrive tiziano1974 che se è lo stesso del blog di marinelli ha avuto problemi simili ...tiziano, se ci sei, come li hai superati?!
Grazie a tutti
webnadia
Ricordi dove hai trovato questo codice? Così posso confrontare l'originale...
CI sono degli errori. Nel primo snippet (nel node-pippo.tpl.php) il riferimento dev'essere sempre a
$node
. Quindi:<div class="content">
<div class="reportages">
<p><?php print theme('imagecache2', 'copertina', $node->field_cover[0]['filepath']); ?></p>
<p><?php print $node->field_descr[0]['view']; ?><p>
<p><strong>Altre immagini</strong>
<?php
foreach ($node->field_foto as $image) {
print theme('imagecache2', 'thumbnail', $image['filepath']);
}
?>
</p>
</div>
</div>
Perchè funziona sia field_cover che field_descr devono essere singolo ed obbligatorio. Mentre field_foto dev'essere multiplo, ma non è necessario la sua obbligatorietà.
La funzione va abbastanza bene - ho solo cambiato il default per $attributes dopo aver dato un occhiata a drupal_attributes:
function twt_journic_imagecache2($namespace, $path, $alt = '', $title = '', $attributes = array()) {
$attributes = drupal_attributes($attributes);
$image_path = file_create_url($path);
$imagecache_path = file_create_url('imagecache/'. $namespace .'/'. $path);
return '<a href="'. check_url($image_path) .'" class="thickbox img-'. $namespace .'" rel="immagine">'
.'<img src="'. check_url($imagecache_path) .'" alt="'. check_plain($alt) .'" class="thickbox"'
.' title="'. check_plain($title) .'" '. $attributes .' /></a>';
}
Avviso: codice non testato
HTW
John
Più imparo, più dubito.
Grazie mille John
ho provato con queste modifiche ma continua a non funzionare!
il codice l'ho preso qui
http://www.signalkuppe.com/2007/06/20/gestire-le-immagini-con-drupal#com...
utilizzando per sicurezza come base il codice inserito nei files php allegati all'articolo in modo da non avere problemi con apici e virgolette
e fermandomi alla prima parte della descrizione quella per la pagina singola che si vede nell'esempio linkato
ho notato inoltre che nel copia incolla qui mi sono saltate un paio di righe ...la cui presenza o assenza in vero non cambia il risultato ma comunque ...incollo adesso il nuovo codice con anche le modifiche suggerite
<div class="node-content">
<div class="reportages">
<p><?php print theme('imagecache2', 'copertina', $node->field_cover[0]['filepath']); ?></p>
<p><?php print $node->field_descr[0]['view']; ?></p>
<hr />
<br />
<div class="miniature">
<p><strong>Altre immagini</strong>
<?php
foreach ($node->field_foto as $image) {
print theme('imagecache2', 'thumbnail', $image['filepath']);
}
?>
</p>
</div>
</div>
</div>
Magari è un osservazione stu.pida ma mi chiedo anche dove siano definiti $image e 'filepath' ...che non vedo nella funzione! ...non sarà che cerca le immagini nel posto sbagliato?! ovvero che io senza rendermene conto con l'upload che mi appare le carico nel posto sbagliato?!
ho anche provato a disattivare i moduli Image (precedentemente caricati per lavorare con image attach che come detto in altro post mi crea altri problemi!) ma il risultato non cambia! non vedo le foto!
Non vorrei che l'errore fosse altrove, magari in qualche modulo caricato male o per cui non ho settato qualcosa che l'autore del codice da per scontato ed a cui invece io, da neofita di drupal, non penso
grazie ancora per ogni aiuto
nadia
PS - il testo (field_descr) e la scritta "altre immagini" inserita direttamente nel codice del tpl.php si vedono perfettamente - sono solo le foto che scompaiono!
Una Precisazione:
quello che a me serve è ottenere quell'effetto:
una foto vicino al testo che cliccata si espande
alcune foto sotto o in mezzo al testo che cliccate diventano uno slideshow!
va benissimo anche usare altri sistemi quindi ...magari anche più semplici!
per esempio Image Attach andava bene ...se non fosse che non mi permette di eliminare le immagini ...ma magari anche lì è solo perchè ho impostato male qualcosa e non lo so
nadia ...insofferente per il caldo e molto molto confusa!
Non disperare Nadia...
come dicevi tu, e' dell'autore di Marinelli, anche qui sul forum - lioz http://www.drupalitalia.org/user/1719.
Si, ma come dicevi tu, non cambia niente... (per quello l'avevo tolto ;-)
Ma com'è l'HTML? vedi una serie di
<a href="qualcosa" class="thickbox img-thumbnail" rel="immagine"><img src="qualcosa" alt="" class="thickbox" title="" /></a>
o no?
Presto fatto. In cima a
node.tpl.php
aggiungi:verrà stampato tutte le proprietà di
$node
, compreso$node->field_cover
e$node->field_foto
se ci sono ;-)Il fatto è che imagecache crea l'immagine dal originale 'al volo', cioè quando viene richiesta. E' possibile che stiamo faccendo la richiesta sbagliato. Ci sono due prove da fare:
1. Con quel megastampa dei proprietà di $node, controllare che ci sono immagine ai 'filepath' definiti. Saranno in sites/default/files.
2. In admin/build/imagecache/list seleziona un preset - 'thumbnail' e/o 'copertina' e clicca su 'modifica'. Vedi l'antiprima ridotto/modificato della goccia di Drupal in fondo alla pagina?
Beh, qualcosa c'è! Per contro prova, possiamo usare le immagine originale (senza imagecache)nella funzione
twt_journic_imagecache2
, basta cambiare l'ultima riga dareturn '<a href="'. check_url($image_path) .'" class="thickbox img-'. $namespace .'" rel="immagine">'
.'<img src="'. check_url($imagecache_path) .'" alt="'. check_plain($alt) .'" class="thickbox"'
.' title="'. check_plain($title) .'" '. $attributes .' /></a>';
in
return '<a href="'. check_url($image_path) .'" class="thickbox img-'. $namespace .'" rel="immagine">'
.'<img src="'. check_url($image_path) .'" alt="'. check_plain($alt) .'" class="thickbox"'
.' title="'. check_plain($title) .'" '. $attributes .' /></a>';
Più imparo, più dubito.
:o) ....ci provo! ...ma con questi 38 gradi all'ombra e la consegna prevista per lunedì prossimo è dura!
siccome a furia di prove non capivo più niente ho cancellato tutto e ricominciato!
allora ho il modulo ImageCache Attivo - Thickbox Attivo - Imagefield e Filefield attivi
ho disattivato tutti i moduli del modulo Image
Lightbox2 ?! lo lascio attivo o no?!
ho creato due nuovi preset in image cache (principale e altre)
No! vedo la megagoccia all'inizio quando gli dico "aggiungi preset" ...ma non vedo come si trasforma alla creazione del preset - non vedo l'anteprima cliccando sul link in modifica preset
ricordo però che in un qualche momento di sabato invece questo accadeva... che sarà successo adesso?!!!
ma non c'è un modo più semplice per far vedere 4 foto in un articolo?! (sfogo!!!)
adesso mi sono fermata perchè se non vedo neppure l'anteprima della goccia forse è inutile andare avanti! però quando ci guardavo durante le prime prove nell' html non mi appariva altro che il testo di field_descr ...niente href e compagnia (coem invece vedevo apparire nell'html di signalkuppe)
....correggo ...ho cambiato un parametro in image API e adesso vedo di nuovo l'anteprima della goccia... solo che ho anche il cervello fuso ormai!!
ok ho creato Pippo (tipo contenuto) con i campi principale - altre foto - testo
carico le foto da pippo e... magia... si vedono nella preview (prima non succedeva più neanche questo!!!)
Salvo il documento e visualizzo il testo e tutte le immagini ...ovviamente senza nessun tipo di aggiustamento
ora prima di riprovare a creare il node-pippo.tpl.php e la funzione:
in tipo di contenuto -> manage fields -> view fields ...le immagini sono impostate come immagine sia in anteprima che in full node ...ve bene così? o devo cambiare qualcosa?!
mi fermo perchè sono davvero cotta
grazie mille John per l'aiuto ed il supporto morale!!!
Ce l'ho fatta :o)
grazie agli spunti di John su dove cercare e ad alcune ricerche nel forum più fortunate di quelle precedenti ho messo insieme un po' di pezzi e, qualche litro di acqua e menta nonchè di sudore dopo, ho ottenuto quello che volevo!
c'è ancora un dettaglio ma è un dettaglio e per ora va bene così
Quindi mi sembra corretto spiegare cosa ho fatto in termini "for dummies" sperando che non contravvenga le regole del forum e che altri che come me si sono persi nel tutorial Signalkuppe possano trovare conforto :o)
1 - Moduli caricati e attivi ImageCache (tutti i moduli) - ImageApi (tutti i moduli) - Thickbox - Imagefield e Filefield (in CCK)
ho disattivato tutti i moduli del modulo Image che avevo precedentemente caricato per usare Image Attach ...col quale non riuscivo a eliminare le immagini (e il perchè di questo per ora resta per me un mistero)
Lightbox2 l'ho lasciato attivo e non mi sembra dare problemi di sorta
2 - Image API impostato su GD2 (configurazione sito -> image API -> select default toolkit)
3 - in Image cache ho creato tre preset (costruzione sito -> imagecache -> ad new preset) che ho chiamato (lo dico per ritrovarle nel php):
- principale (per la foto vicino al testo)
- altre (per le piccoline a metà articolo)
- standard (formato che avrà l'originale... creato inizialmente per problemi con thickbox e poi lasciato perchè il mio redattore ha foto molto grandi da caricare e quindi gliele riduco a prescindere!)
4 - ho creato un nuovo tipo di contenuto (Pippo) con i tre campi:
field_principale -> tipo file: File - widget: Immagine - Impost. Globali: richiesto - number of values 1
field_teso -> tipo file: testo - widget: multiriga - Impost. Globali: richiesto - number of values 1
field_altrefoto -> tipo file: File - widget: Immagine - Impost. Globali: non richiesto - number of values 4
5 - in tipo contenuto -> view fields ho messo:
per principale -> Anteprima: principale image - FullNode: Thickbox principale image
per altrefoto -> Anteprima: altre image - FullNode: Thickbox altre image
6 - Creo il contenuto Pippo1 in cui inserisco le foto ed il testo salvo e: :o) funziona! quasi!
La galleria parte cliccando sulle immagini ma le immagini vengono visualizzate comunque come crop o scale, ovvero con formati di preset impostati in imagecache e non nel formato originale
5 - Configurazione Sito -> ThickBox - ho lasciato "per post gallery" e ho cambiato imagecache preset da Original a Standard (il mio preset di cui sopra) ...e ha preso a funzionare bene la galleria!
[NB - ora a lavoro finito ho rimesso "original" e funziona tutto bene lo stesso ...perchè lo ignoro! e se qualcuno lo sa e lo aggiunge ben meglio]
7 - ho copiato node.tpl.php (in sites/all/themes/miotema/sottocartelle/nodes/) e rinominato la copia in node-pippo.tpl.php (per chi ancora non lo sa come me la prima volta: il trattino ci vuole per forza ed è questo - non questo _ !)
8 - nel div content ho tolto
e al suo posto ho messo questo codice:
<div class="node-content">
<div class="pippo">
<p><?php print $node->field_principale[0]['view']; ?></p>
<p><?php print $node->field_testo[0]['view']; ?><p>
<p><strong>Altre immagini</strong><br /><hr><br />
<?php
foreach ($node->field_altrefoto as $image) {
print $image['view'];
}
?>
</p>
</div>
</div>
9 - Bingo! SORRIDO!!! e mi concedo una pausa gelato!
Di nuovo Grazie a John e anche a tutti quelli i cui post mi hanno permesso di arrivare alla fine di questo piccolo tunnel
al prossimo problema!!!
nadia
Buon per te, nadia. Non solo che meriti quel gelato, ma apprezzo davvero la tua esauriente descrizione su come hai risolto il problema. Molto utile per gli altri, ed un ottimo esempio di come può funzionare in meglio una comunità come questa.
Più imparo, più dubito.