vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   Modification Graveyard (https://vborg.vbsupport.ru/forumdisplay.php?f=224)
-   -   Show Thread Enhancements - Private Debates (https://vborg.vbsupport.ru/showthread.php?t=122897)

jailer 12-11-2006 08:01 AM

*subscribes to thread*

Hopefully the developer will think about upgrading this.
I'd love to install this, but it's missing that vital username entry instead of user ID.


*edit*
Tried it anyway.
Didn't work for me?
:surprised:
Not showing up in AdminCP.

http://img242.imageshack.us/img242/6...ed2copyyw0.jpg

apokphp 12-21-2006 03:44 PM

Seems to be working fine. However, how can I make it a PUBLIC thread, open to all members, once X # of posts have been made in the private debate thread?

Is there an easy conditional for that? Say to just make the thread public after 12 or so posts?

bairy 12-26-2006 01:11 PM

A request was made in Service Requests to do this via username instead of userid.
It's not a big change and I was bored so ... happy holidays...


Empty the plugin named "Save private debate data", location: "newthread_post_complete", and put the following in it:
Code:

$vbulletin->input->clean_gpc('p', 'tdebates', TYPE_STR);
if($vbulletin->GPC['tdebates'] = trim($vbulletin->GPC['tdebates']))
{
        $tdebatesnames = explode(",", $vbulletin->GPC['tdebates']);
        foreach ($tdebatesnames AS $name)
        {
                $name = $db->escape_string(htmlspecialchars_uni(trim($name)));
                $querywhere .= ",'$name'";
        }
        $querywhere = substr($querywhere, 1);
       
        $tquery = $db->query_read("SELECT userid FROM " . TABLE_PREFIX ."user AS user WHERE username IN ($querywhere)");
       
        while ($row = $db->fetch_array($tquery))
        {
                $tuserids .= "," . $row['userid'];
        }
        $tuserids = substr($tuserids, 1);
       
        $db->query_write("UPDATE " . TABLE_PREFIX . "thread SET debates = '" . $tuserids . "' WHERE threadid = " . $newpost['threadid'] . "");
       
        $db->free_result($tquery);
        unset ($censorwords, $a, $tquery, $querywhere, $tdebatesnames);
}


Empty the plugin named: "thread to debate", location: "threadmanage_action_switch" and put the following in it:
Code:

if ($_REQUEST['do'] == 'tdebates')
{
        // only mods with the correct permissions should be able to access this
        if (!can_moderate($threadinfo['forumid'], 'candeleteposts'))
        {
                print_no_permission();
        }
       
        // check if there is a forum password and if so, ensure the user has it set
        verify_forum_password($foruminfo['forumid'], $foruminfo['password']);
       
        // draw navbar
        eval('$navbar = "' . fetch_template('navbar') . '";');
       
        if (trim($threadinfo['debates'] != ''))
        {
                $threadinfo['debates'] = ',' . $threadinfo['debates'];
        }
        $query = $db->query_read("SELECT username FROM " . TABLE_PREFIX . "user AS user WHERE userid IN (0$threadinfo[debates])");
        $threadinfo['debates'] = '';
        while ($row = $db->fetch_array($query))
        {
                $threadinfo['debates'] .= ", " . $row['username'];
        }
        $threadinfo['debates'] = substr($threadinfo['debates'], 2);
       
        // spit out the final HTML if we have got this far
        eval('$HTML = "' . fetch_template('threadadmin_tdebates') . '";');
        eval('print_output("' . fetch_template('THREADADMIN') . '");');
        exit;
}

elseif ($_POST['do'] == 'dotdebates')
{
        $vbulletin->input->clean_gpc('r', 'tdebates', TYPE_STR);
       
        // only mods with the correct permissions should be able to access this
        if (!can_moderate($threadinfo['forumid'], 'candeleteposts'))
        {
                print_no_permission();
        }
       
        // check if there is a forum password and if so, ensure the user has it set
        verify_forum_password($foruminfo['forumid'], $foruminfo['password']);
       
        $vbulletin->GPC['tdebates'] = trim($vbulletin->GPC['tdebates']);
        $tdebatesnames = explode(",", $vbulletin->GPC['tdebates']);
        foreach ($tdebatesnames AS $name)
        {
                $name = $db->escape_string(htmlspecialchars_uni(trim($name)));
                $querywhere .= ",'$name'";
        }
        $querywhere = substr($querywhere, 1);
       
        $tquery = $db->query_read("SELECT userid FROM " . TABLE_PREFIX ."user AS user WHERE username IN ($querywhere)");
       
        while ($row = $db->fetch_array($tquery))
        {
                $tuserids .= "," . $row['userid'];
        }
        $tuserids = substr($tuserids, 1);
       
        $db->free_result($tquery);
        unset ($censorwords, $a, $tquery, $querywhere, $tdebatesnames);
       
        $db->query_write("UPDATE " . TABLE_PREFIX . "thread SET debates = '" . $tuserids . "' WHERE threadid = '" . $threadid . "'");
        $tdebates_phrase = 'Private debate';
        $redirect='redirect_done_dotdebates';
       
        log_moderator_action($threadinfo,'tdebates',$tdebates_phrase);
        $vbulletin->url = 'showthread.php?' . "t=" . $threadid . "";
        eval(print_standard_redirect($redirect, true, true));
        exit;
}

Important: chosen usernames must be seperated by a comma (because some usernames have spaces), so you'll want to change the word "space" to "comma" in the templates:
Debates Templates > tdebates_newthread.
Thread Administration Templates > threadadmin_tdebates

Notes:
= If a non existant username is inputted, it will be ignored. If no valid usernames are inputted, it will not be a private-debate thread.
= I've copied the PM system's way of parsing usernames, therefore special characters and stuff should be accounted for. Or in other words: any valid username should work. However, it's still dependant on how the browser transmits special characters, so it's not 100% guaranteed.
= Any existing private-debate threads that anyone currently has won't be affected by this. Only the input method has been changed, everything else is the same.

MrPHD 12-26-2006 04:09 PM

Nice Work very good in did. Regards and installed

Krumbz 12-26-2006 09:11 PM

salaam aalaykum khayye, I installed it but I don't see where i can edit the settings from the vbulletin options...i have 3.6.2 vbulletin

can u tell me where i can enable it and adjust settings ??

shokran

apokphp 12-27-2006 03:54 PM

That's great Bairy! :) Thanks for the edit there.

If you have the time, can you look into the feature requested in post #42 above? Here it is for convenience:

Quote:

How can I make it a PUBLIC thread, open to all members, once X # of posts have been made in the private debate thread?
For instance, a private debate goes on between 2 members, each provide 6 posts in the thread, bringing the total to 12 posts (12 is just an an arbitrary #) in the thread. By this time, the debate is slowing down, one side is emerging more victorious than the other.

As such, the public can then start weighing in on the matter, either by posting themselves or by initiating a vote on who they think won the debate.

Any way to do this?

Brew 12-31-2006 01:18 AM

Quote:

Originally Posted by bairy (Post 1145295)
A request was made in Service Requests to do this via username instead of userid.
It's not a big change and I was bored so ... happy holidays...


Empty the plugin named "Save private debate data", location: "newthread_post_complete", and put the following in it:
Code:

$vbulletin->input->clean_gpc('p', 'tdebates', TYPE_STR);
if($vbulletin->GPC['tdebates'] = trim($vbulletin->GPC['tdebates']))
{
        $tdebatesnames = explode(",", $vbulletin->GPC['tdebates']);
        foreach ($tdebatesnames AS $name)
        {
                $name = $db->escape_string(htmlspecialchars_uni(trim($name)));
                $querywhere .= ",'$name'";
        }
        $querywhere = substr($querywhere, 1);
       
        $tquery = $db->query_read("SELECT userid FROM " . TABLE_PREFIX ."user AS user WHERE username IN ($querywhere)");
       
        while ($row = $db->fetch_array($tquery))
        {
                $tuserids .= "," . $row['userid'];
        }
        $tuserids = substr($tuserids, 1);
       
        $db->query_write("UPDATE " . TABLE_PREFIX . "thread SET debates = '" . $tuserids . "' WHERE threadid = " . $newpost['threadid'] . "");
       
        $db->free_result($tquery);
        unset ($censorwords, $a, $tquery, $querywhere, $tdebatesnames);
}


Empty the plugin named: "thread to debate", location: "threadmanage_action_switch" and put the following in it:
Code:

if ($_REQUEST['do'] == 'tdebates')
{
        // only mods with the correct permissions should be able to access this
        if (!can_moderate($threadinfo['forumid'], 'candeleteposts'))
        {
                print_no_permission();
        }
       
        // check if there is a forum password and if so, ensure the user has it set
        verify_forum_password($foruminfo['forumid'], $foruminfo['password']);
       
        // draw navbar
        eval('$navbar = "' . fetch_template('navbar') . '";');
       
        if (trim($threadinfo['debates'] != ''))
        {
                $threadinfo['debates'] = ',' . $threadinfo['debates'];
        }
        $query = $db->query_read("SELECT username FROM " . TABLE_PREFIX . "user AS user WHERE userid IN (0$threadinfo[debates])");
        $threadinfo['debates'] = '';
        while ($row = $db->fetch_array($query))
        {
                $threadinfo['debates'] .= ", " . $row['username'];
        }
        $threadinfo['debates'] = substr($threadinfo['debates'], 2);
       
        // spit out the final HTML if we have got this far
        eval('$HTML = "' . fetch_template('threadadmin_tdebates') . '";');
        eval('print_output("' . fetch_template('THREADADMIN') . '");');
        exit;
}

elseif ($_POST['do'] == 'dotdebates')
{
        $vbulletin->input->clean_gpc('r', 'tdebates', TYPE_STR);
       
        // only mods with the correct permissions should be able to access this
        if (!can_moderate($threadinfo['forumid'], 'candeleteposts'))
        {
                print_no_permission();
        }
       
        // check if there is a forum password and if so, ensure the user has it set
        verify_forum_password($foruminfo['forumid'], $foruminfo['password']);
       
        $vbulletin->GPC['tdebates'] = trim($vbulletin->GPC['tdebates']);
        $tdebatesnames = explode(",", $vbulletin->GPC['tdebates']);
        foreach ($tdebatesnames AS $name)
        {
                $name = $db->escape_string(htmlspecialchars_uni(trim($name)));
                $querywhere .= ",'$name'";
        }
        $querywhere = substr($querywhere, 1);
       
        $tquery = $db->query_read("SELECT userid FROM " . TABLE_PREFIX ."user AS user WHERE username IN ($querywhere)");
       
        while ($row = $db->fetch_array($tquery))
        {
                $tuserids .= "," . $row['userid'];
        }
        $tuserids = substr($tuserids, 1);
       
        $db->free_result($tquery);
        unset ($censorwords, $a, $tquery, $querywhere, $tdebatesnames);
       
        $db->query_write("UPDATE " . TABLE_PREFIX . "thread SET debates = '" . $tuserids . "' WHERE threadid = '" . $threadid . "'");
        $tdebates_phrase = 'Private debate';
        $redirect='redirect_done_dotdebates';
       
        log_moderator_action($threadinfo,'tdebates',$tdebates_phrase);
        $vbulletin->url = 'showthread.php?' . "t=" . $threadid . "";
        eval(print_standard_redirect($redirect, true, true));
        exit;
}

Important: chosen usernames must be seperated by a comma (because some usernames have spaces), so you'll want to change the word "space" to "comma" in the templates:
Debates Templates > tdebates_newthread.
Thread Administration Templates > threadadmin_tdebates

Notes:
= If a non existant username is inputted, it will be ignored. If no valid usernames are inputted, it will not be a private-debate thread.
= I've copied the PM system's way of parsing usernames, therefore special characters and stuff should be accounted for. Or in other words: any valid username should work. However, it's still dependant on how the browser transmits special characters, so it's not 100% guaranteed.
= Any existing private-debate threads that anyone currently has won't be affected by this. Only the input method has been changed, everything else is the same.

Sorry...can you be more specific?

I can't locate these templates :knockedout:

bairy 12-31-2006 07:59 AM

Style Manager > Edit Templates.
The Debates Templates is alphabetically in the P area (for private debates), double click that to expand it and the tdebates_newthread will be revealed.
Same with Thread Administration, double click to expand it.

Rayanet 12-31-2006 12:20 PM

Installed.
excellent:)

Krumbz 01-04-2007 09:29 PM

I can't see the options of it, I imported the XML product, what now ?

mawby 01-26-2007 01:13 PM

Hi, installed this with the username mods and it seems to work nicely. Thanks.

Just wondering if it would be possible to insist the private debate field is filled in and valid? Reason for asking is we use it for a disputes forum between our members and traders and this is an ideal mod as it prevents everyone else getting involved. However until the private debates field is populated the thread can be replied to by anyone which isn't so good.

morrow 01-30-2007 03:16 AM

Anyway to get this to exclude certain users? I have some users who create threads and would like to exclude a user or two from viewing these threads.

There was a vbprivate threads hack but it doesn't work with 3.6.0...

Just a thought.

ViViD 01-30-2007 02:16 PM

How can I have the options when I edit a first-post of a thread . We have some old threads that we moderate it manually . I wish to edit the options but there is not exist.

vectorfc 02-06-2007 12:04 PM

Great idea, and nice mod. :)

There's one thing I'd like to do, though - I'd like to make a single user able to invite users to a thread without making that user a moderator. I thought I could do this using conditionals, but since the template is within the mod tools menu, I can't. Is there a quick and dirty way to do this? I'm only thinking of making one user able to do this, so could it possibly be done with a userid=87 or whichever statement?

TrIn@dOr 02-06-2007 12:32 PM

Nice hack, installed and uninstalled.

Sorry but i need the possibility of translations.

MThornback 04-23-2007 11:19 AM

Is it possible to set this up so that ONLY the people you add can participate and not all Forum Admins?

If I wanted to say use this for peer mediation and didn't want prying eyes outside the 3-4 people that needed to see it?

LordDB 04-25-2007 09:43 PM

Anyway of hiding thread content so that only Member's authorised can view content & reply?

Hope you can help me here!

Br.

DeadBeet 05-27-2007 05:53 AM

What if, only the members and admins and mods can see the thread.. If you don't belong to the debate, then you don't see the thread..?

SuperTaz 07-05-2007 07:49 AM

Nice...Installed

Simplicity 08-14-2007 07:57 AM

Quote:

Originally Posted by daPLAYBOY (Post 1235463)
Anyway of hiding thread content so that only Member's authorised can view content & reply?

Hope you can help me here!

Br.

Thats exactly what I would like to see implemented. Would act much like the vbPrivate Threads mod worked for 3.5. As this mod isn't supported I guess this modification wont happen.

distractme 08-23-2007 08:51 PM

we love this! we have it enabled in two sub forums but would like to enable it by specific groups in other subforums so mods (enabled) could control it and keep registered users (disabled) from getting pissy with it. :)

