Been working on a project and I was skimming over what I have done so far, and it reminded me of your post. So let me explain what a developer can do with the XenForo framework (it all revolves around not having to build all these things yourself because they've already built it and abstracted the "things" out so they can be easily/quickly reused for other things). My project is a marketplace... but not in the style of a standalone module like the resource manager. Instead, I now have a new node type (so various different marketplaces can sit within XenForo's node tree). We just saved a ton of time because XenForo's node and permission system is pretty great... don't need to build all that.
All types of marketplaces share certain things (they are something being sold... with a description and a price and other various universal things). It's similar to the XenForo's concept of forums (things like posts are universal, but there's some forum type specific variants... article, question, suggestion forum types).
View attachment 283478
Like an addon can be sold with updates for a certain amount of time (and can be sold multiple times). Where a website marketplace is a set price (or maybe an auction) and can only be sold once. Now right out of the gate, XenForo already has prefixes, custom fields, tags and prompts that can easily be added to new content types (so great, that saves a lot of time since we don't need to build that).
Looking at an addon marketplace node, you get some options specific to addons within the node settings... like are ratings allowed, are reviews allowed, which custom fields to use, etc.
View attachment 283479
So now we have an addon marketplace within the node tree. I'd separated it out and made it only accessible to me because it's a work in-progress, but I could put it anywhere I want... even as a child to a forum. In fact, if you were so inclined, you could have your entire node tree be
only marketplaces (without any forums... now we are effectively an eBay.. hah)
View attachment 283480
Internally we have a few new content types... if you want to think about how forums are laid out, you have forums -> threads -> posts, where the marketplaces are marketplaces -> marketplace items -> marketplace item updates (for things like addons).
So guess what? 90% of what we need to do with the new content types is already done in XenForo (it has a framework for massive code reuse across multiple content types). Let's take the marketplace_item content type as an example (these are just built in handlers we are using):
- Want to have some users or some marketplaces (based on permissions) have a moderation queue system
- We need attachments for this content type
- Allow this content type to be bookmarked
- Keep edit history of products being sold
- Ability for users to (easily) manage email subscriptions (for both marketplaces and items/updates)
- These items should show up in the "what's new" area
- We want to be able to do inline moderation of items
- Keep a log of moderator actions
- Allow items to show up in user's new feeds
- Allow likes/reactions on this content type
- They should have a system where users can report items and moderators can manage those reports
- The items should be searchable
- Include items being sold in the sitemap for the site
- Use the spam cleaner system to mass clean up spam (as well as being able to undo that if needed)
- Keep stats on items being created, sold, updated, etc.
- Allow tags on this content type
- Allow users to be warned about items that are against the rules
View attachment 283477
Now we are also using XenForo's alert/push notification system/handlers (those are in the item_update content type).
There's all sorts of core things that just make everything so nice... the Service system, template/phrase system, IP address logging (it's trickier than you would think). Even the payment system is abstracted out so we can drop in new types of payments without needing to change anything beyond defining things specific to the new payment type (just for fun, I made a Bitcoin and Monero "payment" option for XenForo). And I'm working on some other more advanced ones (for the marketplace, a split/parallel payment system for example where a buyer can buy multiple things from different merchants in a single transaction [buyer just sees it as paying a single amount, and that payment ends up going to multiple receivers]). The fact that I can just copy those payment handlers to a new site without changing any code and anything that site sells can accept those payment types... it's pretty nice.
Basically for a developer, it's a dream. You can do in hours or days what might normally take weeks or months.
Anyway... I'm on coding break. Sorry it was long winded.