Adapt github changes to my own site


(Frederik L) #1

I try in a new topic instead.

I did add a few line of change to some githib files based on this topic:

The line is added to the github pull request but I guess they will not be adapted to the release

My question is without knowledge of github how do I get these changes to work on my own setup?

I did try to add

https://github.com/frold/onebox.git

to my app.yml - but it doesnt seems like the changes are adapted to my site…

What else can I try?

I just want to add 2 lines of changes to my site, but it seems like a marathon :smiley:


(Christoph) #2

If I understand what you’re trying to do correctly, you will need to create a plugin to make that modification (or fork the entire discourse repo and use that in your app.yml, but that is absolutely not recommended).


(Frederik L) #3

A plugin to get use of 2 lines of changes… that seems a little overkill… :crazy_face: (and far over my level) :wink:


(Christoph) #4

I know, “plugin” sounds like overkill because it’s a big word. But all a plugin really does it modifies/amends discourse’s code, which is exactly what you’re trying to do, right? Of course you can do so much more with plugins than change 2 lines of code, but changing those two lines is entirely possible and not overkill at all. It’s pretty much the same as what you’ve tried, only the “proper” way. It’s so easy that even I was able to do it:

Check out that topic and see if you can make it work for your case.


(Joshua Rosenfeld) #5

Like @tophee said, plugins do not need to be complicated. Here’s another really simple plugin you can look at (this one increases the maxiumum value allowed in a site setting): GitHub - jomaxro/discourse-plugin-site-setting-override.


Let me speak from personal experience about why modifying source code is a bad idea. Before working for Discourse I worked for a company that used Discourse internally. They had linked it to a WordPress install, and instead of using the API to connect WP to Discourse they decided to add a custom route to Discourse. They did this by copying the routes.rb file, adding the new route, and then overwriting the routes.rb file any time Discourse updated. As new routes were added by Discourse they were “removed” by the modified routes.rb file that was overwriting it. Eventually the homepage route was modified and we overwrote it on update, causing Discourse to frequently throw errors.

The file was modified in mid-2016. We started seeing errors in mid-2017. It took nearly a week to track down the cause of the errors, because we assumed something had changed recently, not something that hadn’t been touched in a year.

tl;dr: Don’t modify files directly. Even if they don’t hurt you today they can come back and bite when you least expect it.


How to correct change the forum?
(Frederik L) #6

I might seems easy to make a plugin, if you are a coder.

As a non coder - I have no idea about where to start to solve my issue…

What files are needed? what snippets to paste in the files? where to and how to put a plugin at git hub? etc…

Im totally blank…

Things are easy if you know them… the down side of Discourse is the rather steep learning curve… It is very much for coders to coders.


(Christoph) #7

I am not a coder either. Did you read the topics linked in the previous posts?

There is always room for improvement, but I don’t think that’s a fair assessment. You are trying to customize discourse beyond what is foreseen in the UI (which is very easy to use). If you want to “hack” a software, you can’t really blame it for that being difficult.

Besides, the community here is usually quite helpful…


(Joshua Rosenfeld) #8

Check out @angus’s awesome guide at How to start building stuff for Discourse if you’re newbie (like myself). For plugins @eviltrout wrote up a series of #howto topics that start with Beginner’s Guide to Creating Discourse Plugins - Part 1