إعدادات لا تظهر

مرحباً بالجميع، أبدأ في تطوير الأشياء لـ Discourse، وأعمل على مكون سمة.
الرابط: GitHub - NateDhaliwal/discourse-persistent-banner: A theme component for Discourse that cannot be closed by the user.

عند وضعه على Theme Creator، لا تظهر الإعدادات، على الرغم من أن لدي settings.yml. أي أفكار؟

هل ترى أي رسائل خطأ في منشئ السمات؟

أعتقد أنه يجب عليك استخدام نفس علامات الاقتباس في البداية والنهاية.

قد يكون هذا أيضًا مشكلة. سأجرب default: "".

ربما تريد إضافة “block” إلى الخيارات. بخلاف ذلك، سيتعين عليك استخدام زر التراجع لاختيار ذلك مرة أخرى.

عذرًا، لقد أدركت للتو أنني كنت أنقر على “إنشاء جديد” بدلاً من استيراده…
ولكن الآن، عندما أحاول استخدام عنوان URL، فإنه يقول إن about.json غير صالح أو غير موجود، ويسألني إذا كان سمة.
About.json:

هل هناك خطأ ما؟

فقدان فاصلة بعد عنوان URL للترخيص.

:roll_eyes:
@merefield هل سيكون الإصدار في \"\"؟

ربما ذلك أيضًا. فقط انظر إلى الأمثلة.

شكرًا! آخر واحد، لا يبدو أنني أستطيع عرض المتغير.
https://github.com/NateDhaliwal/discourse-persistent-banner/blob/main/common/header.html

هل كان ذلك بسبب أنني لم أقم بتهيئته بشكل صحيح؟ حاولت اتباع الدليل…

  1. لا تستخدم “header.html”، استخدم مكونًا مناسبًا (يفضل ملف .gjs، ولكن قد يكفي ملف .hbs).
  2. استخدم مساعد html-safe كلما قمت بإخراج html من الإعدادات أو المتغيرات.

هل سأضطر إلى استخدام

import Component from "@glimmer/component";

export default class PracticeComponent extends Component {
  get bannerLinks() {
    return JSON.parse(settings.banner_links);
  }
}

حينها؟

انظر إلى المليارات من الأمثلة :stuck_out_tongue_winking_eye:

تحتاج فقط إلى استخدام ملف gjs إذا كنت بحاجة إلى معالجة الأشياء باستخدام جافاسكريبت، وإلا فقد يكون ملف قالب hbs كافيًا. قم بالتجربة.

لست متأكدًا مما إذا كنت أسير في الاتجاه الصحيح.
لقد أنشأت javascripts/persistent-banner.hbs بهذا:
https://github.com/NateDhaliwal/discourse-persistent-banner/blob/main/javascripts/persistent-banner.hbs

لكن لا شيء يظهر. حاولت وضعه في أماكن مختلفة، وما زال لا يعمل.

حاولت النظر إلى الأمثلة، لكن يبدو أن الكثير منها لا يساعد.
أي نصيحة؟

في أي منفذ إضافي تريد وضع لافتتك؟

اطّلع على Using Plugin Outlet Connectors from a Theme or Plugin

يمكنك استخدام https://meta.discourse.org/t/add-a-featured-topic-list-to-your-discourse-homepage/132949?u=moin كمثال.

يمكنك استخدام (deprecated) Plugin outlet locations theme component للعثور على أسماء وأماكن منافذ الإضافات. على سبيل المثال، “above-main-container” هو العنصر العلوي فوق قائمة المواضيع، ولكن ليس فوق الشريط الجانبي.

بالإضافة إلى ذلك، يُعد الاطلاع على كود مكون موضوع مخصص (Customization > Theme component) الذي يضيف شيئًا مشابهًا طريقة رائعة للتعلم.

لا تحتاج ولا ينبغي عليك وضع علامات script في ملفات hbs. يجب أن تقتصر على محتوى القالب.

لا تخمن، اقرأ الأدلة:

إذًا… تمكنت من جعله يعمل دون استخدام ملف hbs، ولكن بدلاً من ذلك باستخدام علامة <script> مع handlebars، وهو يعمل الآن.
أستخدمه هكذا في الوقت الحالي، لكنني سأستمر في محاولة استخدام ملف hbs بدلاً من ذلك.

لقد أنشأت طلب سحب سريع لك حتى تتمكن من رؤية الطريقة الصحيحة لتقسيم الملفات. لا تتردد في الدمج أو مجرد إلقاء نظرة على الفرع.

شكراً جزيلاً! لقد نجح الأمر الآن!

لا تقلق يا نيت. استمر في التجريب والقراءة والاطلاع على أمثلة أخرى. في لمح البصر، ستكون أفضل مني بكثير في هذه الأمور المتعلقة بالتطوير :smiley: :raised_hands:

شكرا للتشجيع!