تخصيص نص زر الموضوع الجديد

:discourse2: الملخص تخصيص زر الموضوع الجديد حسب الفئة أو العلامة
:eyeglasses: معاينة معاينة على منشئ موضوعات Discourse
:hammer_and_wrench: المستودع https://github.com/discourse/discourse-customize-new-topic-button-text
:question: دليل التثبيت كيفية تثبيت موضوع أو مكون موضوع
:open_book: جديد على موضوعات Discourse؟ دليل المبتدئين لاستخدام موضوعات Discourse

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

الميزات

يتيح لك هذا المكون تخصيص زر “موضوع جديد” في قائمة مواضيع الفئة أو العلامة، وكذلك اسم الإجراء والزر في المحرر (موضح أدناه). إذا كان لديك فئة #contribute:bug، على سبيل المثال، يمكنك تحديث هذه النصوص لتقول “الإبلاغ عن خطأ”:

(قد تكون هناك حاجة إلى إضافة بعض الأيقونات إلى إعداد svg icon subset في لوحة التحكم)

يمكنك أيضًا تخصيص نص زر الرد، وهذا سيحل محل نص reply في المحرر وداخل المواضيع:


الإعدادات

الاسم الوصف
نص الموضوع الجديد المخصص هنا تقوم بإدخال التفاصيل لكل زر مخصص
وراثة فئة الأب عند تعطيله، لن تقوم الفئات الفرعية تلقائيًا بوراثة نص فئة الأب

هناك إعدادان، والأول هو custom new topic text:

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

هناك إعداد إضافي، مفعّل افتراضيًا، يُسمى inherit parent category. عند تمكينه، سيتم تغيير نص جميع الفئات الفرعية أيضًا (ما لم يتم تحديده بشكل مختلف في الإعدادات).

:information_source: ملاحظة أنه إذا قمت بإعداد علامة، فسيتم تجاوز الفئة المحددة.

:bulb: أفكار لتحسينات مستقبلية

  • نصوص قابلة للتوطين للغات المختلفة
  • دعم مجموعات الفئات والعلامات، والعلامات المتعددة

:discourse2: مستضاف من قبلنا؟ متاحة مكونات الموضوع للاستخدام على خططنا القياسية والأعمال والشركات.

27 إعجابًا

هذا جيد حقًا ، شكرًا جزيلاً لك :heart:

اليوم، كنت أعمل على نسخة أبسط بكثير من هذا باستخدام api.customizeComposerText() :sweat_smile:

هذا حل أفضل بكثير. شكراً لك @awesomerobot!

في تجاربي، لم أتمكن أبدًا من تجاوز تسمية زر Composer للفئات باستخدام المكون الإضافي discourse-post-voting. تصبح هذه مشكلة أكبر عندما يتم تمكين فئات متعددة للتصويت على المنشورات.

