(متقاعد) استخدم معرفاً في حقل مستخدم مخصص للربط بملف تعريف خارجي للمستخدم

Also today I realized that the User Profile page actually displays the custom field as it should, although compared to the user card, now the custom field (Website) is displayed last instead of first…

Capture

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

I feel like I’ve seen a discussion of this, but I can’t find it now.

I’ve got a custom profile field that holds a user’s website implemented using this tutorial, but allowing for any external site to be entered, rather than just linking to Twitter or something. The problem I have is that about 80% of the users don’t bother to put “http(s)://” in front of the URL they enter. They (rightly) expect that “www.example.com” should just work. So how do I make it just work?

Edited to add: Figured it out. Below is the entire if block of javascript I used to determine whether to attempt to show an external link. The inner if is what determines whether the external URL needs to have “http” added to it, and takes care of doing it.

    if (userFields && userFields[churchURLFieldId]) {
      const rawChurchURL = userFields[churchURLFieldId];
      var url = rawChurchURL;
      if (!/^https?:\/\//i.test(rawChurchURL)) {
        url = 'http://' + rawChurchURL;
      }
      const link = "<a href='"+url+"' target='_blank'>"+userFields[churchNameFieldId];+"</a>";
      return Ember.Object.create({ link, name: churchURL.get('name') });
    } else {
      return null;
    }
إعجاب واحد (1)

Is there a way to edit existing user profile fields rather than adding new one? So that the existing twitter field value can be edited to contain anchor tag

the main post that allows us to add new clickable profile fields using connectors/handlebar outlets etc, those get “added” and so I had to hide the existing profile fields
e.g. I could add a clickable twitter field and so have to hide the existing twitter field
Now the newly added twitter field will be in a separate div rather than belonging to that same ember div which was pre-existing, resulting in weird css

Would using /connectors/user-profile-public-fields/Twitter instead of using /connectors/user-profile-primary/ help here?

This is very nice, i forked it and tried to make it a bit more general as a theme component without the Namati specific stuff. Hope you don’t mind!

Added a separate post as well to make it easier to find for others:

إعجابَين (2)

Hi all, just wanted to share that I made a very basic plugin version of this. It just lets you specify which user field to make into a link, and—optionally—a prefix (e.g. https://mysite.com/users/). Just thought I’d share in case anyone would rather install a theme component instead of modify code. It’s based on the code in the original post in this thread.

On a side note, for my particular use case, I don’t want any user to be able to edit it; rather, I plan to update it via the discourse API. In that case, would a “custom field” be better than a “user field”? I see both in the API, but custom_fields are blank.

7 إعجابات

@wilson29thid هل ستكون على استعداد لإعداد موضوع Theme لهذا المكون؟ سيكون من الرائع أن يكون هذا مكون سمة قابلاً للتثبيت بدلاً من مطالبة الأشخاص بنسخ ولصق الكود في كل مرة.

5 إعجابات

بالتأكيد - هل يؤدي إنشاء موضوع هنا بهذا الوسم إلى جعله قابلاً للتثبيت؟

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

يمكن تثبيته بالفعل عبر عنوان URL الخاص بـ git. سيؤدي إنشاء موضوع فقط إلى مساعدة الأشخاص في العثور عليه بسهولة أكبر

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

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

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

كيف يعمل هذا مع Discourse 3.2 و Ember 5؟

لقد قمت بتحديث الإصدار: \u003cscript type=\"text/discourse-plugin\" version=\"1.13.0\"\u003e وغيرت api.registerConnectorClass إلى api.renderInOutlet كما هو مقترح هنا ولكنني أحصل في وحدة تحكم المتصفح على: [THEME 27] Error: klass is not an Ember component

لقد استبدلت property بـ computed كما هو مقترح هنا ولكنني أحصل في وحدة تحكم المتصفح على: [THEME 27] ReferenceError: computed is not defined

لقد نسيت الاستيراد، لذا أضفت import EmberObject, { computed } from '@ember/object'; المفقود بعد وسم الفتح script ولكن هذا يؤدي إلى SyntaxError: "/discourse/theme-27/discourse/initializers/theme-field-140-common-html-script-3: ‘import’ and ‘export’ may only appear at the top level.

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

حسنًا، التقنيات المقترحة في المنشور الأصلي قديمة جدًا (وهو أمر منطقي، نظرًا لأنه كُتب في عام 2016 :sweat_smile:).

في الوقت الحاضر، يجب تجميع هذا النوع من الأشياء في مستودع git ونشره كـ Theme component ليقوم الأشخاص بتثبيته وتكوينه عبر الإعدادات.

إعجابَين (2)

لقد قمت بالفعل بإعادة العمل على TC الخاص بـ @wilson29thid هنا على الرغم من أنه لا يزال يحتوي على تحذير إهمال أحتاج إلى إصلاحه في وقت ما.

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

يمكن العثور على هذه الوظيفة الخاصة بـ OP الآن في مكون مصغر جديد: