Theme-Komponente für Platzhaltertext für Themenvorlagen

Platzhalter-Text für Themen-Vorlagen – Theme-Komponente

Diese Theme-Komponente ermöglicht es Ihnen, Themen-Vorlagen als Platzhalter (Wasserzeichen) anzuzeigen, anstatt als bearbeitbaren Vorlagentext.

Dadurch können Sie benutzerdefinierte Anweisungen als Platzhalter für jedes Thema bereitstellen.

Beispiel:

Dies ist der normale Platzhalter (Wasserzeichen)-Text.

Hinweis: Sie können dies bereits siteweit ändern, indem Sie den benutzerdefinierten Text anpassen.

Gehen Sie zu Admin >> Anpassen >> Text

Suchen Sie dann nach dem Text, den Sie auf dem Bildschirm sehen.
Eine Suche nach „BBCode" sollte das Gesuchte ergeben:

Ändern Sie dann die Werte für js.composer.reply_placeholder auf den Platzhaltertext, den Sie anzeigen möchten.

Sie können auch eine Themen-Vorlage in jeder Kategorie festlegen.

Wählen Sie im Dialogfeld „Kategorie bearbeiten" die Option „Themen-Vorlagen". Sie können eine benutzerdefinierte Vorlage für Ihre Kategorie hinzufügen.

Dies funktioniert gut, ABER der Benutzer muss den Vorlagentext löschen, bevor er mit dem Verfassen seines Beitrags beginnen kann.

Diese Theme-Komponente ermöglicht es Ihnen, den Text der Themen-Vorlage als Platzhalter (Wasserzeichen) anzuzeigen, anstatt als bearbeitbaren Text. Sie klicken einfach auf das Feld und beginnen mit der Eingabe.

Sie können festlegen, dass alle Themen-Vorlagen als Platzhalter angezeigt werden, oder dies fallweise tun, indem Sie einen [placeholder]-Indikator zur Themen-Vorlage hinzufügen.

Installation der Theme-Komponente

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

:thinking: Wie installiere ich ein Theme oder eine Theme-Komponente?

Credits

Vielen Dank an @merefield für die Umstrukturierung des JQuery-Elements zur Nutzung des Ember-Frameworks und des Discourse-Kerns.

Bitte beachten Sie, dass die aktualisierte Version nur für Discourse-Versionen ab 2.4.1 getestet wurde. Wenn Sie eine frühere Version von Discourse verwenden, versuchen Sie bitte die Originalversion, die in Version 2.3.10 getestet wurde.
Repository der Originalversion: https://github.com/naidihr/discourse-topic-template-placeholders_original

35 „Gefällt mir“

PS development note. I had to do a JQuery hack to get this to work as a theme component. If it is possible to update the placeholder via the model - I would be grateful of you would let me know.

8 „Gefällt mir“

You can try something like this

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

      Ember.run.schedule("afterRender", () => {
        // do your work here
      });
    }
  });
</script>

This should allow you to add some custom logic when Discourse applies category topic templates.

That said, this type of way of writing stuff is a bit outdated. I would also recommend that you give this a read if you plan to spend a lot time on Discourse themes. It makes life much easier.

9 „Gefällt mir“

Great idea for a Theme Component!

I’ve gone ahead and submitted a PR to do the following:

  • removes need for jQuery
  • removes need to worry about timing (use Ember framework & Discourse core, don’t fight them)
  • modifies the Composer Model to help achieve the result (as you rightly suggested)

I won’t be upset if you don’t merge it, but hope it helps to see another way of doing things :slight_smile:

(I can’t promise there are no bugs, but happy to follow up on any ! :cowboy_hat_face: )

9 „Gefällt mir“

Thanks Robert. I’ve merged that PR. Much appreciated :+1:

2 „Gefällt mir“

This is literally what I was looking for! You are a god! :bowing_man: :shallow_pan_of_food: :bowing_woman:
Please accept this humble emoji offering. :canned_food:

1 „Gefällt mir“

FYI this only works if you first go to the category and create a new topic. If you try to create a new topic from the latest page and then select a category from the dropdown the text doesn’t display.

2 „Gefällt mir“

That’s expected? That’s how Topic Template functionality normally works. The Topic Template won’t be considered in the latter case.

But yeah, imho, that could be improved in even vanilla Discourse without this TC to support your latter case. I have personally found it annoying that users are not presented with the Template if they go the second route.

This TC is just piggybacking off of core so …

Maybe we’re talking about different things, but this is how it works for me…

1 „Gefällt mir“

This might be due to some other reason because it works here on Meta. if you go to /latest, open the composer and then select the marketplace category you get the template we have for that.

4 „Gefällt mir“

Yep weird. Sorry I think it might have been resolved. This was nagging me for ages but seems to work now.

Ok that presents a new challenge. Haha.

4 „Gefällt mir“

Hi Robert - I tested it after the merge and it was working - but it no longer is for me? This is with the override setting - not using the [placeholder]. Please can you check with your build as well?

Also on my original version - it did work the same if you started a new Topic from the latest page and then select the category.

I may need to roll back…?

I’m looking at it now. Give me a little while.

OK PR for fix raised: FIX: change the placeholder & template when switching selected Category by merefield · Pull Request #2 · naidihr/discourse-topic-template-placeholders · GitHub

It is now taking the Category from the Composer selection. Now that’s done, it seems to work in all situations, but please confirm.

2 „Gefällt mir“

Hi Robert, I merged that last PR and updated to the latest theme component version in but it is still showing the template text for default by me, even though I have “display all topic templates as placeholders” set. I am on Discourse 2.4.1. Any more thoughts?

2 „Gefällt mir“

That works, but it also doesn’t work at all if display all topic templates as placeholders is turned on, even if I’m in the category. Regretting volunteering for this now? :stuck_out_tongue_winking_eye:

2 „Gefällt mir“

No problem guys. We just iterate. :). I’ll take a look.

Update: PR https://github.com/naidihr/discourse-topic-template-placeholders/pull/3

When checking out remember to refresh the page if you change a setting.

2 „Gefällt mir“

Great Robert. That last PR has fixed it. Also when starting a topic from the latest or category pages. All looking good now. Thank you for taking the time to look at this. Very neat solution _super job :wink::+1:

3 „Gefällt mir“

No problem. A pleasure. Sorry my initial testing should have been more thorough. Thanks for your patience.

I think we are on a good track right now, hopefully!

Keep coming up with more great ideas and putting them into practice!

3 „Gefällt mir“

Howdy folks! We love the idea of this theme component!

I just tried to install it on our discourse instance but I’m running into some trouble here.
It seems that when enabled on the theme, it breaks some of the styling already in the theme.
For example, the buttons at the user drop down:

become like this when enabled:


In addition to this, the placeholder doesn’t appear to work, both with 'Display all your Topic Templates as placeholders (watermark text)' enabled, and disabled.

It could be that our discourse instance is v2.3.10?

I’ve taken a look at the code here and can’t discern why our styling would be messy.

We rely on another team to manage and update our discourse instance & it’s a bit of a big task to get that done.

I’m hoping for a quick tip to potentially fix this, but, if it boils down to our discourse version that’s fine too!

Thanks in advance :smiley: