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

هذا سهل. يوجد سمة في نموذج الموضوع تعرض ما إذا كنت قد رددت عليه أم لا. تسمى 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 إعجابات