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

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

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

هذه وسيلة لجذب التسجيل، وهي أيضًا وسيلة لمنع معظم “المستلمين” (الأشخاص الذين يأخذون دون مساهمة).

على غرار

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

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

كما ذكر في السؤال، بحثت في المنتدى ولم أجد سوى أمان تغيير الفئات، لكن هذا سيجعل جميع الفئات غير مرئية، وهي ليست الوظيفة التي أحتاجها.

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

هذه وسيلة لجذب التسجيل وأيضًا لمنع غالبية الأطراف التي تصل.

مشابه لـ:

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

هل ما تطلبه مشابه لما تفعله العديد من الصحف؟ على سبيل المثال، كمستخدم مجهول، يمكنني عرض الصفحة الأولى وصفحات الفئات لصحيفة نيويورك تايمز:

إذا حاولت بعد ذلك زيارة مقال، فسيتم عرض شيء مثل هذا:

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

إعجابَين (2)

هل يقوم مكون السمة هذا بما تريد تحقيقه؟

3 إعجابات

[اقتباس=“simon، المشاركة: 3، الموضوع: 279350”]
أعجبتني الفكرة.
[/اقتباس]

نعم، simon، لأن موقعي سيحتوي على العديد من روابط تنزيل البرامج، ولكنني لا أريد أن يراها المستخدمون غير المسجلين وينقرون عليها. شكرًا لك على ردك!

أود حقًا لو كان الأمر مثل وضع المفسد —> [مفسد] روابط التنزيل [/مفسد] عندما ينقر مستخدم غير مسجل، ستظهر نافذة منبثقة للتسجيل أو نافذة منبثقة للدفع، والتي ستكون أنيقة للغاية.

“غير قادر على عرض المحتوى دون الرد” - يشارك المستخدمون النشطون معرفتهم بإيثار ويريدون المزيد من الردود على مشاركاتهم. هذا أيضًا ما يريده مالكو المنتدى. أعتقد أن هذه الميزة مفيدة لتطوير المنتدى.

[اقتباس=“Lilly، المشاركة: 4، الموضوع: 279350، اسم المستخدم: Lilly”]
هل يقوم مكون السمة هذا بما تريد تحقيقه؟
[/اقتباس]

سأحاول استخدام هذا المكون الإضافي. شكرًا لك، Lilly!

إعجابَين (2)

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

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

أعتقد أن مكون السمة Gated Topics in Category يقوم بنفس الشيء. :slightly_smiling_face:

4 إعجابات

هذا سهل. يوجد سمة في نموذج الموضوع تعرض ما إذا كنت قد رددت عليه أم لا. تسمى posted. لقد كتبت مكونًا سابقًا (Composer tip under specific tag topics) يحدد ما إذا كنت قد رددت. إذا كنت مبرمجًا ، فيمكنك إلقاء نظرة على ما كتبته. بالاقتران مع طريقة decorateCookedElement الخاصة بـ API ، يمكن تنفيذه.

أنا كسول جدًا لكتابة الكود المحدد. لقد كنت مشغولاً للغاية مؤخرًا.

<script type="text/discourse-plugin" version="1.6.0">

const user = api.getCurrentUser();

const I18n = require("I18n");

const pid = "post_hider"

const tl4_css = `
.d-editor-preview [data-theme-hide] {
  background: var(--tertiary);
  color: var(--secondary);
  border-top: 2px solid var(--secondary);
  position: sticky;
  top: 0;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.d-editor-preview [data-theme-hide]::before {
  content: "تم إخفاء هذا المنشور";
}
`

api.addPostClassesCallback((attrs) => {
if (attrs?.cooked?.includes(`div data-theme-hide="true"`)) {
  return ["hiddened"]; // لإضافة CSS ، يعتمد كيفية كتابة CSS التالية عليك
} else {
  return [];
}
});

if (!user) {
    api.decorateCookedElement((el, helper) => {
        function hide_post() {
            setTimeout(() => {
                try {
                    // document.querySelector(`[data-post-id="${helper?.widget?.attrs?.id}"]`)?.parentElement?.remove();
                } catch (err) {
                    console.log(el);
                    console.log(err);
                }
            }, 1000);
        }
        if (el?.querySelector(`[data-theme-hide="true"]`)) {
            el.innerHTML = `<p>تم إخفاء المنشور بواسطة المجتمع</p>`; // قم بتعديل هذا السطر
            hide_post();
        }
    }, {
        id: pid,
        afterAdopt: true,
        onlyStream: true,
    });
}


</script>

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

4 إعجابات

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.