أود استدعاء دالة JavaScript في كل مرة يغير فيها المستخدم الصفحة. أفهم أكواد JS و Ruby on Rails، لكنني لست متأكداً من أفضل ممارسة في Discourse لتحقيق ذلك. سأكون ممتناً لأي نصائح.
ملاحظة: أستخدم نسخة من Discourse مُحاوية عبر Docker.
أود استدعاء دالة JavaScript في كل مرة يغير فيها المستخدم الصفحة. أفهم أكواد JS و Ruby on Rails، لكنني لست متأكداً من أفضل ممارسة في Discourse لتحقيق ذلك. سأكون ممتناً لأي نصائح.
ملاحظة: أستخدم نسخة من Discourse مُحاوية عبر Docker.
اعتمادًا على ما ترغب في فعله، قد تختلف الطرق بشكل كبير، ولكن لاستدعاء دالة أو تنفيذ إجراء في كل مرة يغير فيها المستخدم الصفحة، يمكنك استخدام واجهة برمجة التطبيقات (API) للإضافات.
هنا يمكنك الاطلاع على دليل المطورين لاستخدام تقنيات ومكونات Discourse (مثل JavaScript المخصص).
وهنا يمكنك العثور على معلومات حول withPluginApi.
هذا مثال بسيط حيث أسجل عنوان URL الحالي بالإضافة إلى عنوان الصفحة.
أقوم بذلك في ملف common/head_tag.html، والذي يمكن تعديله عبر المسار /admin/customize/themes/9/common/head_tag/edit.
<script type="text/discourse-plugin" version="0.8">
api.onPageChange((url, title) => {
console.log(url, title);
});
</script>
شكرًا لك @jordan.vidrine على الرد. سأتحقق من هذه الموارد. لدي سؤال آخر، ربما يكون أكثر ارتباطًا بالنسخة المعتمدة على Docker. هل توجد أفضل ممارسة لتعديل الملفات داخل الحاوية؟ هل يمكنني ببساطة “الدخول” إلى الحاوية وتعديل الملفات ثم إعادة تشغيلها؟
في بعض الحالات، أعتقد أن ذلك قد يعمل. (ليس لدي الكثير من الخبرة مع Docker)
يمكنك أيضًا تعديل ملفات css و html معينة، بالإضافة إلى وسوم <script> من لوحة تحكم Discourse عند زيارة موقعك في /admin/customize/themes/9/common/head_tag/edit.