نحن بصدد نقل مجتمع كبير على Discourse من vb3.
تحتوي العديد من أسماء المستخدمين - حوالي 1200 - على علامة التعجب “!” ولم أتمكن من العثور على أي خيار لإعادة تمكينها.
لقد قمنا بالفعل بتمكين “أسماء المستخدمين الموحدة” دون جدوى.
هل هناك أي حل جاهز لهذه المشكلة؟
لم أتخذ القرار، ولكن هناك العديد من الأنظمة التي لا يُعد الحرف ! فيها حرفًا صالحًا لاسم المستخدم. من المحتمل جدًا أنه إذا حاولت السماح به في مكون إضافي (أو نسخة معدلة، والتي ستكون فكرة سيئة للغاية إذا كنت ترغب في ترقية Discourse مرة أخرى)، فسيكون الأمر صعبًا.
للحرف ! معانٍ خاصة في العديد من السياقات وأشك في أنه إذا قمت فقط بتغيير مُدقّق أسماء المستخدمين، فستتعطل العديد من الأشياء الأخرى.
أفهم. إنه شيء يجب معالجته على الرغم من ذلك. تسمح جميع حلول BB الأخرى بهذا الحرف في اسم المستخدم وهو شائع في مجتمعات الألعاب. يجب الاحتفاظ باسم المستخدم ومعرف المستخدم ككيانين منفصلين لتجنب مثل هذه القيود. لدينا حوالي 95000 عضو، وسيستغرق الاتصال بـ 1200 منهم لتغيير اسم المستخدم مشقة حقيقية. شكراً على المساعدة على أي حال!
لقد قمت بعشرات، ربما أكثر من مائة عملية استيراد. أنا أولي اهتمامًا وثيقًا للأشخاص الذين يسألون عن عمليات الاستيراد هنا. هذه هي المرة الأولى التي أتذكر فيها أن شخصًا ما اشتكى من ذلك.
يمكنك أن تطلب من الجميع تجربة اسم المستخدم الخاص بهم وعنوان بريدهم الإلكتروني (لن يعرف الكثير منهم ذلك أيضًا). من المحتمل أن يكون لديك أسماء مستخدمين أخرى قد تغيرت.
تجدر الإشارة إلى أن الأسماء وأسماء المستخدمين ليسا نفس الشيء. تُستخدم أسماء المستخدمين في مسارات عناوين URL، على سبيل المثال:
https://meta.discourse.org/u/pfaffman/summary
علامة التعجب ليست حرفًا صالحًا في عنوان URL، بينما الأحرف مثل ? و & لها أغراض خاصة في بنية عنوان URL وبالتالي لا يمكن أن تكون جزءًا من اسم المستخدم. هذا ليس خاصًا بـ Discourse، أي نظام يستخدم اسم المستخدم في بنية عنوان URL يجب أن يحترم ذلك.
لا يمكن لاسم المستخدم أن يحتوي على علامة تعجب، ولكن الاسم يمكن أن يحتوي عليها، وهو ما يمكنك إعطاؤه الأولوية في واجهة المستخدم.
بالإضافة إلى ذلك، تم تصميم أسماء المستخدمين لاستخدامها في @mentions، لذا فإن التوقع هو أن تكون أسماء المستخدمين واضحة وسهلة الكتابة؛ لهذا السبب نسمح فقط بأحرف ASCII افتراضيًا (على الرغم من أنه يمكن توسيع ذلك إلى يونيكود بواسطة الإعداد unicode_usernames، ولكن لا يزال بدون علامات ترقيم).
لاحظ أن برنامج الاستيراد النصي هذا يستخدم فئة الأساس لبرنامج الاستيراد النصي غير المجمع، والذي يقوم بذلك مع كل سجل مستخدم يتم إنشاؤه بواسطة الطريقة التي ربطتها:
والتي تزيل أي أحرف غير صالحة من أسماء المستخدمين.
هناك العديد من الأماكن في الكود التي تفترض أشياء معينة حول أسماء المستخدمين (تحليل @mention، وتغيير أسماء المستخدمين، وما إلى ذلك)، وهذا هو السبب في أننا نفرض هذه القيود.
كما يقول ستيفن، أسماء المستخدمين ليست المكان المناسب لإظهار شخصية المستخدم؛ حقلا الاسم والتألق هما
لا تزال هناك حالات هامشية قليلة يصعب إدارتها بهذه الطريقة.
الأسماء ليست فريدة، إذا أعطينا الأولوية في التخطيط للاسم، يمكنك تخيل كيف سيكون الأمر في لوحة رسائل مليئة بالمراهقين غير الناضجين الذين يلعبون ويتصيدون طوال اليوم
لا بأس تمامًا في القول بأنها قد تكون مشكلة ذات أولوية منخفضة، ومع ذلك فهي شيء يمكن بالتأكيد التفكير فيه والعمل عليه، وبالتأكيد ليست “ميزة” أو شيئًا يمنح ميزة على القدرة على اختيار اسم فريد دون قيود قوية مثل أي برنامج آخر من برامج لوحة الرسائل التي كانت موجودة.
هل تمانع في مشاركة بعض مشاريع أنظمة إدارة المحتوى مفتوحة المصدر التي استخدمتها؟ يمكننا إلقاء نظرة عليها ورؤية كيف تتعامل مع الروابط الدائمة ومراجع المستخدم، والتعلم من جهودهم.
على الرغم من ذلك… أتساءل عما إذا كانت أنظمة إدارة المحتوى هي نفس الفئة تمامًا مثل منتديات المجتمع؟
vBulletin 3 لا يحتوي على هذه الميزات و vBulletin 5… ليس لدي فكرة عما إذا كانت لديه الميزة حتى، فهو برنامج من الواضح أنه تُرك وراءه من حيث الميزات الحديثة.
عندما تقوم بالإشارة إلى شخص ما في Discourse، يظهر اقتراح تلقائي. لا داعي للقلق بشأن الاضطرار إلى كتابة الاسم الكامل.
تعديل: في النهاية، يعني ذلك فك تشفير قائمة أسماء المستخدمين قبل اقتراحها إذا كنت تريد ذلك حقًا، أو تشفير الإدخال (المستخدم الذي يكتب الجزء الجزئي) حتى يتمكن من البحث عن اسم المستخدم بشكل مناسب.
أعني، يمكننا الجدال حول مقدار العمل والجهد الذي يتطلبه الأمر، ولكن ليس “ما إذا كان” ممكنًا.
على أي حال، لا أعرف ما إذا كانت وسائل الإعلام فقط سيئة في نقل المزاج، ولكن كل هذه الردود الأخيرة شعرت بأنها “عدائية” نوعًا ما. يأتي الناس إلى meta.discourse لطلب المساعدة واقتراح أشياء للتحسين. إذا كنت لا توافق، يمكنك ببساطة تجاهل الموضوع والمتابعة.
أيضًا، نسيت أن أضيف. إذا كانت طلبات السحب (PRs) مفتوحة لـ Discourse، يمكنني محاولة العمل عليها في نسخة متفرعة وفتح طلب سحب. مع العلم أنني لست مطور Ruby، ولكن لدي عدة سنوات من العمل كمهندس برمجيات / مهندس منصات. سأكون سعيدًا بمحاولة المساهمة
فقط أقوم بالتحديث من أجل الأجيال القادمة، ! ليست شيئًا محظورًا في عناوين URL كما ذكر أعلاه. لا أعرف من أين جاءت هذه الفكرة.
ومع ذلك، يبدو أن Ruby تستخدم ? و ! في وظائفها وهو أمر غريب بصراحة (على الأقل في خبرتي التي تزيد عن 20 عامًا في هندسة البرمجيات) ولكن لكل لغة أشياءها الخاصة
مما قد يلمح إلى سبب منع !. سأضطر إلى التعمق أكثر في كود مصدر discourse لفهم ما إذا كانت هذه مشكلة محددة لم يكن من الممكن حلها أو مجرد شيء تم حظره بشكل مفرط لتجنب المشكلات المحتملة بين أسماء المستخدمين و Ruby التي تصاب بالجنون في بعض الحالات القصوى.
سأقوم بتحرير البرنامج النصي للبحث عنها واستبدالها بحرف قانوني مثل _ أو -. أعتقد أنه سيقوم بإزالتها فقط. يمكنك إلقاء نظرة على الكود الخاص بالاسم المقترح.
عندما قمت بترحيل منتداي الأول إلى Discourse، لاحظت أن الأحرف غير القانونية، بدءًا من المسافات الفارغة، ولكن أيضًا أحرف أخرى، تم استبدالها بـ _. ولكن في هذا المنتدى، كان الحرف غير القانوني الأكثر شيوعًا هو المسافة الفارغة ونادرًا جدًا، لذلك لم تكن مشكلة كما قد تكون الآن. على أي حال، لا يمكن أن يكون هذا عائقًا. ربما أقوم بإدخال اسم المستخدم القديم في حقل الاسم. سنرى - عندما أحل المشكلة الأخرى المتعلقة بعدم بناء حاوية الاستيراد الخاصة بي…