Neseniai klientas paprašė man pridėti naują funkciją įmonės Drupal svetainėje: rodyti PDF failus naršyklėje. Kai peržiūrėjau drupal.org pasirinkimus, supratau, kad tai buvo puiki galimybė dokumentuoti mano faktinį sprendimų priėmimo procesą, nes pasirinko naują modulį. Aš visada sakau, kad išmintingai pasirinkti modulius, bet dabar jūs galite pamatyti, kaip manau, kad tai veikia realiame gyvenime.
Apibrėžkite tai, ko norite
Pirmasis žingsnis yra apibrėžti tai, ko norite. Mano atveju norėjau:
- Galimybė peržiūrėti PDF failus žiniatinklio naršyklėje, panašus į šį pavyzdį. Klientas įkelia įmonės informacinio biuletenio PDF rinkmenas, o lankytojai galėtų juos lengvai perskaityti.
- Svetainė yra Drupal 7, todėl moduliui reikės suderinti tą pagrindinę versiją. (Drupal 7 jau buvo šiek tiek užtruko, taigi, jei modulio kūrėjas dar nepateikė drupal 7 versijos, jie greičiausiai nebus.)
- Nors klientas to nenurodė, aš taip pat norėjau nenorėti pasikliauti trečiosios šalies paslauga. Dėl vaizdo įrašų malonu paskelbti turinį į "YouTube" arba "Vimeo", o vėliau įterpti jį į Drupal svetainę, tačiau manau, kad galimas papildomas poveikis neapsunkins galimų sunkumų, trūkumų ir išlaidų. Tačiau man buvo atvira trečiosios šalies paslaugai, jei tai buvo vienintelė galimybė.
- Nepaisant to, kad norėjau išvengti trečiosios šalies paslaugos, žinau, kad mano pasirinkimas greičiausiai reikalauja trečiosios šalies "Javascript" biblioteka . Nors tai papildytų papildomą žingsnį būsimiems naujinimams, paprastai manau, kad geriau naudotis savo bibliotekos kopija, o ne pasikliauti trečiosios šalies paslauga.
- Aš norėjau išlaikyti modulį kaip lengvą ir specifinį. Aš nenorėjau įsitraukti į radikaliai naują būdą tvarkyti ar organizuoti medijos failus. Aš norėjau kažko panašaus į "Colorbox", kuris išplečia vaizdus, kad juos būtų lengviau peržiūrėti, tačiau lieka visiškai nepriklausomas nuo to, kaip pasirenkate tvarkyti vaizdo failus. Turėjau prielinksnį, kad ši biblioteka būtų pdf.js, bet aš galėčiau naudotis kitomis galimybėmis.
- Kaip įprasta, norėjau laikytis bendrųjų Drupal modulio pasirinkimo gairių. Iš esmės, pasirinkite modulį, kurį jau keletą tūkstančių žmonių (jei įmanoma) jau naudojosi tam tikru metu, su mažiausiai priklausomybėmis, kurį, atrodo, palaiko aktyvus kūrėjas, kuris ketina toliau remti projektą ateityje ir neturi " t reikia licencijos mokesčio.
Ieškoti Drupal.org
Atsižvelgiant į šiuos tikslus, kitas žingsnis buvo paprasta Drupal.org paieška. Laikas įšokti į Modulio gilumà.
"Palyginimas" PDF modulių puslapis
Mano pirmasis sustojimas buvo (arba turėjo būti), šis puslapis: "PDF" žiūryklės modulių palyginimas. "Drupal.org" turi puikią dokumentacijos puslapių tradiciją, kurioje aprašomi skirtingų modulių privalumai ir trūkumai toje pačioje vietoje. Yra centrinis palyginimo puslapių sąrašas, tačiau jie taip pat yra apibarstyti visoje svetainėje.
PDF palyginimo puslapyje buvo keturi PDF žiūryklės moduliai. Aš apims juos čia, taip pat pora kitų, kuriuos radau ieškant. Pradėsiu nuo kandidatų, kuriuos nusprendžiau praleisti.
Dabar leiskite išsiaiškinti, kodėl šie moduliai (arba daugiausia ne) dirbo šiame projekte.
Failų peržiūros programa
Failų peržiūros programa naudoja internetinį archyvą "BookReader", kuris mane intriguoja, nes aš esu interneto archyvo mėgėjas. Kiekvieną kartą, kai aš einu ten, aš jaučiuosi baimės spąstais ir priblokšta knygų kalnuose, kuriuos galiu ištraukti iš eterio.
Tai sakant, demonstravimo vieta atrodė šiek tiek negraži. Galėčiau gyventi su ja, bet aš abejoju, kada mano klientaspdf.js
atrodo daug stilingesnis.
Be to, antrą kartą pažvelgus į projekto puslapį, aš mačiau didžiulį drąsų skelbimą viršuje:Šis modulis yra formaliai perkeltas į PDF modulį. Pakankamai teisingas. Su mažiau nei 400 diegimų, sujungusį su labiau populiariuoju PDF moduliu (kurį vienu metu apimsime), atrodo, yra geras žingsnis. Niekada atsisiųskite modulį, kuris buvo susijungęs / perkeltas / atsisakytas.
"Google" žiūryklės failų formatas
"Google" žiūrovų failų formatavimas yra tai, ką jis skamba kaip būdas naudoti "Google" dokumentus, norint įterpti failų rodymus jūsų tinklalapyje. Nors man patiko "Google" dokumentų universalumas, vienas iš mano tikslų buvo likti nepriklausomas nuo bet kokios trečiosios šalies paslaugos.
Be to, šiame modulyje buvo mažiau nei 100 diegimų.
Ajax dokumentų peržiūros programa
Nors "AJAX" yra bendras "Javascript" terminas, "Ajax" dokumentų peržiūros programa pasirodė priklausoma nuo konkrečios trečiosios šalies paslaugos. Tik apie 100 įdiegia. Perėjimas …
Skald PDF
"Scald PDF" turėjo tik 40 įdiegimų, tačiau turėjau atrodyti, nes tai buvo dalis didesnio projekto, vadinamo "yes", "Scald". Kaip paaiškinta "Scald" projekto puslapyje: " Skaldas yra naujoviškas, kaip elgtisŽiniasklaidos atomai Drupal ".
Šiame sakinyje iškilo dvi didžiulės raudonos vėliavos: "novatoriškas" ir žodis "Media" suporuotas su "Atom". "Atomas", be abejo, buvo išreikštas žodis "dalykui", kuris pavertė ją raudona vėliava. "Drupal" turi šioms tuščioms dėžutėms būdingus žodžius: mazgas , subjektas , funkcija … Kuo apskritai žodis, tuo daugiau pokyčių gali būti.
Kai aš važiuoju, mano įtarimai buvo patvirtinti. Aš perskaičiau malonius teiginius apie tai, kaip Scald iš esmės sugalvojo, kaip tvarkiau žiniasklaidą mano svetainėje.
Dabar tiesa yra tai, kad Drupal "Media" tvarkymas gali panaudoti kai kuriuos išradimus. Skaldas nėra vienintelis plataus užmojo projektas šioje erdvėje.Vis dėlto iki šiol įdiegiau mažiau nei 1000, nenorėjau patekti į pirmąjį aukštą.
Žinoma, iki šiol kitais metais "Scald" gali būti ir kiti vaizdai. Tai būtų roko. Bet tai taip pat gali būti be abandonware, kai (maža) trasa skaldytų svetainių paliekama verkti.
Šiuo metu norėjau laikytis kur kas mažiau ambicingo ir pavojingo sprendimo. Prašome rodyti PDF failus. Tai viskas, ko paklausiau.
Shadowbox
"Shadowbox" mane nustebino: jis teigė esantis vienintelis būdas rodyti visų rūšių žiniasklaidą, nuo PDF į vaizdus į vaizdo įrašą. Tai nebuvo tokia šlavinanti, kaip Skaldas, nes joje būtų sutelktas dėmesys rodyti žiniasklaidos priemonėmis nepateikiant visiškai naujų sąvokų kaip "Media Atoms". Bet aš jau kaip Colorbox, kaip minėjau. Aš nenorėjau persvarstyti šio sprendimo.
Tačiau aš padariau (su vidiniu groan), kad su daugiau16,000 "Shadowbox" gali būti galingesnė alternatyva toje pačioje vietoje. Aš turėjo pažiūrėti
"Shadowbox" "Drupal" modulis iš esmės yra tiltas į "Javascript" biblioteką Shadowbox.js, todėl aš užsiregistravau bibliotekos tinklalapyje. Ten radau dvi priežastis:
- Biblioteka reikalauja licencijos mokesčio už komercinį naudojimą. Mokestis buvo pakankamai pagrįstas, bet stengiuosi išvengti atvirojo kodo nemokamos programinės įrangos.
- Kruopščiai ieškodami DUK paaiškėjo, kad, priešingai nei aprašyme Drupal modulio puslapyje, yra PDF rinkmenos ne 100% "Shadowbox" bibliotekos palaikymas. Oi! Geras dalykas, kurį aš patikriniau.
Du konkurentai: "PDF" ir "PDF Reader"
Pašalinus likusius, aš atėjau prie dviejų akivaizdžių kandidatų: PDF ir PDF Reader
Šie du projektai turėjo esminių panašumų:
- Abiejuose buvo beveik 3000 instaliacijų, daug daugiau nei alternatyvos (išskyrus "Shadowbox").
- Abu naudojo tą pačią išorinę "Javascript" biblioteką
pdf.js
.
Ką apie skirtumus?
PDF skaitytuvas taip pat turėjo galimybę "Google" dokumentus integruoti. Šiuo konkrečiu atveju maniau, kad mano klientas gali tai patikti, taigi man patiko galimybė.
Tuo tarpu PDF buvo pažymėtas kaipIeškau bendradarbio (-ų)
. Tai gali būti ženklas, kad kūrėjas netrukus atsisakytų projekto, tačiau, kita vertus, naujausias įsipareigojimas buvo prieš savaitę, taigi bent jau kūrėjas vis dar aktyvus.
Iš kitos pusės, PDF skaitytuvas buvo pažymėtas kaipAktyviai palaikoma
, bet paskutinis įvykis buvo prieš metus.
Be aiškios nugalėtojos, nusprendžiau juos išbandyti.
Konkurentų testavimas
Aš išbandžiau abu modulius savo tiesioginės svetainės kopijoje. (Nesvarbu, koks yra tvirtas ir nekenksmingas modulis, niekada išbandykite jį tiesioginėje svetainėje. Galite pertraukti visą svetainę.)
Aš buvau linkęs link PDF skaitytuvas , nes atrodė, kad turi daugiau galimybių (pvz., "Google" dokumentai) nei PDF . Taigi aš nusprendžiau pabandyti PDF pirmiausia, kad ištrūktų.
PDF failas: reikalingas rinkinys?
Tačiau kai įdiegiau PDF ir skaitytiREADME.txt
, Aš atradau problemą, kurią aš mačiau, bet ignoravo projekto puslapyje. Dėl tam tikrų priežasčių šis modulis, atrodo, reikalauja, kad jūs sudarytumėtepdf.js
rankiniu būdu. Nors projekto puslapyje buvo pasiūlyta, kad to nebūtinai reikia,README.txt
siūlė tai buvo.
Nuo PDF skaitytuvas naudos tą pačią biblioteką, nereikalaudama šio žingsnio, nusprendžiau pabandyti iš pradžių. Jei jis neveikia, visada galėjau sugrįžti PDF ir bandykite rankiniu būdu kompiliuotipdf.js
.
PDF Reader: sėkmė! Lyg ir.
Taigi, pagaliau bandiau PDF skaitytuvas . Šis modulis pateikia naują valdiklį rodytiFailas
laukas. Jūs įtraukiate failo lauką į norimą turinio tipą ir nustatote valdiklio tipąPDF skaitytuvas
. Tada sukuriate šio tipo mazgą ir įkeliate savo PDF. PDF formatas yra įterptas į "dėžutę" puslapyje.
Galite išbandyti kitas parinktis, dar kartą redaguodami turinio tipą ir pakeisdami lauko rodymo parametrus.
Radau, kad kiekvienai rodymo parinkčiai buvo privalumų ir trūkumų:
- TheGoogle dokumentai skaitytojas puikiai dirbo kaip įterptas, bet kai spustelėjau jį visą ekraną, aš atsidūriau "Google" dokumentų puslapyje, kuris atsiprašė, kad viršyta mano riba. Oi! Galbūt tai būtų patikimesnė, jei aš užsikabinęs modulį prie mokamos "Google Apps" paskyros, bet nesidžiaugiau išsiaiškinti, nes buvau įsitikinęs, kad mano klientas nepatinka ekrano.
- Thepdf.js pasirinkimas puikiai dirbo … "Firefox" ir "Chrome". Tačiau kai aš suaktyvinau "Internet Explorer", langelis pasirodė tuščias. Matyt, tai yra problema
pdf.js
save, o ne PDF skaitytuvas modulis. Manau, kad turėjau tai tikėtis, atsižvelgiant į taipdf.js
yra sukurta "Mozilla", o "Internet Explorer" yra … pati. Vis dėlto buvau nusivylęs tuo, kad neketinau to patvirtintipdf.js
patikimai veikė visų pirma naršyklėse. - Theįdėti pasirinkimas buvo patikimiausias. Tai iš tikrųjų prasidėjo "Adobe Reader" dėžutėje tinklalapyje. Mano "Firefox" vis tiek norėjo paleisti
pdf.js
, bet manau, kad tai buvo naršyklės nustatymas. Bet kuriuo atveju, jei lankytojas turėjo arba "Firefox", arba PDF peržiūros priemonę kaip "Adobe Reader", rodomas PDF.
Taigi, galų gale, mano sprendimas buvo naudoti PDF skaitytuvas suĮterpti rodymo parinktis. Ši parinktis leistų pridėti PDF prie Drupal mazgo ir patikimai rodyti jį Drupal tinklalapyje.
Deja, kartais "patikima" nepakanka. Po to, kai ieškojau, turėjau apsvarstyti trečiosios šalies tarnybą.