Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.0 > vBulletin 3.0 Beta Releases

Reply
 
Thread Tools
Allow Your Users to Post Anonymously Without Logging Out Details »»
Allow Your Users to Post Anonymously Without Logging Out
Version: 1.00, by amykhar amykhar is offline
Developer Last Online: Nov 2013 Show Printable Version Email this Page

Version: 3.0.7 Rating:
Released: 03-19-2005 Last Update: 03-23-2005 Installs: 21
Is in Beta Stage  
No support by the author.

When I released my Post As Anonymous Mod Hack (now obsolete), many users wanted the ability to allow ANY user to post anonymously. This hack fulfils that request.

It is a VERY long and difficult hack to install. Therefore, I have written the instruction file radically different than any I have ever written before. This one is written in discrete steps. Rather than having you blindly edit files and hope everything works when it's done, I have you do the hack in steps and TEST each step.

IF YOU DO NOT KNOW HOW TO CODE, I SUGGEST YOU POST A SERVICE REQUEST AND ASK SOMEBODY TO INSTALL THIS FOR YOU.

Features:
A. Control anonymous posting at the board, forum, usergroup, and user level.

This means that you can use the anonymous posting in any combination that you can use features such as allowing users to reply to posts.

B. Users can post anonymously, but still subscribe to the thread.

C. You can set the anonymous username per usergroup. For example, Admins can post as Anonymous Admin, while regular users post as Anonymous Registered Member.

D. Mods and Admins can see who truly posted.

E. Users can see their name on their own anonymous post.

F. The "edited by" message does not show on anonymous posts.

G. Lastposter works properly.

H. Search will not pull up a user's anonymous posts under their name. But, you can search for all anonymous posts.

I. Anonymous posts are marked so that you don't forget the post is anonymous and "out" yourself.

J. Anonymous posts can be safely quoted.

I will not support this hack for any version of vbulletin other than 3.0.7.

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.
Благодарность от:
Gophers

Comments
  #62  
Old 03-24-2005, 10:03 PM
amykhar's Avatar
amykhar amykhar is offline
 
Join Date: Oct 2001
Location: PA
Posts: 4,438
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The query at the end updates the permissions for all user groups. You're going to have to double check your permission settings at every level. There is no difference in the code between admins and any other user group. If it works for one, it works for all if you have your settings correct.
Reply With Quote
  #63  
Old 03-25-2005, 09:36 AM
Greebo Greebo is offline
 
Join Date: Dec 2004
Posts: 95
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I just want to thank you again for developing this hack!! This is working great so far!
Reply With Quote
  #64  
Old 03-28-2005, 03:49 PM
Greebo Greebo is offline
 
Join Date: Dec 2004
Posts: 95
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ok, the modification to editpost.php has a logic error in it.

You test two conditions in a nested double test:
Was post made anon?
- Yes
-- was it anon before?
---Yes set a bunch of vars incl $threadupdate
---No set a bunch of vars incl $threadupdate
- No
-- was it anon before?
---Yes set a bunch of vars incl $threadupdate
---No set a bunch of vars incl $threadupdate

Then you later have logic twice to update the thread
// if (!empty($threadupdate))

$threadupdate will never be empty in either case.

Net effect: When a thread is posted and someone replies to it and then edits their reply, thread.postusername and thread.postuserid are overwridden inappropriately and the 2nd threadupdate . Thread should only be updated with anon/real user names and IDs if the OP is edited.


This is the change I made to the entire code set of editpost.php following delete_post_index($postid);
PHP Code:
  // The post is made anonymously
  
