حسنًا، إعادة توجيه إلى عنوان URL خارجي يحتوي على اسم المستخدم.
إليك مثال أساسي حول كيفية القيام بذلك، باستخدام واجهة برمجة التطبيقات الجديدة:
import { apiInitializer } from "discourse/lib/api";
import DButton from "discourse/components/d-button";
export default apiInitializer("1.8.0", (api) => {
const currentUser = api.getCurrentUser();
if (!currentUser) {
return;
}
const url =
"https://example.com/?u=" + encodeURIComponent(currentUser.username);
const iconComponent = `<template>
<li class="calculator">
<DButton
@href={{url}}
@icon="calculator"
class="icon btn-flat"
title="Calculator"
target="_blank"
/>
</li>
</template>`;
api.headerIcons.add("calculator", iconComponent, { before: "search" });
});
calculatorهو اسم فريدiconComponentيشير إلى قالب تضمين داخليtemplateكما ترى هنا، ولكنه يمكن أن يشير أيضًا إلى مكون قالب فئة تقوم بإنشائه في دليلcomponents.- يمكنك اختيار مكان وضع أيقونتك باستخدام
beforeأوafterمتبوعًا بالاسم الفريد لأيقونة الرأس.

لا تتردد في التعديل!
ملاحظة:
-
صيغة القالب
templateلن تعمل باستخدام واجهة المستخدم.ستحتاج إلى إنشاء مكون سمة بملفات منفصلة. لتوليد مكون سمة بسرعة، يمكنك استخدام Discourse CLI والتطوير معه بسهولة باستخدام محرر التعليمات البرمجية الخاص بك. أوصي به بشدة
يمكنك أيضًا استخدام القالب على Github: GitHub - discourse/discourse-theme-skeleton: Template for Discourse themes.
- لاستخدام مكون قالب، يجب أن يكون امتداد الملف
.gjs.
- لاستخدام مكون قالب، يجب أن يكون امتداد الملف
أخبرني إذا كنت بحاجة إلى مزيد من المساعدة!