إعدادات الإضافات التابعة... رائعة!

توجد توثيقات، لكنها حالياً مجزأة إلى حد ما بدلاً من أن تكون مقدمة كدليل مطور مستقل.

المراجع الأساسية المعتمدة هي:

  • توثيق المخطط في config/site_settings.yml:52، ويغطي depends_on وdepends_on_values وdepends_behavior وdependent_setting_display.

  • إرشادات وأمثلة أكثر تفصيلاً في .skills/discourse-site-settings/SKILL.md:203.

  • مواصفات سلوك الخلفية في spec/lib/site_setting_extension_spec.rb:706.

  • حل تبعيات الواجهة الأمامية في frontend/discourse/admin/services/admin-site-setting-store.js:41.

  • أمثلة واجهة المستخدم في frontend/discourse/tests/acceptance/admin-site-settings-test.js:142.

النحو الأساسي هو:

child_setting:
  default: ""
  depends_on:
     - parent_setting
  depends_behavior: "hidden"

بالنسبة للآباء من نوع enum أو string:

 child_setting:
    default: ""
    depends_on:
      - parent_setting
    depends_on_values:
      parent_setting:
        - enabled_mode
        - another_mode
    depends_behavior: "hidden"
    dependent_setting_display: "inline"

قيد مهم: يمكن أن تحتوي التبعيات على عدة آباء مباشرين، لكن حل التبعيات ليس متعدٍ. لا يؤدي السلسلة المتداخلة مثل A → B → C تلقائياً إلى جعل C تأخذ في الاعتبار ما إذا كان B مخفياً بواسطة A؛ بل تقيم C فقط القيمة المخزنة لـ B.

4 إعجابات