Studija slučaja u Art of Module Selection
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 biblioteku Javascript za treću stranu. 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.
& # 34, # 34 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 mogao, kada pdf.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 poticaj kako postupati s medijskim atomima 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 , entitet , značajka ... Što je općenitija riječ, to će biti sve brišući.
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 tako brišljivo kao Scald, jer bi se samo usredotočilo na prikazivanje medija bez uvođenja novih koncepata kao što su "medijski atomi". 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še od 16.000 instalacija Shadowbox može biti moćna alternativa u istom prostoru. Morao sam 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 ne podržavaju 100% biblioteku Shadowbox. Ups. Dobra stvar koju sam provjerio.
Dvije konkurencije: & quot; PDF & # 34; i & # 34; PDF čitač & # 34;
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).
- Obojica su koristili istu vanjsku Javascript knjižnicu, pdf.js.
Što je s razlikama?
PDF čitač je također imao mogućnost integracije 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 je označen kao Traženje su-održavatelja (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 kao aktivno održavan, no najnovija je počinjena 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 Readeru jer je izgledalo da ima više opcija (poput Google Dokumenata) od PDF-a . Zato sam odlučio najprije probati PDF , kako bih ga izbjegao.
PDF neuspjeh: potrebno je kompilaciju?
Međutim, kad sam instalirao PDF i pročitao README.txt, otkrio sam problem koji sam vidio, ali zanemaren na stranici projekta. Iz nekog razloga čini se da ovaj modul zahtijeva da ručno sastavite pdf.js. Iako je projektna stranica predložila da to nije nužno potrebno, README.txt predložio je da jest.
Budući da će PDF Reader upotrijebiti istu knjižnicu bez potrebe za ovim korakom, odlučio sam ga najprije probati. Ako to nije uspjelo, uvijek se mogu vratiti u PDF i pokušati ručno sastaviti pdf.js.
PDF čitač: uspjeh! Nekako.
Dakle, napokon sam pokušao PDF Reader . Ovaj modul pruža novi widget za prikazivanje polja File. Dodate polje datoteke željenoj vrsti sadržaja i postavite vrstu widgeta u PDF Reader. 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:
- Čitač Google dokumenata dobro je funkcionirao kao ugrađivanje, ali kada sam ga kliknuo da bi se prikazao na cijelom zaslonu, krenuo sam na stranicu Google dokumenata koji se ispričao 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.
- Opcija pdf.js radila je predivno ... na Firefoxu i Chromeu. Ali kad sam pokrenuo Internet Explorer, okvir se pojavio prazan. Očigledno, to je problem sa samim pdf.js, a ne s modulom PDF Reader . Pretpostavljam da bih to trebao očekivati, s obzirom da je pdf.js razvio Mozilla i Internet Explorer je ... sam. Ipak, bio sam razočaran što nisam mislio da potvrđujem da je pdf.js pouzdano radio na svim preglednicima na prvom mjestu.
- Opcija ugrađivanja bila je najpouzdaniji. To zapravo pokreće Adobe Reader u okviru na web stranici. Moj Firefox je ipak ž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 je rješenje bilo koristiti PDF Reader s opcijom Embed display option. 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.