تحسين سهولة إعداد الشبكة التلقائية لأقل من 3 صور

الحد الأدنى القابل للتعديل لعدد الصور في شبكات الصور التلقائية

واجهتُ قيداً في ميزة شبكة الصور التلقائية.

في الوقت الحالي، يبدو أن سلوك الشبكة التلقائية يتحكم فيه إعداد الموقع الخاص بالصور ذات الشبكة التلقائية، لكن الحد الفعلي الذي يتم عنده إدراج [grid]...[/grid] في محرر النصوص لا يزال ثابتاً في كود الواجهة الأمامية.

تستخدم منطق محرر النصوص الحالي قيمة مُضمّنة برمجياً:

const MIN_IMAGES_TO_AUTO_GRID = 3;

لذلك،据 ما أستطيع قوله، فإن الخيارات المتاحة حالياً أمام المسؤولين هي:

ما يمكن للمسؤولين فعله الآن النتيجة
تفعيل الصور ذات الشبكة التلقائية يتم تلقائياً تغليف رفع ثلاث صور متتالية أو أكثر داخل [grid]...[/grid]
تعطيل الصور ذات الشبكة التلقائية لا يوجد تغليف تلقائي بالشبكة
تغيير الحد من 3 إلى رقم آخر غير متاح حالياً كإعداد للموقع

المشكلة هي أن الرقم 3 ليس بالضرورة هو الحد المناسب لكل مجتمع.

بعض المواقع تجد الشبكات التلقائية مفيدة، ولكن فقط عندما يقوم المستخدمون برفع دفعة أكبر من الصور. على سبيل المثال، قد يرغب المسؤول في أن تبدأ الشبكة التلقائية عند 5 أو 6 أو 10 أو قيمة أخرى، بدلاً من التفعيل بمجرد رفع 3 صور.

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

الاتجاه المقترح

أعتقد أنه يمكن تحسين ذلك بإضافة إعداد موقع قابل للتعديل للحد الأدنى لعدد الصور المتتالية المرفوعة قبل أن يقوم محرر النصوص بإدراج شبكة تلقائياً.

شيء مثل:

auto_grid_images_minimum_count

على سبيل المثال:

الإعداد قيمة مثال
enable_auto_grid_images true
auto_grid_images_minimum_count 5

ثم ستظل الشبكة التلقائية متاحة، ولكن لن يتم تفعيلها إلا عند الوصول إلى الحد المُعد مسبقاً.

هذا يحافظ على السلوك الحالي كافتراضي إذا كان الإعداد الجديد يُعيَّن افتراضياً على 3، بينما يمنح المسؤولين مزيداً من التحكم.

فرع تجريبي / بداية محتملة

لقد قمت بإنشاء فرع تجريبي صغير هنا في حال كان لدى أي شخص لديه المزيد من الخبرة في تطوير Discourse الوقت لتشعبه وتنظيفه أو مواصلة الفكرة:

فرع image-grid-num-setting

الفرع ليس مقصوداً كطلب سحب (PR) منقول بالكامل بعد. إنه أكثر من نقطة بداية تُظهر الاتجاه المقصود:

  • إضافة إعداد موقع جديد للحد الأدنى لعدد الصور في الشبكة التلقائية
  • كشف هذا الإعداد للعميل
  • استبدال التحقق من MIN_IMAGES_TO_AUTO_GRID = 3 المُضمّن في كود رفع محرر النصوص بالقيمة المُعدّة
  • تحديث نص إعداد المسؤول بحيث لا يفترض نص الشبكة التلقائية الحالي أن الحد هو دائماً 3
  • إضافة/تحديث مواصفات الواجهة الأمامية إذا لزم الأمر

نوع التغيير في الواجهة الأمامية الذي كنت أفكر فيه هو تقريباً:

const minImagesToAutoGrid = Number(
  this.siteSettings.auto_grid_images_minimum_count ?? 3
);