if ($edit['postanon'])
  {
   
// Check to see if it was made anonymously BEFORE the edit
   
if ($postinfo['postanon'])
   {
    
$edit['postusername']= $postinfo['username'];
    
$edit['userid'] = $postinfo['userid'];
    
$edit['postanon'] = $postinfo['postanon'];
    
$edit['anonname'] = $postinfo['username'];
    if(
$threadinfo[firstpostid] == $postinfo[postid])
    {
     
$threadupdate[] = "postusername = '" addslashes(htmlspecialchars_uni($edit['postusername'])) . "',anonname = '" addslashes(htmlspecialchars_uni($edit['anonname'])) . "', postanon = $edit[postanon]";
    }
    
$forumupdate "anonname = '" addslashes(htmlspecialchars_uni($edit['anonname'])) . "', postanon = $edit[postanon]";
   }
   
// If not, we need to set the values.
   
else
   {
    
// This isn't exactly right. But, most times, it will work.
    
$edit['postusername']= $usergroupcache["$bbuserinfo[usergroupid]"]['anonname'];
    
$edit['postusername']= $threadinfo[postusername];
    
$edit['userid'] = 256;
    
$edit['postanon'] = $postinfo['userid'];
    
$edit['anonname'] = $postinfo['username'];
    if(
$threadinfo[firstpostid] == $postinfo[postid])
    {
     
$threadupdate[] = "postusername = '" addslashes(htmlspecialchars_uni($edit['postusername'])) . "',anonname = '" addslashes(htmlspecialchars_uni($edit['anonname'])) . "', postanon = $edit[postanon]";
    }
    
$forumupdate "anonname = '" addslashes(htmlspecialchars_uni($edit['anonname'])) . "', postanon = $edit[postanon]";
   }
  }
  
// The post is no longer made anonymously
  
else
  {
   
// Check to see if it was made anonymously BEFORE the edit.
   
if ($postinfo['postanon'])
   {
    
$edit['postusername']= $postinfo['anonname'];
    
$edit['userid'] = $postinfo['postanon'];
    
$edit['postanon'] = 0;
    
$edit['anonname'] = "";
    if(
$threadinfo[firstpostid] == $postinfo[postid])
    {
     
$threadupdate[] = "postusername = '" addslashes(htmlspecialchars_uni($edit['postusername'])) . "',anonname = '" addslashes(htmlspecialchars_uni($edit['anonname'])) . "', postanon = $edit[postanon]";
    }
    
$forumupdate "anonname = '" addslashes(htmlspecialchars_uni($edit['anonname'])) . "', postanon = $edit[postanon]";
   }
   else
   {
    
$edit['postanon'] = 0;
    
$edit['anonname'] = "";
    
$edit['userid'] = $postinfo['userid'];
    
$edit['postusername'] = $postinfo['username'];
    if(
$threadinfo[firstpostid] == $postinfo[postid])
    {
     
$threadupdate[] = "postusername = '" addslashes(htmlspecialchars_uni($edit['postusername'])) . "',anonname = '" addslashes(htmlspecialchars_uni($edit['anonname'])) . "', postanon = $edit[postanon]";
    }
    
$forumupdate "anonname = '" addslashes(htmlspecialchars_uni($edit['anonname'])) . "', postanon = $edit[postanon]";
   }
  }
  if (!empty(
$threadupdate))
  {
   
// do thread update
   
$DB_site->query("
    UPDATE " 
TABLE_PREFIX "thread
    SET " 
implode(', '$threadupdate) . "
    WHERE threadid = 
$threadinfo[threadid]
   "
);
  }
  if (
$foruminfo['lastposter'] == $postinfo['username'])
  {
   
// this thread is the one being displayed as the thread with the last post...
    
$forumupdate "lastposter = '" addslashes(htmlspecialchars_uni($edit['postusername'])) . "', postanon = $edit[postanon]";
  }
  if (
$threadinfo['lastposter'] == $postinfo['username'])
  {
   
// this post is the one being displayed as the thread with the last post...
     
$threadupdate[] = "lastposter = '" addslashes(htmlspecialchars_uni($edit['postusername'])) . "',anonname = '" addslashes(htmlspecialchars_uni($edit['anonname'])) . "', postanon = $edit[postanon]";
  }
  if (!empty(
$threadupdate))
  {
   
// do thread update
   
$DB_site->query("
    UPDATE " 
TABLE_PREFIX "thread
    SET " 
implode(', '$threadupdate) . "
    WHERE threadid = 
$threadinfo[threadid]
   "
);
  } 
You will see, I wrapped all updates to $threadupdate in a conditional validating that the post edited is the first post in the thread.

