Salve a tutti, ho creato una vista in drupal 7 e vorrei temizarla per renderla più carina.
Vorrei fare una gallery non con jquery o altri framework, ho solo creato una vista che dal mio content type preleva
Titolo, immagine grande, ed un set di thumb
Per creare il tema sono andato in informazioni quindi ho preso l'ultimo none della parte "output dello stile riga"con il nome: views-view-fields--test-galleria--page-4.tpl.php
Adesso al suo interno riesco a far stampare il titolo ed i campi thumb in questo modo.
Titolo: <?php print $fields['title']->content; ?>
Miniature:<?php print $fields['field_thumb']->content; ?>
Fin qui tutto ok, adesso peròho l'esigenza di lavorare sulle singole thumb, per ogni thumb devo creare uno stile ed un link diverso dalle altre...
ho provato ad accedere alla singola thumb con questa istruzione ma mi genera un errore.
<img src="percorso/"><?php print $fields['field_thumb']['und'][0]['filename']; ?></img>
Cannot use object of type stdClass as array
stessa cosa se utilizzo il codice che utilizzo nel nodo. Qui l'errore è su node
<img src="percorso/"><?php print $node->field_thumb['und'][1]['value']; ?></img>
Come posso accedere alla singola thumb?
Inoltre se volessi stampare il vettore contenente tutti i valori?
<?php
print_r ($fields);
?>
?
Spero di esser stato chiaro, grazie
Ok sono arrivato ad un punto nel quale riesco a farmi stampare il vettore contenente i dati risultanti della vista.
L'istruzione è
<pre><?php print_r($row); ?></pre>
Adesso però non riesco ad accedere ai dati...
a me servirebbe stampare la miniatura 1 e 4 e nel vettore sono così:
[field_thumb] => Array
(
[und] => Array
(
[0] => Array
(
[fid] => xxx
[alt] => ALT
[title] => TITOLO
[width] => 640
[height] => 404
[uid] => 37
[filename] => nome_immagine.jpg
Qualche consiglio?
Grazie
Una volta che hai l'oggetto che rappresenta i risultati, che dati ti mancano?
No i dati li ho ma non riesco a stamparli correttamente.
Non ho capito con quale sintatti.
Se utilizzo questa
<?php print $row->field_thumb['und'][1]['value']; ?>
Mi genea errore.
Puoi darmi qualche suggerimento?
Grazie
Quale errore? Nel frammento di array che hai postato sopraq non c'è la proprietà "value".
Ciao Pinolo, grazie per la risposta.
L'errore è questo:
Notice: Undefined property: stdClass::$field_thumb in include() (linea 19
dove la linea 19 è questa sotto
<?php print $row->field_thumb['und'][1]['filename']; ?>
Qualche suggerimento?
Grazie
uhm. Intanto, quello non è un errore, ma un "notice". Normalmente non dovrebbe interrompere l'esecuzione dello script.
Ti consiglio di visualizzare la variabile $row con l'aiuto del modulo devel e del comando dpm($row). In questo modo sarai molto più informato sulla struttura dei dati da richiamare.
Ciao pinolo e grazie ancora per l'interesse.
ho fatto come mi dicevi tu ed ho prodotto le 2 immagini
http://imageshack.us/photo/my-images/684/91598956.png/ immagine relativa a field_field_
http://imageshack.us/photo/my-images/215/33086379.png/ immagine relativa a _field_data
Inoltre mi genera sempre un notice che è:
Notice: Undefined index: und in include() (linea 16
dove la linea 16 è:
<?php print $row->field_field_miniature['und'][0]['filename']; ?>
Invece con questa istruzione
<?php print $row->field_miniature['und'][0]['filename']; ?>
mi genera
Notice: Undefined property: stdClass::$field_miniature in include() (linea 16
logicamente rispetto ai post precedenti ho cambiato il campo da thumb a miniature.
Ho voluto fare una prova ma il risultato resta sempre lo stesso.
Il campo nel content type l'ho chiamato field_miniature ed è un campo immagine.
Il tutto funziona sempre tramite render ma come dicevo precedentemente a me serve diversificare le immaginette.
Spero di esser stato chiaro,
Grazie
La seconda immagine non ho capito a che dpm() si riferisca, probabilmente la stampa del campo nella visualizzazione nodo. Dalla prima si capisce che per accedere al nome del file devi digitare:
<?php print $row->field_field_miniature[0]['raw']['filename']; ?>