معرض صور Masonry

:warning: هذه الميزة مدمجة الآن في نواة Discourse، انظر الإعلان بشأن شبكات الصور في Discourse.

تضيف هذه المكونة للقالب معرض صور متجاوبًا على شكل جدارية (masonry) مع إمكانية تخصيص ترتيب الصور.

العرض على سطح المكتب:

العرض على الجوال:

عند النقر على صورة، ستُفتح باستخدام عارض الإضاءة الافتراضي (lightbox viewer).

لإضافة المعرض، انقر على أيقونة الشبكة ثم أضف صورك. كما يعمل أيضًا عن طريق تحديد الصور المرفوعة أولًا ثم النقر على الأيقونة.


:thinking: → فماذا تقصد بـ “تخصيص الترتيب”؟

يمكن ترتيب الصور أفقيًا (من اليسار إلى اليمين) أو عموديًا. الترتيب الأفقي مثالي للصور من المجلات أو قصص الهزلية أو ما شابه. أيضًا، عند الضغط على “التالي” في وضع الإضاءة، ستظهر الصورة الصحيحة.

الصورتان أدناه توضحان الفرق. الصورة على اليمين تستخدم الترتيب الأفقي.

الترتيب الافتراضي هو أفقي، لكنه يمكن تغييره من الإعدادات. كما يمكن تغيير ترتيب معرض معين بإضافة vertical أو horizontal (يمكن استخدام v/h أيضًا) إلى السمة في المحرر هكذا: <div data-masonry-gallery="vertical">.


:face_with_monocle: → يبدو هذا المكون مشابهًا جدًا لمعرض صور Tiles الخاص بـ Joe (Tiles image gallery). هل هذا نسخة طبق الأصل أم ماذا؟

لقد استخدمت Tiles لفترة طويلة وأحببته كثيرًا. لذا نعم، يمكنك بالتأكيد القول إنه متأثر به بشدة :wink:. لكن هناك الكثير من الاختلافات، لذا قررت مشاركته. فيما يلي قائمة ببعض الاختلافات:

  • لا توجد تبعيات.
  • لا يوجد jQuery.
  • الترتيب الأفقي.
  • الصور الصغيرة لن تكسر التخطيط.
  • معاينة صحيحة أثناء التعديل.
  • إمكانية تحديد صفوف متعددة مع فواصل أسطر عند إضافة معرض.
  • استخدام دالة API decorateCookedElement بدلًا من decorateCooked.

التنويحات والتحسينات موضع ترحيب!

:information_source: ستظهر الصور الصغيرة في المعرض، لكن لن يتم إنشاء عرض إضاءة (lightbox). هذا هو السلوك الافتراضي لـ Discourse. ومع ذلك، يمكن تغيير ما يُعتبر صورة صغيرة عن طريق تعديل الإعدادات أقصى عرض للصورة وأقصى ارتفاع للصورة. القيم الافتراضية هي 690 بكسل و500 بكسل على التوالي.

:information_source: يستخدم هذا المكون إصدار API 0.8.42. إذا لم تقم بالتحديث منذ مايو 2020، فيجب عليك التحديث لاستخدامه.

41 إعجابًا

مكون رائع. لقد كنت أبحث عن بديل لمعرض صور “تيلز” منذ فترة!

ما هي آراؤك بشأن إضافة خيار المعرض التلقائي لتطبيقه على جميع الصور؟ بشكل أساسي، كلما وُجدت 3 صور أو أكثر دون أي عناصر أخرى بينها، يتم تمكين عرض المعرض الطوبالي تلقائيًا. (جرب “تيلز Image Gallery” شيئًا مشابهًا في فرع auto-tiles الخاص بها).

5 إعجابات

شكرًا لك!

نعم، لقد رأيت ذلك الفرع. إنها ميزة حقًا مثيرة للاهتمام. لا أعرف ما إذا كانت الطريقة التي تم بها تنفيذها في Tiles تعمل على هذا المكون، أو ما إذا كانت هناك حاجة إلى بعض الكود الآخر. لكن سأبحث فيها بالتأكيد!

3 إعجابات

إذا كان لديك Tiles مثبتة على موقعك وتريد التبديل إلى Masonry، فيجب عليك تغيير سمة divs المعرض إلى data-masonry-gallery في جميع منشورات المعرض القديمة لديك. وذلك إذا كنت ترغب في أن تظل منشورات معرضك القديمة تظهر بشكل صحيح، لكن لا ترغب في تثبيت المكونين معًا.

فكرت في مشاركة كيفية القيام بذلك، حيث قمت بالتبديل على موقعي الخاص. ربما يكون ذلك مفيدًا لشخص ما.

الطريقة الأكثر وضوحًا هي تحرير المنشورات يدويًا. وهذا يعمل طالما لم يكن لديك عدد كبير من المنشورات التي تحتاج إلى تغييرها، رغم أنه قد لا يزال مزعجًا العثور على كل منشور. لكن لا تقلق، استكشف البيانات لإنقاذك! قم بتشغيل SQL التالي وستحصل بالضبط على ما تحتاجه.

