Componente del tema Texto de marcador de posición de plantilla de tema

Texto de marcador de posición de la plantilla de tema componente de tema

Este componente de tema le permite mostrar las plantillas de tema como marcadores de posición (marcas de agua) en lugar de como texto de plantilla editable.

Esto le permite proporcionar instrucciones personalizadas como marcador de posición para cada tema.

Por ejemplo:

Este es el texto normal de marcador de posición (marca de agua).

NB Ya puede cambiar esto en todo el sitio modificando el texto personalizado

Vaya a Administración > > Personalizar > > Texto

Luego busque el texto que ve allí en la pantalla.
Una búsqueda de “BBCode” debería obtener lo que desea:

Luego cambie los valores de js.composer.reply_placeholder por el texto de marcador de posición que desea mostrar

También puede establecer una plantilla de tema en cada categoría

En el cuadro de diálogo Editar categoría, seleccione Plantillas de tema. Puede agregar una plantilla personalizada para su categoría.

Esto funciona bien, PERO el usuario debe eliminar el texto de la plantilla antes de poder comenzar a escribir su publicación.

Este componente de tema le permite mostrar el texto de la plantilla del tema como texto de marcador de posición (marca de agua) en lugar del texto editable. Simplemente haga clic en el cuadro y comience a escribir.

Se puede configurar para mostrar todas las plantillas de tema como marcadores de posición, o puede hacerlo caso por caso agregando un indicador [placeholder] a la plantilla de tema.

Instalar el componente de tema

:hammer_and_wrench: Repositorio Git: https://github.com/naidihr/discourse-topic-template-placeholders

:thinking: ¿Cómo instalo un tema o un componente de tema?

Créditos

Gracias a @merefield por refactorizar el elemento JQuery para utilizar el framework Ember y el núcleo de Discourse.

Tenga en cuenta que la versión actualizada solo se ha probado para funcionar en versiones de Discourse desde 2.4.1. Si utiliza una versión anterior de Discourse, pruebe con la versión original, que se ha probado en la versión 2.3.10.
Repositorio de la versión original: https://github.com/naidihr/discourse-topic-template-placeholders_original

35 Me gusta

Nota de desarrollo de PS. Tuve que aplicar un truco de JQuery para que esto funcionara como un componente del tema. Si es posible actualizar el marcador de posición a través del modelo, le agradecería que me lo hiciera saber.

8 Me gusta

Puedes probar algo como esto:

<script type="text/discourse-plugin" version="0.8">
  api.modifyClass("model:composer", {
    applyTopicTemplate() {
      this._super(...arguments);

      Ember.run.schedule("afterRender", () => {
        // realiza tu trabajo aquí
      });
    }
  });
</script>

Esto debería permitirte agregar lógica personalizada cuando Discourse aplica plantillas de temas por categoría.

Dicho esto, este tipo de escritura está un poco anticuado. También te recomendaría leer esto si planeas dedicar mucho tiempo a temas de Discourse. Te facilitará mucho la vida.

9 Me gusta

¡Gran idea para un componente de tema!

He procedido a enviar un PR para hacer lo siguiente:

  • elimina la necesidad de jQuery
  • elimina la necesidad de preocuparse por la temporización (usa el framework de Ember y el núcleo de Discourse, no luches contra ellos)
  • modifica el modelo del compositor para ayudar a lograr el resultado (como correctamente sugeriste)

No me molestará si no lo fusionas, pero espero que ayude a ver otra forma de hacer las cosas :slight_smile:

(No puedo prometer que no haya errores, pero estaré encantado de seguir cualquier cosa ! :cowboy_hat_face: )

9 Me gusta

Gracias, Robert. He fusionado ese PR. Muy agradecido :+1:

2 Me gusta

¡Esto es exactamente lo que estaba buscando! ¡Eres un dios! :bowing_man: :shallow_pan_of_food: :bowing_woman:
Por favor, acepta esta humilde ofrenda de emojis. :canned_food:

1 me gusta

Por si acaso, esto solo funciona si primero vas a la categoría y creas un nuevo tema. Si intentas crear un nuevo tema desde la página de más recientes y luego seleccionas una categoría en el menú desplegable, el texto no se muestra.

2 Me gusta

¿Eso es lo esperado? Así es como funciona normalmente la funcionalidad de Plantilla de Tema. En el segundo caso, la Plantilla de Tema no se tendrá en cuenta.

