هل يمكنني تغيير عنوان URL للشعار الرئيسي؟

على سبيل المثال، لنفترض أنني أردت أن يشير الشعار إلى forum.example.com/latest بدلاً من forum.example.com، كيف يمكنني فعل ذلك؟ هل يمكنني تغيير ذلك بسهولة دون الحاجة إلى مبرمج؟ يستضيف Discourse منتداي، وإذا كان لهذا أي تأثير.

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

يجب أن يعمل هذا في سمة:

<script type="text/discourse-plugin" version="0.4">
    api.changeWidgetSetting('home-logo', 'href', '/latest')
</script>

شكرًا لك! بما أنني مبتدئ، هل يمكنك تحديد المكان الذي يجب لصق هذا فيه؟ أفترض أنه ليس المكان المخصص لـ CSS؟

يُضاف إلى قسم الرأس (HEAD) على يمين عنصر CSS. يمكنك الاطلاع على المزيد حول ذلك في: Developing Discourse Themes & Theme Components

عذراً على إحياء الموضوع، ولكن كيف أجعل هذا يفتح في علامة تبويب جديدة بدلاً من نفس العلامة؟ هل يمكن استخدام target blank هنا؟

يتطلب هذا المزيد من التخصيص لأنه محظور في عنصر واجهة المستخدم home-logo هنا:

لذلك ستحتاج إلى استخدام changeWidgetSetting لتعيين عنوان URL، ثم reopenWidget لإضافة _blank وتجاوز سلوك النقر الافتراضي الذي يمنعه من الفتح في نافذة جديدة.

<script type="text/discourse-plugin" version="0.8">
  const { h } = require("virtual-dom");

  api.changeWidgetSetting('home-logo', 'href', 'https://discourse.org');

  api.reopenWidget("home-logo", {
     html() {
       return h(
         "a",
         { attributes: { href: this.href(), "data-auto-route": true, "target": "_blank" } },
         this.logo()
       );
     },

     click(e) {
       return;
     },
   });
</script>

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