Modul seçmə sənətində bir vəziyyət öyrənilməsi
Son zamanlarda müştəri mənə şirkətin Drupal saytına yeni bir xüsusiyyət əlavə etməyi xahiş etdi: brauzerdə PDF faylları göstərin. Mən drupal.org-də variantları nəzərdən keçirərkən, mən bu yeni bir modul seçdiyimdə faktiki qərar vermə prosesini sənədləşdirmək üçün mükəmməl bir şans olduğunu başa düşdüm. Mən həmişə modulları ağıllı seçmək üçün deyirəm amma indi bu işləri əsl həyatda necə düşünəcəyini görə bilərsiniz.
İstədiyiniz şeyi müəyyən edin
İlk addım istədiyiniz şeyi müəyyən etməkdir. Mənim vəziyyətimdə istərdim:
- Bu nümunəyə bənzər bir web browserda PDF fayllarını keçirmək imkanı. Müştəri şirkətin bülleteninin PDF-lərini yükləyəcək, və qonaqlar onları asanlıqla oxuyacaqlar.
- Sayt Drupal 7 , buna görə modul əsas versiyanı uyğunlaşdırmalıdır. (Drupal 7 artıq bir müddətdir həyata keçirildi, buna görə də bir modul geliştiricisi hələ Drupal 7 versiyası ilə çıxmırsa, ehtimal ki, olmayacaqlar.)
- Müştəri bu haqda məlumat vermədiyinə baxmayaraq, mən də üçüncü tərəfin xidmətinə güvənməməyi istəmişdim. Videolar üçün YouTube və ya Vimeo-a məzmun göndərməkdən və daha sonra bir Drupal saytına yerləşdirməkdən xoşbəxtəm, amma PDF-lər üçün ehtimal olunan əlavə ifşa potensial zorakılıq, qırılma və xərclərdən daha ağırlaşacağını düşünmədim. Yalnız bir seçim olsa da, bir üçüncü tərəf xidmətinə açıq oldum.
- Üçüncü tərəfin xidmətindən qaçmaq istəməyimə baxmayaraq, mənim seçimim üçüncü tərəflərin Javascript kitabxanasını tələb etməyini bilirdim. Bu gələcək yükseltmelerde əlavə bir addım olmasına baxmayaraq, ümumiyyətlə, bir üçüncü tərəfin xidmətinə deyil, kitabxanamın öz kopiyasını idarə etməyimi daha yaxşı hiss edirəm.
- Modulları mümkün qədər yüngül və spesifik tutmaq istərdim. Media faylları idarə etmək və ya təşkil etməklə bəzi radikal şəkildə yeni bir şəkildə məşğul olmaq istəmədim. Daha yaxşı görüntüləmək üçün şəkilləri genişləndirən Colorbox kimi daha çox bir şey istədim, ancaq görüntü fayllarını idarə etmək üçün necə seçdiyinizdən tamamilə müstəqildir. Bu kitabxananın pdf.js olacağını bilirdim, amma digər imkanlar üçün açıq idi.
- Hər zamanki kimi, bir Drupal modulunu seçmək üçün ümumi qaydalara riayət etmək istəmişdim. Əsasən, gələcəkdə layihənin dəstəklənməsini davam etdirməyi planlayan bir fəal developer tərəfindən saxlanılan bir az asılılıqla, bir az bir neçə min nəfər (mümkün olduqda) bir az istifadə edən bir modul seçmək, lisenziya haqqı tələb olunur.
Drupal.org-də axtar
Bu məqsədləri nəzərə alaraq, növbəti addım Drupal.org saytında sadə bir axtarış idi. Modulu Yaxşılıq Ball Pit daxil tullanmaq üçün vaxt.
& # 34; Müqayisə & # 34; PDF modulları üçün səhifə
Mənim ilk dayanacağım (və ya olmalıdır), bu səhifə: PDF görüntüleyici modullarının müqayisəsi. Drupal.org eyni məkanda müxtəlif modulların müsbət və mənfi cəhətlərini əks etdirən sənədləşmə səhifələrinin əla bir ənənəsinə malikdir. Müqayisəli səhifələrin mərkəzi siyahısı var, ancaq onlar site boyunca səpilirlər.
PDF müqayisə səhifəsində dörd PDF görüntüleyici modul daxildir. Onları burada, eləcə də axtarışdan tapdığım digər bir neçə nəfərlə əhatə edəcəyəm. Mən atlamağa qərar verdiyim namizədlərlə başlayacağam.
İndi bu modulların (və ya əksəriyyəti olmadıqlarını) niyə bu layihə üçün işləməyinin xüsusiyyətlərinə nəzər salaq.
Fayl Görüntüleyicisi
File Viewer Internet Arxiv BookReader istifadə edir ki, məni İnternet Arxivi Junkie olduğum üçün maraqlandırdı. Oraya getdiyim hər dəfə qorxu dolu hiss edirəm və eterdən uzaqlaşa biləcəyim kitabların dağlarına boğuluram.
Deməli, nümayiş səhifəsi mənə bir az çirkin göründü. Mən bununla yaşayıram, amma pdf.js çox daha şık göründüyümdə müvəkkilimin şübhəyini verəcəyəm.
Həm də, layihənin səhifəsinə ikinci baxışda yuxarıdakı böyük cəsarətli elanını gördüm: Bu modul rəsmi olaraq PDF moduluna köçürülmüşdür . Kifayət qədər ədalətli. Daha populyar PDF modulla (bir anda əhatə edəcəyik) birləşmə ilə 400-dən az quraşdırma ilə yaxşı bir hərəkət kimi görünür. Birləşdirilmiş / taşınmış / tərk edilmiş bir modul yükləməyin.
Google Viewer Fayl Formatter
Google Viewer Fayl Formatter kimi səslənir: Google Sənədlərindən veb səhifənizdə faylların yerləşdirilməsinə kömək etmək üçün bir yol. Google Sənədlərin çox yönlü olmasına baxmayaraq, mənim məqsədlərimdən biri üçüncü tərəflərin xidmətindən asılı olmamaq idi.
Həmçinin, bu modulda 100-dən az quraşdırma var idi.
Ajax Document Viewer
"AJAX" ümumi Javascript termini olmasına baxmayaraq, Ajax Document Viewer xüsusi bir üçüncü tərəf xidmətinə əsaslanırdı. Yalnız təxminən 100 qurğular. Davam etmək...
Scald PDF
Scald PDF-də yalnız 40 qurğu quraşdırılmışdı, ancaq daha çox layihə (bəli) Scald adlı bir layihənin bir hissəsi olduğundan, bir nəzər salmaq məcburiyyətindəyəm. Scald layihəsi səhifəsinin izah etdiyi kimi: " Scald Drupal'daki Media Atomları necə idarə etmək üçün yenilikçi bir addımdır."
Bu cümlədə iki böyük qırmızı bayraq qaldırıldı: "yenilikçi" və "Media" sözü "Atom" ilə cütləşdi. "Atom" açıq-aydın bir "şey" üçün təkrarlanan bir söz idi və bu, özü tərəfindən qırmızı bayraq yaratdı. Drupal, bu boş qutu sözün növü üçün bir dəlicəsinə malikdir: node , varlıq , xüsusiyyət ... Sözün daha ümumi olması, dəyişmələrin daha da genişlənməsi ola bilər.
Keçirdiklərimdə şübhələrim təsdiq edildi. Scald'ın sitemde Medyanın nasıl işlediğimi yeniden nasıl yeniden başlatacağımın heyecanlı iddialarını okudum.
İndi, həqiqət Drupalın Media işlətməsi bəzi yeniləmələri istifadə edə bilər. Scald bu məkanda yeganə iddialı layihə deyil. Ancaq bu günə qədər 1000-dən çox qurğunun olması ilə mən mərtəbədə oturmaq istəmədim.
Əlbəttə ki, gələn il bu dəfə Scald növbəti görüşlər ola bilər. Bu qaya olacaq. Amma bu, qırılan saytların (kiçik) izi ilə ağlamağa buraxılması ilə də tərk edilə bilər.
Hal-hazırda, daha az iddialı və təhlükəli bir həll ilə qalmaq istədi. Yalnız PDF'leri göstərin. Bütün bunlar məndən soruşdu.
Shadowbox
Shadowbox məni təəccübləndirdi: PDF-lərdən şəkillərə videoya göstərmək üçün hər cür media nümayiş etdirmək üçün tək həll olmağı iddia etdi. Bu, yalnız "Media Atomları" kimi yeni konsepsiyaları tətbiq etmədən media nümayiş etdirməyə yönəlmişdi, çünki bu, Scald kimi süpürmə deyildi. Amma artıq qeyd etdiyim kimi Colorbox'u sevirəm. Bu qərarı yenidən düşünmək istəmədim.
Buna baxmayaraq, qeyd etdiyim kimi (daxili bir inamsız) 16,000- dən çox quraşdırıma malik olan Shadowbox eyni məkanda daha güclü alternativ ola bilər. Mənə nəzər salmaq məcburiyyətindəyəm.
Shadowbox Drupal modulu əsasən Javascript kitabxanası olan Shadowbox.js üçün bir körpüdür və mən kitabxananın saytını yoxlayıb. Orada hərəkət etmək üçün iki səbəbi tapdım:
- Kitabxana ticarəti üçün lisenziya haqqını tələb edir. Ücret kifayət qədər ağlabatan idi, amma pulsuz mənbə olmayan açıq proqramlardan qaçmağa çalışırdım .
- Sualların diqqətlə axtarılması Drupal modulu səhifəsinin təsvirinə zidd olaraq, PDF-lərin Shadowbox kitabxanası tərəfindən dəstəklənməməsi 100% olduğunu göstərir. Oops. Yaxşı bir şey yoxladım.
İki Yarışmacı: & # 34; PDF & # 34; & # 34; PDF Reader & # 34;
Qalanları aradan qaldıraraq, indi iki açıq namizəd oldum: PDF və PDF Reader
Bu iki layihə əsas oxşarlıqlara malik idi:
- Hər ikisinin təxminən 3,000 qurğuları var idi, alternativlərdən çox (Shadowbox istisna olmaqla).
- Hər ikisi eyni xarici Javascript kitabxanasını, pdf.js istifadə etdi.
Fərqlər nədir?
PDF Reader da Google Docs inteqrasiyası üçün seçim etmişdi. Bu xüsusi hallarda, müştərimə buna bənzər düşündüm, buna görə də seçimə xoşuma gəldi.
Bu arada, PDF işarələmiş tərəfdaş (lar) kimi qeyd edildi. Bu, geliştiricinin layihəni tezliklə tərk etməyinin bir göstəricisi ola bilərdi, digər tərəfdən, ən son tövsiyə bir həftə əvvəl idi, buna görə ən azı geliştirici hələ də aktivdir.
Digər tərəfdən PDF Reader aktiv olaraq saxlandığı kimi qeyd edildi, lakin ən son tövsiyə bir il əvvəl idi.
Aydın qalib olmadan, ikisini də sınamağa qərar verdim.
Müsabiqələrin sınaqdan keçirilməsi
Həm modulları canlı saytımın bir kopyasına test etdim. (Bir modulun nə qədər möhkəm və təhlükəli olmasından asılı olmayaraq, heç bir canlı saytda ilk dəfə cəhd edin. Bütün sitenizi poza bilərsən.)
PDF Reader'a qarşı qərəzli oldum, çünki PDF- dən daha çox variant (Google Docs kimi) var idi. Beləliklə, mən ilk növbədə PDF- ni sınağa çəkməyi qərara aldım.
PDF Fail: Kompilyasiya tələb olunur?
Ancaq PDF yüklediy və README.txt oxuduğumda gördüyüm ancaq layihə səhifəsində görülən bir problemi tapdım. Nədənsə, bu modul pdf.js əl tərtib etmək tələb edir. Layihə səhifəsində bunun mütləq tələb olunmadığını irəli sürsələr də, README.txt bunun təklif etdiyini irəli sürdü.
PDF Reader bu addımı tələb etmədən eyni kitabxanadan istifadə edəcəyi üçün, ilk növbədə bunu sınamağa qərar verdim. Əgər işə yaramırsa, mən həmişə PDF-ə qayıda bilərəm və əl ilə pdf.js tərtib etməyə cəhd edə bilərəm.
PDF Reader: Müvəffəqiyyət! Sortlaşdırma.
Beləliklə, uzun müddət sonra PDF Reader'ı sınamışdım. Bu modul bir Fayl sahəsi göstərmək üçün yeni bir widget təmin edir. İstədiyiniz məzmun tipinə bir fayl sahəsi əlavə edin və widget tipini PDF Reader-a qoyun. Sonra, bu tip bir node yaratmaq və PDF-ni yükləyin. PDF səhifəsində "qutuda" yerləşdirilən görünür.
Mətnin növünü yenidən düzəltmək və sahənin ekran parametrlərini dəyişməklə müxtəlif ekran seçimlərini sına bilərsiniz.
Hər bir seçim variantının müsbət və mənfi cəhətləri olduğunu gördüm:
- Google Docs oxucu bir embed kimi gözəl işləmişdi, lakin tam ekrana keçmək üçün tıkladığımda, mənim faiz limiti keçdiyini üzr istəyən Google Docs səhifəsində qaldım. Oops. Modulumu ödənişli bir Google Apps hesabına bağladığımda bu daha etibarlı olardı, amma müştərimin ekranı istəmədiyinə əmin olduğum üçün tapmaq üçün narahat olmamışdım.
- Pdf.js seçimi gözəl ... Firefox və Chrome-da işləmişdir. Lakin Internet Explorer-ə atdığımda qutu boş göründü. Göründüyü kimi, bu pdf.js özü ilə deyil, PDF Reader modulu deyil. Hesab edirəm ki, pdf.js Mozilla tərəfindən hazırlanmışdır və Internet Explorer özü ... bunun özüdür. Hələ, pdf.js ilk növbədə bütün brauzerlər arasında etibarlı işlədiyini təsdiq etməyi düşünməmişəm.
- Yerləşdirmə seçimi ən etibarlı idi. Bu, həqiqətən, Adobe Reader veb səhifəsində bir qutuda qaçdı. Mənim Firefox hələ pdf.js işlətməyi üstün etdi, amma bu bir brauzer qəbulu idi. Hər hansı bir şəkildə bir ziyarətçi ya Firefox ya da Adobe Reader kimi bir PDF görüntüleyicisi olsaydı, PDF göstərilir.
Beləliklə, mənim həllim PDF Reader'ı Embed ekranı ilə seçmək idi. Bu seçim bir PDF'yi bir Drupal düğümüne eklemem ve Drupal web sayfasında güvenilir bir şekilde görüntülememe izin verərdi.
Təəssüf ki, bəzən "etibarlı" kifayət deyil. Bütün bu axtarışlardan sonra hamıdan üçüncü tərəfə baxmalıyam.