Pero sí, en mi opinión, eso podría mejorarse incluso en Discourse vanilla sin este TC para apoyar tu segundo caso. Personalmente, me ha resultado molesto que los usuarios no reciban la Plantilla si siguen la segunda ruta.

Este TC simplemente se aprovecha del núcleo, así que…

Tal vez estemos hablando de cosas diferentes, pero así es como funciona para mí…

1 me gusta

Esto podría deberse a alguna otra razón, ya que aquí en Meta funciona. Si vas a /latest, abres Composer y luego seleccionas la categoría del Marketplace, obtendrás la plantilla que tenemos para ello.

4 Me gusta

Sí, raro. Lo siento, creo que puede haberse resuelto. Esto me estaba molestando desde hace mucho tiempo, pero parece que ahora funciona.

Vale, eso presenta un nuevo desafío. Jaja.

4 Me gusta

Hola Robert: lo probé después de la fusión y funcionaba, pero ya no lo hace para mí. Esto es con la configuración de anulación, no usando [placeholder]. ¿Podrías verificarlo también con tu compilación?

Además, en mi versión original, funcionaba igual si comenzabas un nuevo Tema desde la última página y luego seleccionabas la categoría.

¿Quizás necesite volver a una versión anterior…?

Lo estoy viendo ahora. Dame un momento.

PR de corrección creada: FIX: change the placeholder & template when switching selected Category by merefield · Pull Request #2 · naidihr/discourse-topic-template-placeholders · GitHub

Ahora toma la Categoría de la selección del compositor. Ahora que está hecho, parece funcionar en todas las situaciones, pero por favor confírmalo.

2 Me gusta

Hola Robert, fusioné ese último PR y actualicé a la última versión del componente del tema, pero aún muestra el texto de la plantilla predeterminada por mí, aunque tengo activada la opción «mostrar todas las plantillas de temas como marcadores de posición». Estoy usando Discourse 2.4.1. ¿Tienes alguna otra idea?

2 Me gusta

Eso funciona, pero tampoco funciona en absoluto si está activada la opción «mostrar todas las plantillas de temas como marcadores de posición», incluso si estoy en la categoría. ¿Me estoy arrepintiendo de haberme ofrecido como voluntario para esto ahora? :stuck_out_tongue_winking_eye:

2 Me gusta

No hay problema, chicos. Solo iteramos. :). Lo revisaré.

Actualización: PR FIX: resolve issue with displaying all Topic Templates as Placeholders by merefield · Pull Request #3 · naidihr/discourse-topic-template-placeholders · GitHub

Al revisar, recuerda actualizar la página si cambias una configuración.

2 Me gusta

Genial, Robert. Ese último PR lo ha solucionado. También al iniciar un tema desde las páginas de últimos temas o categorías. Todo se ve bien ahora. Gracias por tomarte el tiempo de revisarlo. Una solución muy elegante _buen trabajo :wink::+1:

3 Me gusta

No hay problema. Un placer. Perdón, mi prueba inicial debería haber sido más exhaustiva. Gracias por tu paciencia.

Creo que vamos por buen camino, ¡esperemos!

¡Sigue teniendo más grandes ideas y poniéndolas en práctica!

3 Me gusta

¡Hola a todos! Nos encanta la idea de este componente del tema.

Acabo de intentar instalarlo en nuestra instancia de Discourse, pero estoy teniendo algunos problemas.
Parece que, al activarlo en el tema, se rompe parte del estilo ya existente en el mismo.
Por ejemplo, los botones del menú desplegable del usuario:

se ven así cuando está activado:


Además de esto, el marcador de posición no parece funcionar, tanto con la opción 'Mostrar todas tus plantillas de temas como marcadores de posición (texto de marca de agua)' activada como desactivada.

¿Podría ser que nuestra instancia de Discourse sea la v2.3.10?

He revisado el código aquí y no logro entender por qué nuestro estilo se ve tan desordenado.

Nos apoyamos en otro equipo para gestionar y actualizar nuestra instancia de Discourse, y es una tarea bastante grande lograrlo.

Espero obtener un consejo rápido que pueda ayudar a solucionar esto, pero, si el problema se debe a nuestra versión de Discourse, también está bien.

¡Gracias de antemano :smiley: