السماح للمستخدمين بحظر الكلمات المفتاحية

|||
|-|-|-|
| :information_source: | ملخص | يسمح مكون السمة هذا للمستخدمين بحظر الكلمات الرئيسية. يتطلب إنشاء ثلاثة حقول مستخدم مخصصة في إعدادات المسؤول لكي يعمل. |
| :eyeglasses:|معاينة| لا يمكنني المعاينة على منشئ السمات لأنه يتطلب إنشاء حقول للمستخدم، ولكني أدرجت لقطات شاشة أدناه. |
| : hammer_and_wrench:|المستودع| Github - a-very-old-sock/discourse-keyword-block |
| : question:|دليل التثبيت|كيفية تثبيت سمة أو مكون سمة|
| : open_book:|جديد في سمات Discourse؟| دليل المبتدئين لاستخدام سمات Discourse

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

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

← صف هذه السمة/المكون بجملة أو اثنتين →

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

← أضف لقطات شاشة (إن وجدت) →

حظر الكلمات الرئيسية في عنوان الموضوع أو مقتطف الموضوع:

حظر الموضوعات أو الردود التي تحتوي على الكلمة الرئيسية، وكذلك الموضوعات المقترحة التي تحتوي على الكلمة الرئيسية:

← أضف المزيد من التفاصيل واشرح الإعدادات (إن وجدت) →

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

سيناريو مثال: قد يكون لدى منتدى للحيوانات الأليفة موضوع عام حول التعامل مع شعر الحيوانات الأليفة حيث لا يتم تمييز الموضوع الرئيسي بنوع معين من الحيوانات. يرد المستخدم أ حول كلبه، ويرد المستخدم ب حول قطته، لكن المستخدم أ لا يريد رؤية أي شيء عن القطط على الإطلاق. ما يفعله مكون السمة هذا هو السماح للمستخدم أ بوضع “قطة” في قائمة الحظر الخاصة به، ثم في أي مكان تظهر فيه “قطة” في موضوع أو رد، يتم استبدالها بـ “محظور لاحتوائه على قطط” مع رابط لإظهارها على أي حال.

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

يتطلب مكون السمة هذا منك إنشاء ثلاثة حقول مستخدم مخصصة في المسؤول > تخصيص > حقول المستخدم لكي يعمل. افتراضيًا، تتوقع إعدادات مكون السمة هذه الحقول المستخدمة لتكون 1 و 2 و 3 بالترتيب الموضح أدناه. إذا كان لديك حقول مستخدم مخصصة أخرى محددة، فستحتاج إلى إدخال أرقام حقول المستخدم الصحيحة في إعدادات مكون السمة. (يبدأ ترقيم حقول المستخدم من 1، لذا قم بالعد لأسفل قائمة عدد حقول المستخدم الأخرى التي قمت بتعريفها). راجع دليل Meta إنشاء وتكوين حقول المستخدم المخصصة لمزيد من التفاصيل.

1 - قائمة المصطلحات المحظورة للمستخدم

نوع الحقل: حقل نصي

اسم الحقل: (أي اسم سيعمل هنا) المصطلحات المحظورة

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

:white_check_mark: قابل للتعديل بعد التسجيل

:cross_mark: مطلوب عند التسجيل

:cross_mark: عرض في الملف الشخصي العام

:cross_mark: عرض في بطاقة المستخدم

:cross_mark: قابل للبحث

2 - حساسية حالة الأحرف

نوع الحقل: تأكيد

اسم الحقل: (أي اسم سيعمل هنا) المصطلحات المحظورة - حساسة لحالة الأحرف

وصف الحقل: (أي وصف سيعمل هنا) الكلمات في قائمة “المصطلحات المحظورة” حساسة لحالة الأحرف.

:white_check_mark: قابل للتعديل بعد التسجيل

:cross_mark: مطلوب عند التسجيل

:cross_mark: عرض في الملف الشخصي العام

:cross_mark: عرض في بطاقة المستخدم

:cross_mark: قابل للبحث

3 - البحث عن كلمات كاملة أو جزئية

نوع الحقل: تأكيد

اسم الحقل: (أي اسم سيعمل هنا) المصطلحات المحظورة - كلمات كاملة

وصف الحقل: (أي وصف سيعمل هنا) يجب أن تظهر المصطلحات المحظورة ككلمات كاملة، وليس ككلمات جزئية

:white_check_mark: قابل للتعديل بعد التسجيل

:cross_mark: مطلوب عند التسجيل

:cross_mark: عرض في الملف الشخصي العام

:cross_mark: عرض في بطاقة المستخدم

:cross_mark: قابل للبحث

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

.login-form .user-fields {
    display: none;
}

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

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

أنوي أن يعمل هذا أيضًا في عرض البحث بصفحة كاملة، ولكن اعتبارًا من 24/2/2023 أنا حاليًا أكافح لجعله يعمل. سأقوم بتحرير هذا إذا تمكنت من جعل الحظر يعمل في البحث.

هذا متوافق مع مكون سمة مقتطفات الموضوع؛ وهو غير متوافق مع معاينات قائمة الموضوعات. لم أختبر هذا بشكل مكثف مع مكونات السمات الأخرى.

3 إعجابات

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

أي أفكار حول ما يحاول تحذيري منه؟ ربما بسبب هذا:

مكون/سمة مانع كلمات المستخدم يرمي أخطاء: TypeError: null is not an object (evaluating 'e.match')

تتبع الأخطاء
رسالة

مكون/سمة مانع كلمات المستخدم يرمي أخطاء:
TypeError: null is not an object (evaluating 'e.match')

تتبع الأخطاء

viewingCategoryId@https://foorumi.katiska.eu/theme-javascripts/2d7e05cf5f7eb3e5f8699871f25f32a21d9221c2.js?__ws=foorumi.katiska.eu:209:77
@https://cdnfoorumi.katiska.eu/assets/vendor-f2e959203bc406b4698a4388ad51464d9ee2c5ff7b4011f332b7d88c6ce5dab8.br.js:1347:71
@https://cdnfoorumi.katiska.eu/assets/vendor-f2e959203bc406b4698a4388ad51464d9ee2c5ff7b4011f332b7d88c6ce5dab8.br.js:3677:13
get@https://cdnfoorumi.katiska.eu/assets/vendor-f2e959203bc406b4698a4388ad51464d9ee2c5ff7b4011f332b7d88c6ce5dab8.br.js:1347:56
Ee@https://cdnfoorumi.katiska.eu/assets/vendor-f2e959203bc406b4698a4388ad51464d9ee2c5ff7b4011f332b7d88c6ce5dab8.br.js:1324:40
map@[native code]
@https://cdnfoorumi.katiska.eu/assets/vendor-f2e959203bc406b4698a4388ad51464d9ee2c5ff7b4011f332b7d88c6ce5dab8.br.js:5042:163
@https://cdnfoorumi.katiska.eu/assets/vendor-f2e959203bc406b4698a4388ad51464d9ee2c5ff7b4011f332b7d88c6ce5dab8.br.js:1347:71
@https://cdnfoorumi.katiska.eu/assets/vendor-f2e959203bc406b4698a4388ad51464d9ee2c5ff7b4011f332b7d88c6ce5dab8.br.js:3677:13
get@https://cdnfoorumi.katiska.eu/assets/vendor-f2e959203bc406b4698a4388ad51464d9ee2c5ff7b4011f332b7d88c6ce5dab8.br.js:1347:56

بيئة التشغيل

HTTP HOSTS: foorumi.katiska.eu

إذًا… ما الخطأ الذي ارتكبته؟

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

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

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

بالتأكيد لدي مكونات أخرى أيضًا :wink: ولكن بالتأكيد - يمكن أن يكون هناك تعارض بين هذا المكون ومكون أو إضافة أخرى.

سأحاول التعمق أكثر في نقطة ما.

وهكذا حدث ذلك الآن :wink:

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

لذا دعني أنا و @merefield نتجادل أي منكما (من؟ أنا أكره اللغة الإنجليزية حقًا) يصلح وماذا :wink:

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

أخشى أنني مشغول للغاية لدعم التعارضات مع مكونات السمات الخارجية، ولكنني منفتح على طلبات السحب (PR). في الوقت الحالي، سيتعين عليك الاختيار بينها. :slight_smile:

إعجابَين (2)

أتساءل عما إذا كان يمكن استخدام هذا لتوسيع وظيفة كتم صوت المستخدم؟
أي وضع المستخدم المكتوم في قائمة المحظورين لإخفاء الردود على المستخدم المكتوم؟

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

سيؤدي هذا إلى حظر الإشارات إلى اسم مستخدم في المنشور إذا كان اسم المستخدم مدرجًا في القائمة المحظورة؛ إذا كان مطابقة الكلمة الكاملة قيد التشغيل، فيجب أن يتضمن اسم المستخدم في القائمة المحظورة @الإشارة، ولكن إذا كانت مطابقة الكلمة الكاملة متوقفة، فيمكن تضمين اسم المستخدم فقط بدون @.

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

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

أعتذر. بالنظر إلى هذا. ما قصدته بـ “تمديد حظر/كتم المستخدم” هو إضافة اسم المستخدم إلى قائمة الكلمات المحظورة. نظريتي هي أنه ربما يكون اسم المستخدم في:

[quote=“asc, post:9, topic:256228”]

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

للتأكيد، هل الكلمة المحظورة لا تظهر؟ مجرد رابط لإلغاء إخفاء المنشور؟ أو هل يمكن تجاوز الكلمة المراقبة لعدم إظهار الكلمة المحظورة؟

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