News:

Wondering if this will always be free?  See why free is better.

Main Menu

PAID: Global Ignore

Started by njtweb, July 27, 2020, 09:43:51 AM

Previous topic - Next topic

njtweb

Quote from: vbgamer45 on July 29, 2020, 11:55:29 AM
Do you just want the same behavior as SMF does with the ignore function? Or completely hide the post from all areas?

All guests are allowed to post on my website, they just have to pass the security and questions. I currently use a paid mod called Miserable Users which when their IP address is enabled in the mod, they will get a series of problems when they try to access my site, blank page, page cannot be displayed, time out, redirect to another website. But if they keep retrying enough times they will eventually get access back to the site. It's to make them think the site has problems and eventually make them go away. This guy won't go away, and I don't want to ban. I would instead rather he still have the ability to access and post as he pleases, but his posts will never be seen because he'll be globally ignored even by guests.

He's always on my site, so I'm assuming that's good for adsense. But he's a huge PITA because he constantly comments the same end of the world, we're all going to die from Corona virus crap. I'd rather continue to collect his traffic and clicks then ban him and not still get that benefit.

vbgamer45

So not just the normal ignore where you have to click to expand it? That would be more complicated. I was thinking you could just ignore based on the IP of the post for everyone but him.
Community Suite for SMF - Take your forum to the next level built for SMF, Gallery,Store,Classifieds,Downloads,more!

SMFHacks.com -  Paid Modifications for SMF

Mods:
EzPortal - Portal System for SMF
SMF Gallery Pro
SMF Store SMF Classifieds Ad Seller Pro

njtweb

Quote from: vbgamer45 on July 29, 2020, 02:13:31 PM
So not just the normal ignore where you have to click to expand it? That would be more complicated. I was thinking you could just ignore based on the IP of the post for everyone but him.

In vBulletin there was a "Tachy Goes To Coventry" ACP section. You simply copied the username or IP Address and entered into the ignore field and clicked "Save".

As long as that username or IP was enabled in that field in the ACP that users posts were ignored globally. Only they could see their posts, nobody else did.

Arantor

Yes, we know, you already explained this.

Here's the thing: no modern software has this. Not vBulletin, not vBulletin's spiritual successor made by former vBulletin developers, not IPB, not phpBB, not MyBB... if it *worked*, they'd all have it.

It doesn't work - because it only works if they never find out. That they never use another device (which in this day and age is less common) and that in almost every community, once the person figures it out (and they do), they go nuts about it.

And the minute they do, you'll have to be blocking their posts because they'll be quite happy to tell everyone their actually-true conspiracy theory. This is how this plays out.

It's a dangerous game that leads to your community losing trust, and the policy of not requiring members registering to post makes this worse, not better.

Arantor

It gets worse. The complexity of implementation is also scary.

* Topic
Working out the list of messages isn't so bad, but you have to recalculate pagination, something you wouldn't normally have to do because the number of messages in a topic is known.

* Message index (aka list of topics in a board)
Suddenly a lot more complex:
- you need to work out which topics are started by these people and totally hide the topics - and recalculate pagination to cope with this fact
- you need to work out which topics are *last replied to by these people* and hide the posts (which means for each topic calculating the last message visible to the current user, as opposed to tracking the last message)
- you need to work out which topics are unread, excluding the last post which means recalculating it for every person reading the forum (though this is less tragic because all your folks are guests)

* Board index
- you need to work out which topics are last replied to by these people, per board, every board, to avoid leaking that the posts are incorrect - so whereas normally the last post is relatively cheap to calculate per board (because it's stored), you'd have to explicitly recalculate it every board to find the last post from the relevant person

* Search
- search becomes slower because you have to exclude all these posts selectively, as well as selectively working out to exclude entire topics (something search itself doesn't really know and when it does calculate, it doesn't have to go into the messages table to get anything; it would have to here)

* Unread posts/unread replies
- you need to work out what's actually unread per board per topic, excluding the relevant posts - very expensive, though fortunately in your world less tragic

* Quoting posts
- you'd have to rewrite posting quotes to be aware of this too since it currently only checks normal visibility

* RSS feeds
- needs a partial rewrite to exclude these posts and/or topics

* SSI
- that leaks all kinds of data if you're not careful

* Plus any mods you have such as portals or anything else



Alternatively, I feel like there is a simple approach here. Turn on post moderation, leave the permissions at default (which is letting everyone post as they do today), then change Load.php, inside loadPermissions, near the end of the function to add:


if ($user_info['ip'] == '127.0.0.1')
{
$permissions = [
'post_new' => 'post_unapproved_topics',
'post_reply_any' => 'post_unapproved_replies_any',
'post_reply_own' => 'post_unapproved_replies_own',
];
foreach ($permissions as $find => $replace)
{
if (in_array($find, $user_info['permissions']))
{
$user_info['permissions'] = array_diff($user_info['permissions'], [$find]);
$user_info['permissions'][] = $replace;
}
}
}


I'd probably try it before the // Banned?  Watch, don't touch.. line personally.

Obviously you need to put the person's IP in there in the obvious place instead of 127.0.0.1, but this will take the permissions they have while on that IP, and replace them out for the post moderation equivalents.

Then all the work is done for you in terms of all the calculations (since SMF already has tools for this) and you're being honest with the user about that their posts are being held for approval. Nothing says you have to approve them. Unlike just ghosting their posts, it's open, it's somewhat honest and transparent, and if they decide it's too much effort to wait for their posts to be approved, oh well. You can always change the messages to read a little more appropriately if needed.



@Doug Heffernan, this sounds like a candidate for Miserable Users. I can imagine other permissions you might want to do this to, and maybe selectively do it. Or randomly do it.

Doug Heffernan

Quote from: Arantor on July 29, 2020, 06:26:32 PM
@Doug Heffernan, this sounds like a candidate for Miserable Users. I can imagine other permissions you might want to do this to, and maybe selectively do it. Or randomly do it.

I will not be changing said mod atm due to not having much free time.

But this is a very nice solution btw. Well thought. It is the best option for OP in his situation. (allowing only guest posting).

njtweb

I appreciate all of the expert knowledge here guys. I have no idea what you're talking about from the development level but it's obvious it's well above my intelligence. I had no idea that it would cause so many other collateral issues.

Arantor specifically, thank you for the education. I can say at this point I'll just deal with him as I have been and if need be I'll ban him.

Thank you all.

Arantor

I try :) I think you have an interesting edge case because virtually no guest-posting forums exist in specific niches; outside of the *chans, forums all want logins now, and even go as far as letting people post, save the post and then post it upon the person registering (XF 2.2 has this at least), with the point being making registration as easy as possible rather than friction free posting.

