تجاوز الإعداد الافتراضي للاستطلاع لـ "public=true"

كنت أتساءل عن عدد المواقع التي تعاني من هذا أيضًا. أود أيضًا أن يكون عامًا بشكل قياسي.

أعتقد أيضًا أن واجهة المستخدم يمكن أن تكون أفضل.

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

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

إعجابَين (2)

أنا جديد ولكنني مهتم بحل المشكلة لذا سألت ChatGPT:

إليك الإجابة:

النص البرمجي الذي وجدته هو بداية جيدة. إنه يعدل وحدة تحكم poll-ui-builder لتعيين خاصية publicPoll إلى true عند استدعاء دالة onShow() لوحدة التحكم. هذا هو المقصود بالفعل إضافته كمكون سمة.

ومع ذلك، قد لا يعمل الكود بسبب ترتيب التنفيذ. تقوم طريقة onShow() الأصلية بتعيين publicPoll إلى false ثم يقوم التعديل بتعيين publicPoll إلى true بعد ذلك.

الطريقة الصحيحة ستكون استدعاء طريقة onShow الخاصة بالوالد أولاً، ثم تعيين publicPoll إلى true:

<script type="text/discourse-plugin" version="0.8">
api.modifyClass("controller:poll-ui-builder", {
  onShow() {
    this._super(...arguments);
    this.set('publicPoll', true);
  }
});
</script>

يمكنك إضافة هذا النص البرمجي إلى السمة الخاصة بك باتباع هذه الخطوات:

  1. انتقل إلى لوحة تحكم مسؤول Discourse.
  2. ضمن قسم “تخصيص”، انقر فوق “السمات”.
  3. حدد السمة التي تريد تعديلها.
  4. في شاشة تحرير السمة، انقر فوق “تحرير CSS/HTML”.
  5. في الشريط الجانبي الأيسر، انقر فوق “</> المشترك”.
  6. الصق النص البرمجي أعلاه في قسم “</> المشترك”.
  7. انقر فوق زر “حفظ”.

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

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

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

شيء آخر أود تغييره هو سلوك واجهة المستخدم، أريد تخطي الشاشة البسيطة، لذا سألت ChatGPT مرة أخرى:

في الكود الحالي الخاص بك، يتم التحكم في العرض الممتد بواسطة خاصية showAdvanced. إذا تم تعيينها على true، فسيتم عرض العرض المتقدم.

لعرض العرض المتقدم دائمًا، يمكنك تعديل طريقة onShow() في وحدة تحكم poll-ui-builder لتعيين showAdvanced على true. يمكنك إضافة هذا التعديل إلى مكون السمة الذي أنشأته سابقًا. إليك النص البرمجي المحدث:

<script type="text/discourse-plugin" version="0.8">
api.modifyClass("controller:poll-ui-builder", {
  onShow() {
    this._super(...arguments);
    this.set('publicPoll', true);
    this.set('showAdvanced', true);
  }
});
</script>

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

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

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

إعجابَين (2)

من الرائع أنك اكتشفت ذلك. :+1:

كملاحظة جانبية، عندما تريد تعديل خصائص متعددة، يمكنك استخدام هذه الصيغة:

    this.setProperties({
        'publicPoll': true,
        'showAdvanced': true
    });
إعجابَين (2)

ليس أنا حقًا، أنا فقط أُغذي Chat-GPT بالكود المُعطى من هذا الرابط:

ثم أعطيته المحاولة الأولى من @JammyDodger وسألته إذا كان بإمكانه حل متطلباتي الاثنين :smiley:

سيكون رائعًا إذا نجح الأمر وشيء آخر رائع عن discourse تعلمته.

إعجابَين (2)

لقد اختبرته وهو يعمل! :partying_face:

هذا رائع. :slight_smile: شكراً جزيلاً لك. :pray:

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

وهنا هو كمكون سمة:

4 إعجابات

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

هل لا يزال يعمل في منتدياتك يا @JammyDodger و @nathank؟

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

لا أعتقد أنه يعمل على موقع الاختبار الخاص بي الآن أيضًا. هل يحتاج إلى تحديث لمراعاة بعض التغييرات الأخيرة؟

سأقوم بفصل هذا إلى موضوع Dev :+1:

إعجابَين (2)

لقد توصلت إلى أن النافذة المنبثقة التي كانت تستدعي هذا قد تمت إعادة هيكلتها وفقًا لما يلي:

ومع ذلك، لا يمكنني معرفة كيفية التفاعل معها عبر واجهة برمجة التطبيقات. ملف النافذة المنبثقة الجديد موجود هنا:

https://github.com/discourse/discourse/blob/main/plugins/poll/assets/javascripts/discourse/components/modal/poll-ui-builder.js

لا يمكنني معرفة كيفية استدعاء هذا الآن، حيث أن كيفية القيام بذلك غير مغطاة في الوثائق على حد علمي. هل يمكن لأحد المساعدة؟

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

أخبار جيدة. :slight_smile: أعتقد أن لدينا شيئًا لهذا…

6 إعجابات