Search

Hello friends,

First, thank you all so much for the absolute powerhouse that is Symphony. Hands down, the best CMS that is out there, and that's not even limiting it to opensource. I seriously love everything about it.

I am, however, stuck on a couple concepts for a personal social project I've been putting together. Let's say I am allowing my users to create "Groups" that will hold discussions. I would like at least the group creator to be able to "ban" other users from posting, to avoid the inevitable Internet troll behavior. However, I can't seem to think of a way to actually do this. Would this require an extension be written, or is it possible with the core Symphony / Members extension in some way?

Another thing is notification emails to my users. Simply sending emails when someone has: replied to or "liked" their comments, etc. Maybe allow them to subscribe to certain discussion threads, and send emails when there are new comments on them?

These are the only two roadblocks I've run into while building this app, and if anyone here can help shed some light on the best way to go about adding these features in, I would greatly appreciate it.

Thanks ahead of time everyone.

Let's say I am allowing my users to create "Groups" that will hold discussions. I would like at least the group creator to be able to "ban" other users from posting, to avoid the inevitable Internet troll behavior. However, I can't seem to think of a way to actually do this. Would this require an extension be written, or is it possible with the core Symphony / Members extension in some way

Are these frontend users, i.e. not Symphony authors? If so, use the Members extension. You define Roles here so you'd probably have four:

  • Guest: anyone, the public not-logged-in state
  • User: a logged-in user, they can post
  • Banned User: a logged-in user, but cannot post
  • Administrator: a logged-in user who can edit the role that people are in

The Members extension provides a roles UI so you decide which events (therefore which forms) a user can submit. Your "Banned User" role would disable the "create new" ability for your discussion submit form.

Simply sending emails when someone has: replied to or "liked" their comments,

The concept of "likes" can be achieved using the Member Claims extension. It doesn't email people, but allows a Members user a one-time "attachment" to any other entry.

You should look at the Email Templates Manager extension for sending email. You create email templates like pages: using XSLT, attach data sources to them to populate emails with dynamic content, and then send an email from an event. So long as your user is interacting with your site using an event (creating new or saving existing entries) then with ETM you can attach an email sending action to it.

Thanks Nick. Yes, they are frontend users, sorry, I forgot to mention that. Though, the problem with just assigning them to a role is that it would ban the user site-wide. I'd like them to be banned on a per "group" basis. This is a silly example, but let's say that one registered user creates the group "Dogs", and another one creates the group "Cats". I'd like to allow the group owners the ability to ban other users from their group if they are causing typical problems.. However, being banned from that group doesn't restrict your access to the rest of the site, and other groups that may exist.

From everything I know and understand, this is going to require some custom extension developing, I just wanted to double check and make sure that something like this was possible with the core install and extensions.

I wasn't aware of Member Claims, but that looks like an extension I'll use now, and in future projects for sure. Thanks for the heads up!

I didn't look too extensively at the ETM either, at first glance, it didn't seem like it was the answer to what I needed, but I'll definitely install it and give it a go now.

Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details