Stampare campo di una vista D7

10 contenuti / 0 new
Ultimo contenuto
Stampare campo di una vista D7

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']; ?>