ملصقات Discourse

قم بتثبيت مكوّن هذا الموضوع


Discourse Stickers v1.0

مرحبًا :wave:

باستخدام مكوّن هذا الموضوع، يمكنك إضافة ملصقات إلى المنشورات ورسائل الدردشة…

كيف يعمل؟

يضع زرًا في المُصيغ (Composer) يفتح نافذة الملصقات.

نافذة الملصقات

عند النقر على ملصق، سيتم إضافته إلى المُصيغ.
سيتم وضع كود Markdown للصورة داخل [wrap=sticker] img [/wrap] مما يعني أن صور الملصقات يمكن استهدافها بشكل منفصل عن الصور الأخرى.

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


كيفية الإعداد؟

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

مثال:
رفعت الصورة في منشور. أستخدم نسخة optimized من عنوان URL للصورة. يمكن العثور عليها هنا :arrow_down_small: لكن يمكنك استخدام أي عنوان URL للصورة.

عنوان URL لـ Markdown للرفع داخل القوسين :arrow_down_small:


الإعدادات

صور الملصقات
في إعداد صور الملصقات، يمكنك ضبط الملصقات…

العنوان: هذا هو عنوان الصورة والنص البديل. سيتم وضعه أيضًا في عنوان كود Markdown.

الإيموجي: سيتم وضعه في الزاوية العلوية اليمنى لكل ملصق في نافذة الملصقات.

previewUrl: هذه هي الصورة المعروضة في نافذة الملصقات.

markdownUrl: هذا هو عنوان Markdown للصورة المرفوعة سابقًا.



Discourse Stickers v2.0

مرحبًا :wave:

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

تقدم الإصدار 2.0 مدير ملصقات مصممًا بشكل جديد مع رفع صور أصلي، ومجموعات ملصقات، وإمكانية رؤية مبنية على الفئات، وتحكم محدد للدردشة.

كيف يعمل؟

يضيف المكوّن زرًا للملصقات في المُصيغ. بالنقر عليه تفتح منتقي الملصقات.

عند اختيار ملصق، يتم إدراجه مباشرة في المُصيغ.

بالنسبة للمنشورات والردود العادية، يتم تغليف الملصقات في:

[wrap=sticker]![عنوان الملصق|180x180](الصورة)[/wrap]

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

الملصقات المنشورة غير قابلة للنقر ولن تفتح صندوق Discourse الخفيف (lightbox).


منتقي الملصقات

يدعم منتقي الملصقات المجموعات عندما يكون لديك مجموعة كبيرة من الملصقات.

إذا تم تكوين مجموعات متعددة، يتم عرض شريط تصفية في أعلى المنتقي.

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

إذا لم تكن هناك ملصقات متاحة للسياق الحالي، يعرض المنتقي حالة فارغة.


كيفية الإعداد؟

تمت إعادة تصميم إعداد الملصقات بالكامل في الإصدار 2.0.

لم يعد من الضروري رفع الصور إلى موضوع أولاً أو نسخ عناوين URL للصور يدويًا.

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

إعدادات الملصق

يمكن الآن لكل ملصق أن يمتلك الخصائص التالية:

العنوان

اسم الملصق. يُستخدم كـ tooltip ونص بديل للملصق.

المجموعة

اختياري. استخدم المجموعات لتنظيم ملصقاتك وتصفيتها في المنتقي.

اتركه فارغًا لوضع الملصق تحت أخرى.

شارة الإيموجي

اختياري. يعرض إيموجي صغيرًا في زاوية الملصق.

يمكنك استخدام إيموجي حقيقي أو رمز اختصار Discourse مثل :heart: أو :smile:.

الصورة

صورة الملصق.

ارفع الصورة مباشرة باستخدام الإعداد. تُستخدم نفس الصورة لكل من المنتقي والملصق المنشور.

الفئات

اختياري. قيد الملصق على فئات محددة.

إذا تم اختيار فئات، لن يظهر الملصق إلا في مُصيغ المنشور/الرد العادي عندما يتم اختيار إحدى تلك الفئات.

اتركه فارغًا لجعل الملصق متاحًا في جميع الفئات.

لا يؤثر هذا الإعداد على الدردشة.

إخفاء من الرسائل المباشرة

عند التفعيل، لن يكون الملصق متاحًا في دردشات الرسائل الخاصة/المباشرة.

قنوات الدردشة

