Enlace a perfil personalizado

:discourse2: Resumen Añade un enlace personalizado al perfil del usuario
:hammer_and_wrench: Repositorio GitHub - discourse/discourse-profile-custom-link
:question: Guía de instalación Cómo instalar un tema o componente de tema
:open_book: ¿Nuevo en Temas de Discourse? Guía para principiantes sobre el uso de Temas de Discourse

Instalar este componente de tema

Un pequeño componente para añadir un enlace personalizable en el perfil del usuario.

Se muestra en…

  1. El perfil de usuario expandido

  2. La tarjeta de usuario

Ajustes

Si dejas el campo de enlace de perfil personalizado vacío, por defecto usará el nombre de usuario, por lo que en el caso del ejemplo iría a

http://github.com/charlie

Si quieres usar un campo de entrada de usuario personalizado, tienes que establecer el valor al nombre exacto del campo de usuario, ejemplo:

  1. Crea el campo de usuario

  2. Establece el ajuste al nombre del campo de usuario

  3. Haz que los usuarios rellenen el campo
    /u/[username]/preferences/profile

Ahora irá a http://github.com/MyRealGithubName


Para una implementación más avanzada, echa un vistazo al componente de Múltiples Enlaces de Perfil Personalizados

21 Me gusta

¿Esto obtiene “nofollow”? ¿Será enviado a Akismet?

¡Esto definitivamente será utilizado por los spammers!

1 me gusta

Solo una pequeña corrección, debería ser http://github.com/, ¿verdad?

Además, ¿hay alguna razón en particular por la que esto sugiera GitHub http en lugar de https?

4 Me gusta

Jaja sí, es un error tipográfico. Gracias. No estoy reinventando las estructuras de URL aquí :winking_face_with_tongue:

En absoluto

4 Me gusta

¡Hola @chapoi! Me alegra mucho haber encontrado este componente. Lo acabo de añadir a nuestro foro, ¡gracias! Incluso podría cambiar a la versión de “enlace múltiple”.

Nota rápida: hay un “the” extra en el texto de la descripción debajo del campo “profile custom link icon” :slight_smile:

¿Hay alguna razón específica por la que tengo que añadir un componente para esto, en lugar de añadir otro tipo de campo para los Campos de Usuario?

Saludos

2 Me gusta

Buena observación. :+1: Esto debería solucionarlo:

4 Me gusta

No estoy seguro de entender la pregunta. Los campos de usuario no se muestran automáticamente en el perfil o en la tarjeta de usuario.

2 Me gusta

Hola Charlie,
disculpa por no ser más claro. Sería genial si hubiera un tipo de campo para campos de usuario, que permitiera enlaces en lugar de solo texto.

¿O estamos utilizando los Campos de Usuario de forma incorrecta? Así es como los estamos utilizando ahora mismo:

Los enlaces tienen que copiarse y pegarse en lugar de ser simplemente clicables.

1 me gusta

Ok, ahora te sigo, ¡gracias!

Sí, ese es un punto justo que planteas. Investigaré la posibilidad de tu sugerencia; supongo que hay una razón por la que no se hizo, pero no lo sé en este momento.

2 Me gusta

¡Genial, gracias! :bouquet:

1 me gusta

Así que le eché un vistazo, pero los cambios necesarios están muy por encima de mis habilidades de diseño (léase: cosas de bases de datos de backend), así que me temo que será necesario usar el plugin.

Una opción que podrías considerar es hacer una solicitud de función y ver si genera más interés.

¡Saludos!

2 Me gusta

Esta solución es genial y espero que podamos ayudar a mejorarla. Nuestro enlace de perfil tiene el formato “https://www.domain.com/user/[USER-ID]/”. La barra final arruina la solución para nosotros. Puedo agregar una reescritura de URL, pero una mejor solución sería hacer que el código sea más adaptable. ¡Quiero enlaces reales que funcionen para volver al sitio!

Intenté convertir el plugin en un tema para poder mejorar el javascript, pero esa función CONVERT Discourse no parece estar funcionando.

¿Puedes hacer la actualización para que agregue funcionalidad?


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 Acabo de publicar una solicitud de función para esto aquí, no vi tus publicaciones sobre este tema

2 Me gusta