vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.5 Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=113)
-   -   Forms Hack (https://vborg.vbsupport.ru/showthread.php?t=93970)

wizadora 07-18-2006 02:03 PM

Hi,

This works great for posting into one forum, but I'm having a problem figuring out how to get it to post to various forums depending on the value selected from the drop-down.

What I am trying to achieve is this :

If dropdownanswer1 = dropdownchoice1a then formforumid="59"
If dropdownanswer1 = dropdownchoice1b then formforumid="26"

I have about 18 different forums where this form will be used, I only have 3 in the templates for now for testing.

Can't seem to figure out whether the problem lies in the hook, or whether there needs to be some template mod.

Anything I try results in either a parse error or a scalar value error.

Any help appreciated.

Thx.


PHP Code:

// To add more then one form, copy this whole text, and creat a new plug-in with the hook location 'newthread_start'.
// After, change the form name. You can't have 2 forms with the same name.

// Name of this form
$formname "guildpm";

if (
$_REQUEST['do'] == $formname)
{

// #######################################################################
// ######################## CUSTOMIZE VARIABLES ##########################
// #######################################################################

////////////////////////////////////////////////////////////////////////////////////////////////////
////// BEGIN CUSTOMIZATION BELOW////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////
//VARIABLES
//Study how variables are add here to add or remove any. If you add a variable to your form, you must add it to part one and part two.
////////////////////////////////////////////////////////////////////////////////////////////////////

// Part 1
$vbulletin->input->clean_array_gpc('p', array(
//'radioanswer1' => TYPE_STR,
'answer1' => TYPE_STR,
'answer2' => TYPE_STR,
//'answer3' => TYPE_STR,
//'answer4' => TYPE_STR,
//'answer5' => TYPE_STR,
//'answer6' => TYPE_STR,
//'answer7' => TYPE_STR,
'longanswer1' => TYPE_STR,
//'longanswer2' => TYPE_STR,
'dropdownanswer1' => TYPE_STR,
//'answer8' => TYPE_STR,
));

// Part 2
//$radioanswer1 = $vbulletin->GPC['radioanswer1'];
$answer1 $vbulletin->GPC['answer1'];
$answer2 $vbulletin->GPC['answer2'];
//$answer3 = $vbulletin->GPC['answer3'];
//$answer4 = $vbulletin->GPC['answer4'];
//$answer5 = $vbulletin->GPC['answer5'];
//$answer6 = $vbulletin->GPC['answer6'];
//$answer7 = $vbulletin->GPC['answer7'];
$longanswer1 $vbulletin->GPC['longanswer1'];
//$longanswer2 = $vbulletin->GPC['longanswer2'];
//$answer8 = $vbulletin->GPC['answer8'];
$dropdownanswer1 $vbulletin->GPC['dropdownanswer1'];

////////////////////////////////////////////////////////////////////////////////////////////////////
//USERGROUPS ALLOWED
//You can add or remove usegroups that are ALLOWED to use this form by changing the numbers below in the array.
//To enable this feature, remove the '//' before the 'if'.
////////////////////////////////////////////////////////////////////////////////////////////////////

// if (!in_array($vbulletin->userinfo['usergroupid'], array(2,5,6,7))) print_no_permission();

////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////
//NAME OF TEMPLATES - DO THIS BIT IF YOU ARE MAKING MORE FORMS AND WANT TO USE A DIFFERENT LOOKING TEMPLATE
////////////////////////////////////////////////////////////////////////////////////////////////////

// Name of the main template
$maintemplate "gui_form_guildpm";
// Name of the answer template
$answertemplate "gui_formanswers_guildpm";

////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////
//CHOOSE WHETHER YOU WANT FORM TO BE POSTED IN A NEW THREAD, NEW POLL, REPLY TO EXISITING THREAD, PMed OR EMAILED
///////////////////////////////////////////////////////////////////////////////////////////////////

//ENABLE FORM TO BE POSTED - 1 = yes, 0 = no
$formforum "1";

//FORUM TO POST NEW THREAD IN
//You CAN make this number a variable. You can have a drop down menu or in the link like do=form&f=1. Make sure you add it the variables list.

$formforumid "109";
//$formforumid = $f ;


//ENABLE POLL TO BE CREATED - 1 = yes, 0 = no
$formpoll "0";
$polloption[1] = "Approve";
$polloption[2] = "Denied";
$polloption[3] = "Decline";
$polloption[4] = "No vote";

//Make poll public - 1 = yes, 0 = no
$pollpublic "0";

////////////////////////////////////////////////////////////////////////////////////////////////////

//ENABLE FORM TO REPLY TO EXISTING THREAD - 1 = yes, 0 = no
$formreply "0";

//EXISTING THREAD ID FOR FORM TO REPLY IN
$formreplythreadid "12345";

////////////////////////////////////////////////////////////////////////////////////////////////////

//ENABLE FORM TO BE PMED (guests CANNOT use this option) - 1 = yes, 0 = no
$formpm "0";

//USERNAME TO PM TO
$formpmname "Abe";

////////////////////////////////////////////////////////////////////////////////////////////////////

//ENABLE FORM TO BE EMAILED - 1 = yes, 0 = no
$formemail "0";

//EMAIL ADDRESS TO EMAIL TO
$formemailaddress "youremail@yourforums.com";

////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////
//REDIRECT OPTIONS:
// 0 - thank you message (thread, reply, pm, or email)
// 1 - redirect to post (thread or reply)
// 2 - redirect to thread (thread only)
// 3 - redirect to forum (thread only)
// 4 - redirect to editpost to upload attachments (thread or reply)
//
// Feel free to change the thank you message if you choose option 0
////////////////////////////////////////////////////////////////////////////////////////////////////

$redirectoption "0";

$errormessage "Letter has now been posted to the Guild."//This is the thank you message

////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////
//FORCE USER TO ANSWER ALL QUESTIONS - 1 = yes, 0 = no
//If you added or deleted variables, you must edit what it checked for. Search for "$answerall ==" and edit 2 lines under it.
////////////////////////////////////////////////////////////////////////////////////////////////////

$answerall "0";

////////////////////////////////////////////////////////////////////////////////////////////////////
//TITLE OF FORM (do not use quotation marks or you will get a parse error, besides the quotes around the whole title)
////////////////////////////////////////////////////////////////////////////////////////////////////

$formtitle "Send a Letter to a Guild";

////////////////////////////////////////////////////////////////////////////////////////////////////
//TITLE OF THREAD/POST/PM/EMAIL (do not use quotation marks in the title or you will get a parse error)
//You may use variables from the form for this.
////////////////////////////////////////////////////////////////////////////////////////////////////

$posttitle "$answer1 | $answer2";

////////////////////////////////////////////////////////////////////////////////////////////////////
//PURPOSE OF FORM (do not use quotation marks or you will get a parse error, besides the quotes around the whole text)
////////////////////////////////////////////////////////////////////////////////////////////////////

$formpurpose "The purpose of this form is to allow you to send an IC letter to a Guild. The letter will only be seen by that Guild";

////////////////////////////////////////////////////////////////////////////////////////////////////


//$radioquestion1 = "Choose the type of your request:";
//$radiochoice1a = "Request for Class";
//$radiochoice1b = "Request for Subrace";
//$radiochoice1c = "Request for Special Names";
//$radiochoice1d = "Other Requests";

$question1 "1. Name of Character:";
$explain1 "Please enter your characters name here.";

$question2 "Subject";
$explain2 "Please enter a subject line";

//$question3 = "3. NWN Account:";
//$explain3 = "Please enter your NWN account with which you want to create the requested character.";

//$question4 = "4. Current level of character:";
//$explain4 = "Please enter the current level of your character (in case it already exists).";

//$question5 = "5. Current CLASS of character:";
//$explain5 = "";

//$question6 = "6. Alignment:";
//$explain6 = "";

//$question7 = "7. Spell focus or Weapon focus:";
//$explain7 = "";

$longquestion1 "Enter Letter here";
$longexplain1 "Enter your IC letter here";

//$longquestion2 = "9. An OOC summary of the request:";
//$longexplain2 = "";

//$question8 = "10. Mentor's name for any class that may require:";
//$explain8 = "";

$dropdownquestion1 "Which Guild to send this to";

// The following choices must NOT have quotation marks
$dropdownchoice1a "Blackwood";
$dropdownchoice1b "Halfling Alliance";
$dropdownchoice1c "LightWarrior Merchants";


////////////////////////////////////////////////////////////////////////////////////////////////
////// END OF CUSTOMIZATION ////////////////////////////////////////////////////////////////////
/////  DO NOT CHANGE BELOW UNLESS YOU KNOW WHAT YOU ARE DOING!!! ////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////

// #######################################################################
// ######################## START MAIN SCRIPT ############################
// #######################################################################
if ($_REQUEST['action'] == '')
{
  
$_REQUEST['action'] = "form";
}


$bbuserinfo $vbulletin->userinfo;

// start navbar
$navbits = array();
$navbits['newthread.php?' $vbulletin->session->vars['sessionurl'] . "do=$formname"] = $formtitle;

$navbits construct_navbits($navbits);
eval(
'$navbar = "' fetch_template('navbar') . '";');

if (
$_REQUEST['action'] == "submit")
{

    if (
$answerall == "1")
    {
        if (
$normalanswer1 == '' OR $radioanswer1 == '' OR $radioanswer2 == '' OR $radioanswer3 == '' OR $answer1 == '' OR $answer2 == '' OR $answer3 == '' OR ($checkboxchoice1_1 AND $checkboxchoice1_2 AND $checkboxchoice1_3) OR $longanswer1 == '')
        {
            
$errormessage "$bbuserinfo[username], you need to answer every question!";
            eval(
'print_output("' fetch_template('STANDARD_ERROR') . '");');
            exit();
        }
    }

    
$vbulletin->input->clean_array_gpc('p', array(
        
'wysiwyg'            => TYPE_BOOL,
        
'message'            => TYPE_STR
        
));

    if (
$vbulletin->GPC['wysiwyg'])
    {
        require_once(
DIR '/includes/functions_wysiwyg.php');
        
$vbtextanswer convert_wysiwyg_html_to_bbcode($vbulletin->GPC['message'], $foruminfo['allowhtml']);
    }
    else
    {
        
$vbtextanswer =& $vbulletin->GPC['message'];
    }

    eval(
'$formsend = "' fetch_template("$answertemplate") . '";');

    if (
$_POST['submit'] == 'Submit')
    {
        if (
$formforum == "1")
        {
            
$foruminfo verify_id('forum'$formforumid01);
            
$forumperms fetch_permissions($foruminfo[forumid]);
            
$newpost['username'] =& $vbulletin->userinfo['username'];
            
$newpost['message'] =& $formsend;
            
$newpost['title'] =& $posttitle;
            
$newpost['parseurl'] = '1';

            if (
$vbulletin->userinfo['autosubscribe'] != -1)
            {
                
$newpost['emailupdate'] = $vbulletin->userinfo['autosubscribe'];
            }
            else
            {
                
$newpost['emailupdate'] = 9999;
            }

            if (
$vbulletin->userinfo['signature'] != '')
            {
                
$newpost['signature'] = '1';
            }
            else
            {
                
$newpost['signature'] = '0';
            }

            
build_new_post('thread'$foruminfo, array(), array(), $newpost$errors);

            if (
$formpoll == "1")
            {
                
$threadinfo verify_id('thread'$newpost[threadid], 01);
                
$polloptions count($polloption);
                
$question $posttitle;
                
$vbulletin->GPC['options'] = $polloption;

                
$counter 0;
                
$optioncount 0;
                
$badoption '';
                while (
$counter++ < $polloptions)
                { 
// 0..Pollnum-1 we want, as arrays start with 0
                    
if ($vbulletin->options['maxpolllength'] AND vbstrlen($vbulletin->GPC['options']["$counter"]) > $vbulletin->options['maxpolllength'])
                    {
                        
$badoption .= iif($badoption', ') . $counter;
                    }
                    if (!empty(
$vbulletin->GPC['options']["$counter"]))
                    {
                        
$optioncount++;
                    }
                }

                
// Add the poll
                
$poll =& datamanager_init('Poll'$vbulletinERRTYPE_STANDARD);

                
$counter 0;
                while (
$counter++ < $polloptions)
                {
                    if (
$vbulletin->GPC['options']["$counter"] != '')
                    {
                        
$poll->set_option($vbulletin->GPC['options']["$counter"]);
                    }
                }

                
$poll->set('question',    $question);
                
$poll->set('dateline',    TIMENOW);
                
$poll->set('active',    '1');
                
$poll->set('public',    $pollpublic);

                
$pollid $poll->save();
                
//end create new poll

                // update thread
                
$threadman =& datamanager_init('Thread'$vbulletinERRTYPE_STANDARD'threadpost');
                
$threadman->set_existing($threadinfo);
                
$threadman->set('pollid'$pollid);
                
$threadman->save();
            }
        }

        if (
$formreply == "1")
        {
            
$threadinfo verify_id('thread'$formreplythreadid01);
            
$forumperms fetch_permissions($threadinfo[forumid]);
            
$newpost['username'] =& $vbulletin->userinfo['username'];
            
$newpost['message'] =& $formsend;
            
$newpost['title'] =& $posttitle;
            
$newpost['parseurl'] = "1";
        
            if (
$vbulletin->userinfo['autosubscribe'] != -1)
            {
                
$newpost['emailupdate'] = $vbulletin->userinfo['autosubscribe'];
            }
            else
            {
                
$newpost['emailupdate'] = 9999;
            }

            if (
$vbulletin->userinfo['signature'] != '')
            {
                
$newpost['signature'] = '1';
            }
            else
            {
                
$newpost['signature'] = '0';
            }

            
build_new_post('reply'$foruminfo$threadinfo$postinfo$newpost$errors);
        }

        if (
$formpm == "1")
        {
            
$vbulletin->GPC['message'] =& $formsend;
            
$vbulletin->GPC['title'] =& $posttitle;
            
$vbulletin->GPC['recipients'] =& $formpmname;

            
$pm['message'] =& $vbulletin->GPC['message'];
            
$pm['title'] =& $vbulletin->GPC['title'];
            
$pm['recipients'] =& $vbulletin->GPC['recipients'];

            
// create the DM to do error checking and insert the new PM
            
$pmdm =& datamanager_init('PM'$vbulletinERRTYPE_ARRAY);

            
$pmdm->set('fromuserid'$vbulletin->userinfo['userid']);
            
$pmdm->set('fromusername'$vbulletin->userinfo['username']);
            
$pmdm->setr('title'$pm['title']);
            
$pmdm->setr('message'$pm['message']);
            
$pmdm->set_recipients($pm['recipients'], $permissions);
            
$pmdm->set('dateline'TIMENOW);

            
// everything's good!
            
$pmdm->save();
        }

        if (
$formemail == "1")
        {
            
vbmail($formemailaddress$posttitle$formsend);
        }

        if (
$redirectoption == "1")
        {
            
$vbulletin->url 'showthread.php?' $vbulletin->session->vars['sessionurl'] . "p=$newpost[postid]";
            eval(
print_standard_redirect('redirect_postthanks'));
            exit();
        }
        if (
$redirectoption == "2")
        {
            
$vbulletin->url 'showthread.php?' $vbulletin->session->vars['sessionurl'] . "t=$newpost[threadid]";
            eval(
print_standard_redirect('redirect_postthanks'));
            exit();
        }
        if (
$redirectoption == "3")
        {
            
$vbulletin->url 'forumdisplay.php?' $vbulletin->session->vars['sessionurl'] . "f=$foruminfo[forumid]";
            eval(
print_standard_redirect('redirect_postthanks'));
            exit();
        }
        if (
$redirectoption == "4")
        {
            
$vbulletin->url 'editpost.php?do=editpost&' $vbulletin->session->vars['sessionurl'] . "p=$newpost[postid]";
            eval(
print_standard_redirect('redirect_postthanks'));
            exit();
        }
        eval(
'print_output("' fetch_template('STANDARD_ERROR') . '");');
        exit();
    }
    else
    {
          require_once(
'./includes/class_bbcode.php');
        
$parser =& new vB_BbCodeParser($vbulletinfetch_tag_list());
        
$preview $parser->do_parse($formsend);

        
$_REQUEST['action'] = 'form';
    }
}

if (
$_REQUEST['action'] == 'form')
{
    
// set message box width to usercp size
    
$stylevar['messagewidth'] = $stylevar['messagewidth_usercp'];
    
$editorid construct_edit_toolbar($vbtextanswer);

    eval(
'print_output("' fetch_template("$maintemplate") . '");');
}


main template
HTML Code:

$stylevar[htmldoctype]
<html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
<head>
$headinclude
<title>$vboptions[bbtitle] - $formtitle</title>
</head>
<body>
$header
$navbar

<!-- main -->
<br />

<form enctype="multipart/form-data" method="post" action="newthread.php">
<input type="hidden" value="$formname" name="do" />
<input type="hidden" value="submit" name="action" />
<input type="hidden" value="$forumid" name="f" />

  <table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="60%" align="center">
    <tr>
      <td class="tcat" colspan="2"> $vboptions[bbtitle] - $formtitle </td>
    </tr>
    <tr>
      <td class="panelsurround" align="center" colspan="2"> <table class="panel" cellpadding="0" cellspacing="$stylevar[formspacer]" border="0" width="100%">
          <tr>
            <td align="$stylevar[left]"> <fieldset class="fieldset" style="margin:0px">
              <table cellpadding="0" cellspacing="$stylevar[formspacer]" border="0">
                <tr>
                  <td> $formpurpose </td>
                </tr>
              </table>
              </fieldset></td>
          </tr>
        </table></td>
    </tr>
        <tr>
      <td width="50" valign="middle" class="alt1"> <b>Username</b></td>
      <td class="alt1" valign="middle"> <b>$bbuserinfo[username]</b></td>
    </tr>
        <tr>
          <td class="alt1" valign="middle" colspan="2">&nbsp;</td>
        </tr>
        </tr>
    <tr>
<td class="alt1" valign="middle">
<b>$dropdownquestion1</b>:
</td>
<td class="alt1" valign="middle">
<select name="dropdownanswer1">
<option value="$dropdownchoice1a" <if condition="$dropdownchoice1a == $dropdownanswer1">selected="selected"</if>>$dropdownchoice1a</option>
<option value="$dropdownchoice1b" <if condition="$dropdownchoice1b == $dropdownanswer1">selected="selected"</if>>$dropdownchoice1b</option>
<option value="$dropdownchoice1c" <if condition="$dropdownchoice1c == $dropdownanswer1">selected="selected"</if>>$dropdownchoice1c</option>
</select></td>
    </tr>
    <tr>
          <td colspan="2" valign="middle" class="alt2"> &nbsp;</td>
    </tr>
    <tr>
          <td colspan="2" valign="middle" class="alt2"> <b>$question1</b></td>
    </tr>
    <tr>
      <td colspan="2" valign="middle" class="alt1"><span class="alt2">
        <input name="answer1" type="text" value="" size="70">
      </span></td>
    </tr>
    <tr>
      <td class="alt2" valign="middle" colspan="2">&nbsp;</td>
    </tr>
   
    <tr>
      <td colspan="2" valign="middle" class="alt2"><b>$question2</b></td>
    </tr>
    <tr>
      <td colspan="2" valign="middle" class="alt1"><span class="alt2">
        <input name="answer2" type="text" value="" size="70">
      </span></td>
    </tr>
   
    <tr>
      <td class="alt2" valign="middle" colspan="2">&nbsp;</td>
    </tr>
   
    <tr>
      <td class="alt2" valign="middle" colspan="2"><b>$longquestion1</b></td>
    </tr>
   
    <tr>
      <td colspan="2" valign="middle" class="alt1"><textarea rows="10" cols="70" name="longanswer1"></textarea>      </td>
    </tr>
    <tr>
      <td class="alt2" valign="middle" colspan="2">&nbsp;</td>
    </tr>
   
    <tr>
      <td class="alt1" valign="top" colspan="2"> <p align="center">
          <input type="submit" value="Submit" name="submit" style="font-family: Verdana; font-size: 10pt" class="button" />
          <input type="reset" value="Reset" name="reset" style="font-family: Verdana; font-size: 10pt" class="button" />
        </p></td>
    </tr>
  </table>

</form>

$footer
</body>
</html>

answer template
Code:

Letter placed by: $bbuserinfo[username]
-----------------------------------------------------
To the Leaders of $dropdownanswer1
-----------------------------------------------------
From: $answer1
-----------------------------------------------------
Subject : $answer2
-----------------------------------------------------
$longanswer1


Sarcoth 07-19-2006 01:50 AM

Usergroup Question

PHP Code:

////////////////////////////////////////////////////////////////////////////////////////////////////
//USERGROUPS ALLOWED
//You can add or remove usegroups that are ALLOWED to use this form by changing the numbers below in the array.
//To enable this feature, remove the '//' before the 'if'.
// 2 = Registered Users // 6 = Administrators // 11 = Lore Enthusiast // 12 = Lore_Room_01
////////////////////////////////////////////////////////////////////////////////////////////////////

if (!in_array($vbulletin->userinfo['usergroupid'], array(6,11))) print_no_permission();

//////////////////////////////////////////////////////////////////////////////////////////////////// 

As you can see, I have this set to allow usergroups 6 and 11 to view and to use this form. This only checks to see if they are in a Primary group though. I'd like the form to check to see if the user was in either of these groups as a Primary or Additional. Can anyone tell me how to do that?

Also, once the form is completed, I'd like to add a line at the end of the form to add them to a different "Additional Usergroup". Any help would be appreciated and I'll gladly send you $10 via paypal if you coding makes this work.

Thanks,
Nick

Abe1 07-19-2006 02:07 AM

Quote:

Originally Posted by Sarcoth
Usergroup Question

PHP Code:

////////////////////////////////////////////////////////////////////////////////////////////////////
//USERGROUPS ALLOWED
//You can add or remove usegroups that are ALLOWED to use this form by changing the numbers below in the array.
//To enable this feature, remove the '//' before the 'if'.
// 2 = Registered Users // 6 = Administrators // 11 = Lore Enthusiast // 12 = Lore_Room_01
////////////////////////////////////////////////////////////////////////////////////////////////////

if (!in_array($vbulletin->userinfo['usergroupid'], array(6,11))) print_no_permission();

//////////////////////////////////////////////////////////////////////////////////////////////////// 

As you can see, I have this set to allow usergroups 6 and 11 to view and to use this form. This only checks to see if they are in a Primary group though. I'd like the form to check to see if the user was in either of these groups as a Primary or Additional. Can anyone tell me how to do that?

Also, once the form is completed, I'd like to add a line at the end of the form to add them to a different "Additional Usergroup". Any help would be appreciated and I'll gladly send you $10 via paypal if you coding makes this work.

Thanks,
Nick

Let me know if this works. I wrote this for a prive hack and modifide it for you.
PHP Code:

$check1 explode("|"'6|11');
$check3 explode(",",$vbulletin->userinfo[membergroupids]);

foreach (
$check1 AS $check2)
{
    if (
$check2 == $vbulletin->userinfo[usergroupid])
    {
        
$is++;
    }

    foreach (
$check3 AS $check4)
    {
        if (
$check2 == $check4)
        {
            
$is++;
        }
    }
}

if (!(
$is))
{
    
print_no_permission();



Sarcoth 07-19-2006 03:02 AM

Abe1,

You are good. That definitely did the trick. :) Just PM me with an email to send the Paypal donation.

I did have a 2nd request in that message though, I'm guessing you missed it.

Quote:

Also, once the form is completed, I'd like to add a line at the end of the form to add them to a different "Additional Usergroup".
At the end of the form, I'd like to have them added to Membergroupids 12 (Additional Usergroup). In other words, I don't want the group to become the Primary for them, just to have them added to a secondary.

I'll put ADD_MEMBERGROUPIDS_HERE; for where I'd like to add it in my code.

PHP Code:

    if ($redirectoption == "5")
    {
        if ((
$quest_answer == 'ANSWER') || ($quest_answer == 'answer'))
        {
            
$vbulletin->url '../index.php?' $vbulletin->session->vars['sessionurl'] . "page=Next_Page";
            
ADD_MEMBERGROUPIDS_HERE;
            eval(
print_standard_redirect('redirect_postthanks'));
            exit();
        }
        else
        {
            
$vbulletin->url 'newthread.php?' $vbulletin->session->vars['sessionurl'] . "do=Same_Form";
            eval(
print_standard_redirect('redirect_postthanks'));
            exit();
        }
    } 

That will add them to Membergroupids 12 only if they type in ANSWER or answer in the form.

Thanks again for your help!

Abe1 07-19-2006 03:16 AM

Quote:

Originally Posted by Sarcoth
Abe1,

You are good. That definitely did the trick. :) Just PM me with an email to send the Paypal donation.

I did have a 2nd request in that message though, I'm guessing you missed it.



At the end of the form, I'd like to have them added to Membergroupids 12 (Additional Usergroup). In other words, I don't want the group to become the Primary for them, just to have them added to a secondary.

I'll put ADD_MEMBERGROUPIDS_HERE; for where I'd like to add it in my code.

PHP Code:

    if ($redirectoption == "5")
    {
        if ((
$quest_answer == 'ANSWER') || ($quest_answer == 'answer'))
        {
            
$vbulletin->url '../index.php?' $vbulletin->session->vars['sessionurl'] . "page=Next_Page";
            
ADD_MEMBERGROUPIDS_HERE;
            eval(
print_standard_redirect('redirect_postthanks'));
            exit();
        }
        else
        {
            
$vbulletin->url 'newthread.php?' $vbulletin->session->vars['sessionurl'] . "do=Same_Form";
            eval(
print_standard_redirect('redirect_postthanks'));
            exit();
        }
    } 

That will add them to Membergroupids 12 only if they type in ANSWER or answer in the form.

Thanks again for your help!

You can use the paypal donate link for this hack above.

I must have missed the 2nd part. It would take a while ot make the other thing.

wizadora 07-19-2006 11:46 AM

Any info on the drop-down ? This has been asked in this thread so many times (not just by me) but no answers. As I said in my post above, it works fine for posting to a single pre-defined forumid.

Would I just be best just hard-coding the template with the drop-choices and then passing the forum ID back instead of the choices ? I'm at a loss of the best way to go about this.

thx.

Sarcoth 07-20-2006 07:05 PM

Abe1,

Just curious, for adding to a Membergroupids, could we just reuse the code you gave me for checking to see if someone is in a Membergroup and then instead of "print_no_permission();" -- you could instead say add that membergroupid to this user?

Something like this (12 being the secondary member group I want to add the user to if they answer correctly):

PHP Code:

$check1 explode("|"'12'); 
$check3 explode(",",$vbulletin->userinfo[membergroupids]); 

foreach (
$check1 AS $check2

    if (
$check2 == $vbulletin->userinfo[usergroupid]) 
    { 
        
$is++; 
    } 

    foreach (
$check3 AS $check4
    { 
        if (
$check2 == $check4
        { 
            
$is++; 
        } 
    } 


if (!(
$is)) 

    
$check3->set('membergroupids'$check3);


Not to sure what to put in that final if statement, but was hoping you would. I've been testing a few things with no luck.

The other thing I tried was something Amy had posted for adding to a secondary group. Sadly it gave a Fatal error: Call to a member function on a non-object in ..../newthread.php(68) : eval()'d code on line 403. I know I missed setting a variable, but just not sure what one and what to set there.

PHP Code:

$membergroupids $userdata->fetch_field('membergroupids');
    if (
$membergroupids)
    {
        
$membergroupids $membergroupids ", 12";
    }
    else
    {
        
$membergroupids 12;
    }
    
$userdata->set('membergroupids'$membergroupids); 

Anyhow, I'll take what I can get. Thanks again for your help on the first problem.

Narcootic 07-21-2006 01:44 PM

Hi, great hack, have it installed and its working except for Unregistered users. I have tested it with other usegroups and it works fine but guests form inputs simply arent processed. The thread is created but the thread does not have any content. I have set all the permissions for guests to allow them to post in the thread where the form should submit the output of the form but it just creates a thread with nothing in them except "Unregistered". Any ideas? I have set the permissions correctly, I am pretty sure. Any chance of some assistance please :)

If you look at the attachment, you will see how it looks like, all screwed up :(

Thank you.

Stajerc 07-22-2006 07:21 AM

Quote:

Originally Posted by Stajerc
Hi Abe

sry for my bad english.
i use a translated german version of this hack. it works perfekt, but only one thing wont work as i want.
the hack have to post in a existing thread, and the hack do this. but it post a new thred too. i dont know why.

is there no support now??

Spikeh 07-22-2006 01:49 PM

Just got this hack installed and configured for one form how I wanted it. Nice work Abe1, just what I needed!

Sarcoth 07-23-2006 05:07 AM

I haven't heard back from Abe yet, so I'll make another offer here. I'll give a $10 donation to someone if they come up with some workable coding to add a user to a membergroup within this form. Please see my request in a previous post. I'll post in another forum for help on this if I don't see an answer here within a few days.

Post here or send me a PM if you have additional questions.

Thank you!

CremeEgg 07-24-2006 12:37 PM

I have a quick question regarding the answers template.

When using vB code for formatting in the answers template you have to have spaces i.e.

Code:

[b] $answer1 [/b ]
Well I am using the WoW Items hack and want to format the answers to the questions as items, so I put in the template

Code:

[item] $normalanswer1 [/item ]
But with the spaces included the item links don't work, if I remove the spaces you can't use the template, is there anyway around this?

Abe1 07-26-2006 02:48 AM

Quote:

Originally Posted by CremeEgg
I have a quick question regarding the answers template.

When using vB code for formatting in the answers template you have to have spaces i.e.

Code:

[b] $answer1 [/b ]
Well I am using the WoW Items hack and want to format the answers to the questions as items, so I put in the template

Code:

[item] $normalanswer1 [/item ]
But with the spaces included the item links don't work, if I remove the spaces you can't use the template, is there anyway around this?

You can remove the space before the varible. See what happens then.

Abe1 07-26-2006 02:49 AM

Quote:

Originally Posted by Stajerc
is there no support now??

I don't give support to custom edits for this hack. I only support bugs that might come up in the coding of it.

It would be too much for me if I helped everyone make a custom form.

Stajerc 07-26-2006 08:02 AM

ahh i undertand, thx.

NetRover 07-26-2006 02:41 PM

Hi there, can the thread title have pre-defined text with variables from the form inserted to make a title that is a combination of both.

eg: I am "$formanswername" living in "$formanswerlocation" looking for "$formanswerrequest" etc.

many thanks for what looks like a great hack.

CremeEgg 07-27-2006 08:01 AM

Quote:

Originally Posted by Abe1
You can remove the space before the varible. See what happens then.

You get the following error

Code:

The following error occurred when attempting to evaluate this template:

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /*PATH TO SITE*/forum/includes/adminfunctions_template.php(3537) : eval()'d code on line 30

This is likely caused by a malformed conditional statement. It is highly recommended that you fix this error before continuing, but you may continue as-is if you wish.

You can choose to continue, and if you do you can fill out the form ok, however if you try to preview or submit you get a blank white page and nothing happens.

jzewatsky 07-28-2006 02:03 AM

Thanks for the great plug in!

Unfortunately, I am getting the following error:

Parse error: parse error, unexpected ')' in /home/content/d/d/r/ddrcn/html/forums/newthread.php(68) : eval()'d code on line 750

I know it's just that I have an extra ")" somewhere, but I cant find where. There are only 414 lines in my newthread.php.

Any suggestions would be great!

Sarcoth 07-28-2006 12:10 PM

The error says newthread.php, but that isn't where your problem is located. Look through your form, most likely on line 750.

jzewatsky 07-28-2006 12:43 PM

Thank you Sarcoth, but my form only has 454 lines. I'm not familular with the hooks feature and how it functions, but is it possible that the two are somehow being added to eachother. If this is the case, where would I cut and paste the hook into the newthread.php to find the correct line 750?

Again, I appreciate any help!

Abe1 07-28-2006 02:11 PM

Quote:

Originally Posted by jzewatsky
Thank you Sarcoth, but my form only has 454 lines. I'm not familular with the hooks feature and how it functions, but is it possible that the two are somehow being added to eachother. If this is the case, where would I cut and paste the hook into the newthread.php to find the correct line 750?

Again, I appreciate any help!

Do you have more then one hack that uses that hook location? Disable the others and a differant line number should show.

jzewatsky 07-28-2006 03:29 PM

Thanks Abe1. This hack is just what my forum needed! Thanks for writing it and for helping me to get it working!

Allan 07-28-2006 05:24 PM

Hey, this hack work with vB 3.6 ?

Abe1 07-28-2006 06:14 PM

Quote:

Originally Posted by Allan
Hey, this hack work with vB 3.6 ?

Yes, it works with 3.6. There will be a new version of it though which has one template fix. Nothing major.

tommyxv 07-29-2006 09:02 AM

I am getting this error:
Quote:

Parse error: syntax error, unexpected T_VARIABLE, expecting '(' in /home/mysite/public_html/forums/newthread.php(68) : eval()'d code on line 724
I found it to be a conflict with PaulM's reposted post creates a new thread hack. (https://vborg.vbsupport.ru/showthread.php?t=83074) When I disable it, the forms hack works and the error goes away.

Any idea on how to fix?

bugman 07-30-2006 06:26 PM

SUPERB! EXCELLENT! GREAT WORK!

I am using this for an application for my gaming clan and it's perfect! Highly customisable which is great!

This has many, many uses! Quizzes, tests, applications and so much more.

I will give you the link to my clan soon so you can see in action.

THANK YOU!

MoJo Smirnoff 07-30-2006 08:22 PM

Quote:

Originally Posted by Sarcoth
I haven't heard back from Abe yet, so I'll make another offer here. I'll give a $10 donation to someone if they come up with some workable coding to add a user to a membergroup within this form. Please see my request in a previous post. I'll post in another forum for help on this if I don't see an answer here within a few days.

Post here or send me a PM if you have additional questions.

Thank you!


i too would like to be able to put users in another user group once they hit submit....either as primary or a secondary group. Is this possible?


great hack btw, we are using this for new recruits to the gaming clan...we've needed this for a year now!! Great stuff!

Miss Tiina 07-31-2006 06:07 PM

Hi I have 2 forms on my site. I thought I had changed the hook name properly to allow both forms to work but something isnt working right. Can someone please explain to me exactly what I change and where I change it to ensure both forms work, Thanks so much :)

Sarcoth 08-01-2006 07:50 PM

Quote:

Originally Posted by Miss Tiina
Hi I have 2 forms on my site. I thought I had changed the hook name properly to allow both forms to work but something isnt working right. Can someone please explain to me exactly what I change and where I change it to ensure both forms work, Thanks so much :)

They need different names under "Plugin Manager"; which you must have done since I doubt you can save one with the same name and you need to rename the $formname. Open up one of the forms and go down a few lines, rename the $formname and you'll have two identical forms with different names.

If you changed other data within the form though, like the number and type of questions, you have to add or remove various data from your form plugin, the form template and the formanswers template. If you change one of these, there is a good chance you'll have to update all three.

Personally, I made a copy of each and then editted them out till I got it the way I liked.

mschvili 08-02-2006 01:53 PM

Hi Abe.

I know. Here's another one asking for the attachment. I sure would help a lot if it would be able to attach files.

I will use the form in a support function and if the user won't be able to send pictures of their problems.. then it would be a whole support function.

Is it planned? Possible at all.

Thank you for a extremly good job!!

Abe1 08-03-2006 08:06 PM

Quote:

Originally Posted by mschvili
Hi Abe.

I know. Here's another one asking for the attachment. I sure would help a lot if it would be able to attach files.

I will use the form in a support function and if the user won't be able to send pictures of their problems.. then it would be a whole support function.

Is it planned? Possible at all.

Thank you for a extremly good job!!

Maybe in the vb 3.6 version.

Kungfu 08-05-2006 03:20 AM

Question, i have it setup to make a new thread everytime. Well if what they put into the longbox is too long it wont post the new thread. Anyway to split up the thread into multiple posts inside the thread if its too long or at least notify the user that it was too long?

Also i notice a lot people ask about how to get usernames emails etc... Maybe it should be added in an example somewhere.
$bbuserinfo = $vbulletin->userinfo;
then use $bbuserinfo[choose an one of the user infos below]

Example
$bbuserinfo[userid]
or
$bbuserinfo[username]
etc...

userid
usergroupid
membergroupids
displaygroupid
username
password
passworddate
email
styleid
parentemail
homepage
icq
aim
yahoo
msn
skype
showvbcode
showbirthday
usertitle
customtitle
joindate
daysprune
lastvisit
lastactivity
lastpost
posts
reputation
reputationlevelid
timezoneoffset
pmpopup
avatarid
avatarrevision
profilepicrevision
options
birthday
birthday_search
maxposts
startofweek
ipaddress
referrerid
languageid
emailstamp
threadedmode
autosubscribe
pmtotal
pmunread

mschvili 08-08-2006 02:51 PM

Since I use the form as a support form I want to use the same form for several forums (about 30).

As soon as the user select the add thread button in those forum you should get the forum.

Sound logical, doesn't it :-)

Super hack by the way!!

Murty 08-09-2006 06:23 AM

just installed this, an i fully cant figure out how to put in more radio buttons for some questions and take out other defualt questions, can you refer me to a post or gimme something to work with? thanks.

ProperMethodz 08-09-2006 12:55 PM

I'm currently working on a Horde specific WoW application form. Is it alright if I posted it as my own but referenced this thread? I'm putting a lot of work into it and have already spent about 20 hours total on it.

ProperMethodz 08-10-2006 03:59 PM

Abe, first off... Awesome hack. This has taught me a lot about how vb works and how to customize a lot of different things I had never tried.

On to my problem. As you can see in my previous post, I've been working on a form. So far it's a pretty intensive, well intensive for me, form.

I started with getting all the information on the page by copy and pasting code then changing the function name, value and name variables to fit the layout I needed. I then went down to the customize area and put in the questions and answers I wanted.

The last part before I want to mess with any of the permissions is the template and Variables. See before I started messing with the variables, only some of my answers would come out. So I looked back and found that I was missing some information there. So I started customizing all the variables and am afraid I mesed up royaly because now... no answers show in the PM/E-mail/Thread creation.

Please tell me what the heck I did wrong... I don't get it. I mimicked what you did :(.


Here's the template code:

Code:

<template name="formanswers" templatetype="template" date="1149082732" username="ProperMethodz" version="3.5.4"><![CDATA[$formtitle
$bbuserinfo[username]

$question1
$answer1

$question2
$answer2

$question3
$answer3
-------------------------------------------------

$question4
$answer4

$dropdownquestion1
$dropdownanswer1

$dropdownquestion2
$dropdownanswer2

$questionlevel
$answerlevel

$dropdownquestion3
$dropdownanswer3

$dropdownquestion4
$dropdownanswer4 $dropdownanswer4a

$dropdownquestion5
$dropdownanswer5 $dropdownanswer5a

$question5
$answer5

$question7
$answer7

$checkboxquestion1
$checkboxanswer1_1
$checkboxanswer1_2
$checkboxanswer1_3
$checkboxanswer1_4
$checkboxanswer1_5
$checkboxanswer1_6
$checkboxanswer1_7
$checkboxanswer1_8
$checkboxanswer1_9
$checkboxanswer1_10
$checkboxanswer1_11
$checkboxanswer1_12
$checkboxanswer1_13
$checkboxanswer1_14
$checkboxanswer1_15

$radioquestion1
$radioanswer1

$radioquestion2
$radioanswer2

$question8
$answer8

$question6
$answer6a
$answer6b
$answer6c

$vbtextquestion1
------------------------------------------------------

$vbtextanswer

------------------------------------------------------
$vbtextquestion2
------------------------------------------------------

$vbtextanswer2

------------------------------------------------------]]></template>

Here's the variable code:
Code:

// Part 1
$vbulletin->input->clean_array_gpc('p', array(
'$answer1' => TYPE_STR,
'$answer2' => TYPE_STR,
'$answer3' => TYPE_STR,
'$answer4' => TYPE_STR,
'$dropdownanswer1' => TYPE_STR,
'$dropdownanswer2' => TYPE_STR,
'$answerlevel' => TYPE_STR,
'$dropdownanswer3' => TYPE_STR,
'$dropdownanswer4' => TYPE_STR,
'$dropdownanswer4a' => TYPE_STR,
'$dropdownanswer5' => TYPE_STR,
'$dropdownanswer5a' => TYPE_STR,
'$answer5' => TYPE_STR,
'$answer7' => TYPE_STR,
'$checkboxanswer1_1' => TYPE_STR,
'$checkboxanswer1_2' => TYPE_STR,
'$checkboxanswer1_3' => TYPE_STR,
'$checkboxanswer1_4' => TYPE_STR,
'$checkboxanswer1_5' => TYPE_STR,
'$checkboxanswer1_6' => TYPE_STR,
'$checkboxanswer1_7' => TYPE_STR,
'$checkboxanswer1_8' => TYPE_STR,
'$checkboxanswer1_9' => TYPE_STR,
'$checkboxanswer1_10' => TYPE_STR,
'$checkboxanswer1_11' => TYPE_STR,
'$checkboxanswer1_12' => TYPE_STR,
'$checkboxanswer1_13' => TYPE_STR,
'$checkboxanswer1_14' => TYPE_STR,
'$checkboxanswer1_15' => TYPE_STR,
'$radioanswer1' => TYPE_STR,
'$radioanswer2' => TYPE_STR,
'$answer8' => TYPE_STR,
'$answer6a' => TYPE_STR,
'$answer6b' => TYPE_STR,
'$answer6c' => TYPE_STR,
'$vbtextanswer' => TYPE_STR,
'$vbtextanswer2' => TYPE_STR
));

// Part 2
$answer1 = $vbulletin->GPC['answer1'];
$answer2 = $vbulletin->GPC['answer2'];
$answer3 = $vbulletin->GPC['answer3'];
$answer4 = $vbulletin->GPC['answer4'];
$dropdownanswer1 = $vbulletin->GPC['dropdownanswer1'];
$dropdownanswer2 = $vbulletin->GPC['dropdownanswer2'];
$answerlevel = $vbulletin->GPC['answerlevel'];
$dropdownanswer3 = $vbulletin->GPC['dropdownanswer3'];
$dropdownanswer4 = $vbulletin->GPC['dropdownanswer4'];
$dropdownanswer4a = $vbulletin->GPC['dropdownanswer4a'];
$dropdownanswer5 = $vbulletin->GPC['dropdownanswer5'];
$dropdownanswer5a = $vbulletin->GPC['dropdownanswer5a'];
$answer5 = $vbulletin->GPC['answer5'];
$answer7 = $vbulletin->GPC['answer7'];
$checkboxanswer1_1 = $vbulletin->GPC['checkboxanswer1_1'];
$checkboxanswer1_2 = $vbulletin->GPC['checkboxanswer1_2'];
$checkboxanswer1_3 = $vbulletin->GPC['checkboxanswer1_3'];
$checkboxanswer1_4 = $vbulletin->GPC['checkboxanswer1_4'];
$checkboxanswer1_5 = $vbulletin->GPC['checkboxanswer1_5'];
$checkboxanswer1_6 = $vbulletin->GPC['checkboxanswer1_6'];
$checkboxanswer1_7 = $vbulletin->GPC['checkboxanswer1_7'];
$checkboxanswer1_8 = $vbulletin->GPC['checkboxanswer1_8'];
$checkboxanswer1_9 = $vbulletin->GPC['checkboxanswer1_9'];
$checkboxanswer1_10 = $vbulletin->GPC['checkboxanswer1_10'];
$checkboxanswer1_11 = $vbulletin->GPC['checkboxanswer1_11'];
$checkboxanswer1_12 = $vbulletin->GPC['checkboxanswer1_12'];
$checkboxanswer1_13 = $vbulletin->GPC['checkboxanswer1_1'];
$checkboxanswer1_14 = $vbulletin->GPC['checkboxanswer1_14'];
$checkboxanswer1_15 = $vbulletin->GPC['checkboxanswer1_15'];
$radioanswer1 = $vbulletin->GPC['radioanswer1'];
$radioanswer2 = $vbulletin->GPC['radioanswer2'];
$answer8 = $vbulletin->GPC['answer8'];
$answer6a = $vbulletin->GPC['answer6a'];
$answer6b = $vbulletin->GPC['answer6b'];
$answer6c = $vbulletin->GPC['answer6c'];
$vbtextanswer = $vbulletin->GPC['vbtextanswer'];
$vbtextanswer2 = $vbulletin->GPC['vbtextanswer2'];


R.Caldwell 08-22-2006 09:38 PM

Just wondering if anyone can help me add a drop down box for the user to select which thread he wants the form to be submited to.

I really like this hack, and I can pay someone for the added support if needs be.

Nuguru 08-22-2006 11:09 PM

Hello Everyone,

I got to start out by thanking the developer of this form, as it seems to has lots of potential.

However, I am having a little problem with it's spacing and I am hoping that someone could help me out here.

I just installed it on vbulletin 3.5.4 and I am getting a extra space at the top of it. The extra space is below the navbar before the form (Please see attachment).

It looks like a <br> of some type needs to be removed, but I can't seem to find the code that will take out this extra space.

Any help would be appreciated.


Thank You,

Nuguru :)

evofile 08-23-2006 12:26 AM

is that hack works on vBulletin 3.6.0?

mschvili 08-23-2006 03:50 AM

Nuguru, you need to go in and change to Template under 'Style'. The template is called "Form".


All times are GMT. The time now is 07:05 AM.

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.04044 seconds
  • Memory Usage 2,189KB
  • 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
  • (8)bbcode_code_printable
  • (1)bbcode_html_printable
  • (8)bbcode_php_printable
  • (13)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (40)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