Trading Buttons

AI-generated summary

The discussion centers on the discourse-topic-trade-buttons plugin, created by Janno_Liivak, which allows category owners to display trading buttons (Buy, Sell, Exchange) above topic titles. The plugin enables topic authors to archive their posts upon completion of a trade, adding prefixes to indicate the status. While initially praised for its utility in market categories, the thread evolves into a technical discussion regarding its features and maintenance.

Early comments from meglio and Janno_Liivak clarify that the plugin archives topics rather than closing them, arguing that archiving keeps the category current by removing sold items from top lists, whereas closing keeps them visible for reference. Community members contributed translations for various languages, including Spanish, Portuguese, Polish, and Russian, with Janno_Liivak acknowledging these efforts.

Later in the thread, users reported technical issues. trobiyo noted that the Cancelled button persisted even when disabled in settings, and simon provided Ruby console commands to unmuting categories. A significant update occurred when Arkshine identified that the plugin was broken on newer Discourse versions and provided a fork with necessary fixes, such as replacing bootbox with dialog. Janno_Liivak acknowledged he was no longer an active user but agreed to update the plugin, eventually merging Arkshine’s pull request to restore functionality.

However, serious security concerns were raised by RGJ and lava. RGJ disclosed a vulnerability where the plugin leaked all topic custom fields, including sensitive data, to anonymous users. lava highlighted critical backend issues, including a lack of authorization checks allowing any user to mark any topic as sold, missing backend validation for plugin settings, and the absence of an audit trail for trade actions. These reports underscore the need for rigorous security audits and backend validation in trading plugins.

:information_source: Summary This plugin allows the category to show trading buttons (buy, sell, exchange) above the topic title.
:hammer_and_wrench: Repository Link https://github.com/jannolii/discourse-topic-trade-buttons
:open_book: Install Guide How to install plugins in Discourse

I have created a simple plugin that allows the category to show trading buttons above the topic title. It still needs unit tests, but it’s usable as a simple solution for sell/purchase/exchange type categories.

You enable the plugin. Allow appropriate buttons in category settings:

And every topic gets those buttons above the title (of course, you have to be the owner of a topic):

After you press the button, you get confirmation whether you would like to continue, and if you do continue, the topic will be archived, and it will get a prefix according to the button you pressed:

Feel free to use it or fork it. Or if you are a dev and see something that’s not entirely correct, I’m all ears. :wink:

Supported languages now include:

  • Chinese
  • Danish
  • German
  • English
  • Spanish
  • Finnish
  • French
  • Italian
  • Polish
  • Portugese
  • Russian

If you would like to add translations, please create a pull request or contact me directly if you want to provide translations but don’t know how to code.

https://github.com/jannolii/discourse-topic-trade-buttons

45 Likes

Hi @Janno_Liivak, how it is different to using Buy, Sell and Exchange tags?

Such tags would just say that topic is about selling or purchasing or exchange and it makes topic easier to find.

My plugin is suitable for when you have trade categories… creator of topic can archive it using a button even after allowed changing time has passed.

5 Likes

So, the main feature is for the topic author to be able to archive a topic, or is there something else?

Also, can they close the topic rather than archive?

Right now it’s only archiving topics. Why would you need closing instead of archiving? Archiving freezes a topic and topic is removed from top lists and digest emails etc. but closing doesn’t.

Difference between closing and archiving…

2 Likes

Okay, I see what you mean.

In our community, closing instead of archiving makes sense:

  1. People see how active the category is and how much sales are going on. This encourages people to us our market rather than / in addition to other markets.

  2. People see examples of what was sold quickly and what was not.

  3. People can quickly skim topics and find examples of how other people describe their animals (in our case it’s a goat market, so there is only one kind of things people are selling in ot, and examples are a good thing in this case).

But how do you keep the trading category current when you have closed and active topics mixed? Why do you think people coming to your site will want to look at the closed topics and not what are current offers/requests? In my case moderators bulk-move sold/purchased topics under the archive category so that items will not show up for non-moderators but topics will be available unaltered for future reference (in case somebody does something illegal).

Anyway… if there are enough people with need for closing instead of archiving, I will add this feature.

1 Like

Community members tell us so.

Well, we don’t need this feature, but thanks for proposing. What we do is we set topic timers automatically for all ads in the category, so that they auto-close 1 month after the last reply. We also encourage people to write in their topics piblicly when an item gets sold, or they decide not to sell it anymore. This way buyers can comment before a topic gets closed, which is also good for content, and for other potential advertisers to watch the dynamics of the market.

Why I was asking is I wanted to find out whether there are any other features than that.

Is the development still active? Plugin still supported? Anyone uses it?

1 Like

Is there a problem with this plugin? I haven’t done any changes as it does everything I need :slight_smile:

2 Likes

I just installed this, turned it on in settings and enabled the buttons in a category, but I do not see the buttons after posting a topic…

1 Like

You should restart the application. After that the buttons should be visible.

1 Like

Hi @Janno_Liivak,

Many thanks for giving us the opportunity to use this plugin, for us it’s really useful. Just let me ask you out of curiosity, I don’t understand why restart the application is needed, that’s because of the loading of some components after enabling it?

By the way, not sure if it’s me, but the Cancelled button does not disappear when unchecking from Category settings, it is supposed to be always there? I think this is related to, once you enable a button, if then is disabled, the button still appears, there is no way to remove it, doesn’t it?

Cheers,
Ismael

1 Like

I guess that it’s how Discourse plugins are “plugged” into the standard functionality. Also there may be that some category stuff get’s cached etc … so I would suggest restarting the app after making changes to category settings also … it may also wery well be that plugged functionality doesn’t get applied the same way as default functionality does.

It may also be that I just don’t know how to do it any differently :wink: I haven’t dug deeper than I had to… didn’t have time.

Right now I have no further plans for this plugin. For anything more (regarding trading functionality) I would consider implementing some sort of interface with existing online trading environment (or ERP) but as I don’t need anything more it’s going to be “as is” for Trading Buttons plugin.

Hi @Janno_Liivak,

After some investigation, I think I solved the issue about buttons that still appear even after unchecking from category settings. I’ve opened a PR on your project.

If you need more info, please let me know.

Cheers,
Ismael

Thanks, @trobiyo… but your fix didn’t work :slight_smile:
Added comment to your PR.

Yes, totally agree, I did not try it out from a clean environment, so maybe that affected the value of some variables after trying and error. I will try it again then.

Many thanks for letting me know.

Cheers,
Ismael

Thank you, @trobiyo for a fix and Spanish translation :bow: :+1:

3 Likes

How can I contribute with a Portuguese translation?

2 Likes