أرغب في تعديل بعض عناصر HTML الأساسية في إضافة أقوم بتجربتها (سيكون من المريح أن تكون جميع التعديلات في إضافة واحدة). سيكون هذا HTML أضعه في قسم header من مخصص السمات في لوحة تحكم المسؤول، لو كنت أستخدم تلك اللوحة بدلاً من إضافة.
في سمة، ستجد مجلداً مباشراً يحمل اسم common يحتوي على ملفات مختلفة، مثل header.html.
أعرف أن ملفات الأنماط الشائعة للإضافات يمكن وضعها في plugin/assets/stylesheets/common. إذن أين يجب أن أضع ملف header.html هذا في إضافة؟
بالنسبة لـ CSS، المكافئ في الإضافة هو [plugin]/assets/stylesheets/common/[file.scss]
اتباعًا لهذا التنسيق، حاولت إضافة ملف في [plugin]/assets/views/layouts/common/header.html، لكنه لم ينجح (كما أن مجرد استخدام views/header.html لم ينجح أيضًا).
يمكنني تغيير القوالب، لكن بالنسبة لتغييرات HTML البسيطة مثل تلك التي نقوم بها في السمات، سيكون من الجيد إجراء تغيير HTML بسيط في header.html (أو ما يعادله). على سبيل المثال، أين ستضع التالي في إضافة (تقوم بالفعل بأشياء معقدة على جانب الخادم، ومن هنا الحاجة إلى إضافة):
أجد أن الاختلافات في كيفية تنفيذ أشياء كهذه في إضافة مقابل في سمة مربكة أيضًا. يمكنك التهرب من الأمر واستخدام مكون سمة لهذه الأشياء، لكن يبدو أنك تبحث عن الإجابة الأفضل وليس الأسرع. (رغم وجود بعض المزايا في فصل هذه الأشياء لصيانة منفصلة)
أعتقد أنك بحاجة إلى إضافة سطر إلى ملف plugin.rb يتضمن الملف الذي تريده. ما أفعله هو استنساخ شيء من مستودع discourse على GitHub يُسمى all-the-plugins، ثم أبحث في grep هناك عن مثال.
رائع. شكرًا لك. نعم، كنت أفكر ربما أن الوضع هو أنه لا توجد حاليًا طريقة مباشرة لإجراء تغييرات HTML في ملحق كما تفعل في سمة—لإجراء تغييرات HTML يجب عليك الدخول إلى القوالب/الموصلات في ملحق (ليس معقدًا للغاية، لكنه مختلف عن عقلية السمات البسيطة مثل common/header.html).
سألقي نظرة على plugin.rb لأرى ما إذا كان ذلك أسهل حاليًا من مجرد اتباع مسار القالب/المكون العادي.