إذا سمح لي باقتراح؛ تمكين الدعم لتجاوز تسميات discourse-post-voting، سيكون تحسينًا رائعًا. ( :

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

هذا مكون سمة رائع! فكرة للارتقاء به إلى مستوى أعلى قد تكون هذه:

إذا كنت تعيد تسمية الزر لأنك تريد فعليًا تغيير نوع الموضوع، فيجب عليك تغيير التسمية في *الفئة بأكملها.

على سبيل المثال:
لديك فئة تسمى Events. ستقوم فعليًا بتغيير كلمة “topic” في الفئة بأكملها إلى “events”. ليس “New Topic” بل “New Event”، وبدلاً من قائمة Topics ستكون لديك قائمة Events، إلخ.

ترى هذا في أدوات أخرى عندما تقوم بتغيير حالة الاستخدام الأساسية لشيء ما. إليك ما يفعله AirTable عند إنشاء جدول جديد. تحتوي الجداول افتراضيًا على “records”.

ولكن لنفترض أنني أريد إنشاء جدول يسمى “Users”، فيمكنني تغيير كل سجل ليسمى Users:

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

وجدت مكون السمة هذا أثناء البحث، لأنني أردت تغيير هذه الكلمة من “Topic” إلى “Events”:

3 إعجابات

@awesomerobot هذا المكون الخاص بالسمة مذهل حقًا، شكرًا جزيلاً لك عليه!

ألاحظ أن هذا المكون الخاص بالسمة يبدو أنه يسبب بعض السلوك الغريب مع CSS لزر الموضوع الجديد.

مكون السمة معطل:

مكون السمة ممكّن:


لقد لاحظت أيضًا أنه بينما يغير زر “إنشاء موضوع” في المنشئ، وهو أمر رائع…

كما أنه يغير نص زر الرد إلى نفس السلسلة، وهو أمر غير مثالي لأنه لا يقوم بإنشاء تقرير خطأ آخر، بل هو رد :slight_smile:

ما هي احتمالات إضافة حقل آخر إلى المحرر لتغيير نص زر الرد (أو تركه فارغًا لتركه كـ Reply؟

4 إعجابات

عذرًا، هناك شيء أخير: يبدو أن هذا لا يحترم أيضًا الحالة التي يكون فيها لفئتين فرعيتين (لكل منهما أب مختلف) نفس الاسم المستعار. على سبيل المثال:

  • parent1
    • sub1
  • parent2
    • sub1

في هذه الحالة، لا يمكنني جعل مكون السمة يميز بين الفئتين الفرعيتين، وكلاهما يشتركان في نفس التكوين من المحرر.

3 إعجابات

شكراً على الملاحظات، لقد أجريت بعض التحديثات! FIX: action, switch category to ID, ignore replies by awesomerobot · Pull Request #5 · discourse/discourse-customize-new-topic-button-text · GitHub

لقد أهملت زر الرد تمامًا! في الوقت الحالي، أبقيته على reply، ولكن إعدادًا منفصلاً لتغيير نصه سيكون منطقيًا.

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

3 إعجابات

يبدو أن هناك خطأ جديدًا. عند تمكين هذا المكون الإضافي، فإنه ينشئ زري موضوع:

إعجابَين (2)

نعم، شكراً لإبلاغك، لقد تغيرت بعض الموصلات في Discourse — يجب أن يتم إصلاحها الآن إذا قمت بالتحديث:

إعجابَين (2)

هل من الممكن إصلاح اختلاف حجم الزر؟ (لقطة شاشة قديمة، تحديثك الأخير أصلح مشكلة الأزرار المزدوجة)

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

نعم، يجب أن يكون هذا الزر بالارتفاع الصحيح الآن

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

الرسالة (تم الإبلاغ عن 4 نسخ)

[DiscourseJsProcessor] تحذير: استخدام {{attrs}} للإشارة إلى الوسائط المسماة قد تم إيقافه. يجب تحديث {{attrs.canCreateTopic}} إلى {{@canCreateTopic}}. (‘discourse/components/custom-new-topic-button.hbs’ @ L2:C8) [معرف التحذير: attrs-arg-access] انظر Ember.js - Deprecations لمزيد من التفاصيل.
at theme-transpiler.js:3164:26752
at j. (theme-transpiler.js:3168:1693)
at j. (theme-transpiler.js:3168:161)
at j. (theme-transpiler.js:3168:1693)
at D (theme-transpiler.js:3168:1754)
at te (theme-transpiler.js:3168:1318)
at PathExpression (theme-transpiler.js:3198:21763)
at yo (theme-transpiler.js:3187:2776)
at Al (theme-transpiler.js:3187:3513)
at Ml (theme-transpiler.js:3187:3309)
at yo (theme-transpiler.js:3187:3013)
at Al (theme-transpiler.js:3187:3513)
at Ml (theme-transpiler.js:3187:3309)
at yo (theme-transpiler.js:3187:3013)
at Ml (theme-transpiler.js:3187:3350)
at yo (theme-transpiler.js:3187:3013)
at Al (theme-transpiler.js:3187:3513)
at Ml (theme-transpiler.js:3187:3309)
at yo (theme-transpiler.js:3187:3013)
at Bi (theme-transpiler.js:3187:3879)
at PA (theme-transpiler.js:3190:3002)
at Cf (theme-transpiler.js:3190:9856)
at Al (theme-transpiler.js:3176:35353)
at gf (theme-transpiler.js:3176:35600)
at D (theme-transpiler.js:3198:42250)
at Sft.o.precompile (theme-transpiler.js:3281:3078)
at dDe (theme-transpiler.js:3161:1003)
at e.CallExpression (theme-transpiler.js:3159:33796)
at h (theme-transpiler.js:10:111797)
at e.uPe [as _call] (theme-transpiler.js:59:16906)
at e.oPe [as call] (theme-transpiler.js:59:16726)
at e.lPe [as visit] (theme-transpiler.js:59:17700)
at t.visitQueue (theme-transpiler.js:59:40645)
at t.visitSingle (theme-tr…

تتبع المكدس

/var/www/discourse/lib/discourse_js_processor.rb:133:in block in create_new_context' mini_racer-0.8.0/lib/mini_racer.rb:273:in block in attach’
mini_racer-0.8.0/lib/mini_racer.rb:242:in call_unsafe' mini_racer-0.8.0/lib/mini_racer.rb:242:in block (2 levels) in call’
mini_racer-0.8.0/lib/mini_racer.rb:369:in timeout' mini_racer-0.8.0/lib/mini_racer.rb:241:in block in call’
mini_racer-0.8.0/lib/mini_racer.rb:240:in synchronize' mini_racer-0.8.0/lib/mini_racer.rb:240:in call’
/var/www/discourse/lib/discourse_js_processor.rb:168:in block in v8_call' /var/www/discourse/lib/discourse_js_processor.rb:167:in synchronize’

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

غريب، لقد اختبرته على أحدث إصدار من Discourse وكل شيء يعمل بشكل جيد — لقد قمت للتو بدمج تحديث للمكون سيحل مشكلة الإهمال هذه، هل يمكنك التحديث والمحاولة مرة أخرى؟

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

نفس الشيء هنا، لم يظهر بعد عدة محاولات.

للأسف، يبدو أن مكون السمة الرائع هذا لا يعمل بشكل جيد مع Custom Wizard Plugin 🧙
يمكن لمكون Wizard ربط زر الفئة عبر إعدادات الفئة:

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

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

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

هذه مكونة صغيرة لطيفة يمكنها إضافة بعض اللمسات التفصيلية الجميلة إلى موقع ما.

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

مرحباً

أعتقد أن لدي خطأ.

لم يعد من الممكن تعديل نص زر “موضوع جديد”.
التعديل فعال للأزرار الأخرى.

الإصدار: 3.2.0.beta4-dev([4886c1fddc]

شكراً لمساعدتك (ولأجل هذه الوظائف!)

إعجابَين (2)

شكرًا على التقرير!

يبدو أن هناك تراجعًا من آخر طلب سحب (PR):

يقوم بالتحويل من صيغة this.args.<param>. إلى صيغة @<param>; ومع ذلك، فإن الصيغة الأولى مطلوبة لأننا داخل منفذ إضافي (plugin outlet).

تعديل: لقد قمت بإنشاء طلب سحب (PR) :+1:

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

شكراً على طلب السحب يا @Arkshine! يجب أن يتم إصلاح هذا في التحديث

سيتم تضمين هذا أيضًا في التحديث: FEATURE: add ability to customize "Reply" text by 3-w-c · Pull Request #7 · discourse/discourse-customize-new-topic-button-text · GitHub

لذلك الآن سيتم تضمين خيار تخصيص نص زر الرد أيضًا في المنشئ وفي المشاركات (لا يزال يعتمد على العلامة والفئة).

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