Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Subcategories could be great #1299

Closed
ghost opened this issue Mar 29, 2014 · 82 comments
Closed

Subcategories could be great #1299

ghost opened this issue Mar 29, 2014 · 82 comments
Assignees
Milestone

Comments

@ghost
Copy link

ghost commented Mar 29, 2014

Hi,

As some categories need to be organized, it could be great if you add subcategories in NodeBB.

MORE : Subcategories in subcategories too.

@preeefix
Copy link
Contributor

Subcategories in subcategories in subcategories too.

@ghost
Copy link
Author

ghost commented Mar 29, 2014

Making it simple.. globally..any categories , can get his own categories who can get his categories and infiniteloop

@psychobunny
Copy link
Contributor

It's on the roadmap, probably around 0.5x or so

@preeefix
Copy link
Contributor

wishes it was on 0.4.1

@ghost
Copy link
Author

ghost commented Mar 29, 2014

I know how that can be complicated, but organize a forum without subcategories it's a lot complicated when you are not just talking about one specific thing.

Talking development, art, general things, a projects with his bugs, modules, help & support, a specific game 1 with his ressources and scripts, a specific game 2 with his ressources and scripts.. woah, it's gonna be insufferable more than flesh and blood can stan

@psychobunny
Copy link
Contributor

I guess the other question is if tags can accomplish the same thing? With
an appropriate view like /recent that lists tags, by recently updated,
popularity, alphabetically, etc.

I'm of the view that a traditional approach to subcategories may be better
but putting it out there for debate.
On 2014-03-29 5:29 PM, "RobotChief" notifications@github.com wrote:

I know how that can be complicated, but organize a forum without
subcategories it's a lot complicated when you are not just talking about
one specific thing.

Talking development, art, general things, a projects with his bugs,
modules, help & support, a specific game 1 with his ressources and scripts,
a specific game 2 with his ressources and scripts.. woah, it's gonna be
insufferable more than flesh and blood can stan

Reply to this email directly or view it on GitHubhttps://github.com//issues/1299#issuecomment-39009648
.

@julianlam
Copy link
Member

It's worth re-thinking excessive categorisation for forums. The creator of Penny Arcade actually wrote a blog post about it (though I can't seem to find it now) discussing that too much splintering can actually be bad for a community, since a "too niche" category doesn't often get new content, and never gets off the ground.

Personally, I'm of the opinion that introducing subcategories would be too radical of a change for some themes...

@preeefix
Copy link
Contributor

Mot people still think in the mindset of sub categories. If you have a forum where you have an android device forum, people who hav an HTC One dont want to see Nokia X stuf but want to see general android post. Put the android posts on the top level and the specific ones in respective forums.

@julianlam Why not just add to the breadcrumb and make a small devider between the sub and posts? Just borrow from the rest on the post list template...

Pardon any mistakes. On my Vita, which works with nodebb btw

@preeefix
Copy link
Contributor

@julianlam Can we get a 0.5 tag on this?

@julianlam
Copy link
Member

Depends on @psychobunny, I believe he had some ideas regarding its implementation, so he'd be in charge of milestoning and impementing it. 😄

@julianlam
Copy link
Member

@iamcardinal Come to think of it, if subforums are merely just groupings of categories, then this is definitely something we can do:

selection_025

... is this more what you had in mind? I notice some other categories do this, so perhaps we can mimic this as well...

@preeefix
Copy link
Contributor

I was thinking something more like what RootzWiki does, but with enough tinkering that could work too.

@RayBenefield
Copy link

If I were to use sub categories it would be to reduce the amount of categories on the homepage to keep it clean, so that particular solution wouldn't meet that need.

What if it was widget like and above the topic list on the category page it had a widget-like space with the sub forum category boxes. And in addition to that a way for themes to pull a list of sub categories to use on home.

Just a thought. Mobile so I can't make a mockup.

@cnvo
Copy link
Contributor

cnvo commented Apr 5, 2014

I've been in and out of this issue.

I don't quite agree with the screenshot @julianlam to a certain degree. At first glance, I didn't recognize which ones were the sub-categories from the main ones.

It's too "bulky" depending on how many sub-categories you have. Imagine having like 6 sub-categories instead of the four you mocked up. It would definitely be a spacial issue. When I think of a "sub-category" I think of something under the main category, unobtrusive, yet easily accessible. Something perhaps a bit smaller underneath the main categories.

