Mooduli valiku kunsti juhtumiuuring
Hiljuti palus klient mul lisada ettevõtte Drupali saidile uus funktsioon: näidata brauseris PDF-faile. Drupal.orgi valikute sirvimisel mõistsin, et see oli suurepärane võimalus dokumenteerida oma tegeliku otsustusprotsessi, kui valisin uue mooduli . Ma ütlen alati, et valida moodulid targalt , kuid nüüd näete, kuidas see minu arvates tegelikust elust toimib.
Määrake, mida soovite
Esimene samm on määratleda, mida soovite. Minu puhul tahtsin:
- Võimalus vaadata PDF-faile veebibrauseris sarnaselt sellele näitele. Klient laadiks ettevõtte infolehe PDF-failid üles ja külastajad saaksid neid lihtsalt lugeda.
- Sait on Drupal 7 , mistõttu peaks see moodul vastama sellele põhiversioonile . (Drupal 7 on mõnda aega olnud läbi, nii et kui mooduli arendaja ei ole veel välja töötanud Drupal 7 versiooni, ei pruugi nad tõenäoliselt seda teha.)
- Kuigi klient ei täpsustanud seda, tahtsin ka vältida tugineda kolmanda osapoole teenusele. Videote jaoks on mul hea meel postitada sisu YouTube'i või Vimeo ja seejärel manustada seda Drupali saidile, kuid PDF-ide jaoks ei uskunud ma, et võimalik täiendav kokkupuude kaalub üles võimalikud probleemid, purunemised ja kulutused. Kuid mul oli avatud kolmanda osapoole teenus, kui see oli ainus võimalus.
- Vaatamata mu soovile vältida kolmanda osapoole teenust, teadsin, et minu valik eeldab ilmselt kolmanda osapoole Javascripti teekonda . Kuigi see lisab täiendava sammu tulevaste versiooniuuenduste puhul, tunneksin üldiselt, et kasutate oma koopiat raamatukogust paremini, mitte tuginedes kolmanda osapoole teenusele.
- Tahtsin moodulit hoida nii kerge kui ka spetsiifilise kujul. Ma ei tahtnud osaleda mõne radikaalselt uue meediumifailide käitlemise või organiseerimisega. Ma tahtsin midagi sellist nagu Colorbox, mis suurendab pilte paremaks vaatamiseks, kuid jääb täiesti sõltumatuks sellest, kuidas te otsustate pildifaile hallata. Mul oli hunnik, et see raamatukogu oleks pdf.js, kuid mul oli avatus muudele võimalustele.
- Tavaliselt tahtisin järgida Drupali mooduli valimise üldisi juhiseid. Põhimõtteliselt valige moodul, mida juba mõnda aega kasutavad mõni tuhat inimest (võimaluse korral) vähemalt sõltuvusega, mida näib olevat säilitanud aktiivne arendaja, kes kavatseb projekti toetada tulevikus ja ei " t nõuda litsentsitasu.
Otsi Drupal.orgist
Nende eesmärkide silmas pidades oli järgmine samm Drupal.orgis lihtne otsing. Aeg hüpata mooduli hea pallikarva.
& # 34; Võrdlus & # 34; PDF-moodulite leht
Minu esimene peatus oli (või peaks olema), see lehekülg: PDF-vaataja moodulite võrdlus. Drupal.orgil on suurepärane dokumentatsioonilehekülgede traditsioon, mis kirjeldab ühes ja samas ruumis erinevaid mooduleid. Sellel on võrdluslehtede keskne nimekiri, kuid neid kogu saiti ka piserdatakse.
PDF-i võrdlusleht sisaldas neli PDF-i vaatamise moodulit. Ma kattan neid siin ja ka teisi, kes ma otsisin. Alustan kandidaatidega, mille otsustasin vahele jätta.
Nüüd räägime spetsiifikast, miks need moodulid selle projekti jaoks (või enamasti ei teinud).
Failivaatur
Failivaatur kasutab Internetist arhiivi BookReaderit, mis mind huvitas, kuna olen Interneti-arhiivimängu. Iga kord, kui ma sinna minna, tunnen ma hirmuäratavaid hirmu ja mässu, mida ma võin eetrist välja tõmmata.
Seda silmas pidades näitas demonstratsioonipaik minu jaoks veidi inetu. Ma võin sellega elada, kuid kahtlesin oma kliendis, kui pdf.js tundub nii palju stiilne.
Samuti nägime projekti lehe teisel pilgul ülaosas suurt julgeid teateid: see moodul on formaalselt teisaldatud PDF-moodulisse . Õiglane. Ligikaudu 400 installi korral on ühendamine populaarsema PDF-mooduliga (mida me mõne hetkega kaame), tundub hea samm. Ärge kunagi laadige alla mooduli, mis on ühendatud / teisaldatud / loobutud.
Google'i kuvari failide vormindamine
Google Vieweri failiformaat on see, mis see kõlab: kuidas Google Docsi kasutada oma veebisaidil asuvate failide kuvamiste sisselülitamiseks. Kuigi mulle meeldis Google Docsi mitmekülgsus, oli üks minu eesmärke endiselt sõltumatu mis tahes kolmanda osapoole teenusest.
Sellel moodulil oli ka vähem kui 100 installi.
Ajax Document Viewer
Kuigi AJAX on üldine Javascripti termin, osutus Ajax Document Viewer tugineda konkreetsele kolmanda osapoole teenusele. Ainult umbes 100 installi. Liikudes ...
Scald PDF
Scald PDF-il oli vaid 40 installi, aga ma pidin selle välja nägema, kuna see oli ilmselgelt osa suuremast projektist nimega (jah) Scald. Nagu Scald projekti lehel selgitas: " Scald on innovatiivne, kuidas käsitleda Media Atome Drupalis."
See lause tõi kaks suurt punast lippu: "innovaatiline võtmine" ja sõna "Media", mis on ühendatud "Atomiga". "Atom" oli ilmselgelt ümbersuunatud sõna "asi", mis tegi selle endiselt punaseks lipuks. Drupalil on nende tühjade kastide jaoks kõverad sõnad: sõlme , üksus , funktsioon ... Mida üldisem on see, seda paremini muutused võivad olla.
Nagu ma kummardusin, kinnitasid kahtlused. Ma lugesin põnevaid väiteid selle kohta, kuidas Scald põhiliselt leiutas, kuidas käitusin oma saidil meediume.
Nüüd tõde on see, et Drupali meediumikäsitlus võib kasutada mõnda uuendust. Skald ei ole ainus ambitsioonikas projekt selles ruumis. Siiski, kui seni oli vähem kui 1000 installi, ei tahtnud ma esimesel korrusel minna.
Muidugi, järgmise aasta lõpuks võib Scald olla järgmine vaade . See oleks rokk. Kuid see võib olla ka abandaratiivne, kusjuures (väike) jäljendi, mis on katkiste saitide peksmiseks.
Praegu tahtsin kinni pidada palju ambitsioonikama ja ohtlikuma lahendusega. Palun lihtsalt PDF-faile näidata. See on kõik, mida ma küsisin.
Varjukobar
Shadowbox üllatas mind: ta väitis, et see on üks lahendus igasuguste meediumide kuvamiseks, PDF-failidest piltidest videotesse. See ei olnud nii pehmem, kui Scald, sest see keskenduks ainult meediarhiivile, ilma et oleks kasutusele võetud uued kontseptsioonid nagu "Media Atoms". Kuid mulle juba meeldib Colorbox, nagu ma mainisin. Ma ei tahtnud seda otsust ümber mõelda.
Kuid ma märkisin (sisemise hoorusega), et üle 16000 installi korral võib Shadowbox olla samas ruumis võimsam alternatiiv. Ma pean vaatama.
Shadowboxi Drupali moodul on põhimõtteliselt sillaks Javascripti raamatukogu Shadowbox.js, nii et ma kontrollisin raamatukogu veebisaiti. Seal avastasin, et liikuda on kaks põhjust:
- Raamatukogu nõuab kommertskasutuseks litsentsitasu. Tasu oli piisavalt mõistlik, kuid püüan vältida avatud lähtekoodiga tarkvara, mis pole tasuta .
- KKK-de hoolikas otsing näitas, et vastupidiselt Drupali mooduli lehe kirjeldusele ei kasuta Shadowboxi kogu PDF-failid 100% -liselt. Oih. Hea asi, mida ma kontrollisin.
Kaks võistlejat: & # 34; PDF & # 34; ja & # 34; PDF-lugeja & # 34;
Pärast ülejäänud eemaldamist tulin nüüd kahe ilmse kandidaadi juurde: PDF ja PDF-lugeja
Neil kahel projektil oli peamine sarnasus:
- Mõlemal oli ligi 3000 installi, palju rohkem kui alternatiive (välja arvatud Shadowbox).
- Mõlemad kasutasid sama välist Javascripti raamatukogu pdf.js.
Mis on erinevused?
PDF-lugejal oli ka Google Docsi integratsiooni võimalus. Sel juhul arvasin, et minu klient võib seda soovida, mistõttu mulle meeldis võimalus.
Vahepeal märgiti PDF- i kui "Otsin kaas-hooldaja (d)". See võiks olla märk sellest, et arendaja peatselt projekti loobub, kuid teisest küljest oli viimane kohustus juba nädal tagasi, nii et vähemalt arendaja oli endiselt aktiivne.
Teisalt oli PDF Reader märgitud aktiivseks hoolduseks, kuid viimane kohustus oli aasta tagasi.
Ilma selge võitja otsustasin neid mõlemat testida.
Konkurentide testimine
Ma testisin mõlemat moodulit minu elava saidi koopias. (Olenemata sellest, kui tahke ja kahjutu moodul ilmub, ärge proovige seda esmakordselt elavas veebisaidil. Võite kogu saidi murda.)
Ma olin suunas PDF Readeri suunas, sest tundus, et tal on rohkem võimalusi (nt Google Docs) kui PDF . Nii otsustasin kõigepealt proovida PDF-i , et seda välja tõrjuda.
PDF fail: nõutav kompileerimine?
Kuid kui ma installinud PDF-i ja lugesin README.txt, avastasin ma probleemi, mida ma näinud, aga projekti lehel ignoreerisin. Mingil põhjusel tundub, et see moodul nõuab pdf.jsi käsitsi kompileerimist. Kuigi projekti lehel oli soovitus, et see ei pruugi tingimata vajalik, nägi README.txt seda ette.
Kuna PDF-lugeja kasutab täpselt sama raamatukogu seda sammu nõudmata, otsustasin selle kõigepealt proovida. Kui see ei tööta, võin alati minna tagasi PDF-faili ja proovida pdf.js käsitsi kompileerida.
PDF-lugeja: edu! Mingis mõttes.
Niisiis, pikas perspektiivis proovisin PDF Readerit . See moodul pakub uue väljanägemise väljanägemise viisi. Lisate failivälja soovitud sisutüübi jaoks ja määrate vidina tüübi PDF-lugeja. Seejärel loote selle tüübi sõlme ja laadite üles oma PDF-faili. PDF-fail kuvatakse lehel olevasse kasti.
Saate proovida teisi kuvamisvalikuid, redigeerides sisutüübi uuesti ja muutnud väljapaneku seadeid.
Ma leidsin, et igal kuvamisvalikul olid eelised ja miinused:
- Google Docsi lugeja töötas hästi, kuid kui ma klõpsasin sellel täisekraanile minekuks, lõpetasin Google Docsi lehe, mis vabandas, et minu kiirusepiirangut on ületatud. Oih. Võibolla see oleks usaldusväärsem, kui ma ühendaksin mooduli makseteenuse Google Appsi kontole, kuid ma ei vaevanud seda teada saada, kuna olin päris kindel, et minu klient ei soovi ekraani.
- Pdf.js valik töötas suurepäraselt ... Firefoxis ja Chrome'is. Aga kui ma Internet Explorerit vallandasin, ilmnes see kasti. Ilmselt see probleem on pdf.js ise, mitte PDF-lugeja moodul. Ma arvan, et oleksin oodanud seda, arvestades, et Mozilla töötab välja pdf.js ja Internet Explorer on ... ise. Siiski olin pettunud, et ma ei arvanud, et kinnitan, et pdf.js töötas usaldusväärselt kõigi brauseritega.
- Kinnitamise võimalus oli kõige usaldusväärsem. See tõepoolest käis Adobe Readeri veebisaidi kastis. Minu Firefox jätkas eelistatavaks pdf.js käivitamist, kuid arvan, et see oli brauseri seadistus. Mõlemal juhul, kui külastajaks oli kas Firefox või PDF-vaataja nagu Adobe Reader, kuvatakse PDF-fail.
Seega lõpuks oli minu lahenduseks kasutada PDF-lugeja koos sisestamise võimalusega. See võimalus lubab mul lisada Drupali sõlme PDF-faili ja näidata seda usaldusväärselt Drupali veebisaidil.
Kahjuks pole mõnikord "usaldusväärne" piisav. Pärast seda, kui otsisite, pidin lõpuks kolmanda osapoole teenust kaaluma.