اختياري. قيد الملصق على قنوات دردشة عامة محددة.

أدخل معرفات القنوات مفصولة بفواصل.

على سبيل المثال، إذا كان عنوان URL للقناة هو:

/chat/c/channel-name/123

استخدم:

123

اتركه فارغًا لجعل الملصق متاحًا في جميع قنوات الدردشة العامة/الفئة.


الترقية من الإصدار v1.x

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

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

تحافظ الهجرة على:

  • عناوين الملصقات
  • شارات الإيموجي
  • صور الملصقات المرفوعة الموجودة مسبقًا

تُحل الصور المرفوعة الموجودة مسبقًا مرة أخرى إلى رفعات Discourse الأصلية وتُملأ في حقل الصورة الجديد.

لم تعد إعدادات previewUrl و markdownUrl القديمة مطلوبة.

ما عليك سوى تحديث المكوّن وسترى أن ملصقاتك الموجودة قد تم نقلها تلقائيًا.


17 إعجابًا

مرحباً دون :wave:
عمل رائع! ألقيت نظرة سريعة :slight_smile:
تعد إدارة الملصقات أمرًا شاقًا بعض الشيء - خاصةً جزء المعاينة - حيث لا يوجد تخطيط أو ميزة مخصصة للقيام بذلك (كما هو الحال مع الصور الرمزية والرموز التعبيرية المخصصة)، ولكني أتفهم أن الأمر سيتطلب المزيد من العمل.
تم تعطيل فلتر الظل عند توقف ملف GIF، ولا يظهر كخلفية مربعة على الصورة الوسطى هنا (ملف jpg مستطيل يؤدي إلى تشغيل نافذة منبثقة):
chrome_k71dGHbeLH
تأثير الفلتر رائع حقًا، ولكني سأضعه كإعداد اختياري :slight_smile:
يستخدم منتقي الملصقات محتوى مبرر مثل:

XXX
 X

لكن أعتقد أنني أفضل المحاذاة إلى اليمين:

XXX
X

رأي شخصي جدًا بالطبع :v:

5 إعجابات

شكراً على ملاحظاتك @Canapin :slight_smile:

لقد أضفت إعدادًا جديدًا لهذا…
Screenshot 2023-10-03 at 16.04.17

تم إنجاز هذا أيضًا… أفضل بكثير :slight_smile:

7 إعجابات

تحديث: https://github.com/VaperinaDEV/discourse-stickers/commit/b6c30eb3978fb74c85a95895feb7b2181fe7d

5 إعجابات

هل سيكون من الممكن الحد من ذلك لفئات معينة؟ (وبالمناسبة، هل سيكون هناك ملصقات مختلفة لكل فئة؟)

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

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

هل يمكنني أن أسأل ماذا علي أن أفعل لوضع الملصق في سطر النص، وليس في سطر جديد؟ (لقد قمت بعمل fork لهذا المستودع)

مرحباً :waving_hand:

نعم، عليك إزالة \n من بداية ونهاية هذا السطر.


مرحباً @mattdm :waving_hand: آسف على التأخير. نعم، أعتقد أنه من الممكن عرض الزر في المؤلف لكل فئة. أحتاج إلى التحقق من ذلك.

المكون معقد بالفعل بعض الشيء للإعداد. لست متأكداً من هذا. :thinking:

مرحباً :waving_hand: نعم، هذا مستوى آخر. :slightly_smiling_face: لست متأكداً من إمكانية ذلك الآن مع هذه البنية.

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

شكراً على الرد!
ولكن بعد التغيير، لا يمكن عرض الملصق، هكذا

أوه، عذراً، أعتقد أنه يجب عليك إزالة [wrap=sticker] و [/wrap] أيضاً. سيؤدي ذلك إلى عرض الصورة بشكل مضمن، لذا من المحتمل ألا تكون مفقودة. :thinking:

[wrap=sticker] مخصص فقط لإضافة بعض التنسيق إلى صورة الملصق.

حسنًا، العرض المضمن لا يمكنه استخدام [wrap=sticker]؟
لقد نجح الأمر، شكرًا!

ملاحظة: أتساءل عما إذا كان من الممكن إخفاء markdownUrl في Composer، نظرًا لأنه سيكون عنوان URL طويلاً ويشغل مساحة كبيرة؟

ملصقات Discourse الإصدار 2.0

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

:artist_palette: إعادة تصميم كاملة لإعدادات الملصقات