Tags to me are powerful and would phase out the need for sub-categories altogether. I don't think it should substitute the need for this. Therefore we should save tags for a plugin. A more enhanced version of the topic tags that is already released.

With that said, I am still brainstorming the best approach UX-wise of how it should look. It's coming to me slowly, but I'll think of something. If anyone has any other ideas please bring them to the table.

@mattijle
Copy link
Contributor

mattijle commented Apr 5, 2014

@julianlam think you were referring to this blog post?

@julianlam
Copy link
Member

@mattijle Yes, that's the one, vanilla forums, not Penny Arcade 😆

@zenkamal
Copy link

@cnvo @julianlam

The tags on the huge forum I used to moderate (http://paleohacks.com/) were a big success. It made subcategories obselete, since when the forum grows then tags increase in number without the complexity limitations imposed by subcategory structure. (the admins can't always guess where the forum is going to go, whereas tags are free-form)

One reason is that moderators can go back and tag things in bunches, so that everything is nice and tidy. Another reason is that users don't have to sit and think...does this go into the random category, meta category, or general discussion category? Plus 95% of users tagged their questions with at least one tag.

@julianlam
Copy link
Member

In general, tagging itself is a more recent development, so I wouldn't be against something like that. It'd need to "play nice" with existing category structure, however...

@zenkamal
Copy link

Here is the Discourse tagging plugin. It plays nice with their category structure. But...that's all I know...and it's in Ruby :)

https://meta.discourse.org/t/tagger-tags-for-topics/14573

@barisusakli
Copy link
Member

@a5mith
Copy link
Contributor

a5mith commented May 21, 2014

A million internets to the first dev that includes that. 😆

@akhoury
Copy link
Member

akhoury commented May 21, 2014

tags! awesome! sounds like a core feature though, no?
can users tag reply-posts? or just topics?

@julianlam
Copy link
Member

I'm imagining that this input would be available only to the original post,
but storing tags by post is an interesting idea as well...

@barisusakli
Copy link
Member

Yeah I would assume this would go into the composer and only visible when you are creating a new topic for now. Then once submitted the tags would be saved in a sorted set per tag. Maybe something like

//in topic create
for(var i=0; i<tags.length; ++i) {
   db.sortedSetAdd('tag:' + tags[i], timestamp, newTid);
   db.setAdd('topic:' + newTid + ':tags', tags[i]);
}

So that we have access to a list of topics per tag and each topic will have its tags stored in a set.

@julianlam
Copy link
Member

A million internets to the first dev that includes that. 😆

Yeah I would assume this would go into the composer and only visible when you are creating a new topic for now.

Technically, we could have a plugin add a button to the composer to open a modal for tag input... though there's no quick way to differentiate whether or not a button is shown or not (e.g. show only to OP)

@zenkamal
Copy link

Do you think many NodeBB forums would NOT want to have a tag option? Given that it's standard in StackExchange and other newish forums, maybe everyone would want them (aka core not plugin).

The bigger the forum, the more important tags are. So when Google changes to NodeBB for discussion they'll definitely want tags! :P

@akhoury
Copy link
Member

akhoury commented May 21, 2014

plugin

IMO- I agree with @zenkamal, let's go core

a modal

really? do tags entry require its own viewport? it's only 1 input field. it feels like more like a large 1 row, input, block displayed.

show only to OP

That's easy, I used this for the topicThumbnails: post.isMain. see example here

composer.posts[post_uuid].isMain

edit: that would also allow Moderators and admins to edit tags as well

@julianlam
Copy link
Member

The key takeaway is that we don't want NodeBB to be bogged down with features that are only used sparingly. Rather, we want to build an open platform that allows people to customise their forum to be what they want it to be.

What this means is putting in tag support is fine, but only if there are plans for it to be used throughout NodeBB. Comparing tags vs. categories is an apples to oranges comparison, they each have their merits, and they cannot directly replace each other, either.

e.g. User Groups, when introduced in v0.3.2(?) was arguably next to useless. It was only the next version where we started to actually get the privilege system in place, and we needed user groups as a foundation. Is there an integration plan for tag input?

@Miaourt
Copy link

Miaourt commented Aug 6, 2014

Or just a different type of "category" (for made fancy transition) , a "category" that can just contain legacy category :o

@hugocabret
Copy link

Many user feel the subcategories as a community...it's really impossibile to pass to nodebb right now for many forum :(

@hugocabret
Copy link