if (
  this.siteSettings.enable_auto_grid_images &&
  this.#consecutiveImages?.length >= minImagesToAutoGrid &&
  this.textManipulation
) {
  this.textManipulation.autoGridImages([...this.#consecutiveImages]);
  this.#consecutiveImages.length = 0;
}

هناك أيضاً مثال حديث لإعداد موقع من نوع enum على نمط Discourse في طلب السحب #36014:

طلب السحب #36014 - ميزة: إضافة إعداد calendar_upcoming_events_default_view

هذا الطلب مخصص لإضافة التقويم والأحداث بدلاً من شبكات الصور مباشرة، لذا لا أقترح أنه يؤثر على هذه الميزة. أذكره لأنه يبدو أنه يُظهر نمط تنفيذ مفيد لهذا النوع من إعدادات الموقع القابلة للتعديل: تعريف الإعداد، كشفه للعميل، ثم قراءته من الواجهة الأمامية عبر siteSettings.

روابط ذات صلة

النقاش الأصلي حول إيقاف الصور ذات الشبكة التلقائية:

إيقاف الصور ذات الشبكة التلقائية؟

إعلان شبكات الصور التلقائية:

تطبيق الشبكات تلقائياً على رفع الصور

مثال لطلب سحب يُظهر بنية إعداد الموقع:

طلب السحب #36014 - ميزة: إضافة إعداد calendar_upcoming_events_default_view

فرعي التجريبي:

فرع image-grid-num-setting

إعجابَين (2)

هل يمكنك مشاركة المزيد عن تجربتك على وجه التحديد؟

ما هي الإعدادات التي ستستخدمها ولماذا؟

شكراً - نعم.

لموقعي، سأقوم على الأرجح بضبط الحد الأدنى على 5 صور.

السبب هو أن العديد من المنشورات يمكن أن تحتوي بشكل طبيعي على 3 صور دون أن تكون فعلياً “معرضاً” للصور. على سبيل المثال، قد يقوم المستخدم برفع:

  • لقطة شاشة لمشكلة ما
  • لقطة شاشة ثانية تظهر الإعداد أو الخطأ ذي الصلة
  • صورة ثالثة تظهر النتيجة أو المقارنة

في هذه الحالة، ينطبق العرض الشبكي التلقائي على الصور المتتالية ويساعد في منع التشتت البصري.

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

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

لذا، لا أريد تعطيل العرض الشبكي التلقائي بالكامل. فأنا أعجب بهذه الميزة في بعض الحالات. المشكلة هي فقط أن الحد الثابت الحالي البالغ 3 صور يعتبر عدوانياً بعض الشيء للمجتمعات التي تستخدم فيها مجموعات صغيرة من الصور غالباً كجزء من الشرح.

لهذا السبب أعتقد أن إعداد موقع مثل auto_grid_images_minimum_count سيكون مفيداً. يمكن للمواقع التي تفضل السلوك الحالي تركه عند 3، بينما يمكن لمواقع مثل موقعي رفعه إلى 5، أو 2، أو أي قيمة أخرى.

إعجابَين (2)

في حالتك الخاصة، ماذا لو:

  • استخدمت الشبكة التلقائية تخطيط "الكراسي الدوارة

نعم، أعتقد أن هذا الفصل منطقي.

في حالتي، المشكلة الرئيسية ليست حقًا وجود الشبكات (grids). المشكلة هي أن الخوارزمية الحالية تتخذ قرارًا بشأن التنسيق مبكرًا جدًا، عند وجود ثلاث صور متتالية، ثم تعرض هذا القرار كوسم [grid]...[/grid] في المنشور.

أوافق على أن فصل مفهوم “هذه مجموعة من الصور” عن “يجب عرض هذه المجموعة كقائمة/شبكة/كاروسيل” سيكون نموذجًا أنظف على المدى الطويل.

شيء من هذا القبيل سيكون منطقيًا بالنسبة لي:

  • يتعرف المحرر (composer) على مجموعة صور أو ينشئها، أي التعرف في محرر النص الغني أو إنشاء في محرر Markdown.
  • تحتوي المجموعة على خيار تنسيق: قائمة، شبكة، أو كاروسيل - وهو معلمة للوسم bbcode.
  • يمكن للمستخدمين أو المشرفين تغيير هذا التنسيق بإجراء واحد، وهو ممكن عبر اللوحة الثانية في محرر Markdown.
  • لا يعتمد المنشور على فهم المستخدمين أو الحفاظ الدقيق على وسوم [grid]، وهو ما يجعل محرر النص الغني ذو اللوحة المفردة مفيدًا.

هذا قد يحل حالات أكثر من مجرد إضافة إعداد عتبة، لكنه لا يزال ميزة أوسع.

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

لذا، ربما هناك مستويان من التحسين:

  1. إعداد إداري أصغر للسلوك الحالي، مثل auto_grid_images_minimum_count، مع الحفاظ على القيمة الافتراضية الحالية البالغة 3.
  2. نموذج تنسيق مجموعة صور أكثر ثراءً لاحقًا، حيث يمكن تغيير القائمة/الشبكة/الكاروسيل بسهولة أكبر دون تعديل الوسوم يدويًا. ومع ذلك، أعتقد أن هذا ينتمي إلى موضوع طلب ميزة مختلف.

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

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

إذن، نعم، أعتقد أن الطريقة التي أفكر بها الآن هي القيام بما يلي:

  • عند رفع أكثر من صورة واحدة، قم بتغليفها بـ [grid]
    • عندما يكون العدد ≤3، اجعلها [grid mode=list] بشكل افتراضي
    • عندما يكون العدد >3 و ≤10، اجعلها [grid mode=grid] بشكل افتراضي
    • عندما يكون العدد >10 اجعلها [grid mode=carousel] بشكل افتراضي
  • في الوضع الغني والمعاينة، اجعل من السهل على المستخدم التبديل بين أوضاع list و grid و carousel

@chapoi و @renato، أود معرفة آرائكم في هذا الشأن.

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

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

أنا أكثر تأييداً للإعداد المقترح الأصلي، إن صح التعبير، بدلاً من محاولة التظاهر بالذكاء، لكن يجب علينا الانتظار حتى تحصل هذه الميزة على المزيد من الأصوات، أو حتى نسمع نفس الشكوى في مكان آخر، قبل اتخاذ أي إجراء.

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