No hay forma de hacer clic en un tema 'Banner'

Hay 1 banner en la parte superior de mi sitio web. (No tengo el hábito de fijar temas con frecuencia, solo 1 banner y 1 fijado global).

Pero no hay forma de hacer clic en el banner si algún usuario quiere ir a ese tema/publicación.
Pero como la primera publicación de ese tema es un enlace a un video de YouTube, el visitante puede ver ese video sin entrar al tema. Sin embargo, no hay forma de hacer clic e ir a ese tema desde ese banner (he probado con otro tema sin video de YouTube).
También he intentado visitar ese tema como un usuario no autenticado y como otro usuario.

Además, una vez que quité el banner haciendo clic en la ‘X’ para mí mismo, no he podido hacer que vuelva a aparecer, incluso después de quitarlo como banner (desmarcarlo como banner) y volver a establecerlo como banner. Por favor, indíquenme cómo puedo hacer que se muestre nuevamente como banner para mí.

(Disculpen, el sitio y el tema/publicación están en hindi).

En el pasado, he sorteado esto utilizando un hipervínculo en la publicación que hace referencia al mismo tema. Por ejemplo, haz clic aquí para ir a este mismo tema. Leer más.

:slight_smile:

Esa es una buena solución alternativa.
Aunque, para eso tendría que incluir el enlace casi al principio del mensaje (para que sea fácil de ver y hacer clic para el usuario), y eso SÍ parecería un poco extraño cuando alguien está leyendo el mensaje y hace clic en ese enlace y luego vuelve al mensaje.

Aun así, hasta que esto se resuelva, esa es una sugerencia muy buena.

Si tienes varias publicaciones o respuestas en el tema, podrías escribir el hipervínculo en la primera publicación del tema para enlazar a la segunda publicación agregando /2 al final. Es decir, saltaría directamente a la segunda publicación y no enlazaría de nuevo a la publicación inicial o de introducción del tema. Aunque todavía podría parecer un poco extraño, tendría el efecto de simplemente desplazarse hacia abajo en la página. No es perfecto, pero tampoco está mal, supongo.

@Bathinda Puedes hacer algo como esto

Aquí está el contenido del mensaje:

Esto será un tema de banner con un enlace que se mostrará en el banner pero no en el mensaje en sí.

[Visitar tema](https://forums.example.com/t/test-thread/26?banner-topic)

El truco consiste en agregar una cadena de consulta al final de tu enlace que Discourse ignorará, pero que tú podrás usar en tu CSS. Así, https://forums.example.com/t/test-thread/26?banner-topic te llevará a https://forums.example.com/t/test-thread/26, y podrás usar la consulta ?banner-topic en tu CSS para identificar los enlaces que deseas ocultar.

a[href$="?banner-topic"] {
    display:none;
}
#banner-content a[href$="?banner-topic"] {
    display:block;
}

No tan amigable para el usuario, pero una buena solución alternativa.

Por cierto, si quisiera crear un componente de tema con este código, ¿dónde debo agregarlo, en ‘head’, ‘body’ o en algún otro lugar?

Olvídate de mi última solución. Creo que esto debería hacerlo automáticamente. Coloca esto en tu Common <head>

<script type="text/x-handlebars" data-template-name="components/discourse-banner">
{{#if visible}}
  <div class="row">
    <div id="banner" class={{overlay}}>
      {{d-button icon="times" action="dismiss" class="btn btn-flat close" title="banner.close"}}
      <div id="banner-content">
        {{{content}}}
        <p><a href="{{banner.url}}">Ir al hilo</a></p>
        {{#if currentUser.staff}}
          <p><a href="{{banner.url}}">{{{i18n "banner.edit"}}}</a></p>
        {{/if}}
      </div>
    </div>
  </div>
{{/if}}
</script>

La línea <a href="{{banner.url}}">Ir al hilo</a> agrega el enlace, y puedes reemplazar “Ir al hilo” con cualquier texto que desees. Puedes agregar una clase al enlace <a href="{{banner.url}}" class="banner-link">Ir al hilo</a> y luego estilizar .banner-link en tu CSS común.

A continuación se muestra cómo hacer que todo el banner sea clicable en lugar de agregar un enlace:

<script type="text/x-handlebars" data-template-name="components/discourse-banner">
{{#if visible}}
  <div class="row">
    <a href="{{banner.url}}" class="banner-link">
      <div id="banner" class={{overlay}}>
        {{d-button icon="times" action="dismiss" class="btn btn-flat close" title="banner.close"}}
        <div id="banner-content">
          {{{content}}}
            {{#if currentUser.staff}}
          <p><a href="{{banner.url}}">{{{i18n "banner.edit"}}}</a></p>
        {{/if}}
      </div>
     </div>
    </a>
  </div>
{{/if}}
</script>

Muchas gracias por tomarse el tiempo.

Agradecería que pudiera indicar/poner en cursiva/separar las palabras en este código que son personalizables por mi parte. Quizás escriba/copie esas palabras por separado o en un color diferente.

Según lo que he entendido en su última respuesta, ha proporcionado 2 formas diferentes (pero no demasiado distintas) de crear un enlace dentro del banner (o hacer que todo el banner sea clicable). En el segundo caso, creo que no necesito incluir/insertar ningún enlace en el tema/publicación en sí.

Gracias.

Así es como se ve

Solo el personal puede ver el enlace “Editar este banner”, pero apunta al mismo lugar que “Ir al hilo”, así que debería eliminarlo por completo. Entonces, en su lugar, tendríamos esto:

<script type="text/x-handlebars" data-template-name="components/discourse-banner">
{{#if visible}}
  <div class="row">
    <div id="banner" class={{overlay}}>
      {{d-button icon="times" action="dismiss" class="btn btn-flat close" title="banner.close"}}
      <div id="banner-content">
        {{{content}}}
        <p><a href="{{banner.url}}">Ir al hilo</a></p>
      </div>
    </div>
  </div>
{{/if}}
</script>

La línea que puedes editar es
<p><a href="{{banner.url}}">Ir al hilo</a></p> Puedes reemplazar Ir al hilo con cualquier texto que desees. También puedes agregar lo que quieras antes o después de {{{content}}} en la publicación del banner.