I also removed "postuserid = $edit[userid]" in all spots in that code (it was in every update to $threadupdate).
Reply With Quote
  #65  
Old 03-31-2005, 12:32 PM
ThePimp's Avatar
ThePimp ThePimp is offline
 
Join Date: Feb 2005
Posts: 329
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ok, I've installed this hack, and it seems as though it's not functioning properly... can someone please assist me with this?

Here's what's happening...
I can post as anon via New Thread, Reply & Quick Reply.
Anon shows up as the username, however, the avatars still show, even when logged out. Also, the "location" shows up, and for some reason, the Anon avatar doesn't work, and the anon user title doesn't either. The other issue is that when you click on the Anonymous username, and view profile, it shows the REAL poster's profile.

I've tested this as Admin / Mod & User. Even Not Logged In users can see the Anon's REAL avatar / location etc...

Did I miss a step somewhere around the Postbit or showthread? I'm using the Postbit Legacy, on vb3.07.
Reply With Quote
  #66  
Old 03-31-2005, 04:29 PM
amykhar's Avatar
amykhar amykhar is offline
 
Join Date: Oct 2001
Location: PA
Posts: 4,438
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Well, if you have followed the directions, you have not completely installed the hack because this problem would have shown up during testing. What step are you on? That makes it easier to diagnose what could be going on. Also, I need a link to a thread that is having the problem.
Reply With Quote
  #67  
Old 04-01-2005, 06:51 AM
Tsukasa2k5 Tsukasa2k5 is offline
 
Join Date: Jan 2005
Posts: 1
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi,

Excellent work, but I've a question:
If more users than one can answer anonymous a thread it will be usefull, that the users know, who had answerd. Maybe with a random number after the "Anonymous Registered User" username.

For example:

1. Post:
Anonymous Registered User [777]
Hi there

2. Post:
Anonymous Registered User [888]
What are you doing ?

3. Post:
Anonymous Registered User [777]
Nothing

So the other users know that the 1. and 3. post was posted by the same user.

I hope you understand what i mean :nervous:
Reply With Quote
  #68  
Old 04-01-2005, 12:16 PM
spence2 spence2 is offline
 
Join Date: Jun 2002
Location: usa
Posts: 284
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I understand what you mean...and it sounds like a useful mod to the hack. Less confusion in the thread regarding who's replying to whom.
Reply With Quote
  #69  
Old 04-01-2005, 02:08 PM
amykhar's Avatar
amykhar amykhar is offline
 
Join Date: Oct 2001
Location: PA
Posts: 4,438
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Feel free to do it as an addon, but this hack is already massively complicated. I'm not sure users could take any more changes; so I won't be implementing that at this juncture.
Reply With Quote
  #70  
Old 04-01-2005, 05:30 PM
MrZeropage's Avatar
MrZeropage MrZeropage is offline
 
Join Date: Nov 2003
Location: Munich, Germany
Posts: 3,012
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I just found this hack today and *funny* I am working on the same for some months now and will be going to finish it soon.

But it is less complicated, I just took a look on your instructions and how you did it *wow*

My "Anonymity-Hack" will bring that requested feature along with it and even some more, while it also does not need any additional table in the database and less queries.



I just started beta-testing my hack ...



Anyway - nice work, when mine is finished we should compare them
Reply With Quote
  #71  
Old 04-01-2005, 09:23 PM
ThePimp's Avatar
ThePimp ThePimp is offline
 
Join Date: Feb 2005
Posts: 329
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by amykhar
Well, if you have followed the directions, you have not completely installed the hack because this problem would have shown up during testing. What step are you on? That makes it easier to diagnose what could be going on. Also, I need a link to a thread that is having the problem.
I went top to bottom of your instructions, but it may be possible that something got missed, as it was around 4:00AM when I installed it, and I was starting to get tired. Let me ask you this... DOES your hack change the AVATAR for the Anon posters to the one being used in the Anon profile, as well as change the user title? If so, could you point me to which step in your instructions these functions are located?

Thanks
Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 02:20 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05954 seconds
  • Memory Usage 2,363KB
  • Queries Executed 25 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (11)post_thanks_box
  • (1)post_thanks_box_bit
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete