vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.6 Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=194)
-   -   New Posting Features - Form Hack (https://vborg.vbsupport.ru/showthread.php?t=126676)

The-Ensemble 09-20-2006 02:39 PM

Ok, My forms are done I just need this edit and then I'm tottally done.

How would I change the navbar in php? I want it so it says
board name - usercp - usercp page - form

ReBumping my question :D

R.Caldwell 09-20-2006 03:29 PM

You could try adding this to the navbar template in your style
Code:

<if condition="$show['member']">
                        <td class="vbmenu_control"><a href="newthread.php?do=service_form">$vbphrase[Form]</a></td>
                </if>


aceofspades 09-20-2006 03:48 PM

Quote:

Originally Posted by aceofspades
Can you please help me, i am getting this error message:



I have only changed the titles of the questions, i havent changed anything else.

Are you able to help me with this?

James

R.Caldwell 09-20-2006 06:15 PM

Quote:

Originally Posted by aceofspades
Are you able to help me with this?

James

When you change the title of the questions, you need to make the same changes to the form template and formanswers template.

Make sure whatever questions you changed are in the Part 1 & 2 Varibles list as well.

Abe1 09-20-2006 07:36 PM

Quote:

Originally Posted by R.Caldwell
When you change the title of the questions, you need to make the same changes to the form template and formanswers template.

Make sure whatever questions you changed are in the Part 1 & 2 Varibles list as well.

Only if you cahnge the var. name or add, or delete do you have to edit part 1, part 2, and both templates.

R.Caldwell 09-20-2006 08:06 PM

Abe1 - Is there a way to you can at least tell me the varible(s) i need to change? I know it's something small I am missing.

JAuthement 09-20-2006 09:16 PM

Abe1,

For us the "Programming Illiterate" is there a way that you can upgrade the mod so that it is more "User Friendly"? for example make it so that the layout and questions can be edited within a options page basically make it "Point and Click". Reasoning for this is that I've tried to configure this as an Application form. I had no need for a normal answer variable but instead I needed another dropdown. For the life of me I could not get rid of the input box for $normalquestion1, I could not get the dropdown to present itself where I wanted it, and I couldn't get both dropdown's to be visable on the page. I went as far as to create an additional variable and sequetially numbered it (i.e. $dropdownanswer1 and $dropdownanswer2) but with no success.

I see this mod as a valuable asset to my site but my limited expertise in programming ( expertiese scale 1 - 10 MINE - neg 5,000) renders it useless at the moment.

Abe1 09-20-2006 11:51 PM

Quote:

Originally Posted by JAuthement
Abe1,

For us the "Programming Illiterate" is there a way that you can upgrade the mod so that it is more "User Friendly"? for example make it so that the layout and questions can be edited within a options page basically make it "Point and Click". Reasoning for this is that I've tried to configure this as an Application form. I had no need for a normal answer variable but instead I needed another dropdown. For the life of me I could not get rid of the input box for $normalquestion1, I could not get the dropdown to present itself where I wanted it, and I couldn't get both dropdown's to be visable on the page. I went as far as to create an additional variable and sequetially numbered it (i.e. $dropdownanswer1 and $dropdownanswer2) but with no success.

I see this mod as a valuable asset to my site but my limited expertise in programming ( expertiese scale 1 - 10 MINE - neg 5,000) renders it useless at the moment.

I am a programmer, not an English teacher. I don't have patients to write everything up perfectly. The hardest part about programming is to explain to users how to use it. If someone is willing to be a middle man, be my guess and contact me.

ChrisBaktis 09-21-2006 03:24 AM

I have my form posting as a thread - the members enter $normalanswer1 with the username of someone they trade with...when the form posts I want the title of the thread created to be the username of the person posting the form and $normalanswer1...

on the old version I think I did '$bbuserinfo[username] / $normalanswer1' but when I do that in the $posttitle part now the $bbuserinfo doesnt work...any suggestions?

R.Caldwell 09-21-2006 04:23 AM

this code should work just fine in the hack code itself.
PHP Code:

$posttitle "$bbuserinfo[username]"


ChrisBaktis 09-21-2006 04:41 AM

Quote:

Originally Posted by R.Caldwell
this code should work just fine in the hack code itself.
PHP Code:

$posttitle "$bbuserinfo[username]"


I tried that but it just left it out in the thread title

My $postitle code is = $bbuserinfo[username] / $normalanswer1

The thread that is created has a title that is this " / $normalanswer1" - the username doesnt show but the $normalanswer info does

R.Caldwell 09-21-2006 04:43 AM

did you add it to the answers template?

The-Ensemble 09-21-2006 05:49 AM

Quote:

Originally Posted by R.Caldwell
You could try adding this to the navbar template in your style
Code:

<if condition="$show['member']">
                        <td class="vbmenu_control"><a href="newthread.php?do=service_form">$vbphrase[Form]</a></td>
                </if>


If this was to me, thank you but it needs to be done in php it doesnt do it in the template:(

ChrisBaktis 09-21-2006 12:46 PM

Quote:

Originally Posted by R.Caldwell
did you add it to the answers template?

Yes and the answer template works fine...I have that same info in there where it works just as it did before - this is just in the Thread title that it isnt showing up.

The-Ensemble 09-21-2006 03:45 PM

Hey,
I figured out how to edit breadcrum you simply remove the navbar part of the php code and your own but you can use the $formname part incase you change the form.

Thanks R.Caldwell I got the idea from what you said.

Deimos 09-21-2006 11:53 PM

Great hack, smal.....large problem, heh

I've made it so there's 15 normal questions/answers, all of which show up on the original form
But, when you post or preview it, only the answer to the first question is posted?
It seems to ignore the other answers?
I must be missing something somewhere right?

ChrisBaktis 09-22-2006 12:23 AM

Quote:

Originally Posted by ChrisBaktis
I tried that but it just left it out in the thread title

My $postitle code is = $bbuserinfo[username] / $normalanswer1

The thread that is created has a title that is this " / $normalanswer1" - the username doesnt show but the $normalanswer info does

Any additonal suggestions on what the problem may be?

The-Ensemble 09-23-2006 11:21 AM

Quote:

Originally Posted by Deimos
Great hack, smal.....large problem, heh

I've made it so there's 15 normal questions/answers, all of which show up on the original form
But, when you post or preview it, only the answer to the first question is posted?
It seems to ignore the other answers?
I must be missing something somewhere right?

did you edit the forumanswers one so it shows all of them?


Ok now here's my question:
Someone filled out the form and pressed enter in a box and it submitted it, rather than create a new line how do I change this?

Martin-TMGRS 09-23-2006 08:25 PM

I've tried editing the form, but when I view it there is all the old boxes left. I dont understand what i'm doing wrong. Can anyone help me out here please...See the attached file...

The-Ensemble 09-23-2006 09:26 PM

did you edit the templates as well as the php code?

Martin-TMGRS 09-23-2006 09:48 PM

Quote:

Originally Posted by The-Ensemble
did you edit the templates as well as the php code?

No I didn't but I have now, thanks for your help, many thanks :)

The-Ensemble 09-23-2006 10:32 PM

No problem :D

Anyone on my problem? :(

thalamus 09-24-2006 05:21 PM

I've set this up, and amended the file and templates to generate a Contact us function that is to be posted into a specified forum.

The form looks good, the information is great and it works wonderfully when posting into the forum... for those that have the relevant permissions...

Unfortunately, the form will be completed and submitted by unregistered members and I was wondering whether there's anything at all can be done to allow this to happen. The process is: guest or member (who generally doesn't have access to the forum into which its posted) completes a contact us form. It gets posted into the forum, and a "support" usergroup member responds or it's discussed.

Any clues as to where I should start looking for this solution?

edit: just saw this in the hack description:
Quote:

"Depending on your forum permissions, if the new thread is in a public forum, members can reply to it. This hack allows a form to submit the new thread or post wherever you want it to go."
Well either I'm missing something completely obvious, or it simply doesn't do this. Unless it's this image verification thing that was mentioned a few pages back that's stopping it? I have it set to avoid spammage, so is that the problem I'm facing??

edit again: OK, just found that it *is* the image verification problem that was causing it. It now posts, but as Moderated - guess I'll have to tweak the forum/usergroup permissions to get around that. Just to confirm... by setting Guest Posts needs Image Verification to yes in your vb Options DOES cause this hack not to post into forums in those situations. Oh and the color red becomes green on these forums for some inexplicable reason...

ChrisBaktis 09-27-2006 03:55 AM

Quote:

Originally Posted by ChrisBaktis
I tried that but it just left it out in the thread title

My $postitle code is = $bbuserinfo[username] / $normalanswer1

The thread that is created has a title that is this " / $normalanswer1" - the username doesnt show but the $normalanswer info does

Still looking for support on this.

maroceve 09-27-2006 11:17 AM

waaay too complicated for us non coders...not for me

thalamus 09-27-2006 04:17 PM

Quote:

Originally Posted by ChrisBaktis
Still looking for support on this.

You may have to set it up as a variable in the xml within the products manager - edit the Forms Hack in Products Manager, then under the VARIABLES section, put:
Quote:

$user_name = $bbuserinfo[username];
then as your title put:
Quote:

$user_name / $normalanswer1
Anyone have any idea as to how I can bypass the moderation queue when I post it into a "closed" forum?

ChrisBaktis 09-27-2006 05:38 PM

Quote:

Originally Posted by thalamus
You may have to set it up as a variable in the xml within the products manager - edit the Forms Hack in Products Manager, then under the VARIABLES section, put:

then as your title put:


Anyone have any idea as to how I can bypass the moderation queue when I post it into a "closed" forum?


I have this in my form hack and it is still a no go.

Code:

// Part 1
$user_name = $bbuserinfo[username];
$vbulletin->input->clean_array_gpc('p', array(
'normalanswer1' => TYPE_STR,
'radioanswer1' => TYPE_STR,
'radioanswer2' => TYPE_STR,
'radioanswer3' => TYPE_STR,
'radioanswer4' => TYPE_STR,
'radioanswer5' => TYPE_STR,
'radioanswer3other' => TYPE_STR,
'answer1' => TYPE_STR,
'answer2' => TYPE_STR,
'answer3' => TYPE_STR,
'dropdownanswer1' => TYPE_STR,
'checkboxanswer1_1' => TYPE_STR,
'checkboxanswer1_2' => TYPE_STR,
'checkboxanswer1_3' => TYPE_STR,
'longanswer1' => TYPE_STR,
'longanswer2' => TYPE_STR,
'longanswer3' => TYPE_STR
));

// Part 2
$user_name = $bbuserinfo[username];
$normalanswer1 = $vbulletin->GPC['normalanswer1'];
$radioanswer1 = $vbulletin->GPC['radioanswer1'];
$radioanswer2 = $vbulletin->GPC['radioanswer2'];
$radioanswer3 = $vbulletin->GPC['radioanswer3'];
$radioanswer4 = $vbulletin->GPC['radioanswer4'];
$radioanswer5 = $vbulletin->GPC['radioanswer5'];
$radioanswer3other = $vbulletin->GPC['radioanswer3other'];
$answer1 = $vbulletin->GPC['answer1'];
$answer2 = $vbulletin->GPC['answer2'];
$answer3 = $vbulletin->GPC['answer3'];
$dropdownanswer1 = $vbulletin->GPC['dropdownanswer1'];
$checkboxanswer1_1 = $vbulletin->GPC['checkboxanswer1_1'];
$checkboxanswer1_2 = $vbulletin->GPC['checkboxanswer1_2'];
$checkboxanswer1_3 = $vbulletin->GPC['checkboxanswer1_3'];
$longanswer1 = $vbulletin->GPC['longanswer1'];
$longanswer2 = $vbulletin->GPC['longanswer2'];
$longanswer3 = $vbulletin->GPC['longanswer3'];


thalamus 09-27-2006 06:41 PM

You don't need it in part 1, only part 2 where you're defining the variable. Also make sure you set your title to reflect the given variable $user_name

ChrisBaktis 09-27-2006 07:35 PM

Quote:

Originally Posted by thalamus
You don't need it in part 1, only part 2 where you're defining the variable. Also make sure you set your title to reflect the given variable $user_name

I really appreciate your help on this but it is still not working....here is my form maybe im messing something up somewhere.

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 = "tradeform";

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(
'normalanswer1' => TYPE_STR,
'radioanswer1' => TYPE_STR,
'radioanswer2' => TYPE_STR,
'radioanswer3' => TYPE_STR,
'radioanswer4' => TYPE_STR,
'radioanswer5' => TYPE_STR,
'radioanswer3other' => TYPE_STR,
'answer1' => TYPE_STR,
'answer2' => TYPE_STR,
'answer3' => TYPE_STR,
'dropdownanswer1' => TYPE_STR,
'checkboxanswer1_1' => TYPE_STR,
'checkboxanswer1_2' => TYPE_STR,
'checkboxanswer1_3' => TYPE_STR,
'longanswer1' => TYPE_STR,
'longanswer2' => TYPE_STR,
'longanswer3' => TYPE_STR
));

// Part 2
$user_name = $bbuserinfo[username];
$normalanswer1 = $vbulletin->GPC['normalanswer1'];
$radioanswer1 = $vbulletin->GPC['radioanswer1'];
$radioanswer2 = $vbulletin->GPC['radioanswer2'];
$radioanswer3 = $vbulletin->GPC['radioanswer3'];
$radioanswer4 = $vbulletin->GPC['radioanswer4'];
$radioanswer5 = $vbulletin->GPC['radioanswer5'];
$radioanswer3other = $vbulletin->GPC['radioanswer3other'];
$answer1 = $vbulletin->GPC['answer1'];
$answer2 = $vbulletin->GPC['answer2'];
$answer3 = $vbulletin->GPC['answer3'];
$dropdownanswer1 = $vbulletin->GPC['dropdownanswer1'];
$checkboxanswer1_1 = $vbulletin->GPC['checkboxanswer1_1'];
$checkboxanswer1_2 = $vbulletin->GPC['checkboxanswer1_2'];
$checkboxanswer1_3 = $vbulletin->GPC['checkboxanswer1_3'];
$longanswer1 = $vbulletin->GPC['longanswer1'];
$longanswer2 = $vbulletin->GPC['longanswer2'];
$longanswer3 = $vbulletin->GPC['longanswer3'];

////////////////////////////////////////////////////////////////////////////////////////////////////
//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,22,13,27,33,9,28,31,24,19,15))) 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 = "tradeform";
// Name of the answer template
$answertemplate = "tradeformanswers";

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

////////////////////////////////////////////////////////////////////////////////////////////////////
//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 = "36";

//ENABLE POLL TO BE CREATED - 1 = yes, 0 = no
$formpoll = "0";
$polloption[1] = "Yes";
$polloption[2] = "No";
$polloption[3] = "Maybe";

//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 (separate multiple usernames with a ';')
$formpmname = "Abe";

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

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

//EMAIL ADDRESS TO EMAIL TO (separate multiple usernames with a ';')
$formemailaddress = "youremail@yourforums.com";

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

//ENABLE ATTACHMENTS - 1 = yes, 0 = no
//attachments can only be used if the form is going to make a new thread or post
$allow_attachments = "1";

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



////////////////////////////////////////////////////////////////////////////////////////////////////
//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 (thread or reply)
//
// Feel free to change the thank you message if you choose option 0
////////////////////////////////////////////////////////////////////////////////////////////////////

$redirectoption = "2";

$errormessage = "Thank you for submitting this form!"; //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 = "Sports Card Haven Trade Post Form";

////////////////////////////////////////////////////////////////////////////////////////////////////
//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 = "$user_name / $normalanswer1";

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

$formpurpose = "This form allows you to easily post a trade with your trade partner.  Please be sure to spell your trade partner's username correctly..";

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

////////////////////////////////////////////////////////////////////////////////////////////////////
//NORMAL INPUT BOX : QUESTION 1 (do not use quotation marks or you will get a parse error, besides the quotes around the whole text)
////////////////////////////////////////////////////////////////////////////////////////////////////

$normalquestion1 = "Trade Partner's Username";

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

////////////////////////////////////////////////////////////////////////////////////////////////////
//RADIO BOX CHOICES : QUESTION 1 (do not use quotation marks or you will get a parse error, besides the quotes around the whole text)
////////////////////////////////////////////////////////////////////////////////////////////////////

$radioquestion1 = "Insurance?";

// The following choices must NOT have quotation marks
$radiochoice1a = "Yes";
$radiochoice1b = "No";

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

////////////////////////////////////////////////////////////////////////////////////////////////////
//RADIO BOX CHOICES : QUESTION 2 (do not use quotation marks or you will get a parse error, besides the quotes around the whole text)
////////////////////////////////////////////////////////////////////////////////////////////////////

$radioquestion2 = "Delivery Confirmation?";

// The following choices must NOT have quotation marks
$radiochoice2a = "Yes";
$radiochoice2b = "No";


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

////////////////////////////////////////////////////////////////////////////////////////////////////
//RADIO BOX CHOICES : QUESTION 3 (do not use quotation marks or you will get a parse error, besides the quotes around the whole text)
////////////////////////////////////////////////////////////////////////////////////////////////////

$radioquestion3 = "Bubble Mailer?";

// The following choices must NOT have quotation marks
$radiochoice3a = "Yes";
$radiochoice3b = "No";

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

////////////////////////////////////////////////////////////////////////////////////////////////////
//RADIO BOX CHOICES : QUESTION 4 (do not use quotation marks or you will get a parse error, besides the quotes around the whole text)
////////////////////////////////////////////////////////////////////////////////////////////////////

$radioquestion4 = "Who Is Sending First??";

// The following choices must NOT have quotation marks
$radiochoice4a = "Me";
$radiochoice4b = "Trade Partner";
$radiochoice4c = "Same Time";

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

////////////////////////////////////////////////////////////////////////////////////////////////////
//RADIO BOX CHOICES : QUESTION 5 (do not use quotation marks or you will get a parse error, besides the quotes around the whole text)
////////////////////////////////////////////////////////////////////////////////////////////////////

$radioquestion5 = "SCH Escrow Sale?";

// The following choices must NOT have quotation marks
$radiochoice5a = "Yes";
$radiochoice5b = "No";

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

////////////////////////////////////////////////////////////////////////////////////////////////////
//LONG TEXT AREA INPUT: QUESTION 1 (do not use quotation marks or you will get a parse error, besides the quotes around the whole text)
////////////////////////////////////////////////////////////////////////////////////////////////////

$longquestion1 = "Items Your Getting";
$longexplain1 = "List items that you are getting.";

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

////////////////////////////////////////////////////////////////////////////////////////////////////
//LONG TEXT AREA INPUT: QUESTION 2 (do not use quotation marks or you will get a parse error, besides the quotes around the whole text)
////////////////////////////////////////////////////////////////////////////////////////////////////

$longquestion2 = "Trade Partner Gets";
$longexplain2 = "List items that you are sending.";

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

////////////////////////////////////////////////////////////////////////////////////////////////////
//LONG TEXT AREA INPUT: QUESTION 3 (do not use quotation marks or you will get a parse error, besides the quotes around the whole text)
////////////////////////////////////////////////////////////////////////////////////////////////////

$longquestion3 = "Misc Info";
$longexplain3 = "Please post any additional information about this trade.";

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

////////////////////////////////////////////////////////////////////////////////////////////////////
//VB TEXT AREA INPUT: You can only have ONE vb text question. (do not use quotation marks or you will get a parse error, besides the quotes around the whole text)
////////////////////////////////////////////////////////////////////////////////////////////////////

$vbtextquestion = "Please write down a paragraph about how you like this forum.";
$vbtextexplain = "For example, what makes this forum different from all other forums?";

////////////////////////////////////////////////////////////////////////////////////////////////
////// 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") . '";');

        $posthash = $vbulletin->input->clean_gpc('p', 'posthash', TYPE_NOHTML);
        $poststarttime = $vbulletin->input->clean_gpc('p', 'poststarttime', TYPE_UINT);

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

                        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], 0, 1);
                    $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', $vbulletin, ERRTYPE_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', $vbulletin, ERRTYPE_STANDARD, 'threadpost');
                    $threadman->set_existing($threadinfo);
                    $threadman->set('pollid', $pollid);
                    $threadman->save();
                        }
            }

            if ($formreply == "1")
            {
                $threadinfo = verify_id('thread', $formreplythreadid, 0, 1);
                $forumperms = fetch_permissions($threadinfo[forumid]);
                $newpost['username'] =& $vbulletin->userinfo['username'];
                $newpost['message'] =& $formsend;
                $newpost['title'] =& $posttitle;
                $newpost['parseurl'] = "1";
                $newpost['poststarttime'] = $poststarttime;
                        $newpost['posthash'] = $posthash;
       
                        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', $vbulletin, ERRTYPE_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")
            {
                        require_once(DIR . '/includes/class_bbcode_alt.php');
                        $plaintext_parser =& new vB_BbCodeParser_PlainText($vbulletin, fetch_tag_list());
                        $plaintext_parser->set_parsing_language($touserinfo['languageid']);
                        $formsend = $plaintext_parser->parse($formsend);

                    $emails = explode(';', $formemailaddress);
                    foreach ($emails AS $email)
                    {
                        vbmail($email, $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($vbulletin, fetch_tag_list());
        $preview = $parser->do_parse($formsend);

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

if ($_REQUEST['action'] == 'form')
{
        if (($formforum OR $formreply) AND $allow_attachments)
        {
                if ($formforum AND $formreply)
                {
                        $forumid = $formforumid;
                }
                else if ($formreply)
                {
                        $threadid = $formreplythreadid;
                $threadinfo = verify_id('thread', $threadid, 0, 1);
                $forumid = $threadinfo[forumid];
                }
                else
                {
                        $forumid = $formforumid;
                }

        $forumperms = fetch_permissions($forumid);

                // get attachment options
                require_once(DIR . '/includes/functions_file.php');
                $inimaxattach = fetch_max_upload_size();

                $maxattachsize = vb_number_format($inimaxattach, 1, true);
                $attachcount = 0;
                $attach_editor = array();
                $attachment_js = '';

                if ($forumperms & $vbulletin->bf_ugp_forumpermissions['canpostattachment'] AND $vbulletin->userinfo['userid'] AND !empty($vbulletin->userinfo['attachmentextensions']))
                {
                        if (!$posthash OR !$poststarttime)
                        {
                                $poststarttime = TIMENOW;
                                $posthash = md5($poststarttime . $vbulletin->userinfo['userid'] . $vbulletin->userinfo['salt']);
                        }
                        else
                        {
                                if (empty($postattach))
                                {
                                        $currentattaches = $db->query_read("
                                                SELECT dateline, filename, filesize, attachmentid
                                                FROM " . TABLE_PREFIX . "attachment
                                                WHERE posthash = '" . $db->escape_string($posthash) . "'
                                                        AND userid = " . $vbulletin->userinfo['userid']
                                        );

                                        while ($attach = $db->fetch_array($currentattaches))
                                        {
                                                $postattach["$attach[attachmentid]"] = $attach;
                                        }
                                }

                                if (!empty($postattach))
                                {
                                        foreach($postattach AS $attachmentid => $attach)
                                        {
                                                $attach['extension'] = strtolower(file_extension($attach['filename']));
                                                $attach['filename'] = htmlspecialchars_uni($attach['filename']);
                                                $attach['filesize'] = vb_number_format($attach['filesize'], 1, true);
                                                        $attach['imgpath'] = "$stylevar[imgdir_attach]/$attach[extension].gif";
                                                $show['attachmentlist'] = true;
                                                eval('$attachments .= "' . fetch_template('newpost_attachmentbit') . '";');

                                                $attachment_js .= construct_attachment_add_js($attachmentid, $attach['filename'], $attach['filesize'], $attach['extension']);

                                                $attach_editor["$attachmentid"] = $attach['filename'];
                                        }
                                }
                        }

                        if ($threadid)
                        {
                                $attachurl = "t=$threadid";
                        }
                        else
                        {
                                $attachurl = "f=$forumid";                       
                        }
                        $newpost_attachmentbit = prepare_newpost_attachmentbit();
                        eval('$attachmentoption = "' . fetch_template('newpost_attachment') . '";');

                        if ($threadid)
                        {
                                $attach_editor['hash'] = $threadid;
                                $attach_editor['url'] = "newattachment.php?$session[sessionurl]t=$threadid&amp;poststarttime=$poststarttime&amp;posthash=$posthash";
                        }
                        else
                        {
                                $attach_editor['hash'] = $forumid;
                                $attach_editor['url'] = "newattachment.php?$session[sessionurl]f=$forumid&amp;poststarttime=$poststarttime&amp;posthash=$posthash";               
                        }
                }
                else
                {
                        $attachmentoption = '';
                }
        }
        else
        {
                $attachmentoption = '';
        }

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

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


thalamus 10-01-2006 08:29 AM

The only thing I can think of is that the initial variables are set when the action of the form is set to 'do form'... perhaps at the beginning of the script, where it says:
Code:

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

add a "$bbuserinfo = $vbulletin->userinfo;" instruction just after the opening brace before it goes on to define the custom variables?

MRGTB 10-01-2006 09:29 AM

this can be played around with to use as an article submission form etc. Quite neat.

ChrisBaktis 10-01-2006 02:04 PM

Quote:

Originally Posted by thalamus
The only thing I can think of is that the initial variables are set when the action of the form is set to 'do form'... perhaps at the beginning of the script, where it says:
Code:

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

add a "$bbuserinfo = $vbulletin->userinfo;" instruction just after the opening brace before it goes on to define the custom variables?

YES!!! Thank you!

halpern 10-01-2006 02:08 PM

Ok. I am not really a programmer so I am looking for some help. I have installed this into my Vbulletin 3.6.1. I want to have it email the results to the sysadmin, that would be me. What hook do I need to make the form? The default one is newthread_start but I am sure that I change that if I am sending a PM. Am I correct in saying that? Also, I do not have permission to view the thread that was created when I was testing the form. Why is this? I added id 6 in the array function to allow me (admin) access.

ChrisBaktis 10-02-2006 12:43 AM

Quote:

Originally Posted by ChrisBaktis
YES!!! Thank you!


spoke to soon - your suggestion solved teh problem but created another...

for some reason whenever a member clicked on a the New Thread button it went to the form... crazy I know...When I hover over the new thread button it didnt give that URL it gave teh URL for the new thread but when you clicked on it it goes to the form for some reason - I removed the line you gave me and that problem was corrected....this is the wierdest problem I have ever come across with a hack.

ChrisBaktis 10-02-2006 12:46 AM

Corrected my own problem - originally I put the code before the { - I reread your post and realized I had to put it after it. Problem solved.

dieselpowered 10-02-2006 10:36 PM

Alright, I must be a fool, however, I cannot get the form the way I want it.

I simply want to be able to make a form like this:

Year
Make
Model
Date
Text Box

All text areas...is this possible?

I tried to copy of couple of these but it did not work:

$normalquestion1 = "Year";

Sorry for the ignorance!

Shazz 10-03-2006 03:39 AM

*Clicks install...
Ill try this out :)

ChrisBaktis 10-03-2006 12:59 PM

Quote:

Originally Posted by xtremeoff-road
Alright, I must be a fool, however, I cannot get the form the way I want it.

I simply want to be able to make a form like this:

Year
Make
Model
Date
Text Box

All text areas...is this possible?

I tried to copy of couple of these but it did not work:

$normalquestion1 = "Year";

Sorry for the ignorance!

Your variables would have to be like this:

Code:

// Part 1
$vbulletin->input->clean_array_gpc('p', array(
'normalanswer1' => TYPE_STR,
'normalanswer2' => TYPE_STR,
'normalanswer3' => TYPE_STR,
'normalanswer4' => TYPE_STR,
'longanswer1' => TYPE_STR

));

// Part 2
$normalanswer1 = $vbulletin->GPC['normalanswer1'];
$normalanswer2 = $vbulletin->GPC['normalanswer2'];
$normalanswer3 = $vbulletin->GPC['normalanswer3'];
$normalanswer4 = $vbulletin->GPC['normalanswer4'];
$longanswer1 = $vbulletin->GPC['longanswer1'];

This will give you the 4 Nomral sized text boxes and then a big text area for your 5th item. You can just copy and paste the Normal Question area in the code and change the info in them.

Kayden 10-03-2006 02:02 PM

Installed. Thanks.

Mirage Guardian 10-03-2006 03:05 PM

after installing, I got a database error when I call "newthread.php?do=form"
Quote:

Database error in vBulletin 3.6.1:

Invalid SQL:
SELECT * FROM forumpermission
WHERE ( forumid IN() AND usergroupid IN (6)) AND
(maxthread=0 AND perhour=0);

MySQL Error : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') AND usergroupid IN (6)) AND
(maxthread=0 AND perhour=0)' at line 2
Error Number : 1064
The normal "newthread.php" syntax is:
http://my/forum/path/newthread.php?do=newthread&f=2
and when i call "newthread.php?do=form&f=2", the form start, but never submit and give the same database error.

What shall i do?


All times are GMT. The time now is 03:36 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.02837 seconds
  • Memory Usage 2,039KB
  • 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
  • (7)bbcode_code_printable
  • (2)bbcode_php_printable
  • (21)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