كيفية وضع زر في زاوية الشاشة؟

مرحبًا أيها المجتمع!
أحاول دراسة كيفية إنشاء إضافة (plugin) في Discourse. حاليًا، أحاول معرفة كيفية وضع زر في زاوية الشاشة، وعند النقر عليه، معالجة الطلب. كيف يمكنني فعل ذلك؟ الأمر بسيط جدًا، لكنني لم أستطع استيعابه.

أيضًا، رأيت في بعض الإضافات مكالمات مثل includePostAttributes و decorateWidget. أين يمكنني العثور على قائمة بجميع الطرق التي يسمح Discourse باستخدامها؟

هل يمكنك نشر لقطة شاشة توضح المكان الذي تريد إضافة الزر فيه وماذا تريد أن يحدث عند النقر عليه؟

أعتقد أنك تشير إلى واجهة برمجة التطبيقات (API) للإضافات. يمكنك العثور على جميع الطرق في هذه الواجهة - مع بعض الأمثلة - هنا

https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/app/lib/plugin-api.js

يمكنك أيضًا العثور على شرح أكثر تفصيلاً لبعض الطرق الأكثر شيوعًا في هذه الواجهة هنا

شكرًا لك، سأقوم بمراجعة قائمة الأساليب.
لقطة الشاشة:

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

ما تبحث عنه يُسمى position: fixed وهو خاصية في CSS. يمكنك قراءة المزيد حول تموضع CSS هنا

تجعل position: fixed العنصر يبقى في نفس الموضع (نسبيًا إلى نافذة العرض) حتى لو قمت بالتمرير للأسفل.

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

هل هناك مشكلة محددة تحاول حلها يمكن أن نساعدك فيها؟

شكرًا مرة أخرى على المعلومات. أنا على دراية بكل ذلك. أعتقد أن مشكلتي هي أنني لا أفهم أين يجب وضع ملفات CSS. لدي ملفات Ruby وملفات JS، لكن أين توضع ملفات CSS/Sass؟

رائع :+1:

بما أنك ذكرت أن لديك بالفعل ملفات Ruby، فأنا أظن أنك تعمل على إضافة (plugin)، أليس كذلك؟

لذا، للإجابة على سؤالك

أنصحك بالنظر إلى هيكل المجلدات لبعض الإضافات الرسمية الحالية لدينا، مثل هذا

أو هذا

إذا نظرت إليها، ستلاحظ أن ملفات SCSS تُوضع دائمًا في

_ROOT_/assets/stylesheets/

وهذا هو المكان الذي يجب أن توضع فيه ملفات SCSS الخاصة بك إذا كنت تصنع إضافة.