استبدال أيقونة الرابط للمشاركة فقط

أجد أن هذا الجزء من واجهة Discourse محير. في المحرر، يُستخدم أيقونة الرابط لإدراج رابط تشعبي (وهذا منطقي، فهذا ما يجب أن يكون عليه، وهو نفس ما في 99% من الواجهات الأخرى)

لكن عند عرض منشور ما، تُستخدم نفس الأيقونة للرابط/المشاركة على وسائل التواصل الاجتماعي

في حين أنني أجد أنه من المنطقي أكثر هنا استخدام أيقونة مشاركة مألوفة share-icon

لمدة من الوقت، استخدمت نهج واجهة برمجة التطبيقات لتغيير الأيقونة

  <script type="text/discourse-plugin" version="0.8">
    api.replaceIcon('link', 'external-link-tab');
 </script>

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

??? (معرفتي بكيفية عمل Discourse داخليًا سطحية إلى حد كبير)

4 إعجابات

يتطلب هذا تغييرًا في نظام Discourse. سنضطر إلى نسخ هذه الأيقونة داخليًا مع الحفاظ على استخدام كلتا النسختين للأيقونة نفسها افتراضيًا، مما يسمح للمستخدمين النهائيين باستهداف كل نسخة على حدة لتغييرها.

مرة أخرى، أنا لا أبحث عن أيقونة! يمكنني استخدام أي أيقونة أريدها على موقعي.

ما أريده فعلاً هو وجود طريقة في discourse، كما هو محدد في كيفية تجاوز أيقونة عبر واجهة برمجة التطبيقات، لتغيير أيقونة زر مشاركة المنشور دون تغيير الأيقونة المستخدمة في المحرر لزر إدراج الرابط التشعبي.

إعجاب واحد (1)

نحن ندرس جدوى القيام بذلك بالضبط، ونوافق على أنه سيكون مفيدًا.

نعم، بمجرد أن يُدمج التزكية أدناه في tests-passed، يمكنك القيام بما تسعى إليه:

(قد يستغرق الأمر ساعة تقريبًا حتى يُدمج في tests-passed.)

لذلك، أضفت معرفات جديدة لأيقونات المشاركة في أزرار المنشورات والمواضيع، مما يسمح لك بعزلها الآن في استدعاء replaceIcon عبر واجهة برمجة التطبيقات، على النحو التالي:

api.replaceIcon('d-post-share', 'share-square');
api.replaceIcon('d-topic-share', 'share-square');

6 إعجابات

شكرًا لك! كنت أحاول فقط معرفة سبب اختلاف أسماء الفئات الخاصة بأيقونة زر المشاركة هنا على ميتا عن إصدار ديسكورد المحدّث لدينا.

3 إعجابات

رأيت التغيير وقد تم تطبيقه وهو متاح في التحديثات، وقمت بتشغيله على موقعنا. كملاحظة لأي شخص آخر، يتطلب استخدام الأيقونة إضافتها عبر admin -> settings -> svg icon subset باستخدام fa-share-square

عملت بشكل مثالي. لقد انتقلت أيقونات المشاركة لدينا من:

إلى

شكرًا مرة أخرى

5 إعجابات

تم بالفعل! انظر المنشور أعلاه

تمكنت من تحديث discourse الخاص بي منذ ساعات، وهذه الميزة الجديدة موجودة الآن.

3 إعجابات

هذا مثير للاهتمام. لقد جربت للتو تحديث نسخة Discourse الخاصة بي ولا أزال لا أرى ذلك.

اعذرني بينما أقوم ببعض استكشاف الأخطاء وإصلاحها… :slight_smile:

أنا أحب هذا التغيير حقًا. ما الذي يجب علي فعله لتغيير الأيقونة؟

<script type="text/discourse-plugin" version="0.8">
        api.replaceIcon('d-post-share', 'share-square');
        api.replaceIcon('d-topic-share', 'share-square');
    </script>

فقط أضف هذا إلى header الخاص بك عند تعديل السمة

3 إعجابات

لقد اكتشفت أن هناك خطوة إضافية: يجب أن تجعل أيقونة Font Awesome هذه متاحة كأيقونة SVG. وإلا، سيظهر الزر فارغًا بعد إجراء تعديلات على موضوع الرأس.

تبدو إعداداتي كما يلي:

إعجاب واحد (1)

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

يمكنك التأكد من اكتمال التحديث عن طريق فحص الزر في المتصفح؛ فإذا كان يتضمن الفئة d-icon-d-post-share (فقبل التحديث كانت الفئة d-icon-link).

يجب عليك تعديل رأس قالبك (theme header) كما هو موضح هنا Substitute Link Icon Only For Sharing - #22 by ondrej

إعجاب واحد (1)

تم إغلاق هذا الموضوع تلقائيًا بعد يومين. لم يعد مسموحًا بإضافة ردود جديدة.