لا أوصي باستخدام عنصر واجهة مستخدم؛ سيختفي في النهاية كجزء من التحديث الأساسي.
وينطبق الشيء نفسه على api.addToHeaderIcons؛ لقد تم إيقافه الآن لصالح api.headerIcons.add.
إليك بعض الاقتراحات:
-
أشجعك على استخدام GitHub - discourse/discourse-theme-skeleton: Template for Discourse themes كمرجع عند إنشاء مكون سمة. يحتوي على أحدث ملفات التكوين. إنه مفيد لتدقيق/تنسيق التعليمات البرمجية وهو ممارسة جيدة للحصول على هيكل قياسي.
-
عند استخدام بناء الجملة
\u003ctemplate\u003e، أعد تسمية الملف بـ.gjs(glimmer JS)؛ وإلا فقد لا يعمل. -
في مثالي، يمكنك نقل القالب إلى ملفه الخاص، على سبيل المثال:
/javascripts/discourse/components/logout-header-button.gjs
import DButton from "discourse/components/d-button";
import routeAction from "discourse/helpers/route-action";
const LogoutHeaderButton = \u003ctemplate\u003e
\u003cli class="logout"\u003e
\u003cDButton
@action={{routeAction "logout"}}
class="btn-flat icon"
@icon="sign-out-alt"
@title="user.log_out"
@label="user.log_out"
/\u003e
\u003c/li\u003e
\u003c/template\u003e;
export default LogoutHeaderButton;
ثم، في المُهيئ، يمكنك استيراد المكون واستخدامه كمعلمة في headerIcons:
import LogoutHeaderButton from "../components/logout-header-button";
export default apiInitializer("1.28.0", (api) =\u003e {
if (api.getCurrentUser()) {
api.headerIcons.add("logout", LogoutHeaderButton, { before: "auth" });
}
});
- يمكن تعديل موقع الزر. يمكنك قراءة الوثائق:
أخبرني إذا كانت لديك أسئلة. يمكنني دائمًا تقديم طلب سحب لاحقًا إذا كنت بحاجة إلى مثال. ![]()