Saya mengunggah file gambar menggunakan managed_file
tipe API Formulir, tetapi setelah mengunggah gambar itu tidak muncul sebagai thumbnail di samping bidang. Yang dirender adalah nama file gambar dengan tautan ke gambar dan ikon kecil.
Bagaimana cara menampilkan thumbnail gambar setelah mengunggahnya (seperti pratinjau gambar dari bidang Gambar inti)?
Juga bagaimana saya bisa menampilkan gambar default di sebelahnya (jika memiliki nilai default)?
Ini kode saya:
$form['logo'] = array(
'#title' => t('Logo'),
'#type' => 'managed_file',
'#required' => TRUE,
'#default_value' => variable_get('logo', ''),
'#upload_location' => 'public://',
'#upload_validators' => array(
'file_validate_extensions' => array('gif png jpg jpeg'),
'file_validate_size' => array(0.3*1024*1024),
)
if (!empty($form['#file'])) {
ke `print drupal_render_children ($ form);` tulis dalam.tpl.php
file? Jika tidak maka di mana saya harus menulis bagian ini?Tetapkan tema di lapangan, dan simulasikan struktur kode untuk melihat pratinjau gambar yang baru saja Anda unggah. Solusi saya adalah sebagai berikut,
Di hook_theme Anda (),
Di theme_abc_thumb_upload () Anda,
sumber
image_style_url('thumbnail', $element['#file']->uri)
di tempatfile_create_url($element['#file']->uri)
- kode saat ini serius dapat merusak tata letak jika pengguna mengunggah sesuatu yang buruk.tentang dimensi, periksa validasi ini file_validate_image_resolution :
sumber
Meretas HTML untuk menghapus tombol tidak berfungsi untuk saya. Halaman disegarkan tanpa menghapus gambar. Alih-alih, saya menyalin dari
theme_image_widget
callback bidang gambar inti yang ditemukan didocroot/modules/image/image.field.inc
.Gunakan fungsi tema ini untuk merender elemen:
Definisi elemen bentuk:
sumber
Tambahkan elemen formulir lain untuk berisi markup untuk pratinjau gambar Anda. Dalam kode di bawah ini, $ v berisi nilai formulir yang menarik. Kasing spesifik Anda dapat menarik mereka dari suatu simpul, dari keadaan formulir atau di tempat lain. Ini adalah objek file yang dilemparkan ke array.
Perhatikan bahwa saya mengatur status file ke permanen dan menyimpan kembali. Ini untuk gambar yang diunggah untuk dipratinjau dengan benar. Gaya gambar tidak dapat dibuat untuk gambar dalam penyimpanan sementara, jadi Anda harus menandainya sebagai perm. Bergantung pada kasus penggunaan dan alur kerja Anda, Anda mungkin harus mengatasi gambar "yatim".
Struktur formulir saya ($ form ['foto'] ['item'] [$ i]) adalah untuk bidang gambar multi-entri. Saya memiliki template tema yang mengumpulkan mereka dan meletakkannya di drupal_add_tabledrag . Struktur susunan formulir Anda kemungkinan akan berbeda.
sumber