render o stampare l'immagine in un drupal 7 node.tpl?


16

Sto provando a tema un nodo con tpl e quando ho provato a stampare l'immagine, non riesco a trovare il percorso dell'immagine come in d6 .. quale funzione devo chiamare per generare correttamente l'immagine .. Intendo qualcosa come tema ('')?

Array
(
    [und] => Array
        (
            [0] => Array
                (
                    [fid] => 13
                    [alt] => 
                    [title] => 
                    [width] => 416
                    [height] => 335
                    [uid] => 1
                    [filename] => Capture2.PNG
                    [uri] => public://Capture2.PNG
                    [filemime] => image/png
                    [filesize] => 215377
                    [status] => 1
                    [timestamp] => 1346837738
                    [rdf_mapping] => Array
                        (
                        )

                )

        )

)

Risposte:


33
<?php print render($content['field_image']); ?>

Se si desidera modificare la modalità di visualizzazione dell'immagine (dimensioni, collegamento, ecc.), Impostarli nella scheda Gestisci display nelle impostazioni del tipo di nodo.

Puoi anche fare un preset di imagecache come questo:

<?php
print theme('image_style', array('path' => $node->field_image[LANGUAGE_NONE][0]['uri'], 'style_name' => [STYLE NAME]));
?>

Ma questo non è il modo consigliato!

se desideri creare un URL dall'URI,

<img src="<?php print file_create_url($node->field_image[LANGUAGE_NONE][0]['uri']); ?>" />

grazie, la tua risposta copre tutto. Questo dovrebbe essere nella documentazione di drupal.org :)
Serjas,

È sempre una buona idea usare LANGUAGE_NONE invece di "und"
qasimzee,

So che sto battendo un cavallo morto, ma se segui il secondo approccio, come puoi assicurarti di ottenere un risultato che non ha 404?
Cameron Kilgore,

3

Per coloro che utilizzano il modulo file_entity (forse con il modulo multimediale ), ci si potrebbe chiedere come eseguire il rendering programmatico di file / immagini:

$image = (object) $node->field_image[ LANGUAGE_NONE ][0];
$image_entity = file_view($image, "summary");
echo drupal_render($image_entity);

Dove "field_image" è il nome del campo e "summary" è la modalità di visualizzazione.


funziona per me, ma avevo bisogno di impostare di nuovo lo stile su $ image_entity ['file'] ['# style_name'] ..
rémy

Non dovresti hardcode la chiave della lingua.
AlxVallejo,

1

Se vuoi semplicemente renderizzare l'immagine con lo stile di immagine impostato per quell'immagine nella schermata di gestione: digita <?php print_render($content['field_image']) ?>

Se vuoi visualizzare l'immagine con qualsiasi altro stile di immagine hai SUPPOSE: 'sales_album' quindi digita:

list($albumImage) = field_get_items('node', $album, 'uc_product_image');

$albumImageUrl = file_create_url($albumImage['uri']);

$style_array = array('path' => $albumImage['uri'], 'style_name' => 'sales_album');

$render_album_image = theme('image_style', $style_array);

print $render_album_image;

1

Quando si utilizza il ho modulo di campo , ho scoperto che era meglio:

nella pagina - yourcontenttype.tpl.php:

<?php
  $this_field_image = field_view_field('node',$node,'field_image');
  print render($this_field_image);?>
?>

l'utilizzo di field_view_field () offre ulteriori vantaggi in base ai quali è possibile impostare una serie di impostazioni di visualizzazione:

<?php
  $hide_labels = array('label'=>'hidden');
  $this_field_image = field_view_field('node',$node,'field_image', $hide_labels);
  print render($this_field_image);?>
?>

https://api.drupal.org/api/drupal/modules%21field%21field.module/function/field_view_field/7.x


0
$img_url = $node->field_name['und'][$i]['uri'];
print image_style_url("style_name", $img_url);

$inel caso abbiate più immagini da visualizzare. Puoi usare un ciclo for come:

for($i=0;$i < $imageCount; $i++) { /*the above code*/ }

ed $imageCountè sostanzialmente dichiarato sopra per loop as

$images = array();<br>
$imageCount= count($node->field_image['und']);

Spero che sia di aiuto!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.