اجعل شعار الوسم يظهر أيضًا في صفحات المواضيع الموسومة

مرحباً بالجميع

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

يمكن إضافة هذا النموذج في أكثر من موضوع واحد ويعرض تفاصيل العميل، لنفترض

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

لا أعتقد أن هناك وظيفة موجودة لهذا. ستحتاج على الأرجح إلى استخدام إضافة (plugin).

ومع ذلك، قد أكون مخطئًا. هل يمكنك التوضيح أكثر بخصوص هذا؟ شكرًا لك.

أي إضافة (plugin) يمكن أن تساعدني في بناء سير العمل هذا؟

مرحباً، هل يمكنك توضيح سؤالك الأصلي أكثر؟ ربما أسيء فهمه.

أعتقد أنك قد تحتاج إلى القيام بشيء مخصص، ولكن من الصعب التأكد من ذلك دون مزيد من التفاصيل.

هل ما تبحث عنه هو نموذج في منشور الموضوع، ويضيف علامات إلى الموضوع بناءً على محتوى النموذج؟ لأنه في هذه الحالة قد تتمكن من الاكتفاء بمكون سمة (Theme Component) بدلاً من ذلك.

إذا كنت أفهم سؤالك بشكل صحيح، يبدو أنك تستخدم وسمًا (tag) لكل عميل، وتريد أن يظهر وصف موسع للعميل عند عرض أي موضوع يحتوي على هذا الوسم.

إنه ليس نموذجًا حقًا، ولكن مكون Tag Banners، كما هو موضح هنا في Meta، قد يوصلك إلى منتصف الطريق:

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

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

إعجابَين (2)

شكرًا @toddz لقد ساعد ذلك كثيرًا، هذا ما أحتاجه

حسنًا، "@NateDhaliwal اللافتة (banner) الخاصة بالوسم ستساعدني كثيرًا ولكن سؤالي الآن هو:

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

:+1: حسنًا، بما أنني فهمت سؤالك، سأقوم بتعديل عنوان هذا الموضوع لربما يلقي المزيد من الأشخاص نظرة عليه.

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

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

إعجابَين (2)

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

@Eman_Ahmed لقد أضفت هذا في هذا الفرع (fork):

يأخذ وسم الموضوع الأول ويعرضه. يتم التحكم فيه بواسطة الإعداد show on topics (العرض على المواضيع). إذا لم تكن هناك وسوم، يتم إخفاء اللافتة.

إعجابَين (2)

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

لكنني أرى مشكلة عند وجود علامات (tags) متعددة في موضوع ما. (ومن الصعب تخيل إدارة الأمور بعلامة واحدة فقط لكل موضوع.)

يتم فرز العلامات إما أبجديًا أو حسب الشعبية…

image

…لذا ليس لدى المؤلف سيطرة مباشرة على العلامة التي تظهر أولاً.

اعتقدت أن استخدام حرف غير أبجدي لبدء علامات العميل (~ClientName) قد يدفعها دائمًا إلى مقدمة القائمة. ينجح هذا في صفحة /tags - ولكن ليس في الموضوع، حيث تتجاهل قائمة العلامات حرف ~ ببساطة. :face_with_diagonal_mouth:

في موضوع من العام الماضي، يبدو أنه كان من الممكن إدراج بعض الأحرف غير الأبجدية بشكل غير مرئي لإجبار الترتيب: Invisible way to force display order of tags? ولكن يبدو أن هذا لا يعمل الآن. عندما أقوم بإنشاء علامة اليوم بفاصلة علوية أو فاصلة، يتم رفضها أو إزالتها بصمت. (لست متأكدًا من سبب قبول ~).

إعداد فرز العلامات الموضح أعلاه يؤثر على كل من صفحة /tags وقائمة العلامات في المواضيع - ولكن أعتقد أنه يجب عليهم استخدام خوارزمية أبجدية مختلفة؟

هممم… أفترض أن الأمر يعتمد حقًا على ما يرغب OP في القيام به. إذا كان هناك وسم واحد → موضوع واحد → مستخدم واحد، فسيعمل هذا. وإلا، سيتعين تقديم المزيد من المعلومات :person_shrugging:.

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

شكراً لمساهمتك!

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

أشعر أن لدي أيضاً سيناريوهات سيكون فيها هذا مناسباً جداً للاستخدام.

هممم… لست متأكدًا مما إذا كان هذا متوافقًا تمامًا مع المفهوم الأساسي لـ “لافتة الوسم” (tag banner)، حيث كان من المفترض أن تعرض معلومات الوسم في صفحة الوسم، ولكن هذا يعرض معلومات الوسم في المواضيع التي تحمل الوسم :person_shrugging:.

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

إعجابَين (2)

نعم، لا أعرف ما إذا كانت ستكون مفيدة على نطاق واسع بما يكفي لإضافة الميزات إلى المكون الإضافي الأصلي. قد يكون الإصدار المنفصل أو الملحق المسمى “Tagged Topic Banner” أكثر ملاءمة.

ولكن أعتقد أن الفائدة محدودة للغاية ما لم تكن هناك طريقة للمؤلف لتحديد العلامة الأساسية. الأشياء الوحيدة التي يمكنني التفكير فيها هي…

١.) حيلة مثل جعل الفرز الأبجدي يعامل حرفًا مثل ~ على أنه في أعلى القائمة.

اقترح AskBot نهجًا للمكون الإضافي الذي يقوم بالتصحيح البرمجي (monkey-patch)
# plugin.rb
after_initialize do
  module ::CustomTagSort
    def custom_tag_sort(tags)
      tags.sort_by do |tag|
        # يضع العلامات المسبوقة بـ ~ أولاً، ثم يفرز أبجديًا
        [tag.name.start_with?("~") ? 0 : 1, tag.name.downcase]
      end
    end
  end

  # التصحيح البرمجي (Patch) في المُسلسِل/الطريقة التي تحسب visible_tags أو ما شابه
  require_dependency 'topic_tags_mixin'
  TopicTagsMixin.prepend(Module.new do
    private

    def all_tags
      return @tags if defined?(@tags)
      tags = topic.visible_tags(scope)
      if SiteSetting.tags_sort_alphabetically
        tags = ::CustomTagSort.custom_tag_sort(tags)
      else
        topic_count_column = Tag.topic_count_column(scope)
        tags = tags.sort_by { |tag| tag.public_send(topic_count_column) }.reverse
      end
      @tags = tags
    end
  end)
end

٢.) أفضل من ذلك: ترتيب العلامات حسب ترتيب محدد لمجموعات العلامات.

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

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