No milestone...go! go! go! :)

0.5.1 would be perfect :D

@lukebabs
Copy link

I'm not sure why there is so much hesitance to add features that seem to be in popular demand. With the fast and great core engine, NodeBB only needs to add features that many forum based users have come to expect. Sub-categories nesting and Private Messaging are always going to be key features in forums. I don't understand the extended debate over these features. If growth and adoption of NodeBB is important to the developers, then users' feedback should be taken seriously.

@a5mith
Copy link
Contributor

a5mith commented Aug 12, 2014

Forum based users have also come to expect a forum in php as that's what everything else uses, nodebb is purposefully breaking this mould so that nodebb isn't just another bulletin board software. How do you innovate if you just copy old features? There's a lot to consider with subcategories, how should it work, what should it look like, how will it effect other aspects of the software.

To actually answer your question though, nodebb is currently in a feature freeze for 0.5.0, so if it's going to be implemented, it will be after that's released. 👍

@lukebabs
Copy link

Hey Smith,

I am in no way undermining the effort it takes to implement what may appear to be even the most basic feature to a regular web user. However, it's important to look at things from "wants" and "needs" when developing a mass user solution. For example, PHP requirement is more of a want than need. I think of PHP as fuel type that powers a car, but the trunk is really what every driver expects. Regular users don't care about language being PHP or Go. They expect features they have come to expect from most communities - easy access to what they want in form of sub-categories within categories is what drives most successful forums and ensure they scale.

In short, these kinds of features enhance community interaction, scalability and user experience. And in return, it would increase adoption of NodeBB which I would think is a win for the developers.

@Rosseyn
Copy link

Rosseyn commented Aug 12, 2014

Feels like the devs are pretty well aware of how much the community wants
this feature, they've had a lot of features on deck for 0.5 long since and
only recently realized that there was so much demand for this feature in
particular. It is perfectly reasonable to expect that we will not see
categories/tags in an official release until 0.6 at the earliest.

NodeBB might have some catch-up to do in some areas, but is already leaps
and bounds ahead of alternatives in other areas.

On Mon, Aug 11, 2014 at 7:54 PM, cytrax notifications@github.com wrote:

Hey Smith,

I am in no way undermining the effort it takes to implement what may
appear to be even the most basic feature to a regular web user. However,
it's important to look at things from "wants" and "needs" when developing a
mass user solution. For example, PHP requirement is more of a want than
need. I think of PHP as fuel type that powers a car, but the trunk is
really what every driver expects. Regular users don't care about language
being PHP or Go. They expect features they have come to expect from most
communities - easy access to what they want in form of sub-categories
within categories is what drives most successful forums and ensure they
scale.

In short, these kinds of features enhance community interaction,
scalability and user experience. And in return, it would increase adoption
of NodeBB which I would think is a win for the developers.


Reply to this email directly or view it on GitHub
#1299 (comment).

@jpgnz
Copy link

jpgnz commented Aug 12, 2014

@Maxime-BHA has summed up every comment I would have made for a pro-category argument. The only thing I would add would come from security/moderation.

When a community gets to a certain size, it requires some form of categorisation. Categorisation is generally a form of specialisation. We have moderators that only have permissions to moderate on certain categories.

Again taking Maxime-BHA's example, in our situation, we may have a moderator that specialised in CS, and one that specialised in Halo. Break it down even further, some members may only have access to one category, and not others.

julianlam added a commit to NodeBB/nodebb-theme-vanilla that referenced this issue Aug 21, 2014
@julianlam julianlam added this to the 0.5.1 milestone Aug 21, 2014
@julianlam julianlam self-assigned this Aug 21, 2014
@julianlam
Copy link
Member

:shipit:

