شعار Discourse-Math

هل يمكن لأي شخص التفكير في طريقة لمنح شارة مخصصة تلقائيًا عند نشر منشور يحتوي على معادلة باستخدام إضافة discourse-math؟

ليس لدي أي فكرة عن كيفية البدء في هذا الأمر

5 إعجابات

مرحبًا @agf1997

أتفق على أن إضافة الرياضيات في Discourse مصممة بشكل جيد وتُعد إضافة رائعة لموقعك.

إحدى الطرق الممكنة هي دفع رسوم لمطور إضافات Discourse لتعديل إضافة الرياضيات بحيث تقوم بتحديث حقل مخصص في قاعدة البيانات عندما يستخدم عضو المنتدى الإضافة.

بعد ذلك، يمكنك إنشاء استعلام قاعدة بيانات بسيط (في منطقة إدارة الشارات) لإصدار الشارات.

أتمنى أن يكون هذا مفيدًا.

3 إعجابات

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

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

مرحبًا @agf1997

ستحتاج إلى كود إضافة للقيام بذلك، كما ذكرت.

هذا يعني أن لديك خيارين:

  1. تعديل أو توسيع إضافة الرياضيات بنفسك
  2. توظيف شخص لتعديل أو توسيع إضافة الرياضيات لك

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

أتمنى أن يكون هذا مفيدًا.

إعجابَين (2)

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

أولاً، ستحتاج إلى تمكين لا يمكن تعديل SQL الخاص بالشارات افتراضيًا على موقعك.

بعد ذلك، قم بإنشاء شارة جديدة تُفعّل بناءً على الاستعلام التالي:

SELECT user_id, MIN(id) AS post_id, current_timestamp AS granted_at 
FROM badge_posts
WHERE cooked LIKE '%<span class="math">%' AND (:backfill OR id IN (:post_ids) )
GROUP BY user_id
7 إعجابات

مرحبًا @Falco

استعلام الشارة هذا رائع حقًا.

سؤال:

هل لديك قائمة بجميع رموز Discourse :symbols التي يمكن استخدامها في استعلام شارة للمساعدة في التفعيل؟

السبب في سؤالي هو أنني أرى أنك استخدمت :backfill و :post_id, وعندما ألقي نظرة على هذا الرابط، أرى رموز Ruby أخرى مستخدمة:

هل يوجد مرجع مختصر لرموز Ruby الخاصة بـ Discourse التي يمكن استخدامها في استعلام شارة؟

لقد وجدت هذا، المتعلق بمحفزات الشارات (بعد مشاركتك أعلاه)، وكان مفيدًا جدًا:

في مقال Discourse ذلك، تم ذكر هذه أدوات التفعيل المساعدة:

  • :user_ids
  • :post_ids
  • :backfill

هل هذه الثلاثة هي “الكل”؟

شكرًا جزيلاً على مساعدتك!

3 إعجابات

@Falco رائع! سؤال سريع .. هل يجب أن يعمل هذا على المنشورات السابقة؟ عندما أنقر على “معاينة الشارات الممنوحة” أحصل على “لا توجد شارات لتعيينها.”

عند النقر على “معاينة مع خطة الاستعلام” أحصل على

GroupAggregate  (cost=2021.68..2021.70 rows=1 width=16)
  Group Key: p.user_id
  ->  Sort  (cost=2021.68..2021.68 rows=1 width=8)
        Sort Key: p.user_id
        ->  Nested Loop  (cost=0.28..2021.67 rows=1 width=8)
              Join Filter: (t.category_id = c.id)
              ->  Nested Loop  (cost=0.28..2017.97 rows=1 width=12)
                    ->  Seq Scan on posts p  (cost=0.00..2009.66 rows=1 width=12)
                          Filter: ((deleted_at IS NULL) AND (cooked ~~ '%<span class="math">%'::text) AND (post_type = ANY ('{1,2,3}'::integer[])))
                    ->  Index Scan using topics_pkey on topics t  (cost=0.28..8.30 rows=1 width=8)
                          Index Cond: (id = p.topic_id)
                          Filter: ((deleted_at IS NULL) AND visible)
              ->  Seq Scan on categories c  (cost=0.00..3.35 rows=28 width=4)
                    Filter: (allow_badges AND (NOT read_restricted))