Nedavno sam klijent zamolio da dodam novu značajku na Drupalovu web lokaciju tvrtke: prikažite PDF datoteke u pregledniku. Dok sam pregledavala opcije na drupal.org, shvatio sam da je to savršena prilika da dokumentram svoj stvarni proces donošenja odluka dok sam odabrao novi modul. Uvijek govorim mudro odabir modula, ali sada možete vidjeti kako mislim da ovo radi u stvarnom životu.
Odredite ono što želite
Prvi je korak definirati ono što želite. U mom slučaju želio sam:
- Sposobnost pregledavanja PDF datoteka u web pregledniku, slično ovom primjeru. Klijent bi prenio PDF datoteke newslettera tvrtke, a posjetitelji bi ih mogli lako čitati.
- Stranica je Drupal 7, pa će modul morati uskladiti s tom glavnom verzijom. (Drupal 7 je već neko vrijeme za sada, pa ako razvojni modul još nije izašao s verzijom Drupal 7, vjerojatno to neće.)
- Iako klijent to nije odredio, želio sam izbjeći oslanjanje na uslugu treće strane. Za videozapise rado ću objaviti sadržaj na usluzi YouTube ili Vimeo, a zatim ga ugraditi na Drupalovu web-lokaciju, ali za PDF-ove ne mislim da bi moguće dodatno izlaganje nadmašilo potencijalne poteškoće, lomove i troškove. Međutim, bio sam otvoren za uslugu treće strane ako je to bila jedina opcija.
- Unatoč želji da izbjegnem uslugu treće strane, znao sam da moj izbor vjerojatno zahtijeva Javascript treće strane knjižnica , Iako će to dodati dodatni korak na buduće nadogradnje, općenito se osjećam bolje od izvođenja vlastite kopije knjižnice, a ne oslanjam se na uslugu treće strane.
- Htjela sam zadržati modul kao što je moguće lagan i specifičan. Nisam se želio uključiti u neki radikalno novi način rukovanja ili organiziranja medijskih datoteka. Želio sam nešto više poput Colorboxa, koji povećava slike za bolji pregled, ali ostaje potpuno neovisan o načinu na koji upravljate slikovnim datotekama. Imala sam uvjerenje da će ova knjižnica biti pdf.js, ali bila sam otvorena za druge mogućnosti.
- Kao i obično, htio sam slijediti opće smjernice za odabir modula Drupal. U osnovi, odaberite modul koji već neko vrijeme koristi nekoliko tisuća ljudi (ako je to moguće), uz minimalne ovisnosti, a čini se da ih održava aktivni razvojni programer koji planira nastaviti podržavati projekt u budućnosti, t zahtijevaju naknadu za licenciranje.
Pretraži na Drupal.org
S tim ciljevima na umu, sljedeći je korak bio jednostavna pretraga na Drupal.org. Vrijeme je za skočiti u loptu.
"Usporedba" stranica za PDF module
Moja prva stanica bila je (ili je trebala biti), ova stranica: Usporedba modula preglednika PDF-ova. Drupal.org ima izvrsnu tradiciju dokumentacijskih stranica koje opisuju prednosti i nedostatke različitih modula u istom prostoru. Postoji središnji popis stranica za usporedbu, ali su i raspršeni po cijeloj web-lokaciji.
Stranica za usporedbu PDF-a obuhvaćala je četiri modula preglednika PDF-a. Ja ću ih pokriti ovdje, kao i nekoliko drugih koje sam našao iz pretraživanja. Počet ću s kandidatima koje sam odlučio preskočiti.
Sad ćemo uvesti u specifičnosti zašto su ti moduli (ili uglavnom ne) radili za ovaj projekt.
Preglednik datoteka
File Viewer koristi Internet Archive BookReader, koji me zainteresirao jer sam internetski arhivnik. Svaki put kad odem tamo, osjećam se glupost od straha i preplavljujem planinama knjiga koje mogu izvući iz etera.
To se, rekao je, demonstracijsko mjesto izgledalo je malo ružno za mene. Mogao bih živjeti s njom, ali sumnjam da bi moj klijent, kadapdf.js
izgleda tako mnogo više stilski.
Također, na drugom pogledu na stranicu projekta, vidio sam veliku podebljanu najavu na vrhu:Ovaj je modul formalno premješten u PDF modul, Pošteno. S manje od 400 instalacija, spajanje s popularnijim PDF modulom (što ćemo pokriti u trenu) čini se kao dobar potez. Nikada nemojte preuzeti modul koji je spojen / premješten / napušten.
Google Formati za prikaz preglednika
Oblikovanje datoteka Google Viewer je ono što zvuči kao: način upotrebe Google dokumenata za ugrađivanje prikaza datoteka na vašoj web stranici. Iako mi se svidjela svestranost Google dokumenata, jedan od mojih ciljeva bio je ostati neovisan o bilo kojoj usluzi treće strane.
Također, ovaj modul je imao manje od 100 instalacija.
Ajax Document Viewer
Iako je "AJAX" opći Javascript pojam, Ajax Document Viewer se ispostavilo da se oslanja na određenu uslugu treće strane. Samo oko 100 instalacija. Idemo dalje…
Scald PDF
Scald PDF je imao samo 40 instalacija, ali morao sam se pogledati, budući da je bio jasno dio većeg projekta pod nazivom (da) Scald. Kao što je na stranici projekta Scald objasnio: " Scald je inovativan pothvat o tome kako postupatiAtomi medija u Drupalu. "
Ta rečenica podigla je dvije ogromne crvene zastave: "inovativni uzeti" i riječ "Mediji" upareni s "Atom". "Atom" je očigledno riječ o "stvaru", koja je sama po sebi crvena zastava. Drupal ima naklonost ovim riječima praznih kutija: čvor , osoba , svojstvo … Što je općenitija riječ, to će više promjena biti.
Dok sam se pomicala dolje, moje sumnje su bile potvrđene. Čitao sam uzbuđene tvrdnje o tome kako će Scald u osnovi reinventirati kako sam obrađivao Media na mojoj web stranici.
Sada, istina je da se rukovanje Drupalovim medijima moglo upotrijebiti za reinventiranje. Scald nije jedini ambiciozan projekt u ovom prostoru.Međutim, s manje od 1000 instalacija do sada, nisam htio ulaziti u prizemlje.
Naravno, ovaj put sljedeće godine, Scald bi mogao biti sljedeći pogled. To bi stijenje. Ali, to bi također moglo biti odbačeno, s (malom) stazom prekinutih mjesta koja je ostala na plaču.
Za sada sam se htio zadržati s mnogo manje ambicioznim i opasnim rješenjima. Samo pogledajte PDF datoteke, molim vas. To je sve što sam tražio.
Shadowbox
Shadowbox me iznenadio: tvrdio je da je jedno rješenje za prikaz svih vrsta medija, od PDF-ova do slika do videozapisa. Ovo nije bilo brišljivo kao i Scald, jer bi se samo usredotočilo prikazivanje medija bez uvođenja novih koncepata kao što su "Atomi medija". Ali već mi se sviđa Colorbox, kao što sam spomenuo. Nisam htio ponovno razmotriti tu odluku.
Međutim, napomenuo sam (s unutarnjim uzdahom) da s više16,000 instalira, Shadowbox može biti moćna alternativa u istom prostoru. ja imala pogledati.
Modul Shadowbox Drupal u osnovi je most za biblioteku Javascript, Shadowbox.js, pa sam provjerio web stranicu knjižnice. Tamo sam otkrio dva razloga za nastavak:
- Knjižnica zahtijeva dozvolu za komercijalnu upotrebu. Naknada je dovoljno razumna, ali pokušavam izbjeći otvoreni izvorni softver koji nije besplatan.
- Pažljivo pretraživanje FAQ-a pokazalo je da, suprotno opisu na stranici modula Drupal, PDF-ovi su ne 100% podržava Shadowbox knjižnica. Ups. Dobra stvar koju sam provjerio.
Dvije konkurencije: "PDF" i "PDF Reader"
Nakon što sam eliminirao ostalo, došao sam do dva očita natjecatelja: PDF i PDF Reader
Ove dvije projekte imale su ključne sličnosti:
- Obje su imale gotovo 3.000 instalacija, daleko više od alternativa (osim Shadowboxa).
- Obje su koristile istu vanjsku Javascript knjižnicu,
pdf.js
.
Što je s razlikama?
PDF čitač imali su i mogućnost za integraciju Google dokumenata. U ovom konkretnom slučaju, mislio sam da bi moj klijent mogao voljeti, pa mi se svidjelo što ima mogućnost.
U međuvremenu, PDF označen je kaoTražite supriskitelj (e)
, To bi mogao biti znak da će razvojni programer uskoro napustiti projekt, no s druge strane, najnoviji počinak bio je prije tjedan dana pa je barem razvojni programer još uvijek bio aktivan.
S druge strane, PDF čitač označen je kaoAktivno održavana
, ali najnoviji počinio je prije godinu dana.
Bez jasnog pobjednika odlučio sam ih testirati oboje.
Testiranje natjecatelja
Oba modula testirala sam na kopiji moje web stranice. (Bez obzira na to koliko je čvrst i nevin modul prisutan, nikad ga ne pokušajte prvo na web-lokaciji uživo. Možete prekršiti cijelu web-lokaciju.)
Bio sam pristran prema PDF čitač , jer je izgledalo da ima više opcija (poput Google Dokumenata) od PDF , Zato sam odlučio pokušati PDF prvo, kako bi ga izbjegao.
PDF neuspjeh: potrebno je kompilaciju?
Međutim, kad sam instaliran PDF i čitatirEADME.TXT
, Otkrio sam problem koji sam vidio, ali zanemaren na stranici projekta. Iz nekog razloga čini se da ovaj modul zahtijeva da se sastavitepdf.js
ručno. Iako je projektna stranica predložila da to nije nužno potrebno,rEADME.TXT
predložio je.
Od PDF čitač koristio bi istu knjižnicu bez potrebe za ovim korakom, odlučio sam ga najprije probati. Ako to nije uspjelo, uvijek se mogu vratiti PDF i pokušajte ručno sastavitipdf.js
.
PDF čitač: uspjeh! Nekako.
Dakle, napokon sam pokušao PDF čitač , Ovaj modul pruža novi widget za prikazivanje aDatoteka
polje. Dodate polje datoteke željenoj vrsti sadržaja i postavite vrstu widgetaPDF čitač
, Zatim izradite čvor ove vrste i prenesite PDF. PDF se pojavljuje ugrađen u "okvir" na stranici.
Možete isprobati različite opcije prikaza ponovnim uređivanjem vrste sadržaja i promjenom postavki prikaza za polje.
Otkrio sam da svaka opcija zaslona ima prednosti i nedostatke:
- Google dokumenti Čitač je dobro funkcionirao kao položaj, ali kad sam ga kliknuo da bi se prikazao na cijelom zaslonu, uklonila sam se na stranici Google dokumenata koja se ispričala da je prekoračena moja ograničenja. Ups. Možda bi to bilo pouzdanije ako bih zakačio modul na plaćeni račun za Google Apps, ali nisam se trudio saznati jer sam bio prilično siguran da moj klijent ne bi volio prikaz.
- pdf.js opcija je izvrsno radila … na Firefoxu i Chromeu. Ali kad sam pokrenuo Internet Explorer, okvir se pojavio prazan. Očigledno je to problem
pdf.js
sama, ne PDF čitač modul. Pretpostavljam da bih to trebao, s obzirom na topdf.js
je razvijen od strane Mozilla i Internet Explorer je … sam. Ipak, bio sam razočaran što nisam mislio da to potvrdimpdf.js
pouzdano je radio na svim preglednicima na prvom mjestu. - ugraditi opcija je bila najpouzdaniji. To zapravo pokreće Adobe Reader u okviru na web stranici. Moj Firefox je i dalje želio pokrenuti
pdf.js
, ali mislim da je to bila postavka preglednika. U svakom slučaju, sve dok posjetitelj ima bilo Firefox ili PDF preglednik poput Adobe Readera, PDF će se prikazati.
Dakle, na kraju, moje rješenje je bilo koristiti PDF čitač sUgraditi opcija prikaza. Ova opcija omogućit će da priložem PDF u Drupal čvor i pouzdano ga prikazati na web stranici Drupala.
Nažalost, ponekad "pouzdano" nije dovoljno. Nakon svega ovoga traži, moram razmotriti uslugu treće strane nakon svega.