{
    "cid": "2",
    "name": "General Discussion",
    "description": "A place to talk about whatever you want",
    "icon": "fa-comment",
    "slug": "2/general-discussion",
    "topic_count": "637",
    "order": "2",
    "bgColor": "#2461b2",
    "link": "",
    "class": "col-lg-3 col-md-6 col-xs-12",
    "numRecentReplies": "2",
    "color": "#fff",
    "post_count": "5383",
    "parentCid": "1",
    "backgroundImage": "",
    "disabled": false,
    "parent": {
        "cid": "1",
        "name": "Announcements",
        "description": "Check here for announcements about NodeBB",
        "icon": "fa-bullhorn",
        "slug": "1/announcements",
        "topic_count": "30",
        "disabled": false,
        "order": "1",
        "bgColor": "#2461b2",
        "link": "",
        "class": "col-lg-3 col-md-6 col-xs-12",
        "numRecentReplies": "2",
        "color": "#fff",
        "post_count": "248",
        "parentCid": "2",
        "backgroundImage": ""
    },
    "children": [
        {
            "cid": "1",
            "name": "Announcements",
            "description": "Check here for announcements about NodeBB",
            "icon": "fa-bullhorn",
            "slug": "1/announcements",
            "topic_count": "30",
            "disabled": false,
            "order": "1",
            "bgColor": "#2461b2",
            "link": "",
            "class": "col-lg-3 col-md-6 col-xs-12",
            "numRecentReplies": "2",
            "color": "#fff",
            "post_count": "248",
            "parentCid": "2",
            "backgroundImage": ""
        }
    ],
    "topics": [
        ... snip snip ...
    ],
    "nextStart": 20,
    "pageCount": 33,
    "topic_row_size": "col-md-9",
    "privileges": {
        "topics:create": true,
        "editable": true,
        "view_deleted": true,
        "read": true
    },
    "currentPage": 1,
    "feeds:disableRSS": false,
    "pages": [
        ... snip snip ...
    ],
    "loggedIn": true
}

... and yes, I did set category 1 as parent and child of category 2. Hopefully I added enough protections to stop admins from shooting themselves in the foot if they do something circular like that.

@julianlam
Copy link
Member

Keep in mind this hasn't been merged into master yet. To use this, you'l have to check out branch 0.5.1 on this repo and the vanilla theme.

@cnvo @Paaltomo Theme designers are up. Make something pretty please 😄

Existing theme support (that is, vanilla and lavender) will only use parent data in the breadcrumb. Other themes (rocket maybe?) may use the child data.

@cnvo
Copy link
Contributor

cnvo commented Aug 21, 2014

Nice, I'll see what I can do with this today! I've put off updating until a big milestone was hit, and this is it - but that shouldn't be a problem though. 👍

@Paaltomo
Copy link

Thanks for the work, @julianlam. Will make something of this with my latest theme.

@ghost
Copy link
Author

ghost commented Aug 21, 2014

You deserve one million internet again

@Rosseyn
Copy link

Rosseyn commented Aug 21, 2014

Nice work Lam!

On Thu, Aug 21, 2014 at 9:29 AM, RobotChief notifications@github.com
wrote:

You deserve one million internet again


Reply to this email directly or view it on GitHub
#1299 (comment).

@jpgnz
Copy link

jpgnz commented Aug 21, 2014

A+

@lukespragg
Copy link

Looks great! Will give this a shot soon.

@hugocabret
Copy link

WOW

@ghost
Copy link

ghost commented Aug 24, 2014

I have this up and running, and it's fantastic. Can't wait to see themes supporting the child data entirely, rather than just breadcrumbs. :)

Seems like you could hide child categories on the main page with a CSS tweak in the mean time - but getting them to show under their parents is where it gets above my pay grade.

@esiao
Copy link

esiao commented Sep 4, 2014

Awesome work I'm trying to incorporate subcategories in my theme. I'm facing an issue.
{categories.parent} is not interpreted by NodeBB, while {categories.children} is working correctly. After checking what the api provide I think it's because the value is null instead of "" like other elements.

Also inside a category the children should have the last post information. And is the unread-class updated if a children category has a new post. (the notification should be on parent and children category).

@Rosseyn
Copy link

Rosseyn commented Sep 6, 2014

Is this going to be in 0.6.0? Or 0.5.1?

@barisusakli
Copy link
Member

0.5.1

julianlam added a commit to NodeBB/nodebb-theme-vanilla that referenced this issue Sep 17, 2014
@bratags
Copy link

bratags commented May 5, 2024

Any thoughts on adding subcategories to the purge list when purging a parent category?! I just ran into this issue where I couldn't figure out why the category purge feature "wasn't working", when I realized it's because of the way I've structured my forum (i.e. nested subcategories).

Anyway, has any thought been given to this?

@julianlam
Copy link
Member

Categories are all mutually exclusive to one another, and that keeps things simple and reduces side effects.

They can be nested and this is purely for UI organization purposes.

But that said, purging a category should give better errors when subcategories exist.

Secondly, a checkbox option could allow you to instruct the backend to purge all subcategories on request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests