Studi Kasus dalam Seni Pemilihan Modul
Baru-baru ini, seorang klien meminta saya untuk menambahkan fitur baru ke situs Drupal perusahaan: menampilkan file PDF di browser. Ketika saya menelusuri opsi di drupal.org, saya menyadari bahwa ini adalah kesempatan sempurna untuk mendokumentasikan proses pengambilan keputusan saya yang sebenarnya saat saya memilih modul baru. Saya selalu mengatakan untuk memilih modul dengan bijaksana , tetapi sekarang Anda dapat melihat bagaimana saya pikir ini bekerja dalam kehidupan nyata.
Tentukan Apa yang Anda Inginkan
Langkah pertama adalah menentukan apa yang Anda inginkan. Dalam kasus saya, saya ingin:
- Kemampuan untuk melihat file PDF di browser web, mirip dengan contoh ini. Klien akan mengunggah PDF buletin perusahaan, dan pengunjung akan dapat membacanya dengan mudah.
- Situs ini adalah Drupal 7 , jadi modulnya harus sesuai dengan versi utama itu . (Drupal 7 telah keluar untuk sementara sekarang, jadi jika pengembang modul belum keluar dengan versi Drupal 7, mereka mungkin tidak akan melakukannya.)
- Meskipun klien tidak menentukan ini, saya juga ingin menghindari mengandalkan layanan pihak ketiga. Untuk video, saya senang untuk memposting konten ke YouTube atau Vimeo dan kemudian menanamkannya di situs Drupal, tetapi untuk PDF, saya tidak berpikir kemungkinan paparan tambahan akan melebihi kerumitan, kerusakan, dan biaya. Namun, saya terbuka untuk layanan pihak ketiga jika itu satu-satunya pilihan.
- Meskipun keinginan saya untuk menghindari layanan pihak ketiga, saya tahu pilihan saya mungkin akan memerlukan perpustakaan Javascript pihak ketiga. Meskipun ini akan menambah langkah tambahan untuk peningkatan di masa depan, saya biasanya merasa lebih baik menjalankan salinan perpustakaan saya sendiri daripada mengandalkan layanan pihak ketiga.
- Saya ingin menjaga modul ini seringan dan sespesifik mungkin. Saya tidak ingin terlibat dengan beberapa cara baru yang radikal dalam menangani atau mengatur file media. Saya menginginkan sesuatu yang lebih seperti Colorbox, yang memperbesar gambar untuk tampilan yang lebih baik, tetapi tetap sepenuhnya independen dari bagaimana Anda memilih untuk mengelola file gambar. Saya punya firasat bahwa perpustakaan ini adalah pdf.js, tetapi saya terbuka untuk kemungkinan lain.
- Seperti biasa, saya ingin mengikuti panduan umum untuk memilih modul Drupal. Pada dasarnya, pilih modul yang sudah digunakan oleh beberapa ribu orang (jika mungkin) untuk sementara, dengan minimum dependensi, yang tampaknya dikelola oleh pengembang aktif yang berencana untuk tetap mendukung proyek ke masa depan dan tidak t memerlukan biaya lisensi.
Cari di Drupal.org
Dengan tujuan ini, langkah selanjutnya adalah pencarian sederhana di Drupal.org. Saatnya melompat ke dalam Ball Pit of Module Goodness.
& # 34; Perbandingan & # 34; Halaman untuk Modul PDF
Perhentian pertama saya adalah (atau seharusnya), halaman ini: Perbandingan modul penampil PDF. Drupal.org memiliki tradisi dokumentasi halaman yang sangat baik yang menguraikan pro dan kontra dari berbagai modul dalam ruang yang sama. Ada daftar tengah halaman perbandingan, tetapi mereka juga ditaburkan di seluruh situs.
Halaman perbandingan PDF menyertakan empat modul penampil PDF. Saya akan membahasnya di sini, serta beberapa orang lain yang saya temukan dari pencarian. Saya akan mulai dengan kandidat yang saya putuskan untuk lewati.
Sekarang mari kita menyelidiki secara spesifik mengapa modul ini (atau sebagian besar tidak) bekerja untuk proyek ini.
Penampil Arsip
Penampil Arsip menggunakan Internet Archive BookReader, yang membuat saya tertarik karena saya seorang pecandu Arsip Internet. Setiap kali saya pergi ke sana, saya merasa geli ketakutan dan membanjiri pegunungan buku-buku yang dapat saya ambil dari eter.
Dikatakan demikian, lokasi demonstrasi terlihat sedikit jelek bagi saya. Saya mungkin akan hidup dengan itu, tetapi saya meragukan klien saya, ketika pdf.js terlihat jauh lebih bergaya.
Juga, pada tampilan kedua di halaman proyek, saya melihat pengumuman besar di atas: Modul ini telah dipindahkan ke modul PDF secara resmi . Cukup adil. Dengan kurang dari 400 pemasangan, bergabung dengan modul PDF yang lebih populer (yang akan kami bahas sebentar lagi), tampak seperti langkah yang bagus. Jangan mengunduh modul yang telah digabung / dipindahkan / ditinggalkan.
Google Viewer File Formatter
Google Viewer File Formatter adalah apa yang terdengar seperti: cara menggunakan Google Docs untuk menanamkan tampilan file di halaman web Anda. Meskipun saya menyukai keserbagunaan Google Docs, salah satu tujuan saya adalah tetap independen dari layanan pihak ketiga mana pun.
Juga, modul ini memiliki kurang dari 100 pemasangan.
Ajax Document Viewer
Meskipun "AJAX" adalah istilah Javascript umum, Ajax Document Viewer ternyata bergantung pada layanan pihak ketiga tertentu. Hanya sekitar 100 pemasangan. Bergerak...
Scald PDF
Scald PDF hanya memiliki 40 pemasangan, tetapi saya harus melihatnya, karena itu jelas merupakan bagian dari proyek yang lebih besar yang disebut (ya) Scald. Seperti yang dijelaskan oleh halaman proyek Scald: " Scald adalah cara yang inovatif tentang bagaimana menangani Atom Media di Drupal."
Kalimat itu mengangkat dua bendera merah besar: "take inovatif" dan kata "Media" dipasangkan dengan "Atom". "Atom" jelas kata yang dirancang untuk "hal", yang membuatnya menjadi bendera merah dengan sendirinya. Drupal memiliki kecenderungan untuk kata-kata kotak-kosong seperti ini: node , entity , feature ... Semakin umum kata itu, semakin banyak perubahan yang terjadi.
Ketika saya menggulir ke bawah, kecurigaan saya dikonfirmasi. Saya membaca pernyataan gembira tentang bagaimana Scald pada dasarnya akan menemukan kembali bagaimana saya menangani Media di situs saya.
Sekarang, kebenarannya adalah penanganan Media Drupal dapat menggunakan beberapa reinventing. Scald bukan satu-satunya proyek ambisius di ruang ini. Namun, dengan kurang dari 1000 pemasangan sejauh ini, saya tidak ingin masuk ke lantai dasar.
Tentu, pada saat ini tahun depan, Scald mungkin menjadi Views berikutnya. Itu akan bergoyang. Tetapi mungkin juga meninggalkan perangkat lunak, dengan jejak (kecil) situs rusak yang tersisa untuk menangis.
Untuk saat ini, saya ingin tetap dengan solusi yang jauh lebih ambisius dan berbahaya. Cukup tampilkan PDF, silakan. Itu saja yang saya tanyakan.
Kotak bayangan
Shadowbox mengejutkan saya: itu diklaim sebagai solusi tunggal untuk menampilkan semua jenis media, dari PDF ke gambar hingga video. Ini tidak seramping Scald, karena itu hanya akan fokus pada menampilkan media tanpa memperkenalkan konsep-konsep baru seperti "Media Atom". Tapi saya sudah suka Colorbox, seperti yang saya sebutkan. Saya tidak ingin memikirkan kembali keputusan itu.
Namun, saya mencatat (dengan keluhan batin) bahwa dengan lebih dari 16.000 pemasangan, Shadowbox bisa menjadi alternatif yang lebih kuat di ruang yang sama. Saya harus melihatnya.
Modul Shadowbox Drupal pada dasarnya adalah jembatan ke perpustakaan Javascript, Shadowbox.js, jadi saya memeriksa situs web perpustakaan. Di sana, saya menemukan dua alasan untuk melanjutkan:
- Perpustakaan membutuhkan biaya lisensi untuk penggunaan komersial. Biayanya cukup masuk akal, tetapi saya berusaha menghindari perangkat lunak open-source yang tidak gratis .
- Pencarian yang cermat dari FAQ menunjukkan bahwa, bertentangan dengan deskripsi pada halaman modul Drupal, PDF tidak 100% didukung oleh pustaka Shadowbox. Ups. Untung aku memeriksanya.
Dua Penantang: & # 34; PDF & # 34; dan & # 34; PDF Reader & # 34;
Setelah menghapus sisanya, saya sekarang datang ke dua pesaing yang jelas: PDF dan PDF Reader
Kedua proyek ini memiliki kesamaan kunci:
- Keduanya memiliki hampir 3.000 pemasangan, jauh lebih banyak daripada alternatif (kecuali Shadowbox).
- Keduanya menggunakan pustaka Javascript eksternal yang sama, pdf.js.
Bagaimana dengan perbedaan?
PDF Reader juga memiliki opsi untuk integrasi Google Docs. Dalam kasus khusus ini, saya pikir klien saya mungkin seperti itu, jadi saya suka memiliki opsi.
Sementara itu, PDF ditandai sebagai Seeking co-maintainer (s). Itu bisa menjadi tanda bahwa pengembang akan segera meninggalkan proyek, tetapi di sisi lain, komitmen terakhir adalah seminggu yang lalu, jadi setidaknya pengembang masih aktif.
Di sisi lain, PDF Reader ditandai sebagai Aktif dipertahankan, tetapi yang paling baru dilakukan adalah tahun lalu.
Tanpa pemenang yang jelas, saya memutuskan untuk menguji keduanya.
Menguji Contenders
Saya menguji kedua modul pada salinan situs langsung saya. (Tidak peduli seberapa padat dan tidak berbahaya sebuah modul muncul, jangan pernah mencobanya terlebih dahulu di situs langsung. Anda bisa merusak seluruh situs Anda.)
Saya bias terhadap PDF Reader , karena tampaknya memiliki lebih banyak pilihan (seperti Google Docs) daripada PDF . Jadi saya memutuskan untuk mencoba PDF terlebih dahulu, untuk mengeluarkannya.
Gagal PDF: Diperlukan Kompilasi?
Namun, ketika saya menginstal PDF dan membaca README.txt, saya menemukan masalah yang saya lihat tetapi diabaikan di halaman proyek. Untuk beberapa alasan, modul ini tampaknya mengharuskan Anda meng-compile pdf.js secara manual. Meskipun halaman proyek menyarankan bahwa ini belum tentu diperlukan, README.txt menyarankan itu.
Karena PDF Reader akan menggunakan pustaka yang sama persis tanpa memerlukan langkah ini, saya memutuskan untuk mencobanya terlebih dahulu. Jika tidak berhasil, saya selalu bisa kembali ke PDF dan mencoba menyusun pdf.js secara manual.
Pembaca PDF: Sukses! Semacam.
Jadi, akhirnya, saya mencoba PDF Reader . Modul ini menyediakan widget baru untuk menampilkan bidang File. Anda menambahkan bidang file ke jenis konten yang Anda inginkan dan mengatur jenis widget ke PDF Reader. Kemudian, Anda membuat simpul dari jenis ini dan mengunggah PDF Anda. PDF muncul tertanam dalam "kotak" di halaman.
Anda dapat mencoba berbagai opsi tampilan dengan mengedit jenis konten lagi dan mengubah pengaturan tampilan untuk bidang tersebut.
Saya menemukan bahwa setiap opsi tampilan memiliki kelebihan dan kekurangan:
- Pembaca Google Docs berfungsi dengan baik sebagai penyematan, tetapi ketika saya mengekliknya untuk masuk ke layar penuh, saya masuk ke halaman Google Documents yang meminta maaf karena batas nilai saya telah terlampaui. Ups. Mungkin ini akan lebih dapat diandalkan jika saya menghubungkan modul ke akun Google Apps berbayar, tetapi saya tidak repot-repot mencari tahu, karena saya cukup yakin klien saya tidak akan menyukai tampilan.
- Opsi pdf.js bekerja dengan sangat baik ... di Firefox dan Chrome. Tetapi ketika saya menyalakan Internet Explorer, kotak itu tampak kosong. Rupanya, ini adalah masalah dengan pdf.js itu sendiri, bukan modul PDF Reader . Saya kira saya seharusnya mengharapkan ini, mengingat pdf.js dikembangkan oleh Mozilla dan Internet Explorer adalah ... sendiri. Namun, saya kecewa karena saya tidak berpikir untuk memastikan bahwa pdf.js bekerja dengan baik di semua browser di tempat pertama.
- Opsi embed adalah yang paling dapat diandalkan. Ini benar-benar menjalankan Adobe Reader dalam kotak di halaman web. Firefox saya masih lebih suka menjalankan pdf.js, tapi saya pikir ini adalah pengaturan browser. Bagaimanapun, selama pengunjung memiliki Firefox atau penampil PDF seperti Adobe Reader, PDF akan ditampilkan.
Jadi, pada akhirnya, solusi saya adalah menggunakan Pembaca PDF dengan opsi tampilan Embed . Pilihan ini akan memungkinkan saya untuk melampirkan PDF ke node Drupal, dan dapat diandalkan menampilkannya pada halaman web Drupal.
Sayangnya, terkadang "dapat diandalkan" tidak cukup. Setelah semua pencarian ini, saya harus mempertimbangkan layanan pihak ketiga setelah semua.