أكبر تغيير في الإصدار 2.0 هو إعدادات الملصقات نفسها.

كانت النسخة القديمة تخزن الملصقات كإعداد JSON يحتوي على قيم مثل:

  • title

  • emoji

  • previewUrl

  • markdownUrl

في الإصدار 2.0، تم استبدال ذلك بنوع الإعداد الأصلي objects في Discourse.

أصبح كل ملصق الآن كائنًا قابلًا للتكوين بخصائصه الخاصة:

  • العنوان - اسم الملصق / نص التلميح

  • المجموعة - تنظيم الملصقات في مجموعات بشكل اختياري

  • شارة الإيموجي - عرض إيموجي صغير في الزاوية بشكل اختياري

  • الصورة - رفع الملصق مباشرةً عبر الإعداد

  • الفئات - تقييد الملصقات لفئات Discourse محددة بشكل اختياري

  • إخفاء من الرسائل المباشرة - التحكم في ما إذا كان الملصق متاحًا في الرسائل المباشرة

  • قنوات الدردشة - تقييد الملصقات لقنوات الدردشة العامة المحددة بشكل اختياري

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

:bento_box: مجموعات الملصقات والتصفية

يمكنك الآن تعيين الملصقات إلى مجموعة.

عند توفر مجموعات متعددة، يعرض منتقي الملصقات شريط تصفية تلقائيًا في الأعلى.

يمكنك التبديل بين:

  • الكل

  • المجموعات الفردية

  • أخرى للملصقات التي لا تنتمي إلى أي مجموعة

يتم إنشاء التصفية ديناميكيًا من الملصقات المتاحة حاليًا للمستخدم.

:label: ملصقات خاصة بالفئات

يمكن الآن تعيين الملصقات بشكل اختياري لفئات Discourse محددة.

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

إذا لم يتم تكوين أي فئات، يظل الملصق متاحًا في كل مكان.

:speech_balloon: مزيد من التحكم في ملصقات الدردشة

يضيف الإصدار 2.0 مزيدًا من التحكم في توفر الملصقات في دردشة Discourse.

يمكنك الآن:

  • إخفاء ملصقات فردية من الرسائل المباشرة؛

  • تقييد الملصقات لقنوات الدردشة العامة المحددة؛

  • ترك إعداد القناة فارغًا لجعل الملصق متاحًا في جميع قنوات الدردشة العامة/الفئوية.

هذا يسمح للمشرفين بالحفاظ على مجموعات ملصقات مختلفة لأجزاء مختلفة من مجتمعهم.

:prohibited: لم تعد الملصقات المنشورة قابلة للنقر

تُعامل الملصقات المنشورة الآن كصور غير تفاعلية.

لم تعد تفتح نافذة العرض المكبر (lightbox) في Discourse عند النقر عليها.

ينطبق هذا على كل من:

  • الملصقات في المنشورات العادية؛

  • الملصقات المنشورة في الدردشة.

الهدف هو جعل الملصقات تتصرف أكثر مثل محتوى الملصقات/التفاعلات الفعلية بدلاً من الصور المرفوعة العادية.

:empty_nest: حالة فارغة أفضل

إذا لم تكن هناك ملصقات متاحة للسياق الحالي، يعرض المنتقي الآن حالة فارغة مناسبة بدلاً من عرض منتقي فارغ ببساطة.

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

:counterclockwise_arrows_button: يتم ترحيل إعدادات الملصقات الحالية

إحدى أهم أجزاء الإصدار 2.0 هي أن التثبيتات الحالية لا تحتاج إلى إعادة إنشاء مجموعة الملصقات الخاصة بها.

يتم ترحيل إعداد JSON القديم sticker_images تلقائيًا إلى تنسيق objects الجديد عند تحديث المكون.

تُحفظ عناوين الملصقات الحالية وقيم الإيموجي.

الأهم من ذلك، يتم أيضًا ترحيل صور الملصقات المرفوعة الحالية تلقائيًا.

لذا، إذا كان لديك بالفعل عشرات الملصقات مُكوّنة، فإن التحديث إلى الإصدار 2.0 لن يتطلب منك إعادة رفعها جميعًا.

لم تعد خاصية markdownUrl القديمة مطلوبة ولم يتم نقلها لأن حقل Image الجديد يمثل الرفع الفعلي في Discourse.


3 إعجابات