Un estudi de cas en l'art de la selecció de mòduls
Recentment, un client em va demanar que afegís una nova característica al lloc web de Drupal de la companyia: mostra els fitxers PDF al navegador. A mesura que vaig explorar les opcions de drupal.org, em vaig adonar que aquesta era una oportunitat perfecta per documentar el meu procés de presa de decisions real mentre triés un nou mòdul . Sempre dic que trieu els mòduls amb prudència , però ara podeu veure com crec que això funciona a la vida real.
Definiu el que vulgueu
El primer pas és definir el que vols. En el meu cas, jo volia:
- La possibilitat de visualitzar fitxers PDF en un navegador web, similar a aquest exemple. El client carregarà fitxers PDF del butlletí informatiu de la companyia, i els visitants podrien llegir-los amb facilitat.
- El lloc és Drupal 7 , de manera que el mòdul hauria de coincidir amb la versió principal . (Drupal 7 ha sortit per un temps ara, així que si un desenvolupador de mòduls encara no ha sortit amb una versió de Drupal 7, probablement no ho faran).
- Encara que el client no va especificar això, també volia evitar confiar en un servei de tercers. Pel que fa als vídeos, m'agrada publicar el contingut a YouTube o a Vimeo i després inserir-lo en un lloc de Drupal, però per a fitxers PDF, no vaig pensar que la possible exposició addicional superaria les possibles molèsties, trencaments i despeses. No obstant això, estava obert a un servei de tercers si fos l'única opció.
- Malgrat el meu desig d'evitar un servei de tercers, sabia que la meva elecció probablement requeriria una biblioteca Javascript de tercers. Encara que això afegeixi un pas addicional a les actualitzacions futures, en general em sento millor sobre executar la meva pròpia còpia d'una biblioteca en lloc de confiar en un servei de tercers.
- Volia mantenir el mòdul com més lleuger i específic possible. No volia involucrar-me amb una forma radicalment nova de manejar o organitzar fitxers multimèdia. Volia una cosa més com Colorbox, que augmenta les imatges per a una millor visualització, però segueix sent totalment independent de com trieu gestionar els fitxers d'imatge. Vaig tenir una idea que aquesta biblioteca seria pdf.js, però jo estava obert a altres possibilitats.
- Com és habitual, he volgut seguir les directrius generals per triar un mòdul de Drupal. Bàsicament, seleccioneu un mòdul que ja ha estat utilitzat per uns quants milers de persones (si és possible) per un temps, amb un mínim de dependències, que sembla que un desenvolupador actiu mantingui un projecte que no vulgui seguir donant suport al projecte, No necessiteu una tarifa de llicència.
Cerca a Drupal.org
Amb aquests objectius en ment, el següent pas va ser una simple cerca a Drupal.org. Temps de saltar al Pit Ball de mòdul Goodness.
& # 34; Comparació & # 34; Pàgina per als mòduls PDF
La meva primera parada va ser (o hauria d'haver estat), aquesta pàgina: una comparació de mòduls de visualització de PDF. Drupal.org té una excel·lent tradició de pàgines de documentació que recullen els pros i els contres de diversos mòduls en el mateix espai. Hi ha una llista central de pàgines de comparació, però també estan esquitxades per tot el lloc.
La pàgina de comparació de PDF inclou quatre mòduls de visualització de PDF. Els vaig a cobrir aquí, així com un parell d'altres que he trobat de la cerca. Vaig a començar amb els candidats que vaig decidir saltar.
Anem a aprofundir en les particularitats de per què aquests mòduls (o en la seva majoria no) van funcionar per a aquest projecte.
Visor de fitxers
El visualitzador de fitxers utilitza Internet Archive BookReader, que m'interessava perquè sóc un addicte a Internet Archive. Cada vegada que visito, em sento amb por i emborronat a les muntanyes dels llibres que puc treure de l'èter.
Dit això, el lloc de demostració em semblava una mica lletja. Podria viure amb ell, però dubtava del meu client, quan pdf.js es veu molt més elegant.
A més, en un segon cop d'ull a la pàgina del projecte, he vist el gran anunci atrevit a la part superior: aquest mòdul s'ha traslladat a un mòdul PDF formalment . Bastant just. Amb menys de 400 instal·lacions, la fusió amb el mòdul PDF més popular (que anem a cobrir en un moment), sembla un bon moviment. No descarregueu mai un mòdul que s'hagi combinat / mogut / abandonat.
Format de fitxers de Google Viewer
Format de fitxer de Google Viewer és el que sembla: una forma d'utilitzar Google Docs per incrustar les pantalles de fitxers a la vostra pàgina web. Encara que m'ha agradat la versatilitat de Google Docs, un dels meus objectius era mantenir-se independent de qualsevol servei de tercers.
A més, aquest mòdul tenia menys de 100 instal·lacions.
Visor de documents Ajax
Encara que "AJAX" és un terme general de Javascript, el visualitzador de documents Ajax va resultar dependre d'un servei de tercers específic. Només unes 100 instal·lacions. Passant ...
Scald PDF
Scald PDF només tenia 40 instal·lacions, però heu de fer un cop d'ull, ja que era clarament part d'un projecte més gran anomenat (sí) Scald. Com va explicar la pàgina del projecte Scald: " Scald és una solució innovadora sobre com manejar els àtoms de mitjans a Drupal".
Aquesta oració va aixecar dues banderes vermelles enormes: "prendre innovadors" i la paraula "Mitjans de comunicació" emparellats amb "Atom". "Atom" era, òbviament, una paraula reprogrupada per "cosa", que el va convertir en una bandera vermella per si sola. Drupal té una predisposició a aquestes paraules de caixa buida: node , entitat , característica ... Com més general sigui la paraula, més esbrinaran els canvis.
Mentre em desplaçava, les meves sospites van ser confirmades. Vaig llegir afirmacions emocionades sobre com Scald bàsicament reinventaria com manejava els mitjans al meu lloc.
Ara bé, la veritat és que el maneig dels mitjans de comunicació de Drupal podria fer-ho reinventant. Scald no és l'únic projecte ambiciós d'aquest espai. No obstant això, amb menys de 1000 instal·lacions fins ara, no volia entrar a la planta baixa.
És clar, en aquesta ocasió l'any que ve, Scald podria ser les pròximes Vistes . Això seria rock. Però també podria ser abandonware, amb un (petit) rastre de llocs trencats deixats de plorar.
De moment, volia seguir amb una solució molt menys ambiciosa i perillosa. Només has de mostrar PDF, si us plau. Això és tot el que em deia.
Shadowbox
Shadowbox em va sorprendre: va afirmar ser una solució única per mostrar tot tipus de mitjans, des de fitxers PDF a imatges al vídeo. Això no era tan arrollador com Scald, ja que només se centraria en mostrar mitjans sense introduir conceptes nous com "Atomos de mitjans". Però ja m'agrada Colorbox, com he esmentat. No volia haver de repensar aquesta decisió.
No obstant això, vaig fer notar (amb un gemec interior) que amb més de 16.000 instal·lacions, Shadowbox podria ser una alternativa més poderosa en el mateix espai. Vaig haver de fer un cop d'ull.
El mòdul Drupal de Shadowbox és bàsicament un pont d'una biblioteca Javascript, Shadowbox.js, així que he comprovat el lloc web de la biblioteca. Allà vaig descobrir dues raons per seguir:
- La biblioteca requereix una tarifa de llicència per a ús comercial. La tarifa era prou raonable, però intento evitar el programari de codi obert que no és gratuït .
- Una cerca acurada de les preguntes freqüents revela que, contràriament a la descripció de la pàgina del mòdul Drupal, els fitxers PDF no són compatibles amb el 100% per la biblioteca Shadowbox. Vaja Bona cosa que he comprovat.
The Two Contenders: & # 34; PDF & # 34; i & # 34; lector de PDF & # 34;
Després d'eliminar la resta, he arribat als dos contendents obvis: PDF i PDF Reader
Aquests dos projectes tenien similituds clau:
- Tots dos tenien prop de 3.000 instal·lacions, molt més que les alternatives (excepte Shadowbox).
- Tots dos utilitzaven la mateixa biblioteca Javascript externa, pdf.js.
Què passa amb les diferències?
El lector de PDF també tenia l'opció per a la integració de Google Docs. En aquest cas en particular, vaig pensar que el meu client li agradaria, així que m'ha agradat tenir l'opció.
Mentrestant, el PDF s'ha marcat com a Buscador de co-mantenidor (s). Això podria suposar que el desenvolupador aviat abandonaria el projecte, però, d'altra banda, el compromís més recent era fa una setmana, de manera que almenys el desenvolupador encara estava actiu.
D'altra banda, el lector de PDF s'ha marcat com a Manteniment actiu, però el compromís més recent va ser fa un any.
Sense un clar guanyador, vaig decidir provar ambdós.
Proves dels contendents
He provat els dos mòduls en una còpia del meu lloc en viu. (No importa el mòdul tan sòlid i innòcua que aparegui, mai no ho proveu primer en un lloc en viu. Podeu trencar tot el vostre lloc).
Estava predisposat a PDF Reader , perquè semblava tenir més opcions (com ara Google Docs) que PDF . Així que vaig decidir provar PDF primer, per treure'l del camí.
Error en PDF: es requereix la compilació?
Tanmateix, quan instal·lava PDF i llegia README.txt, vaig descobrir un problema que havia vist però ignorat a la pàgina del projecte. Per alguna raó, aquest mòdul sembla requerir que compileu pdf.js manualment. Encara que la pàgina del projecte suggereix que això no era necessàriament necessari, README.txt va suggerir que era.
Atès que el lector de PDF usaria la mateixa biblioteca sense requerir aquest pas, vaig decidir provar-la abans de res. Si no funcionés, sempre podria tornar a PDF i tractar de compilar manualment pdf.js.
Lector de PDF: Èxit! Tipus de.
Per tant, al final, he provat el lector de PDF . Aquest mòdul proporciona un nou widget per mostrar un camp Fitxer. Afegiu un camp de fitxer al tipus de contingut que desitgeu i configureu el tipus de widget al lector de fitxers PDF. A continuació, creeu un node d'aquest tipus i carregueu el vostre PDF. El PDF apareix incrustat en un "quadre" a la pàgina.
Podeu provar diferents opcions de visualització editant de nou el tipus de contingut i canviant la configuració de visualització del camp.
He trobat que cada opció de visualització tenia pros i contres:
- El lector de Google Docs funcionava bé com a integrador, però quan ho vaig fer clic per anar a la pantalla completa, em vaig instal·lar en una pàgina de Google Docs que es va disculpar pel fet que s'havia superat el meu límit de tarifes. Vaja Potser això seria més fiable si he enganxat el mòdul a un compte de Google Apps pagador, però no em vaig molestar a esbrinar-ho, ja que estava bastant segur que el meu client no agradaria la pantalla.
- L'opció pdf.js va funcionar molt bé ... a Firefox i a Chrome. Però quan vaig disparar Internet Explorer, la caixa apareix buida. Pel que sembla, aquest és un problema amb el propi pdf.js, no el mòdul PDF Reader . Suposo que hauria d'haver esperat això, tenint en compte que pdf.js és desenvolupat per Mozilla i Internet Explorer és ... en si. Tot i això, em va decebre que no hagués pensat confirmar que, en primer lloc, pdf.js funcionés de forma fiable en tots els navegadors.
- L'opció d' inserció era la més fiable. Això va executar Adobe Reader en un quadre a la pàgina web. El meu Firefox encara preferia executar pdf.js, però crec que aquesta era una configuració del navegador. De qualsevol manera, sempre que un visitant tingués Firefox o un visor de PDF com Adobe Reader, el PDF es mostraria.
Així, al final, la meva solució era utilitzar el lector de PDF amb l'opció de visualització incrustat . Aquesta opció permetria adjuntar un PDF a un node de Drupal i mostrar-lo de manera fiable a la pàgina web de Drupal.
Malauradament, de vegades, "fiable" no és suficient. Després de tot això, he hagut de considerar un servei de tercers després de tot.