إخفاء مواضيع المستخدمين المتجاهلين

:information_source: ملخص تسمح لك هذه المكونة بإخفاء المواضيع من المستخدمين الذين تجاهلتهم
:hammer_and_wrench: المستودع GitHub - Lhcfl/discourse-hide-ignored-user-topics
:question: دليل التثبيت كيفية تثبيت سمة أو مكون سمة
:open_book: جديد في سمات Discourse؟ دليل المبتدئين لاستخدام سمات Discourse

← املأ “repoName” و “repoURL” لزر التثبيت التلقائي →

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

استلهم من هذا المنشور:

تسمح لك هذه المكونة بإخفاء المواضيع من المستخدمين الذين تجاهلتهم.

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

import { apiInitializer } from "discourse/lib/api";
export default apiInitializer("1.8.0", (api) => {
  const user = api.getCurrentUser();
  if (user == null) return;
  api.registerValueTransformer(
    "topic-list-item-class",
    ({ value, context }) => {
      if (user.ignored_users.includes(context.topic.creator.username)) {
        value.push("hidden");
      }
      return value;
    }
  );
});
12 إعجابًا

@Lhc_fl،

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

سيؤدي تجاهل الافتراضي إلى إخفاء مشاركات المستخدم المذكور.

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

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

ليس الأمر صعبًا، لكنني لست متأكدًا مما إذا كان ضروريًا…
نشر مستخدم تم تجاهله. لا يريدون رؤيته. ثم رد شخص ما على هذا المستخدم. هم أيضًا لا يريدون رؤيته. ثم رد شخص آخر على هذا الرد، ثم رد آخر على الرد على الرد… ألا ينبغي رؤية هذه الأشياء؟

  • يتسبب في انهيار المناقشات. حسنًا، أنت تكتم شخصًا ما، لذا فأنت “لا ترى أبدًا” منشورات هذا الشخص. ولكن بعد ذلك، يقوم مستخدم آخر يعجبك باقتباس المستخدم المكتوم في منشوره، أو الإشارة إلى اسمه @، أو الرد على منشوره. هل تقوم بعد ذلك بقمع الجزء المقتبس فقط؟ قمع الاسم @؟ قمع جميع الردود على منشوراتهم أيضًا؟ هذا يترك ثغرات كبيرة في المحادثة ويقدم العديد من التحديات التقنية المعقدة. مع ما يكفي من الكتم الشخصي والحظر والتجاهل، تصبح جميع المحادثات نسيجًا غريبًا من البيانات الجزئية.
3 إعجابات

@Lhc_fl
هذا ضروري…
إذا أراد (أ) تجاهل (ب)، فهذا يعني أن جميع المواضيع/المنشورات، وهذا سيكون مثالياً

  1. يتم تجاهل مواضيع (ب) تمامًا، وهذا جيد/تم
  2. في مواضيع الآخرين، قام (ب) بالرد،
    2.1 يجب إخفاء منشورات (ب)، تم
    2.2 يجب إزالة صورة (ب) الرمزية من صفحة قائمة المشاركات (المشاركين)، يبدو أن هذا ليس بالأمر الصعب؟
    2.3 إذا تم اقتباس منشور (ب)، فليس من الواضح ما إذا كان من السهل إزالة/إخفاء هذا الجزء؟

شكراً لهذه الجهود الرائعة، هذا مفيد حقًا، آمل أن تتمكن من النظر في 2.2 و 2.3 إذا كان ذلك ممكنًا…

إعجابَين (2)

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

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

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

دان

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

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

يمكن أن يكون هذا المفهوم أيضًا فائدة للمنتديات المخصصة لمساعدة الأشخاص الذين يعانون من مشاكل الصحة العقلية.

هناك الكثير من التحديات مع هذا، ويمكن أن تنهار الأمور عندما تكون هناك آراء مختلفة حول المشاكل الأساسية أو الثانوية.

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

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

إعجابَين (2)

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

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

تعديل: حدث هذا لي أيضًا في الحياة الواقعية، في العمل، شخص كنت دائمًا على خلاف معه، كان معدل ضربات قلبي يرتفع وأشعر برد فعل القتال أو الهروب إذا دخل الغرفة. لم يكن عدوانيًا أو غير مقبول - كان رد فعلي هو الذي يؤثر علي.

7 إعجابات

أشعر أن حظر (على الأقل عدم القدرة على القراءة/وجود اقتراح دائم للقراءة) الردود المباشرة على المرء من المستخدم المحظور هو خطوة جيدة

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

3 إعجابات

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

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

هذا مخصص للمواضيع الجديدة فقط وليس للمشاركات.

إعجابَين (2)

نعم، الإعداد الافتراضي يخفي المنشورات والردود. هذا يضيف مواضيع جديدة

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

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

إعجابَين (2)

تحتاج هذه المكونات إلى تحديث لـ Tests-passed

3 إعجابات

هذا يعمل ولكن فقط على الموضوع، هل لديك فكرة لإخفائه في ‘قائمة الموضوعات’ في الصفحة الرئيسية?

script نوع="text/discourse-plugin" الإصدار="1.6.0"

const { alias } = require("@ember/object/computed");

api.modifyClass("component:topic-list-columns", {
    pluginId: "remove-ignored-users-topic",
    attributeBindings: ["data-topic-id", "role", "ariaLevel:aria-level", "data-creator-name"],
    "data-creator-name": alias("topic.creator.username"),
});

if (api.registerValueTransformer()) {
const s = document.createElement("style");

for (const u of api.registerValueTransformer()?.ignored_users) {
    s.innerHTML += `tr.topic-list-columns[data-creator-name="${u}"] { display: none; }`;
}

document.body.appendChild(s);
}

/script

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

تمت الترقية، والآن سيكون متوافقًا مع قائمة مواضيع Discourse الجديدة

4 إعجابات

شكراً جزيلاً @Lhc_fl لتحديث هذا، يمكنني التأكيد على أنه يعمل كما هو موضح.

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

إعجابَين (2)

يبدو أن هناك خطأً بسيطًا أو قيدًا، لست متأكدًا مما إذا كان جديدًا منذ نقل هذه المكونة إلى Glimmer، لأنني كنت أستخدم مكونة مختلفة لهذه الوظيفة سابقًا.

المشكلة هي أنه عندما ينشر مستخدم تم تجاهله في موضوع تمت مراقبته/تتبعه، لا يزال يظهر (1) للمشاركات الجديدة بجوار عنوانه في قائمة الموضوعات. وبما أن المشاركة مخفية عن المستخدم، فحتى بعد النقر على الموضوع والتمرير إلى الأسفل، لا يزال يظهر إشعار المشاركة الجديدة في قائمة الموضوعات. أفترض أن السبب هو أن المشاركة الجديدة غير مرئية وبالتالي لا يتم تمييزها على أنها مقروءة.

للعلم فقط: هذا أعطاني تحذير مسؤول على الواجهة الأمامية.

مرحباً يا جاغستر، هل أنت متأكد من أنه ليس هذا المكون المشابه؟

متأكد تمامًا.