any way to do that?

JohnBee 09-27-2007 11:48 AM

Oh boy! your the man! - Any chance to add a button for people to read(if they wanted too).

periphrastic 09-27-2007 06:51 PM

installed on 3.6.8 & thank you

apokphp 10-03-2007 10:49 PM

FYI, for those who cannot find the option for it in their admincp...it's there, just not where the screenshot says it should be.

Look at the very, very bottom of the options in the forum permissions page.

tqvn2004 09-28-2008 10:24 AM

I need this Addon for my forum, and it stop working when I upgrade to VBB 3.7.3 PL1. This is the modification to the original plugin to make it works again:

Find in product-tdebates.xml:
Code:

<input type="hidden" name="s" value="$session[sessionhash]" />
<input type="hidden" name="t" value="$threadid" />
<input type="hidden" name="do" value="dotdebates" />

Replace with:
Code:

<input type="hidden" name="s" value="$session[sessionhash]" />
<input type="hidden" name="t" value="$threadid" />
<input type="hidden" name="securitytoken" value="$bbuserinfo[securitytoken]" />
<input type="hidden" name="do" value="dotdebates" />

Hope this help!

Hornstar 10-01-2008 12:09 AM

I have updated this addon for anyone who is not very technical. But please backup your database before installing this update. I hope you don't mind beebi but since you have not been on for several months, I will release the update in your thread.

This update contains the fix for 3.7 (token error) and the username fix. I also re-worded some phrasing to make it more understandable for members (I hope)

Working for 3.7.x (not tested on anything else)

I'd like to add some new features in the future if I get time, but hopefully beebi will come back and choose to support his mod.

Hope this helps a few people.

pureturk 12-14-2008 09:48 PM

I have installed this hack. Great job!!

I ve set it up ina way where only admins and mods could start a debate. But my problem(which is not a huge problem) is that when I start a debate between two users. It also shows my username on top as a debater. How would I make some changes so it would only show the names of the userid's that I put when creating the debate exculding the thread creator?

For instance I ve created a debate thread between users 3567 and 5467. But when the thread opens, it shows my username on top along with the other 2 members as well.
Quote:

Private debate between: admin(me) and user1 and user2
What do i have to do so admin doesnt show?


All times are GMT. The time now is 06:50 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01384 seconds
  • Memory Usage 1,844KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (6)bbcode_code_printable
  • (4)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (27)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete