membuat atau mencetak gambar dalam drupal 7 node.tpl?


16

Saya mencoba untuk tema simpul dengan tpl dan ketika saya mencoba untuk mencetak gambar, saya tidak dapat menemukan jalur gambar seperti di d6 .. yang berfungsi saya harus memanggil untuk menghasilkan gambar dengan benar .. Maksud saya sesuatu seperti 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
                        (
                        )

                )

        )

)

Jawaban:


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

Jika Anda ingin mengubah cara gambar ditampilkan (dimensi, tautan, dll), atur di tab Kelola Tampilan di pengaturan jenis simpul.

Anda juga dapat melakukan preset imagecache seperti ini:

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

Tapi itu bukan cara yang disarankan!

jika Anda ingin membuat URL dari URI,

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

terima kasih, jawaban Anda mencakup semua hal. Ini harus dalam dokumentasi drupal.org :)
Serjas

Itu selalu merupakan ide yang baik untuk menggunakan LANGUAGE_NONE alih-alih 'und'
qasimzee

Saya tahu saya mengalahkan kuda mati, tetapi jika Anda mengambil pendekatan kedua, bagaimana Anda bisa meyakinkan Anda mendapatkan hasil yang tidak 404?
Cameron Kilgore

3

Bagi mereka yang menggunakan modul file_entity (mungkin dengan modul media ), Anda mungkin bertanya-tanya bagaimana cara membuat file / gambar secara program:

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

Di mana "field_image" adalah nama bidang Anda, dan "ringkasan" adalah mode tampilan Anda.


tidak bekerja untuk saya, tetapi diperlukan untuk mengatur gaya pada $ image_entity ['file'] ['# style_name'] lagi ..
rémy

Anda tidak boleh meng-hardcode kunci bahasa.
AlxVallejo

1

Jika Anda ingin merender gambar dengan gaya gambar yang diatur untuk gambar itu di layar kelola: Cukup ketik <?php print_render($content['field_image']) ?>

Jika Anda ingin menampilkan gambar dengan gaya gambar lain yang Anda miliki SUPPOSE: 'sales_album', ketikkan:

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

Saat menggunakan modul lapangan , saya menemukan ini lebih baik:

di halaman - yourcontenttype.tpl.php:

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

menggunakan field_view_field () memberikan keuntungan tambahan dimana seseorang dapat mengatur larik pengaturan tampilan:

<?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);

$ijika Anda memiliki beberapa gambar untuk ditampilkan. Anda dapat menggunakan for for seperti:

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

dan $imageCountpada dasarnya dinyatakan di atas untuk loop sebagai

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

Semoga ini membantu!

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.