Esettanulmány a Modul Kiválasztásában
Nemrégiben egy ügyfél megkért, hogy adjam hozzá egy új funkciót a cég Drupal webhelyére: a PDF fájlok megjelenítését a böngészőben. Ahogy böngésztem a drupal.org opcióival, rájöttem, hogy ez egy tökéletes esély, hogy dokumentálom az aktuális döntéshozatali folyamatot, amikor új modult választottam. Mindig azt mondom, hogy a modulokat bölcsen választom , de most már láthatja, hogy ez hogyan működik a való életben.
Határozza meg, amit akar
Az első lépés az, amire szükséged van. Az én esetemben azt akartam:
- Képes megtekinteni a PDF fájlokat egy webböngészőben, hasonlóan ehhez a példához. Az ügyfél feltölti a vállalati hírlevél PDF-adatait, és a látogatók könnyebben olvashatják azokat.
- A webhely a Drupal 7 , így a modulnak meg kell felelnie a nagy verziónak . (A Drupal 7 egy ideje már nem működik, tehát ha egy modulfejlesztő még nem jött ki a Drupal 7 verziójával, valószínűleg nem.)
- Bár az ügyfél ezt nem pontosította, azt is el akarták kerülni, hogy harmadik féltől származó szolgáltatásra támaszkodhassak. A videókért örömmel töltsem fel a tartalmat a YouTube-ra vagy a Vimeo-ra, majd beillesztettem egy Drupal webhelyre, de a PDF-fájloknál nem hiszem, hogy a lehetséges további expozíció meghaladná a lehetséges problémákat, törést és költségeket. Mindazonáltal nyitott voltam egy harmadik féltől származó szolgáltatásra, ha ez volt az egyetlen lehetőség.
- Annak ellenére, hogy szeretnék elkerülni a harmadik féltől származó szolgáltatásokat, tudtam, hogy a választásom valószínűleg egy harmadik féltől származó Javascript könyvtárat igényel. Bár ez további lépést jelentene a jövőbeni fejlesztésekre, általában jobban érzem magam, mint egy könyvtár saját példányát, nem pedig egy harmadik féltől származó szolgáltatást.
- Szerettem volna tartani a modult a könnyű és a specifikus lehet. Nem akartam részt venni a médiafájlok kezelésének vagy szervezésének radikálisan új módjával. Szerettem volna valami jobban szeretni a Colorbox-ot, ami a képek jobb kinézetét növeli, de teljesen független attól, hogy hogyan kezeli a képfájlokat. Volt egy gyanúm, hogy ez a könyvtár pdf.js lenne, de nyitott voltam más lehetőségek iránt.
- Mint általában, szeretnék követni a Drupal modul kiválasztásának általános irányelveit. Alapvetően válasszon egy olyan modult, amelyet már néhány ezer ember használ (ha lehetséges) egy bizonyos ideig, legalább olyan függőséggel, amelyet úgy tűnik, hogy egy aktív fejlesztő fenntartja azt a szándékot, hogy továbbra is támogatja a projektet a jövőben, t igényel licencdíjat.
Keresés a Drupal.org-on
E célok szem előtt tartásával a következő lépés egyszerű keresés volt a Drupal.org-on. Ideje belépni a modul gödörébe.
& # 34; összehasonlítás & # 34; Oldal PDF modulokhoz
Az első leállításom (vagy kellett volna), ez az oldal: a PDF-megjelenítő modulok összehasonlítása. A Drupal.org kitűnő dokumentációs dokumentációkkal rendelkezik, amelyek a különböző modulok előnyeit és hátrányait vázolják fel. Az összehasonlító oldalak központi listája, de az egész webhelyen is megszórva.
A PDF összehasonlító oldal négy PDF megtekintő modulot tartalmazott. Itt fogom lefedni őket, csakúgy, mint egy pár másikat, akiket keresett. Elkezdtem a jelöltekkel, akiket úgy döntöttem, hogy kihagyom.
Most fedezzük fel azokat a sajátosságokat, amelyekért ezek a modulok (vagy többnyire nem) működtek ehhez a projekthez.
Fájlnéző
A File Viewer az Internet Archive BookReader programot használja, ami engem érdekel, mert internetes archívum vagyok. Minden alkalommal, amikor odamegyek, félelemtől csiklandozom és elborítom azokat a könyvek hegyeit, amelyeket az éterből ki tudok húzni.
Ennek ellenére a demonstrációs helyszín egy kicsit csúnya volt nekem. Lehet, hogy élni vele, de kételkedtem abban, hogy az ügyfelem, ha a pdf.js sokkal stílusosabbnak tűnik.
Ezenkívül a projektoldal második pillantásával a tetején látható nagy, merész bejelentést láttam: Ez a modul hivatalosan PDF formátumba került . Elfogadható. Kevesebb mint 400 telepítés esetén a népszerűbb PDF-modul (amelyről egy pillanatra fedjük le) egyesül, úgy tűnik, mintha jó lépés lenne. Soha ne töltsön le egy összeolvadt / áthelyezt / elhagyott modult.
Google Viewer fájlformázó
A Google Megtekintő Fájl Formázója az, ami így hangzik: a Google Dokumentumok használatának módja a weboldalon található fájlok beágyazására. Bár a Google Dokumentumok sokoldalúságát tetszett, az egyik célom független volt a harmadik féltől származó szolgáltatásoktól.
Emellett ez a modul kevesebb mint 100 telepítést tartalmazott.
Ajax dokumentum-megjelenítő
Bár az "AJAX" egy általános Javascript kifejezés, az Ajax Document Viewer egy harmadik féltől származó szolgáltatásra támaszkodott. Csak kb. 100 telepítés. Továbblépni...
Scald PDF
A Scald PDF-nek csak 40 telepítése volt, de meg kellett néznem, mivel egyértelműen része volt egy nagyobb projektnek (igen), a Scaldnek. Amint azt a Scald projekt oldalán kifejtették: "A Scald egy innovatív megoldás, hogyan kezeljük a Media Atomokat a Drupalban."
Ez a mondat két óriási piros zászlót emelt: az "innovatív" és az "Atom" párosított "Media" szó. Az "Atom" nyilvánvalóan egy "dolognak" nevezett reprodukált szó volt, amely önmagában vörös zászlót tett. Drupalnak van egyfajta elkötelezettje ezeknek az üres-dobozos szavaknak: csomópont , entitás , jellemző ... Az általánosabb a szó, annál nagyobb a változás.
Ahogy lefelé gördültem, a gyanúim megerősítést nyertek. Elolvastam izgatott követeléseimet arról, hogy a Scald alapvetően újra feltalálja, hogyan kezeltem a Médiát a webhelyemen.
Most az igazság az, hogy a Drupal Media kezelése valamilyen újjászületést igényelne. A Scald nem az egyetlen ambiciózus projekt ebben a térben. Azonban kevesebb mint 1000 installációval eddig nem akartam bejutni a földszinten.
Biztos, hogy a következő évre a Scald lehet a következő nézet . Ez rohanni fog. De lehet, hogy elhagyott, és egy kis (apró) nyomvonal törött oldalak maradt sírni.
Most egy sokkal kevésbé ambiciózus és veszélyes megoldást akartam tartani. Kérem csak a PDF-fájlok megjelenítését. Csak ezt kérdeztem.
shadowbox
Shadowbox meglepett: azt állította, hogy egyetlen megoldás mindenféle média megjelenítésére, a PDF-ből a képekre a videóra. Ez nem olyan söpört, mint a Scald, hiszen csak a média megjelenítésére koncentrálna anélkül, hogy teljesen új fogalmakat mutatott volna be, mint például a "Media Atomok". De már a Colorbox-ot is, mint említettem. Nem akartam átgondolni ezt a döntést.
Mindazonáltal megjegyeztem (belső buzogással), hogy több mint 16 000 telepítéssel a Shadowbox sokkal hatékonyabb alternatíva lehet ugyanabban a térben. Meg kellett néznem.
A Shadowbox Drupal modul lényegében egy híd a Javascript könyvtárhoz, a Shadowbox.js, ezért kipróbáltam a könyvtár honlapját. Ott találtam két okot, hogy továbblépjek:
- A könyvtár kereskedelmi felhasználásra szánt licencdíjat igényel. A díj eléggé indokolt volt, de megpróbálom elkerülni a nyílt forráskódú szoftvereket, amelyek nem szabadok .
- A GYIK gondos keresésével kiderült, hogy a Drupal modul oldalának leírásával ellentétben a Shadowbox könyvtár nem támogatja 100% -ban a PDF fájlokat. Hoppá. Jó dolog, amit ellenőriztem.
A két versenyző: & # 34; PDF & # 34; és & # 34; PDF-olvasó & # 34;
Miután megszüntettem a többieket, most a két nyilvánvaló versenyzőhöz jöttem: PDF és PDF Reader
Ez a két projekt kulcsfontosságú volt:
- Mindkettő közel 3000 telepítést kapott, sokkal többet, mint az alternatívák (kivéve a Shadowboxot).
- Mindkettő ugyanazt a külső Javascript könyvtárat használta, pdf.js.
Mi a helyzet a különbségekkel?
A PDF-olvasónak is volt lehetősége a Google Dokumentumok integrációjára. Ebben az esetben azt hittem, hogy az ügyfelem tetszik nekem, úgyhogy szerettem volna választani.
Eközben a PDF- t Keresőként társfenntartóként jelölték meg. Ez arra utalhat, hogy a fejlesztő hamarosan lemond a projektről, viszont a legutóbbi kötelezettségvállalás egy hete történt, így legalábbis a fejlesztő még mindig aktív volt.
Másrészről, a PDF-olvasó aktív állapotként lett megjelölve, de a legutóbbi kötelezettségvállalás egy évvel korábban történt.
Világos győztes nélkül úgy döntöttem, hogy mindkettőt tesztelem.
A versenytársak tesztelése
Mindkét modult teszteltem az élő weboldalom másolatán. (Nem számít, mennyire szilárd és ártalmatlan egy modul, soha ne próbáld először egy élő webhelyen, mert megszakíthatja az egész webhelyet.)
A PDF Reader-hez képest elfogult, mert úgy tűnt, hogy több lehetősége van (mint például a Google Dokumentumok), mint a PDF . Ezért úgy döntöttem, hogy először kipróbálom a PDF-t , hogy kiveszem az útból.
PDF hiba: összeállítás szükséges?
Azonban, amikor PDF-t telepítettem, és elolvastam a README.txt fájlt , felfedeztem egy problémát, amelyet a projektoldalon észleltem, de figyelmen kívül hagytam. Valamilyen oknál fogva ez a modul úgy tűnik, hogy kéri a pdf.js kézi fordítását. Bár a projektoldal azt javasolta, hogy ez nem feltétlenül szükséges, a README.txt azt javasolta, hogy volt.
Mivel a PDF Reader pontosan ugyanazt a könyvtárat használná anélkül, hogy szükség lenne erre a lépésre, végülis úgy döntöttem, hogy kipróbálom. Ha ez nem működött, bármikor visszamegyek PDF formátumba, és megpróbálom manuálisan összeállítani a pdf.js fájlt .
PDF olvasó: siker! Fajta.
Szóval, végre megpróbáltam a PDF Reader-et . Ez a modul új eszközt biztosít egy fájl mező megjelenítéséhez. Fájlmezőt ad hozzá a kívánt tartalomtípushoz, és állítsa be a widget típusát PDF-olvasónak. Ezután hozzon létre egy ilyen csomópontot, és töltse fel PDF-dokumentumát. A PDF megjelenik egy "mezőben" beágyazva az oldalon.
Megpróbálhatja a különböző megjelenítési beállításokat a tartalomtípus ismételt szerkesztésével és a mező megjelenítési beállításainak módosításával.
Megállapítottam, hogy minden megjelenítési lehetőségnek vannak előnyei és hátrányai:
- A Google Dokumentumok olvasója jól működött beágyazásként, de amikor rákattintottam a teljes képernyős megjelenítésre, felkerestem a Google Dokumentumok oldalát, amely bocsánatot kért tőle, hogy túlléptem az átalánykorlátomat. Hoppá. Talán ez megbízhatóbb lenne, ha bekapcsoltam a modulot egy fizetős Google Apps-fiókba, de nem törődtem vele, mert biztos voltam benne, hogy a kliensem nem tetszik a kijelzőnek.
- A pdf.js opció csodálatosan működött ... a Firefoxban és a Chrome-ban. De amikor felrobbantottam az Internet Explorert, a doboz üresen jelent meg. Nyilvánvalóan ez a probléma a pdf.js programmal, nem a PDF Reader modulral. Gondolom, elvártam tőlem, mivel a pdf.js-t a Mozilla fejlesztette ki, és az Internet Explorer ... maga. Mégis csalódott voltam, hogy nem gondoltam, hogy megerősítem, hogy a pdf.js megbízhatóan működött minden böngészőben.
- A beágyazási lehetőség volt a legmegbízhatóbb. Ez valójában futott az Adobe Reader egy dobozban a weboldalon. A Firefox még mindig a pdf.js futtatását preferálta, de szerintem ez egy böngésző beállítása. Akárhogyan is, mindaddig, amíg egy látogató Firefox-ot vagy egy PDF nézőt, például az Adobe Reader-et használ, megjelenik a PDF.
Így a megoldás az volt, hogy a PDF Reader- t a beágyazott megjelenítési opcióval használta. Ezzel az opcióval csatolhatok egy PDF-t Drupal csomóponthoz, és megbízhatóan megjeleníthetem a Drupal weboldalán.
Sajnos, néha "megbízható" nem elég. Végül is ez a keresés, végül is egy harmadik féltől származó szolgáltatást kellett megfontolnom.