افتح نافذة تسجيل الدخول المنبثقة أو قم بتشغيل الحدث عند الضغط على الزر

هناك طريقة بسيطة مثل: الزر يحمل الفئة sign-up-button

عند النقر عليه سيفتح النافذة المنبثقة للتسجيل. بدلاً من استخدام a: href هو تسجيل


لقد استخدمت api.decorateWidget ('post: after', helper

لكن هناك NAME:LOCATION فريد لوضع مقتطف كود في نهاية المقالة.

أو المكان للبحث عن NAME: LOCATION

post:after يجب أن تعمل إذا كنت ترغب في إضافة عناصر جديدة إلى أسفل المنشور. لاحظ أن لديك مسافة بين post: و after.

أعتقد أن هذا يتعلق بما تحاول فعله.

إذا كانت لا تزال لديك مشاكل، يرجى نشر باقي الكود الذي تستخدمه.

شكرًا لمساعدتك (خاصة للمبتدئين)
هذا هو الكود بالكامل

<script type="text/discourse-plugin" version="0.8.25">
    const user = api.getCurrentUser();
    if (!user) {
    api.decorateWidget('post:after', helper => {
	let h = helper.h, attrs = helper.attrs;
	// console.log(attrs);
	return helper.h('div.fixed-bottom-bar.d-none.d-lg-block',
		[
		    helper.h('div.wrapper',
		        [
		        	helper.h('div.logo',
			        	helper.h('img', {
		                    src: 'https://thuvienmuasam.com/uploads/default/original/1X/776142524c0d5c0430a603fde63a8bad2f77b267.svg',
		                    alt: 'ThuVienMuaSam'
		                })
		        	),
		            helper.h('div.content.d-flex.justify-content-between.ml-1',
		            	[

			        		helper.h('div.float-left',
			         		[
			        			helper.h('span.title','مرحبًا بك في مكتبة التسوق!'),
								helper.h('br'),
								helper.h('span.text',
			         			[
			         				helper.h('span','ابدأ '),
									helper.h('a.text-primary.cursor-pointer.sign-up-button',{ href: '/signup'},
										helper.h('strong','إنشاء حساب في TVMS')
									),
									helper.h('span',' للحصول على المزيد من المقالات المثيرة من '),
									helper.h('a',{ href: '/u/'+helper.attrs.username },
										helper.h('strong',""+helper.attrs.username),
									),
								])
							]),
							helper.h('div.float-right.d-flex.align-items-center',
								helper.h('button.btn-primary.btn',{type:'button'},
									helper.h('a', { href: '/signup'},
										helper.h('span.d-button-label','انضم')
									),
								)

							),
						]
			        ),
		        ]
		    )
		]
	);
    });
}
</script>

لقد استخدمت helper.h(‘a’, { href: ‘/signup’} ولكن عند النقر على الزر، يتم إعادة تحميل الصفحة بدلاً من عرض إطار التسجيل مباشرة

شكرًا لمشاركة الكود الخاص بك :+1:

إذا كنت تريد أن تظهر نوافذ تسجيل الدخول / إنشاء الحساب مباشرةً، فيجب عليك استخدام إجراءات showLogin و showCreateAccount المدمجة.

لذلك، بدلاً من هذا:

helper.h(
  "button.btn-primary.btn",
  { type: "button" },
  helper.h(
    "a",
    { href: "/signup" },
    helper.h("span.d-button-label", "Tham Gia")
  )
)

يجب أن تستخدم شيئًا مثل هذا لنافذة إنشاء الحساب:

helper.attach("button", {
  label: "sign_up",
  className: "btn-primary btn-small sign-up-button",
  action: "showCreateAccount"
})

أو هذا إذا كنت تريد نافذة تسجيل الدخول:

helper.attach("button", {
  label: "log_in",
  className: "btn-primary btn-small login-button",
  action: "showLogin",
  icon: "user"
})

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

شكرًا لك على عودتك وحل جميع الأسئلة :smile:

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

أين أضع هذا الكود في ثيم النعناع الخاص بي؟

يمكنك إنشاء مكون سمة جديد وإرفاقه بسمتك.

  • انتقل إلى المسؤول → تخصيص

  • انقر فوق الزر تثبيت

آمل أن يساعد ذلك. :+1:

في سمة النعناع، أين يجب وضع هذا الرمز؟

هل جربت الخطوات التي قدمها @Arkshine؟
نظرًا لأنه لا يمكنك تعديل السمات البعيدة، فمن الأفضل إنشاء مكون سمة خاص بك وإضافته إلى سمة mint.

console.error("API أو دالة showLogin غير متاحة.");

لقد اتبعت الخطوات ولكن عندما وصلت إلى صفحة تسجيل الدخول، لم يتم فتح النموذج تلقائيًا

<script type="text/discourse-plugin" version="0.8.25">
    // Function to check if the current page is the login page
    function isLoginPage() {
        return window.location.pathname === "/login";
    }

    // Trigger login action when the page loads
    document.addEventListener("DOMContentLoaded", function() {
        console.log("DOMContentLoaded event fired.");
        
        // Check if the current page is the login page
        if (isLoginPage()) {
            console.log("Current page is the login page.");
            
            // Trigger login action
            if (typeof api !== "undefined" && typeof api.showLogin === "function") {
                console.log("API and showLogin function are available.");
                api.showLogin();
            } else {
                console.error("API or showLogin function are not available.");
            }
        } else {
            console.log("Current page is not the login page.");
        }
        
        // Get the login button element
        const loginButton = document.getElementById("loginButton");

        // Trigger a click event on the login button to open the login modal
        if (loginButton) {
            loginButton.click();
        }
    });
</script>

أتلقى console.error("API or showLogin function are not available.