Mengapa saya tidak bisa menambahkan ekstensi file lain yang diizinkan ke bidang gambar Drupal 7?

12

Saya telah menambahkan ekstensi file SVG untuk unggahan gambar melalui admin/structure/types/manage/image/fields/gallery_image, seperti yang Anda lihat di bawah:

masukkan deskripsi gambar di sini

Tetapi ketika saya pergi untuk mengunggah gambar, saya masih tidak diizinkan untuk mengunggah SVG.

masukkan deskripsi gambar di sini

Saya pasti menekan "Simpan" di halaman admin, dan saya membersihkan cache, dan saya bahkan melihat pengaturan seperti yang saya inginkan di database, ketika saya memeriksa field_config_instancetabel. Harus ada beberapa tabel atau cache lain yang tidak diperbarui. Ada ide?

Joe Corneli
sumber

Jawaban:

7

Gambar widget internal memungkinkan (dan memaksa diam-diam mengirim Drupal 6) penggunaan hanya png, gif, jpgdan / atau jpegekstensi. Jadi, sementara Anda dapat menghapus ekstensi dari bidang, misalnya, saya telah menghapus gifsebagian besar implementasi saya untuk menghindari animasi apa pun, Anda tidak dapat menambahkan apa pun ke daftar ini. Saya akan membayangkan ini karena ia dengan sendirinya menampilkan gambar setelah diunggah dan tidak ingin merusak tampilan di browser IE yang lebih lama dalam bentuk aktual (ditambah, siapa yang tahu bagaimana gaya gambar akan bekerja pada mereka juga :)

Jimajamma
sumber
Jawaban yang bagus, tapi sayang sekali.
Joe Corneli
2
Diskusi tentang do ada di sini: drupal.org/node/1014816
Joe Corneli
2

Anda cukup menggunakan bidang file dan menerapkan hook_field_formatter_info_alterdalam modul khusus Anda untuk mengaktifkan formatter "Gambar" juga untuk bidang file. Kemudian Anda dapat dengan mudah menggunakan SVG yang diunggah sebagai gambar yang disematkan.

/**
 * Implements hook_field_formatter_info_alter().
 */
function MODULNAME_field_formatter_info_alter(&$info) {
  $info['image']['field types'][] = 'file';
}
yannickoo
sumber
2

Seperti yang disebutkan, tidak ada cara mudah untuk hanya mengizinkan modul Image inti Drupal untuk menerima SVG. Sebagai gantinya Anda dapat menggunakan modul kontribusi SVG Embed (dengan enggan memilih filefield untuk SVG dalam diskusi ini ) atau kotak pasir ini (tidak dirilis secara resmi) modul SVG .

UPDATE: Saya sekarang merekomendasikan svgimg juga di Sandbox tetapi kemungkinan akan segera dirilis. Menggunakannya dalam produksi, dan sangat bahagia.

mlncn
sumber
1

Ada juga cara lain - menggunakan modul Media . Setelah ini diinstal, format SVG dapat ditambahkan di admin / struktur / tipe file, di bawah gambar.

Jika saya tidak salah, Drupal masih tidak mengizinkan SVG secara default karena masalah kompatibilitas ke belakang (terutama IE8 dan di bawah). Saya telah menempatkan SVG untuk beberapa waktu di proyek, dan belum mendengar keluhan.

karolus
sumber
Tidak yakin apakah itu jalan yang benar, tetapi Media jelas merupakan langkah maju dengan masalah ini.
digitgopher
Sebagai catatan saya membuat tipe baru yang disebut SVG yang merupakan cara yang bagus untuk menyesuaikan output dan memungkinkan Anda untuk memiliki output yang berbeda untuk gambar
shaneonabike