في الآونة الأخيرة ، طلب مني أحد العملاء إضافة ميزة جديدة إلى موقع دروبال الخاص بالشركة: عرض ملفات PDF في المتصفح. عندما كنت أتصفح الخيارات على drupal.org ، أدركت أن هذه كانت فرصة مثالية لتوثيق عملي الفعلي في عملية صنع القرار عندما اخترت وحدة نمطية جديدة. أنا دائما أقول لاختيار وحدات بحكمة ، ولكن الآن يمكنك أن ترى كيف أعتقد أن هذا يعمل في الحياة الحقيقية.
حدد ما تريد
الخطوة الأولى هي تحديد ما تريد. في حالتي ، أردت:
- القدرة على عرض ملفات PDF في متصفح الويب ، على غرار هذا المثال. سيقوم العميل بتحميل ملفات PDF من النشرة الإخبارية للشركة ، وسيكون الزوار قادرين على قراءتها بسهولة.
- الموقع هو دروبال 7 ، لذلك تحتاج الوحدة إلى مطابقة الإصدار الرئيسي. (لقد كان دروبال 7 منذ فترة حتى الآن ، لذلك إذا لم يخرج مطور برامج ما بنسخة 7 دروبال بعد ، فربما لن يفعل ذلك).
- على الرغم من أن العميل لم يحدد هذا ، إلا أنني أردت أيضًا تجنب الاعتماد على خدمة تابعة لجهة خارجية. بالنسبة إلى مقاطع الفيديو ، يسعدني نشر المحتوى على YouTube أو Vimeo ثم تضمينه في موقع Drupal ، ولكن بالنسبة إلى ملفات PDF ، لم أكن أعتقد أن التعرض الإضافي المحتمل قد يفوق احتمال حدوث مشكلات وكسر ونفقات. ومع ذلك ، كنت منفتحة على خدمة طرف ثالث إذا كان هو الخيار الوحيد.
- على الرغم من رغبتي في تجنب خدمة طرف ثالث ، كنت أعرف أن اختياري قد يتطلب جافا سكريبت جهة خارجية مكتبة . على الرغم من أن ذلك سيضيف خطوة إضافية على الترقيات المستقبلية ، إلا أنني أشعر بشكل عام بشكل أفضل حول تشغيل نسخة خاصة بي من مكتبة بدلاً من الاعتماد على خدمة طرف ثالث.
- كنت أرغب في الحفاظ على الوحدة خفيفة الوزن ومحددة قدر الإمكان. لم أكن أرغب في الانخراط في طريقة جديدة جذريًا للتعامل مع ملفات الوسائط أو تنظيمها. كنت أرغب في شيء أكثر مثل Colorbox ، الذي يكبر الصور لمشاهدة أفضل ، ولكن يبقى مستقلة تماما عن الطريقة التي تختارها لإدارة ملفات الصور. كان لدي حدس أن هذه المكتبة ستكون pdf.js ، لكني كنت منفتحة على الاحتمالات الأخرى.
- كالعادة ، أردت اتباع الإرشادات العامة لاختيار وحدة دروبال. باختصار ، اختر وحدة نمطية تم استخدامها بالفعل من قبل بضعة آلاف من الأشخاص (إن أمكن) لفترة قصيرة ، مع حد أدنى من التبعيات ، يبدو أنه يتم الحفاظ عليه بواسطة مطور نشط يخطط للاستمرار في دعم المشروع في المستقبل ولا يفعل ذلك. ر تتطلب رسوم الترخيص.
ابحث على Drupal.org
مع وضع هذه الأهداف في الاعتبار ، كانت الخطوة التالية عبارة عن بحث بسيط على Drupal.org. حان الوقت للقفز في حفرة الكرة من وحدة الخير.
صفحة "مقارنة" لوحدات PDF
كانت محطتي الأولى (أو كان يجب أن تكون) ، هذه الصفحة: مقارنة بين وحدات عارض PDF. يمتلك Drupal.org تقليدًا ممتازًا لصفحات التوثيق التي تحدد إيجابيات وسلبيات الوحدات المختلفة في نفس المكان. توجد قائمة مركزية لصفحات المقارنة ، ولكنها أيضًا يتم رشها في جميع أنحاء الموقع.
تضمنت صفحة مقارنة PDF أربع وحدات عارض PDF. سأغطيهم هنا ، بالإضافة إلى زوجين آخرين عثرت عليهما من البحث. سأبدأ مع المرشحين قررت تخطي.
الآن دعونا نتعمق في تفاصيل لماذا هذه الوحدات (أو في الغالب لم تكن) تعمل لهذا المشروع.
عارض الملفات
يستخدم عارض الملفات Internet BookReader ، الذي أثار اهتمامي لأنني مدمن على الإنترنت. في كل مرة أذهب فيها إلى هناك ، أشعر بدغد خوف وسحق في جبال الكتب التي يمكن أن أتقطها من الأثير.
ومع ذلك ، بدا موقع المظاهرة قبيحًا بالنسبة لي. قد أعيش معها ، لكني شككت في أن موكلي سوف يفعل ذلكpdf.js
يبدو أكثر أناقة بكثير.
أيضًا ، في نظرة ثانية على صفحة المشروع ، رأيت الإعلان الجريء الكبير في الأعلى:تم نقل هذه الوحدة إلى وحدة PDF رسميًا. عادل بما يكفي. مع أقل من 400 عملية تثبيت ، فإن الاندماج مع وحدة PDF الأكثر شيوعًا (والتي سنغطيها في لحظة) ، يبدو كحركة جيدة. لا تقم أبدًا بتنزيل وحدة تم دمجها / نقلها / تركها.
منسق ملفات Google Viewer
إن Google Former File Formatter هو ما يبدو: طريقة لاستخدام مستندات Google لتضمين عروض الملفات في صفحة الويب الخاصة بك. على الرغم من أنني أعجبت براعة محرّر مستندات Google ، فإن أحد أهدافي هو البقاء مستقلاً عن أي خدمة تابعة لجهة خارجية.
أيضا ، هذه الوحدة لديها أقل من 100 التثبيت.
أجاكس عارض الوثيقة
على الرغم من أن "AJAX" هو مصطلح عام لـ Javascript ، فإن Ajax Document Viewer تبين أنه يعتمد على خدمة معينة تابعة لجهة خارجية. فقط حوالي 100 تثبيت. يتحرك …
تحرق قوات الدفاع الشعبي
كان Scald PDF فقط 40 تثبيت ، ولكن كان لا بد من إلقاء نظرة ، حيث كان من الواضح جزء من مشروع أكبر يسمى (نعم) تحرق. كما أوضحت صفحة مشروع Scald: " Scald هو اتخاذ مبتكر حول كيفية التعامل معهاذرة وسائل الإعلام في دروبال ".
رفعت تلك الجملة اثنين من الأعلام الحمراء الضخمة: "اتخاذ مبتكرة" وكلمة "وسائل الإعلام" مقترنة "أتوم". من الواضح أن كلمة "أتوم" كانت عبارة عن كلمة "أغراض" ، والتي جعلت منها علامة حمراء في حد ذاتها. دروبال لديه ميل لهذه الكلمات الفارغة من المربع: العقدة , كيان , خاصية … كلما كانت الكلمة أكثر عمومية ، كلما كانت التغييرات أكبر.
أثناء التمرير لأسفل ، تأكدت شكوكي. قرأت مطالبات مثيرة عن كيف أن السكالد سيعيد اختراع طريقة تعامل الوسائط على موقعي.
الآن ، والحقيقة هي أن التعامل مع وسائل الإعلام دروبال يمكن استخدام بعض إعادة اختراع. Scald ليس المشروع الطموح الوحيد في هذا الفضاء.ومع ذلك ، مع أقل من 1000 تثبيت حتى الآن ، لم أكن أرغب في الدخول إلى الطابق الأرضي.
بالتأكيد ، بحلول هذا الوقت من العام المقبل ، قد يكون Scald وجهات النظر القادمة. من شأنه أن الصخرة. ولكنها قد تكون أيضا مهجورة ، مع وجود درب (صغير) من المواقع المكسورة التي تركت للبكاء.
في الوقت الحالي ، أردت أن ألتزم بحل أقل خطورة وطموح بكثير. فقط عرض ملفات PDF ، من فضلك. هذا كل ما كنت أسأل.
Shadowbox
فاجأني Shadowbox: فقد ادعى أنه حل واحد لعرض جميع أنواع الوسائط ، من ملفات PDF إلى الصور إلى الفيديو. هذا لم يكن كاسحة مثل Scald ، لأنها سوف تركز فقط على عرض وسائل الإعلام دون إدخال مفاهيم جديدة كاملة مثل "وسائل الإعلام ذرات". لكنني بالفعل أحب Colorbox ، كما ذكرت. لم أكن أرغب في إعادة التفكير في هذا القرار.
ومع ذلك ، لاحظت (مع تأوه الداخلية) أنه مع أكثر من ذلك16,000 التثبيت ، يمكن أن يكون Shadowbox بديلاً أكثر قوة في نفس المساحة. أنا كان لإلقاء نظرة.
إن وحدة Shadowbox Drupal هي في الأساس جسر إلى مكتبة Javascript ، Shadowbox.js ، لذا قمت بفحص موقع المكتبة. هناك ، اكتشفت سببين للانتقال إلى:
- تطلب المكتبة رسوم ترخيص للاستخدام التجاري. كانت الرسوم معقولة بما فيه الكفاية ، لكني أحاول تجنب البرامج مفتوحة المصدر غير المجانية.
- أظهر بحث دقيق في الأسئلة الشائعة أنه ، على عكس وصف صفحة وحدة دروبال ، فإن ملفات PDF هي ليس 100٪ مدعوم من مكتبة Shadowbox. وجه الفتاة. شيء جيد راجعت.
المتنافسان: "PDF" و "PDF Reader"
بعد أن أقصت البقية ، جئت الآن إلى المنافسين الواضحين: PDF و PDF Reader
كان لهذين المشروعين أوجه تشابه رئيسية:
- كان لكل منهما ما يقرب من 3000 تثبيت ، أكثر بكثير من البدائل (باستثناء Shadowbox).
- استخدم كلاهما نفس مكتبة جافا سكريبت الخارجية ،
pdf.js
.
ماذا عن الاختلافات؟
قوات الدفاع الشعبي القارئ كان لديه أيضًا خيار دمج مستندات Google. في هذه الحالة بالذات ، اعتقدت أن موكلي قد يعجبك ذلك ، لذا أحببت الخيار.
وفى الوقت نفسه، PDF تم وضع علامة عليهالبحث عن مشرف (ق)
. قد يكون ذلك علامة على أن المطور سيتخلى عن المشروع قريبًا ، ولكن من ناحية أخرى ، كان الالتزام الأخير هو قبل أسبوع ، لذلك على الأقل كان المطور لا يزال نشطًا.
من ناحية أخرى، قوات الدفاع الشعبي القارئ تم وضع علامة عليهحافظت بنشاط
، لكن الالتزام الأخير كان قبل عام.
بدون فائز واضح ، قررت اختبار كل منهما.
اختبار المتنافسين
اختبرت كلتا الوحدتين على نسخة من موقعي المباشر. (بغض النظر عن مدى وحدة نمطية وغير حميدة ، لا تحاول ذلك أولاً على موقع مباشر. يمكنك كسر موقعك بالكامل.)
كنت منحازة نحو قوات الدفاع الشعبي القارئ ، لأنه يبدو أن لديها المزيد من الخيارات (مثل محرر مستندات جوجل) من PDF . لذلك قررت أن أحاول PDF أولا ، لإبعاده عن الطريق.
فشل PDF: التجميع مطلوب؟
ومع ذلك ، عندما قمت بتثبيت PDF و أقرأREADME.TXT
اكتشفت مشكلة رأيتها لكن تم تجاهلها على صفحة المشروع. لسبب ما ، يبدو أن هذه الوحدة تتطلب منك تجميعهاpdf.js
يدويا. على الرغم من أن صفحة المشروع تشير إلى أن هذا لم يكن مطلوبًا بالضرورة ،README.TXT
اقترح أنه كان.
منذ قوات الدفاع الشعبي القارئ استخدام نفس المكتبة بالضبط دون الحاجة إلى هذه الخطوة ، فقد قررت تجربتها أولاً بعد كل شيء. إذا لم ينجح ، يمكنني دائمًا العودة إليه PDF ومحاولة تجميعها يدويًاpdf.js
.
قوات الدفاع الشعبي القارئ: النجاح! نوعا ما.
لذلك ، بعد طول انتظار ، حاولت قوات الدفاع الشعبي القارئ . توفر هذه الوحدة أداة جديدة لعرضملف
حقل. يمكنك إضافة حقل ملف إلى نوع المحتوى المطلوب وتعيين نوع عنصر واجهة المستخدمقوات الدفاع الشعبي القارئ
. بعد ذلك ، يمكنك إنشاء عقدة من هذا النوع وتحميل ملف PDF الخاص بك. يظهر ملف PDF مضمنًا في "مربع" في الصفحة.
يمكنك تجربة خيارات عرض مختلفة عن طريق تحرير نوع المحتوى مرة أخرى وتغيير إعدادات العرض للحقل.
لقد وجدت أن كل خيار من خيارات العرض كان له مزايا وعيوب:
- المستندات جوجل عمل القارئ جيدًا باعتباره مضمّنًا ، ولكن عندما نقرت عليه للانتقال إلى وضع ملء الشاشة ، انتهى بي الأمر على صفحة محرّر مستندات Google التي اعتذرت عن تجاوز حد سعري. وجه الفتاة. ربما يكون هذا أكثر موثوقية إذا قمت بتوصيل الوحدة إلى حساب مدفوع في Google Apps ، ولكن لم أكن أزعجني لمعرفة ذلك ، لأنني كنت على يقين من أن موكلي لن يعجبه.
- الpdf.js عملت الخيار بشكل رائع … على فايرفوكس و Chrome. ولكن عندما أطلقت Internet Explorer ، ظهر المربع فارغًا. على ما يبدو ، هذه مشكلة
pdf.js
نفسها ، وليس قوات الدفاع الشعبي القارئ وحدة. أفترض أنني كنت أتوقع هذا ، في ضوء ذلكpdf.js
تم تطويره بواسطة Mozilla و Internet Explorer … نفسه. ومع ذلك ، شعرت بخيبة أمل لأنني لم أفكر في تأكيد ذلكpdf.js
عملت بشكل موثوق عبر جميع المتصفحات في المقام الأول. - التضمين كان الخيار الأكثر موثوقية. هذا في الواقع ركض Adobe Reader في صندوق على صفحة الويب. ما زال فايرفوكس المفضل لي يعمل
pdf.js
، ولكن أعتقد أن هذا كان إعداد متصفح. في كلتا الحالتين ، طالما كان لدى أحد الزوار فايرفوكس أو عارض PDF مثل Adobe Reader ، فإن ملف PDF سيعرض.
وهكذا ، في النهاية ، كان الحل الخاص بي هو استخدام قوات الدفاع الشعبي القارئ مع التضمين خيار العرض. يتيح لي هذا الخيار إرفاق ملف PDF بعقدة دروبال ، وعرضه على صفحة الويب دروبال.
لسوء الحظ ، في بعض الأحيان "غير موثوق بها" لا يكفي. بعد كل هذا البحث ، كان علي أن أفكر في خدمة طرف ثالث بعد كل شيء.