Interest in forum solution?
Permalink 3 users found helpfulI started to build one based on a small presentation I held a while ago.
It's not complete, but I think the structure is simple and would be easy to extend. Was just wondering if there's any interest, maybe even someone who's be happy to help work on it together?
>https://github.com/ortic/concrete5-forum...
Right there you made my point (about studying) and my day, thank you!
I've seen the same thing as mnaklay, that over the last 3 years there have been requests for a forum add-on.
A forum that could be installed and managed through concrete5 would be very interesting. Especially for those who want to self-host their forums, but don't know how to install, manage, and update dedicated forum software.
I agree that using Facebook is easy, free, and offers a lot of features, but for some the privacy issues and restrictions can be a problem. One example is that Facebook appears willing to take down groups based on complaints from users and governments with limited investigation into the merits of the complaint.
I would also be interested in studying the code you came up with.
I'll keep this on my todo list. Got to take care of money business for a bit though.
@mnakalay, @MrKDilkington the interesting magic (read hacky part) is found here:
https://github.com/ortic/concrete5-forum/blob/master/controllers/pag... That's what I'm doing to handle all my sub-page request to ensure we've got pretty urls despite that I don't create pages for each topic. The ancient forum I'm using on concrete5.ch uses a very similar approach.
That is excellent news.
I am happy to help test it.
I used to run a phpBB forum alongside a c5 site for the group's other pages. I never liked having the two separate environments, and users rarely went from one to the other. Had there been a good forum block (or whatever) in c5, I could have integrated everything nicely.
Was on your presentation on the swiss meeting. And yes we had some requests for a forum with concrete5. Actually have some private need for a interested based group on hobbies. And a school internal blackboard done like a forum.
So yes. There is a need for this. I can help with testing and design.
Whilst my skills in programming aren't up to scratch to help this project as much as I would like I am more than happy to offer testing and bug reporting and would love to see this project go live/become a stable solution for the new version of concrete5.
Cheers!
I have turned down a forum solution to clients a lot of times with the answer "it might be available some day". So I think it would be neat to be able to offer a community forum.
So we are very interested in this!
/Michael
Concrete5 Danmark
We have tested it out, and even made a delete button (not related to permission yet). We have discussed the possibility of making the creating of an answer threaded. Here is an example:
-Discussion submission
-Answer
--Answer
---Answer
-Answer
--Answer
---Answer
----Answer
--Answer
That would be cool, unfortunately I do not have the skills to do just that.
So if anyone has a good idea on how to implement this, please share!
Having said that, it's not on my todo list and will most likely not get there either. Implementing this in a basic version is simple though, all you need is to save the parent ID and use a simple recursion in the output.
You can also use the concrete5 conversations block, there you get this kind of functionality!
What about email notifications?
those who were watching my git repo might have seen some more activity.
Rich Xigo is sponsoring some of the missing functionality:https://www.concrete5.org/profile/-/view/10986/...
I'd be happy to incorporate some feedback if anyone has some time to spare and check the current state of the forum package.
I have followed your progress in silent. I am still in thinking mode, and as you progress the full picture begins to evolve. As of now it is actually usable, so I will try to find time to test it out and see if I can come up with some good ideas.
One thing that already came up was the possibility to highlight a post and then answer that post wit it's content copied in to my answer post. Just a thought.
I'm also thinking on some how to implement code blocks (could be neat).
But all in all I begin to follow your drift and understand the way you are going.
This definitely have a lot of potentials.
/Michael
I also think the Autoembed plugin for CKeditor would make an awesome addition to any forum or blog because it allows you to embed stuff from thousands of providers directly in your content without having to use extra blocks: Youtube videos, Instagram posts, Flickr images... You name it.
I have several video tutorials but if you watch this one you'll see what I mean:https://www.youtube.com/watch?v=rFDyl75b0G8&list=PLA2G5TtC1VNaO6...
And the package is here:https://www.concrete5.org/marketplace/addons/ckeditor-pluginator/...
And if by "code block" you meant something totally different, then... oups... sorry...
Regarding our Blog Package, we have embedded our own CKEditor because of a lot of special functionality such as Private File/Image manager for each user and so on.
Regarding the forum discussed here, I was thinking about "code /code" functionality or maybe a little more exotic. But as the forum editor is a clean text editor (as of right now), I do not believe that your add-on would fit in here.
But it is still interesting to know.
/Michael
I don't think I'll want to add an WYSIWYG editor. While some people would like that, I believe it's too much and just causes a messy output in the end. It might be something one can add by overriding an element or hook into an event. Let's see, maybe I'll make that possible at some point, but it's low prio for now.
I do think that being able to highlight code is helpful, I also wouldn't want this to require another add-on. I've created an issue for this herehttps://github.com/ortic/concrete5-forum/issues/16... I'll need this to upgrade concrete5.ch
I definitely like the idea of having a best answer that one can easily and quickly spot, also created an issue for thishttps://github.com/ortic/concrete5-forum/issues/17...
https://www.concrete5.org/marketplace/addons/syntax-anywhere1/...
You can apply it with a block, one page at a time, or globally to an entire site.
One thing is for sure the highlighter has to do its work when generating the page and not on save (for the PHP one)
Using code like we do here in this forum with bbCode tags and replacing those tags with HTML PRE and CODE tags would probably be the best way if no WYSIWYG is to be used.
Having said so bbCode has plenty of other tags.
Also, what do you think of file attachment?
Highlight.php which is a port of Highlight.js. License seems to be MIT. I say seems because the license's text is MIT but it doesn't have the header. Updated regularly, last one 17 days ago (https://github.com/scrivo/highlight.php)
The second one, GeSHi, has been for long the de-facto standard for PHP based code highlighting for a while. Nothing happened for a long time. One release in November 2013. Then another in November 2014. Then nothing until may 2017 when 2 releases came out on the same day with new languages and support for PHP 7. Nothing since. License for that one is GPL (http://qbnz.com/highlighter/)
Last but not least, Highlighter.php is more modern, using namespacing, autoloading...
GeSHi is more "old school".
Hope it helps.
- file set: you can already override the config, I'll document that. A UI might be okay at some point, but it's low prio. If you're building websites you should be able to override a file.
- spam: I'm running quite a few forums. All of them smaller than concrete5.org, but I never had any spam problem. I'll consider this if I start having problems or if I receive a pull request
- I'll look into highligher.php thanks. I'm a dinosaur who used geshi a lot. I'll try to see if I can add this as some kind of markdown extension, then we get nice bullet lists and auto-linking too
I know it's an annoyance and concern for many people and I know for some it simply never happens. It's just that I'd be surprised if it never comes up.
Having said so, the easiest solution is to hook into C5's spam system, as terrible as it is, and if someone needs it they can get the Akismet package from the marketplace.
And then maybe no need to implement manual "denunciation"
The registration has to be smart, if it is, the forum will not have a lot of spam issues.
With the PHP solution, check for the presence of code using str_pos and if yes, replace whatever tags we use to mark code with PRE and CODE and run the result through the highlighter.
With JS, do exactly the same but instead of running it through the highlighter, load the JS and CSS.
Prism is very light but each language requires a separate file. The difficult way would be to allow users to specify the language and load the script accordingly but I really don't think this is necessary. Using a version with CSS, PHP, Javascript and HTML (most of which are included in the core if memory serves) works in most cases and the HTML highlighter also works pretty well on PHP and JS if needed.
I also developed a package to add Prism to Ckeditor (not live yet) so I did some testing with it.
1- Permalinks
2- A setting to specify a fileset or maybe a folder where attached files will be put
3- A way to mark a post as spam and, if the user is logged-in mark them as a spammer (like we do here)
4- a setting to chose to automatically hide forum post pages from autonav
An unexpected error occurred.
Default value for parameters with a class type hint can only be NULL
I know you probably aren't ready to support this, but if you can point me in the right direction, I'd appreciate it.
You can already create as many forum pages as you like. They serve as categories!
I never liked the forum style we have here. I find it messy, I never know where the most recent message is found. (I know I can change the mode here). I very much prefer a simple and chronological conversation. If a topic starts to have hundreds of answers things went wrong anyway, someone should have split the conversation into something new. At least that's my thinking and for as long as no body is paying me to add a threaded discussion style, it's going to stay how it is - sorry!
Just add a file with the same handle to your theme and you're good to go!
There's nothing special about the way the forum works, it's all concrete5 page types and single pages.
Here's what my programmer had to say:
"Sooo close on the Forum plugin, the forum page itself did indeed accept the override of the template (the last option in his instructions), but overriding a topic, does not work. Adding any topic.php file to the theme results in the view.php template being used and no content included."
Any ideas?
If you look at my attachment, you'll see I set up multiple forums as you suggested earlier, and have them linked in the left-hand navigation. But now any new topics created will also appear in that navigation automatically.
The Forum Topic page type is installed by default, but isn't exposed on the Page Types page. I imagine this is done because they are not meant to be used on their own.
In install.xml, the Forum Topic page type has the internal attribute set. You can remove that attribute to expose the page type on future installs or re-installs. Another option is editing the PageTypes database table, changing the Forum Topic row "ptIsInternal" column to 0. Before making any changes to the database make a full site backup (database and files) first.
https://github.com/ortic/concrete5-forum/blob/master/install.xml#L33...
@Remo
This is a very useful add-on, thank you for sharing it. The code makes great reference too.
One question about uninstalling the add-on. Leftover pages using the Forum and Forum Topic page types throw errors when visited. Do you think a pre-install warning or post-uninstall steps could be added?
Yes, I didn't want users to play around with the topic page type, there should hardly ever be a need to work with it directly. Setting attributes might be one of those cases though. I'll think about it, created an issue herehttps://github.com/ortic/concrete5-forum/issues/20...
A conversation about the need for a forum platform resurfaces from time to time -sporadically- so there's probably some interest but I'm not sure it is overwhelming.
Forums are a big hassle to manage and It seems many are just happier using Facebook groups instead.
I don't mean to sound discouraging and my opinion is based on limited "data" so "face-value" is not to be trusted.
I for one will happily download and study anything you code :)