I did at least wonder if it could be tackled as a mod sanely and had half an hour noodling around with hooking into the query layer to do it but there's too many edge cases that can't be fixed easily.

njtweb

My situation is this.

The youth hockey world is large from a player perspective, but small when it comes to who knows who from a parent perspective. My boys have been playing for the last 8 years, in that time I personally have met hundreds, if not thousands of parents, league, organization and team officials, plus many others associated in different capacities. It's very easy to remember personalities, so multiply that by thousands who know somebody you know and so on, it's almost as if everybody knows each other. I'm from PA, and I can be in Virginia talking to a parent from another team and somehow we both know someone else from another team not associated with ours and upon further discussion it'll turn out we know several people the same. Some how or another everybody seems to 'know that kid and his parents' and they can pick off their personality through comments they make and then can figure out who they are by their screen name by asking around the hockey rinks. I have over 200 members, (I known, not many) and many of them used to post often but over the past couple years then started contacting me and asking to delete stuff for them or change what they say by editing the verbiage. In some cases I had to change their screen names. I got tired of it and just told them to post anonymously as a guest and from there I let it go because people stopped registering. I repost all of my topics in youth hockey FB groups and people who don't want their name associated with their comments will instead come to my site to vent. 95% of my activity is angry parents of youth hockey players. Whether it be about the league or team their kid plays for, the players their kids play with, the coach, team management, other parents..... They don't want anybody knowing who they are and it makes it harder for others to figure them out when they're guests.

It's the only way I can keep traffic continuous due to the fact that my adsense makes very good revenue.

Youth sports parents are psychos.

Doug Heffernan

I think there is something else that could work. You can try this, it is untested though. At the Display.php file find this code:

// Is this user the message author?
$output['is_message_author'] = $message['id_member'] == $user_info['id'];


And below it add this code:

if ($user_info['ip'] == '127.0.0.1' && !$output['is_message_author'])
{
    $output['is_ignored'] = true;

}


This should cause all posts from that particular ip to be ignored by everyone, but the message owner.

Anyways, as mentioned above by Arantor, it will need more work to hide it in the other places too, but it is a start.

Arantor

I'm certainly fascinated by the dynamic - guest posting is a rare sight now for exactly these reasons!

I'll think about the problem a bit, see if there's something better we can do.

@Doug: that's probably not going to work quite as intended because they're all posting as user ID 0; you'd have to instead compare the post's record of IP address instead.

njtweb

Quote from: Arantor on July 31, 2020, 03:14:10 PM
I'm certainly fascinated by the dynamic - guest posting is a rare sight now for exactly these reasons!


Agreed, and trust me, I do not by any stretch of the imagination want it this way. I turned off guest posting 2 years ago and made a new topic informing all guests if they wanted to post they had to register. I posted the topic on all of the youth hockey FB groups and it got a ton of views. I gave it a week and my traffic disappeared. Nobody was registering, so I gave in and opened it up to guest posting. Then I customized the guest posting experience so it's very generic or "out of the box" so it's easy for them.

Right now the covid stuff is out of control and constant. Parents are losing their minds with all of the restrictions and are going off posting what is on their minds. I can deal with it to an extent. They start barking at each other making really stupid comments.

Arantor

I did wonder if lower-friction registration (e.g. via Facebook) was an option but I really get the impression that it isn't the solution, because the dynamic is such that privacy overrules convenience.

tareko

I need such a mod too but for users and not guests. Did you have this mod developed njtweb? I can make a donation to you if you paid for it.

njtweb

Quote from: Toxicity Personified on August 02, 2020, 04:41:35 AM
I did wonder if lower-friction registration (e.g. via Facebook) was an option but I really get the impression that it isn't the solution, because the dynamic is such that privacy overrules convenience.

I've tried to implement that with a paid mod and it installed wrong, caused all kinds of problems, the facebook app stopped working and I couldn't get any support for it so I gave up. It's still installed but doesn't work.

njtweb

Quote from: tareko on September 10, 2020, 10:37:09 AM
I need such a mod too but for users and not guests. Did you have this mod developed njtweb? I can make a donation to you if you paid for it.

No, this didn't get done. I was approached and offered to have it done but I couldn't afford it. A donation wouldn't help because the amount required is far too much for me to bother with the need.

tareko

Quote from: njtweb on September 12, 2020, 03:44:31 PM
Quote from: tareko on September 10, 2020, 10:37:09 AM
I need such a mod too but for users and not guests. Did you have this mod developed njtweb? I can make a donation to you if you paid for it.

No, this didn't get done. I was approached and offered to have it done but I couldn't afford it. A donation wouldn't help because the amount required is far too much for me to bother with the need.

I sent you a message. This is a must have mod. I had used it back in the day when I was using vb 3 and it was a good thing to have.

Advertisement: