مرحباً! أعتزم استخدام نسخة Discourse الخاصة بي للعبة تقمص أدوار. سيكون مكون سمة ملف تعريف المستخدم مثالياً لعرض الأشياء التي قدمها المستخدمون. على وجه التحديد، أرغب في أن أكون قادراً على رؤية قائمة بشخصيات المستخدم، وتقديمات المعرفة، ومشاهد تقمص الأدوار في الملف الشخصي.
المشكلة الوحيدة هي أن مكون السمة هذا يدعم فئة واحدة فقط في كل مرة. حاولت تعيين الفئة إلى 0 لجميع الفئات ثم إضافة علامات متعددة، لكن هذا جعل صفحة الملف الشخصي فارغة. لذلك، أود تحرير وتثبيت نسخ متعددة من مكون السمة هذا للحصول على صفحات ملف شخصي متعددة لهذه العناصر المنفصلة.
حاولت تنزيل مكون السمة وتحرير الملفات (على سبيل المثال، تغيير حالات portfolio إلى portfolio_2) ثم تثبيت النسخة الجديدة بالإضافة إلى النسخة الأصلية، لكن أياً منهما لا يعمل.
عند تمكين كليهما…
يظهر مثيل واحد فقط لزر الملف الشخصي على بطاقة المستخدم (portfolio_2)
يظهر مثيل واحد فقط لزر الملف الشخصي في ملف تعريف المستخدم (portfolio_2)
شكرًا لك، هذا مكان رائع للبحث. أعتقد أنني أفضل أن يكون زر المعرض (portfolio) في القائمة الأفقية للملف الشخصي (بجانب الملخص، النشاط، إلخ) ولكن المشكلة الأكبر التي لدي هي أنه إذا كانت هناك علامات متعددة، فأريد أن أتمكن من التصفية حسب العلامة، أي أن ينقر المستخدمون على الأزرار لعرض “الشخصيات” أو “المشاهد” فقط في المعرض في وقت واحد.
قد أنتهي من محاولة تجميع شيء لهذا الغرض من هذين المكونين من السمات، لكنني سأبحث أكثر أولاً. إذا كان لدى أي شخص أفكار إضافية، فيرجى مشاركتها!
أتفق 100% على أن هذا مكان جيد لحالة الاستخدام العامة. حالة الاستخدام الخاصة بي هي لمجتمع يتمحور حول لعب الأدوار حيث يبحث المستخدمون عن هذه المعلومات بانتظام، لذلك أريد أن تكون أزرار تتبع الشخصيات والمشاهد متاحة بأقل عدد ممكن من النقرات ومرئية للغاية. لا أقصد التقليل من شأن حلك على الإطلاق!
حسنًا، لقد اتخذت اتجاهًا مختلفًا عن محاولة استخدام إضافات المحفظة. لست متأكدًا مما إذا كان يجب علي نشر هذا هنا أو في موضوع جديد - إذا كان الأمر كذلك، فيرجى إخباري!
هل يمكن لشخص ما إلقاء نظرة على هذا وإخباري بما أفعله بشكل خاطئ (وآمل لماذا / كيف أصلحه)؟ لقد أمضيت ساعات وساعات في قراءة الدروس التعليمية، وكتابة وتعديل هذا، لكنني مبتدئ جدًا وقد وصلت إلى نقطة لم أعد متأكدًا فيها مما يجب تجربته بعد.
الهدف: عرض قائمة بالمواضيع من فئة معينة في صفحة ملخص المستخدم.
في حالة الاستخدام هذه، إنها لمنتدى RPG حيث سينشئ المستخدمون شخصيات لنشر القصص بها. أريد أن تعرض هذه الإضافة الشخصيات التي أنشأها المستخدم حتى لا يضطر أحد للحفر بعمق للعثور عليها. سيتم تخزين جميع أوراق الشخصيات في نفس المنتدى. لذا، أعتقد أنني أحتاج فقط إلى إنشاء قائمة مواضيع تحصل على مواضيع من المستخدم الصحيح والمنتدى الصحيح.
هذه محاولتي. حتى الآن، يظهر رأس قائمة المواضيع (الموضوع / الردود / النشاط) في المكان الصحيح، ولكنه لا يمتلئ بالمواضيع.
<script type="text/discourse-plugin" version="0.8">
const ajax = require('discourse/lib/ajax').ajax;
const Topic = require('discourse/models/topic').default;
const User = require('discourse/models/user').default;
// نحتاج إلى ajax و Topic و User
api.registerConnectorClass('above-user-summary-stats', 'character-list', {
// above-user-summary-stats هو منفذ الإضافة، character-list هو اسم المكون المخصص
setupComponents(args, component) {
const store = getOwner(this).lookup("service:store");
return ajax(userPath(`/topics/created-by/${this.username_lower}.json`)).then(function (result) {
// أسطر مأخوذة من summary() في نموذج user.js؛ محاولة العثور على اسم المستخدم لملف تعريف المستخدم الذي نعرضه حتى نتمكن من الوصول إلى json للمواضيع التي أنشأوها
let characterList = [];
// مصفوفة فارغة لدفع المواضيع إليها
result.topic_list.topics.forEach.category_id(4)(function(topic){
// مواضيع فقط من الفئة المحددة التي نريدها
// حوالي هنا كان لدى درس كريس بعض الأسطر لربط المستخدمين بالموضوع. تجاهلته لأنني لا أحتاج إلى المستخدمين بخلاف المنشئ الأصلي للعرض مع الموضوع. هل هذا مهم؟
//topic.posters.forEach(function(poster){
//poster.user = $.grep(featuredUsers, function(e){ return e.id == poster.user_id; })[0];
//});
characterList.push(Topic.create(topic));
// إضافة المواضيع إلى قائمة المواضيع
});
component.set('characterList', characterList);
// إعداد مكوننا بالمواضيع من المصفوفة
}); // نهاية ajax
} // نهاية setupComponents
});
</script>
<script type="text/x-handlebars" data-template-name="/connectors/above-user-summary-stats/character-list">
<div class="custom-character-list-wrapper">
{{topic-list topics=characterList showPosters=false}}
</div>
</script>