Наскоро клиент ме помоли да добавите нова функция към сайта на Drupal на компанията: показване на PDF файлове в браузъра. Докато разглеждах опциите на drupal.org, разбрах, че това е перфектен шанс да документирам моя действителен процес на вземане на решения, тъй като избрах нов модул. Винаги казвам да избирам модулите разумно, но сега можете да видите как мисля, че това работи в реалния живот.
Определете какво искате
Първата стъпка е да определите какво искате. В моя случай исках:
- Способността да разглеждате PDF файлове в уеб браузър, подобен на този пример. Клиентът ще качи PDF файлове на фирмения бюлетин и посетителите ще могат лесно да ги четат.
- Сайтът е Drupal 7, така че модулът ще трябва да съответства на тази основна версия. (Drupal 7 вече е за известно време, така че ако разработчикът на модули все още не е излязъл с Drupal 7 версия, вероятно няма.)
- Въпреки че клиентът не уточни това, аз също исках да не се разчита на услуга на трета страна. За видеоклипове, аз съм щастлив да публикувате съдържанието в YouTube или Vimeo и след това да го вградите на сайт на Drupal, но за PDF файлове, аз не мисля, че възможната допълнителна експозиция ще надделее над потенциалните неприятности, счупвания и разходи. Въпреки това бях отворена за трета страна, ако това беше единствената възможност.
- Въпреки желанието си да избегна услугата на трета страна, знаех, че изборът ми вероятно ще изисква Javascript от трета страна библиотека , Въпреки че това би добавило допълнителна стъпка към бъдещи подобрения, по принцип се чувствам по-добре да пускам собствено копие на библиотека, вместо да разчитам на услуга на трети страни.
- Исках да поддържа модула възможно най-лек и специфичен. Не исках да се занимавам с някакъв радикално нов начин на обработка или организиране на медийни файлове. Исках нещо повече като Colorbox, което увеличава изображенията за по-добро гледане, но остава напълно независима от начина, по който решавате да управлявате файловете с изображения. Имах учудване, че тази библиотека ще бъде pdf.js, но бях отворена към други възможности.
- Както обикновено, исках да следвам общите насоки за избора на модул на Drupal. По принцип изберете модул, който вече е бил използван от няколко хиляди души (ако е възможно) за известно време, с минимални зависимости, който изглежда се поддържа от активен предприемач, който планира да продължи да подкрепя проекта в бъдеще и не " т изисква лицензионна такса.
Търсене в Drupal.org
С оглед на тези цели, следващата стъпка беше просто търсене на Drupal.org. Време е да влезете в топлото ядро на модула Доброта.
Страница "Сравнение" за PDF модули
Първата ми спирка беше (или трябваше да е) тази страница: Сравнение на PDF модулите за преглед. Drupal.org има отлична традиция в страниците за документация, които очертават плюсовете и минусите на различните модули в едно и също пространство. Има централен списък със страници за сравнение, но те също се поръсват по целия сайт.
Страницата за сравнение PDF включваше четири PDF модула за преглед. Ще ги покрия тук, както и няколко други, които намерих от търсене. Ще започна с кандидатите, които реших да пропусна.
Сега нека разгледаме подробностите за това, защо тези модули са работили (или най-вече не са) за този проект.
Файлов преглед
File Viewer използва Internet Archive BookReader, който ме заинтригува, защото съм интернет боксьор. Всеки път, когато отивам там, чувствам се дръзко от страх и се сривам в планините на книги, които мога да изтръгна от етера.
Това казано, демонстрационният сайт изглеждаше малко грозен за мен. Бих могъл да живея с нея, но се съмнявах, че клиентът ми ще когаpdf.js
изглежда много по-стилно.
Също така, при втория поглед на страницата на проекта, видях голямото смело съобщение на върха:Този модул е формално преместен в PDF модул, Достатъчно честно. С по-малко от 400 инсталирания, сливането с по-популярния PDF модул (което ще покрием в един миг), изглежда като добър ход. Никога не изтегляйте модул, който е обединен / преместен / изоставен.
Форматор на файловете на Google Viewer
Форматорът на файловете на Google Viewer е онова, което звучи: начин да използвате Google Документи, за да вградите показването на файлове във вашата уеб страница. Макар да ми харесаше гъвкавостта на Google Документи, една от моите цели бе да остана независима от всяка трета страна.
Също така този модул имаше по-малко от 100 инсталирания.
Документ за преглед на документи на
Въпреки че "AJAX" е общ Javascript термин, Ajax Document Viewer се оказа, че разчита на конкретна услуга на трети страни. Само около 100 инсталирания. Преместване на…
Scald PDF
Scald PDF имаше само 40 инсталации, но трябваше да погледна, тъй като беше ясно част от по-голям проект, наречен (да) Scald. Както обяснява страницата на проекта Scald: " Scald е новаторски подход към това как да се справятеМедийни атоми в Drupal. "
Тази присъда повдигна два огромни червени знамена: "новаторски" и думата "Медия", съчетана с "Atom". "Атом" очевидно е повторена дума за "нещо", което я прави червено знаме само по себе си. Drupal има склонност към тези думи с празни кутии: възел , единица , особеност … Колкото по-общата е думата, толкова по-широко могат да се променят промените.
Докато скролирах, подозренията ми бяха потвърдени. Четох развълнувани твърдения за това как Скард ще основно преоткрие как се справих с медиите на моя сайт.
Сега истината е, че манипулацията на Drupal Media може да използва известно преоткриване. Scald не е единственият амбициозен проект в това пространство.Въпреки това, с по-малко от 1000 инсталирания досега, не исках да вляза в приземния етаж.
Разбира се, до този момент следващата година, Салдлд може да бъде следващите изгледи. Това щеше да се появи. Но може да е и abandonware, с (малка) следа от счупени обекти, оставени да плачат.
Засега исках да се придържам към много по-малко амбициозно и опасно решение. Просто показване на PDF файлове, моля. Това е всичко, което исках.
Shadowbox
Shadowbox ме изненада: твърди, че е едно решение за показване на всички видове медии - от PDF файлове до изображения до видео. Това не беше толкова широко, колкото Скалд, тъй като само щеше да се съсредоточи върху него показване медии, без да въвеждат цели нови понятия като "медийни атоми". Но вече харесвам Colorbox, както споменах. Не исках да преосмислям това решение.
Обаче направих бележка (с вътрешен стон), която свърши16,000 инсталира, Shadowbox може да бъде по-мощна алтернатива в едно и също пространство. аз имах да погледнем.
Модулът Shadowbox Drupal е основно мост към Javascript библиотека, Shadowbox.js, така че проверих сайта на библиотеката. Там открих две причини да продължа:
- Библиотеката изисква лицензионна такса за търговска употреба. Таксата беше достатъчно разумна, но се опитвам да избегна софтуер с отворен код, който не е безплатен.
- Внимателното търсене на често задаваните въпроси показа, че противно на описанието на страницата на модула на Drupal, PDF файловете са не 100% поддържана от библиотеката Shadowbox. Ами сега. Добро нещо, което проверих.
Двамата претенденти: "PDF" и "PDF четец"
След като отстраних останалата част, сега стигнах до двамата очевидни претенденти: PDF и PDF Reader
Тези два проекта имат ключови прилики:
- И двете имат почти 3000 инсталирания, много повече от алтернативите (освен Shadowbox).
- И двете използват същата външна Javascript библиотека,
pdf.js
.
Ами разликите?
PDF четец също имаше опция за интегриране в Google Документи. В този конкретен случай мислех, че моят клиент може да хареса това, така че ми хареса да имам възможността.
В същото време, PDF бе отбелязан катоТърсене на съпредседател (и)
, Това може да е знак, че разработчикът скоро ще се откаже от проекта, но от друга страна, най-скорошната ангажираност беше преди седмица, така че поне разработчикът все още беше активен.
От друга страна, PDF четец бе отбелязан катоАктивно поддържана
, но най-скорошните ангажименти бяха преди година.
Без ясен победител реших да ги изпробвам и двете.
Тестване на претендентите
Тествах двата модула на копие на моя сайт на живо. (Независимо колко солиден и безвреден се появява модулът, никога не го изпробвайте първо на живо сайт. Може да счупите целия си сайт.)
Бях предубеден към PDF четец , защото изглежда имаше повече възможности (като Google Документи), отколкото PDF , Така че реших да опитам PDF първо, да го измъкнем от пътя.
Неуспешно PDF: Необходима ли е компилация?
Въпреки това, когато инсталирах PDF и прочететеREADME.txt
, Открих проблем, който бях виждал, но не обърнах внимание на страницата на проекта. По някаква причина изглежда, че този модул изисква да се компилиратеpdf.js
ръчно. Въпреки че в страницата на проекта се предполагаше, че това не е задължително,README.txt
предположи, че е така.
От PDF четец би използвала същата библиотека, без да изисква тази стъпка, реших първо да опитам. Ако това не се случи, винаги може да се върна PDF и се опитайте да компилирате ръчноpdf.js
.
PDF четец: Успех! Нещо като.
И така, най-после се опитах PDF четец , Този модул предоставя ново приспособление за показване на aдосие
област. Добавяте поле на файл към желания Ви тип съдържание и зададете типа приспособление къмPDF четец
, След това създавате възел от този тип и качвате своя PDF файл. PDF файлът е вграден в "кутия" на страницата.
Можете да изпробвате различни опции за показване, като редактирате отново типа съдържание и промените настройките на дисплея за полето.
Открих, че всяка опция за показване имаше плюсове и минуси:
- Най-Гугъл документи читателят работи добре като вградено устройство, но когато го натиснах, за да отида на цял екран, завърших на страница в Google Документи, която се извини, че лимитът ми за лихвен процент е надхвърлен. Ами сега. Може би това би било по-надеждно, ако закачах модула към платена Google Apps сметка, но не си направих труда да го разбера, тъй като бях сигурен, че моят клиент няма да хареса дисплея.
- Най-pdf.js опцията работи чудесно … в Firefox и Chrome. Но когато изстрелях Internet Explorer, кутията изглеждаше празна. Очевидно е, че това е проблем
pdf.js
самият, а не PDF четец модул. Предполагам, че трябваше да очаквам това, предвид товаpdf.js
е разработен от Mozilla и Internet Explorer е … сам. Все пак бях разочарован, че не мислех да го потвърдяpdf.js
работеше надеждно във всички браузъри на първо място. - Най-закрепвам опцията е най-надеждната. Това всъщност вървеше Adobe Reader в кутия на уеб страницата. Моят Firefox все още предпочита да работи
pdf.js
, но мисля, че това е настройка на браузъра. Така или иначе, стига посетителят да има Firefox или PDF преглед като Adobe Reader, PDF файлът ще се покаже.
Така, накрая, моето решение беше да използвам PDF четец сзакрепвам опция за показване. Тази опция ще ми позволи да прикача PDF файл към Drupal възел и надеждно да го покажа на уеб страница на Drupal.
За съжаление, понякога "надежден" не е достатъчен. След всичко това търсене, трябваше да помисля за трета страна, в края на краищата.