SELECT user_id, topic_id, post_number
FROM posts p
WHERE raw ~~ '%data-theme-tiles%'

إذا كان هناك عدد كبير جدًا لتعديله يدويًا، فيمكنك استخدام rake لاستبدال كل نص. للقيام بذلك، تحتاج إلى الدخول عبر SSH إلى خادمك وتشغيل:

cd /var/discourse
./launcher enter app
rake posts:remap["data-theme-tiles","data-masonry-gallery"]

يمكنك قراءة المزيد حول هذا الحل في هذا المنشور. يرجى ملاحظة التحذير من ذلك المنشور بخصوص أمر rake posts:remap:

من المرجح أيضًا وجود طرق أخرى للقيام بذلك. على سبيل المثال، إذا كنت ترغب في ذلك، فيمكنك تعديل كود المكونات بحيث يبحث عن السمتين معًا.

5 إعجابات

عمل ممتاز. شكرًا لك.

3 إعجابات

سيكون هذا رائعًا وأكثر ودية للمستخدم! هل توجد أي خطط لتحقيق ذلك؟

3 إعجابات

تلك الميزة شبه مكتملة. قمت بتعديل الكود من Tiles، ويحتاج فقط إلى إجراء المزيد من الاختبارات (مع سيناريوهات/تعديلات مختلفة للموقع). سأحاول إيجاد الوقت للقيام بذلك قريبًا، ولكن من المتوقع إضافتها خلال أسبوع. لو كان لدي وقت أكثر :slight_smile:.

5 إعجابات

رائع، شكرًا لك! نتطلع إلى ذلك :slight_smile:

إعجابَين (2)

شكرًا جزيلاً لك على إنشاء TC رائع. :smiling_face_with_three_hearts:

الآن يمكنني استبدال TC “Tiles Image Gallery” المُشكلة بالكامل. :tada: :confetti_ball: :confetti_ball: :confetti_ball:

@Heddson
فقط بدافع الفضول، هل تخطط لإنشاء TC مشابه لاستبدال " Slick Image Gallery" أيضًا؟ :kissing_heart:

يُشكّل TC “Slick Image Gallery” جميع المشاكل المشابهة لـ “Tiles Image Gallery”، مثل كسر الصور الصغيرة للتخطيط وعدم قدرة المعاينة على إبطاء المعرض بشكل صحيح، وما إلى ذلك.

3 إعجابات

ليس لدي أي خطط للقيام بذلك في الوقت الحالي. ربما لاحقًا إذا توفرت لديّ الوقت.. إذا كان الأمر يتعلق بإصلاح بسيط، فقد أقوم بإنشاء طلب سحب (pull request).

إعجاب واحد (1)

مرحبًا، كنت أتساءل ما إذا كان لديك وقت للعمل على «الوضع التلقائي»؟

لقد قمت بتحديث المكون مؤخرًا بإضافة ميزة المعرض التلقائي. بعد التحديث، يمكنك تفعيلها من الإعدادات.

يمكنك تحديد الفئات، بالإضافة إلى تعيين الحد الأدنى لعدد الصور المطلوبة (دون وجود أي عنصر آخر أو سطر فارغ بينها) لإنشاء معرض تلقائيًا.

4 إعجابات

رائع، سأجرب ذلك!

إعجاب واحد (1)

أخبرني إذا وجدت أي شيء غريب!

يعمل بسحر! :+1:

إعجاب واحد (1)

أردت فقط القول إن هذا يعمل بشكل مثالي مباشرة من الصندوق، لقد واجهت مشاكل مع المكونين الآخرين المذكورين، لذا هذا رائع. :partying_face:

إعجابَين (2)

هذا رائع!

لقد أضفت أيضًا سمة div المسماة grid (أو g) لتنسيق شبكي (على الرغم من اسم المكون :grinning_face_with_smiling_eyes:)، والتي تجعل كل صف بارتفاع ثابت (بناءً على ارتفاع أعلى صورة في الصف). قد يكون هذا مفيدًا إذا كانت لديك صور ذات ارتفاعات متقاربة.

@Heddson

نحن نختبر حاليًا الإصدار المستقر 2.8. ميزة auto enabled categories لا تعمل عند تحديد فئة معينة. لقد حاولنا إضافة معرف الفئة أو اسم الفئة المختصر للفئة. عندما تُترك ميزة auto enabled categories فارغة، فإنها تعمل.

هذا غريب. إنه يعمل على نسختي 2.9.0.beta1 وهي مطابقة تقريبًا لنسخة 2.8 المستقرة. يجب إضافة اسم الفئة. لكنني سأرى ما إذا كان بإمكاني العثور على أي شيء.

شكراً على المعلومات!

إعجابَين (2)

لا عليك، لقد نسيت تحديد مربع الاختيار :man_facepalming:

إعجابَين (2)