Discourse: إظهار الاسم الكامل في الإشارات

|||
|-|-|-|
| :eyeglasses:|معاينة| https://theme-creator.discourse.org/theme/megothss/discourse-show-name-mentions |
| :hammer_and_wrench:|مستودع| GitHub - megothss/discourse-show-name-mentions: A discourse theme component to display the full name instead of usernames in @mentions |
| :question:|دليل التثبيت|كيفية تثبيت سمة أو مكون سمة|
| :open_book:|جديد في سمات Discourse؟| دليل المبتدئين لاستخدام سمات Discourse

تثبيت مكون السمة هذا

مكون سمة لعرض الاسم الكامل بدلاً من أسماء المستخدمين في @mentions.

يقوم مكون السمة هذا بتحميل الاسم الكامل للمستخدم وعرض @fullname بدلاً من @username في الإشارات.

يعمل هذا المكون ببساطة عن طريق استبدال اسم المستخدم باسم المستخدم (إذا كان متاحًا) عند عرض المشاركات. لا يتغير شيء أثناء التحرير. لا تزال تقوم بالإشارة إلى @username كما هو الحال دائمًا في المنشئ.

كما أنه يضيف الفئة .mention-fullname إلى عنصر الربط a.mention إذا كنت ترغب في تنسيق الإشارات بالاسم الكامل بطريقة مميزة.

يظل عرض البطاقة عند النقر على إشارات @fullname يعمل بكامل طاقته.

حالة الاستخدام:

تخيل مثيل Discourse حيث يتبع كل اسم مستخدم النمط X9999999 (حرف واحد وسبعة أرقام). تخيل الآن أن هناك 100 ألف مستخدم مسجل.

ليس ودودًا جدًا، أليس كذلك؟ لسوء الحظ، هذا سيناريو حقيقي جدًا وليس خياليًا. يرتبط مثيل Discourse بـ SSO وجميع أسماء المستخدمين تتبع سياسة الشركة.

من الأفضل بكثير في هذه الحالة قراءة @John Doe بدلاً من @X9999999.

الإعدادات:

  • show_fullname_in_mentions: إذا تم تمكينها، ستعرض الإشارات @fullname بدلاً من @username
17 إعجابًا

مرحباً سيرجيو، شكراً على مكون السمة!

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

إليك ما يحدث: لدي هذا المستخدم الذي اسمه “oli44” واسمه الكامل “Henri Oliver”. مع مكون السمة الخاص بك، يعرض الآن “Henri Oliver” وهو أمر رائع ويضيف سياقًا أفضل. ولكن بعد ذلك، لنفترض أنني مستخدم آخر لا يعرف أن “Henri Oliver” يُعرف باسم المستخدم “oli44”، فكيف يمكنني الإشارة إليه في مشاركتي؟

سأبحث عن “Henri Oliver” وسأرى بالفعل “oli44” ولكن كيف يمكنني معرفة أنه الشخص الفعلي؟

لهذا السبب، كما هو الحال، لن أقوم بتمكينه في الوقت الحالي. هل تعرف مكون سمة/إضافة آخر يمكن أن يحل هذه المشكلة؟ لقد حاولت البحث عن ذلك ولكن لم أتمكن من العثور عليه.

أو ربما هناك طريقة يمكن لمكون السمة الخاص بك أن يظهر بها اسم المستخدم (على سبيل المثال: @Henri Oliver (oli44)) حتى عندما أحتاج إلى الإشارة إلى هذا الشخص أعرف ما الذي أبحث عنه؟

شكراً على أي حال على هذه الإضافة الرائعة.

3 إعجابات

ما عليك سوى كتابة @ متبوعًا بـ Henri Oliver. بعد التأكيد، سيتم إدراج @+اسم المستخدم في مشاركتك.

عند البحث، يتم عرض كل من اسم المستخدم والاسم الكامل.
أين المشكلة؟

يمكنك تخصيص العرض في نسخة متفرعة بسهولة:

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

أرى مشكلتين:

سيتم إرسال طلب ajax واحد لكل ذكر إلى الخادم.
هل يمكن أن يؤدي هذا إلى تقنين الصفحات التي تحتوي على الكثير من أسماء المستخدمين (مثل أدلة المستخدم التي يوفرها المستخدم)؟

الترجمة المخزنة مؤقتًا لاسم المستخدم إلى الاسم الكامل لن تتعرف على التغييرات في الاسم الكامل. ما هي مدة صلاحية هذا المخزن المؤقت؟

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

نظرًا لأننا كنا نواجه المشاكل المتوقعة، فقد قمت بإنشاء إضافة توفر الأسماء الكاملة مع الإشارات:

وبناءً عليه، تمت إزالة طلب ajax من المكون.

لقد أضفت أيضًا خيارًا لتكوين القالب المستخدم لعرض الإشارات:

إعجابَين (2)

هل كانت طلبات أجاكس إلزامية إذا أردنا الالتزام بمكون سمة؟

إذا كان الأمر كذلك، فأنا أدعوك لإنشاء موضوع Plugin جديد، إذا كنت تعتبر عملك موثوقًا بما يكفي ليستخدمه الآخرون :slight_smile:

ليس مسموحًا لي بالكتابة في تلك الفئة …

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

ولكن ربما يرغب الآخرون في الانضمام لصقلها.

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

عليك طلب الوصول على صفحة المجموعة :slight_smile:

https://meta.discourse.org/g/plugin_authors

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

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

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

هل أعدت خبز منشوراتك؟

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

شكرًا! لقد فعلت ذلك الآن. هل سيكون البحث في المجموعات ممكنًا أيضًا؟ لدي مجموعة trust_level_0 الخاصة بي مسماة “everyone”. إذا كان المكون الإضافي يمكنه أيضًا استخدام الاسم الكامل للإشارات إلى المجموعات، فسيكون هذا طريقة رائعة لجعل إشارات trust_level_0 العامة تبدو وكأنها إشارة “everyone”.

إنه يفعل ذلك الآن (عليك تحديث المكون أيضًا).

للأسف، لن يفتح رابط اسم المجموعة المجموعة عند النقر عليه.

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

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

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

سأحاول القيام بذلك قريبًا.

إعجابَين (2)

بالضبط. يجب أن يراقب تغييرات أسماء المستخدمين والمجموعات:

إعجابَين (2)

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

ضع هذا في اعتبارك.

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

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

يعمل في الغالب. لست متأكدًا من السبب، ولكن على الرغم من أنني قمت بإعادة تسمية مستوى الثقة 0 إلى الجميع، إلا أنه لا يتم تطبيق التسمية عليه.


تعمل المجموعات غير ذات مستوى الثقة بشكل جيد وتعرض أسماءها الكاملة.

تعديل: آه، لأن عمود full_name في جدول groups لا يحتوي على قيمة الاسم الكامل المعدلة لمجموعات مستوى الثقة! بالتحقق من مستكشف البيانات، فهو فارغ. همم؟

من الصورة أعلاه، يبدو أنك قمت بتغيير إدخالات i18n للمستوى_الثقة_0.

جرب Group.find(10).update! full_name: \"TESTTEST\" في وحدة تحكم rails.

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

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