عند النقر فوق الزر، يظهر تراكب يحتوي على نموذج بحث.
يسمح نموذج البحث للمستخدم بإدخال بعض مصطلحات البحث (على سبيل المثال، اسم مدينة)، ويتم تشغيل بحث باستخدام محرك بحث صور خاص (يعمل تحت عنوان URL الخاص بي ويتطلب مفتاح API) للبحث عن صور لتلك المدينة.
يتم عرض أفضل 5 صور للمستخدم. يختار المستخدم صورة واحدة، ويختفي التراكب، ثم تتم إضافة الصورة مع سلسلة البحث داخل المؤلف كمسودة. يمكن للمستخدم الآن متابعة كتابة ما كان ينوي نشره.
حالة الاستخدام الفعلية الخاصة بي أكثر تعقيدًا بعض الشيء، ولكن هذا هو ما أريد تحقيقه تقريبًا. الهدف ببساطة هو مساعدة المستخدم في إنشاء مسودات منشورات بالصور بشكل أكثر ملاءمة من الذهاب إلى محرك البحث ونسخ صورة يدويًا إلى المؤلف لإنشاء مسودة.
لقد تمكنت بالفعل من إنشاء إضافة بزر جديد باستخدام حقل المؤلف كموصل. يمكن النقر فوق الزر ويقوم بتشغيل إجراء. لكنني عالق الآن.
بعض الأسئلة:
هل هناك أي إضافات يمكن أن تجعل حياتي أسهل؟ كنت أفكر ربما في إضافة Pavilion wizard، لكنني رأيت أن إجراء استدعاءات لواجهة برمجة التطبيقات يأتي فقط مع الإصدار المدفوع، وحاليًا من المبكر جدًا بالنسبة لي أن أقرر ما إذا كان الأمر يستحق إنفاق المال على هذا.
ما هو فئة CSS الصحيحة / معرف div الذي يمكنني استهدافه لتنشيط تراكب؟
ما هو مثال جيد لمعرفة كيفية إجراء استدعاء لواجهة برمجة التطبيقات عبر الواجهة الخلفية؟ لا أريد إعطاء مفتاح API لمحرك البحث للعميل، لذلك يجب أن يمر عبر الواجهة الخلفية.
لست متأكدًا مما هي واجهة برمجة تطبيقات الإضافة بالفعل وما إذا كنت سأحتاجها. (أنا أواجه صعوبة قليلاً مع الوثائق المنتشرة في كل مكان.)
في غضون ذلك، وجدت بعض الموارد التي وجدتها مفيدة. أتمنى حقًا أن يتم وضع هذه الموارد بشكل أكثر بروزًا في برنامج تعليمي “كيفية كتابة إضافة”. بالنسبة للمبتدئين، ليس من الواضح أنها موجودة حتى.
واجهة برمجة تطبيقات Discourse الخاصة (ليست مفيدة لكتابة الإضافات، ولكنها لا تزال ذات صلة للمبتدئين): https://docs.discourse.org/
فهمت أيضًا أن واجهة برمجة تطبيقات الإضافات الخلفية هي في الأساس Rails أو Ruby - ولكن ليس من الواضح كيف تتفاعل الواجهة الأمامية والخلفية بالضبط مع بعضها البعض، أو أين “الخطاف” الأولي للواجهة الخلفية. بالتأكيد، هناك ملف plugin.rb يجب وضعه، لكنني أتساءل عما إذا كانت هناك أي وثائق حول نقطة الدخول إلى هذا الملف. ربما يكون هذا واضحًا تمامًا لمبرمجي Ruby on Rails، لكنني لست واحدًا منهم، لذا فإن الدخول هنا صعب.
لا يبدو أنك بحاجة إلى أي تغييرات في الواجهة الخلفية. السلوك الذي تصفه مشابه جدًا لكيفية عمل نافذة “إدراج رابط تشعبي” - يمكنك البحث عن مواضيع، وتحديد أحدها لإضافته كرابط، وسيتم إضافة رابط إلى المنشئ عند التأكيد.
يمكنك إضافة الزر إلى منفذ إضافة، أو إلى شريط الأدوات عبر api.onToolbarCreate مضاف إلى مُهيئ، وفتح نافذة مشابهة لكيفية قيامنا بذلك لنافذة “إدراج رابط تشعبي”. يمكنه إضافة نص إلى المنشئ عن طريق الاستفادة من كائن toolbarEvent من إجراء شريط الأدوات (إذا كنت بحاجة إلى منفذ، يمكنك أيضًا التفاعل مع المنشئ عبر مشغلات appEvents).
شكراً، هذا مفيد جداً. نعم، يبدو أن النافذة المنبثقة هي ما أبحث عنه: فهي تقاطع تدفق المستخدم، وفقط عندما يكمل المستخدم النافذة المنبثقة، تعود الأمور إلى الحالة السابقة. سألقي نظرة على كيفية عمل نافذة إدراج الارتباط التشعبي.
سؤال: أين يمكنني العثور على وثائق لـ DModal و DButton والكائنات الأخرى الخاصة بـ Discourse؟