Five Features I want to Implement
I am starting a forum that will be a review site for products. I am trying to implement the following features but don't know where to start.
I want certain sections of product reviews to only be viewable by "Verified Reviewers". I want anyone to be able to read the basic review details such as product specifications, description, scaled rating, etc., but I want the detailed review to be only available to that group of users I specified.
In the review section of the forums I want there to be tags the user can put when replying to reviews to keep part of their comment private and where only verified reviewers can read those comments. Something like the following:
[PRIVATE] Text Here Only Visible To Verified Reviewers [\PRIVATE]
I want the users side profile in threads to show how many reviews they've made underneath the amount of posts they've made.
I want their detailed profile to show all the reviews they've made with links to the particular threads (in the future I want to run analytics on product trends).
I want there to be three buttons for starting a thread in the forum. The first one is a "new thread" button which is already there. The next one is a "ask a question" button that titles the thread under the question category. (again, I want to monitor trends in the future). The third button is a "write a review" button that has a form for users to fill out adhering to review guidelines.
I know this is a lot to ask but if anyone can help or point me in the right direction I would appreciate it.
Thanks.
Comments
I always find it bizarre when someone just pops up asking someone to develop their business idea for free.
You need considerable bespoke development that a consulting company would charge between $10,000 and $65,000 for, depending on the size and nature of their business.
Good luck.
@Alexei: I think it is a valid request to ask if something is possible before you get acquainted to a software.
@Rangerine The articles application should be a good start for that, but it would require some heavy customization. The last 3 points you've requested come out of the box with the articles application.
The first point, only the first lines of articles, would also be no problem.
I would not use that "private tag" thing. I wouldn't risk the danger that this content will be shown somewhere. I would use something like that: https://vanillaforums.org/addon/discussionnote-plugin but you would have to change it so that anybody can create a note and only author and user with correct permission can see it.
@R_J Thanks for the tips. I've been looking at the articles and discussionnote application and plugins.
My next question is how to add the "New Article" button alongside the "New Thread" button and have them post in the same category. From what I've played with it puts articles in its own category.
I've got my fourth and fifth requests sort of worked out just pending this resolution.
The best way to ask a question concerning a plugin, is by attaching that question to the plugin: there is a button below each plugin in the download section "Ask a Question". If you use this link, the plugin author will automatically be notified: https://vanillaforums.org/post/discussion?AddonID=1535
@Rangerine - your terminology, e.g. "certain sections..." does not match exactly Vanilla's but don't despair - I was in your shoes a year ago and now I write plugins for my intranet forum...
As I understand and experienced it, security in Vanilla is maintained in Roles and best assigned as access to categories and plugin functions. Thus, if you want to separate content by who can see it and who can write it, the easiest and safest way is to use separate categories. You can give reviewers add/edit access to the review category with read-only access to others.
As for showing basic content with additional content within the same discussion (thread) limited to some users - that requires code but I think you can look at the PremHide plugin (I haven't used it) to see if it works for you.
Take a look at at the DiscussionExtract plugin for displaying content in the discussion list. It is suitable for structured content (which you may want to impose on product reviews).
Also take a look at Discussion Extender as an easy way to add fields to the discussion table and then look at Filterdiscussion plugin as a way to display subsets of discussion lists based on the contents of fields in the discussion table.
Good luck and don't hesitate to ask questions. Few suggestions on asking questions:
Good luck!
@rbrahmson Thanks!
I am getting familiar with the Vanilla Community and although I am an experienced coder (non web-dev work), PHP and CSS is something I have very little experience with and am going through Codeacademy's lessons now. I am looking to make my own plugin to make a "New Review" plugin that will be similar to the "QnA" plugin and will have an editable form on the thread.
PremHide looks exactly like what I am looking for! Thanks.
What is the "discussion list"? Is that the area below the thread title? If so, this plugin looks useful for me. Thanks.
Regarding "Discussion Extender", what is the discussion table? Pardon my ignorance, I'm not familiar with the terminology, is there somewhere I can get familiar with these terms? From the readme on GitHub it looks like I can create forms with this.
I will follow your suggestions from now on, thanks for the very useful information.
@R_J Thanks. I realize that now.
@Rangerine wrote:
I didn't know a single line of PHP, CSS, HTML before I started. Look at the source of plugins and the example plugins in this forum - it will help a lot.
The list of discussions, e.g. what you see when you click on "Discussions" on the menu bar.
It is the database table that is the main driver of the discussion list (I'm simplifying here because there are joins, but for now that should be fine for you).
You can create forms from anything. There are sample Howto plugins to help with forms. But take some time to see what's already in here before jumping into coding you will throw away. I'm not suggesting to delay coding -- on the contrary -- that's the best way to learn. Just realize that until you get more familiarity you will probably throw away your initial code (which IMHO is OK).
That may get you in trouble;-) There are way better programmers in this forum. I only have a part time one year experience. You will quickly learn in this forum who are the best contributors and I am by far not one of them. Good luck!
From other forums you might be used to the terminology of threads and posts: all entries of a thread are posts and are stored in a table called "posts" or something like that. The meta information of the thread (including the information which post is the first of a thread) is stored in a table called "threads" or something like that.
In Vanilla you have discussions and comments. You do not start a new thread but a new discussion. From the db side this means that the first "post" is an entry in the GDN_Discussion table. All following posts/comments are stored in the db table GDN_Comment.
What might be a little bit confusing is that the thread as such is called a discussion as well as the first post.
The plugin DiscussionExtender makes it easy to add additional fields to a discussion (the first post). This makes it quite easy to add e.g. "Color", "Price" as fields to a discussion.
But I think you shouldn't use it because (if I read the code correct), these will be an either or decision: either you have additional fields in every Discussion or in none.
And the second: you surely want to search for those extra fields and/or sort by them. The way the additional fields are stored in db make that very hard. If you have experience with databases: DiscussionExtender stores all additional fields serialized in one column (which is exactly for that purpose). So you cannot use SQL commands on that row.
It would be better to add extra columns to the Discussion table or even better to create a complete table for the extra fields and only a flag in discussion table like "IsReview".
I just want to point out that Discussion Extender can add the columns for you if you want to be able to search/sort of the column.
Search first
Check out the Documentation! We are always looking for new content and pull requests.
Click on insightful, awesome, and funny reactions to thank community volunteers for their valuable posts.
@hgtonight said:
which brings back the possibility of using the plugins I mentioned earlier...
@Rangerine - as a good way of learning, take for example the Prefix Discussion plugin. It provides the ability to have an admin-selected list of values which discussion ("post") authors can chose when creating/editing the initial discussion. That field, the "Prefix", is added by the plugin to the Discussion Table and is thereafter visible in the Discussion list. In theory it can be used to filter the list (such an example is done by the FilterbyPrefix plugin). The Discussion Extender is a more generalized way to add fields, but you can learn from the PrefixDiscussion how to do it yourself in a plugin.
In the same way that Discussion Extender is a more generalized concept of Prefix DIscussion (again, an oversimplification), FilterDiscussion is a more generalized concept of FilterbyPrefix. All are worth learning from...
I hope we're all not overwhelming you...
Not at all. I'm getting the hang of how the plugins are actually working and utilizing and analyzing the plugins I'm going to learn a lot. Keep the information coming, the more the better.
I'm still a ways away from creating my own plugin, though.