رابط الملف الشخصي المخصص

:discourse2: الملخص إضافة رابط مخصص إلى ملف تعريف المستخدم
:hammer_and_wrench: المستودع GitHub - discourse/discourse-profile-custom-link
:question: دليل التثبيت كيفية تثبيت سمة أو مكون سمة
:open_book: جديد في سمات Discourse؟ دليل المبتدئين لاستخدام سمات Discourse

تثبيت مكون السمة هذا

مكون صغير لإضافة رابط قابل للتخصيص في ملف تعريف المستخدم.

يظهر في…

  1. ملف تعريف المستخدم الموسع

  2. بطاقة المستخدم

الإعدادات

إذا تركت profile custom link field فارغًا، فسيكون الافتراضي هو استخدام اسم المستخدم، لذا في الحالة الموضحة سيكون الرابط إلى
http://github.com/charlie

إذا كنت ترغب في استخدام حقل إدخال مستخدم مخصص، فيجب عليك تعيين القيمة إلى الاسم الدقيق لحقل المستخدم، مثال:

  1. إنشاء حقل المستخدم

  2. تعيين الإعداد إلى اسم حقل المستخدم

  3. اجعل المستخدمين يملؤون الحقل
    /u/[username]/preferences/profile

الآن سيذهب إلى http://github.com/MyRealGithubName


لتنفيذ أكثر تقدمًا، ألق نظرة على مكون روابط ملف تعريف مخصصة متعددة

21 إعجابًا

هل سيحصل هذا على “nofollow”؟ هل سيتم إرساله إلى Akismet؟
من المؤكد أن هذا سيتم استخدامه من قبل المتسللين!

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

مجرد ملاحظة سريعة، يجب أن تكون http://github.com/، صحيح؟

أيضًا، هل هناك سبب معين لاقتراح GitHub عبر HTTP بدلاً من HTTPS؟

4 إعجابات

هاها نعم، هذا خطأ إملائي. شكراً لك. أنا لا أعيد اختراع هياكل عناوين URL هنا :winking_face_with_tongue:

لا على الإطلاق

4 إعجابات

مرحباً @chapoi! يسعدني جداً أنني وجدت هذا المكون. لقد أضفته للتو إلى منتدانا، شكراً لك! قد أقوم حتى بالتبديل إلى إصدار “الروابط المتعددة”.

ملاحظة سريعة: هناك كلمة “the” إضافية في نص الوصف أسفل حقل “أيقونة رابط الملف الشخصي المخصص” :slight_smile:

هل هناك سبب محدد لاضطراري لإضافة مكون لهذا، بدلاً من إضافة نوع حقل آخر لحقول المستخدم؟

تحياتي

إعجابَين (2)

اكتشاف رائع. :+1: هذا يجب أن ينظمه:

4 إعجابات

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

إعجابَين (2)

مرحباً تشارلي،
آسف لعدم الوضوح. سيكون من الرائع لو كان هناك نوع حقل لحقول المستخدم، يسمح بالروابط بدلاً من النص فقط.

أم أننا نستخدم حقول المستخدم بشكل خاطئ؟ إليك كيف نستخدمها حاليًا:

يجب نسخ الروابط ولصقها بدلاً من أن تكون قابلة للنقر.

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

حسناً، الآن فهمت، شكراً لك!

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

إعجابَين (2)

رائع، شكراً لك! :bouquet:

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

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

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

تحياتي!

إعجابَين (2)

هذا الحل رائع وآمل أن نتمكن من المساعدة في تحسينه. رابط ملفنا الشخصي هو على شكل “https://www.domain.com/user/[USER-ID]/”. الشرطة المائلة اللاحقة تدمر الحل بالنسبة لنا. يمكنني إضافة إعادة كتابة عنوان URL ولكن حلاً أفضل هو جعل الكود أكثر تكيفًا. أريد روابط حقيقية تعمل مرة أخرى إلى الموقع!

حاولت تحويل المكون الإضافي إلى سمة حتى أتمكن من تحسين جافا سكريبت ولكن وظيفة CONVERT Discourse هذه لا تبدو وكأنها تعمل.

هل يمكنك إجراء التحديث بحيث يضيف وظائف؟


import Component from "@glimmer/component";
import { tracked } from "@glimmer/tracking";
import { service } from "@ember/service";

export default class ProfileCustomLink extends Component {
  @service site;
  @tracked customLinkUrl;
  @tracked customLinkFieldId;
  @tracked showCustomLink = false;
  @tracked user = this.args.model.username;
  @tracked userFields = this.args.model.user_fields;

  constructor() {
    super(...arguments);

    if (settings.profile_custom_link_field) {
      const siteUserFields = this.site.user_fields;

      if (!siteUserFields) {
        return;
      }

      const customLinkField = siteUserFields.filterBy(
        "name",
        settings.profile_custom_link_field
      )[0];

      if (!customLinkField) {
        return;
      }

      this.customLinkFieldId = this.userFields[customLinkField.id];
      if (!this.customLinkFieldId) {
        return;
      } else {
        this.showCustomLink = true;
        if (settings.profile_custom_link_prefix.includes("[CUSTOM-LINK-FIELD-ID]")) {
          const url = settings.profile_custom_link_prefix.replace("[CUSTOM-LINK-FIELD-ID]", this.customLinkFieldId);
          this.customLinkUrl = url;
        } else {
          const url = settings.profile_custom_link_prefix + this.customLinkFieldId;
          this.customLinkUrl = url;
        }
      }
    } else {
      const url = settings.profile_custom_link_prefix + this.user;
      this.customLinkUrl = url;
      this.showCustomLink = true;
    }
  }
}

@Julian2 لقد قمت للتو بنشر طلب ميزة هنا، لم أر مشاركاتك حول هذا الموضوع

إعجابَين (2)