Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.6 > vBulletin 3.6 Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Form Hack Details »»
Form Hack
Version: 4.1, by Abe1 Abe1 is offline
Developer Last Online: Jun 2010 Show Printable Version Email this Page

Category: New Posting Features - Version: 3.6.x Rating:
Released: 09-14-2006 Last Update: 04-23-2008 Installs: 1216
Uses Plugins Template Edits
 
No support by the author.

Form Hack 4.1


Features:

Ever wanted an online form that a user can fill out, which when submitted gets:
  • Posted into a new thread in a forum of your choice
  • Create a new poll in the new thread with options of your choice
  • Posted as a reply in an existing thread of your choice
  • PMed to you or someone else
  • Emailed to an email address you specify
  • Choose to redirect to the post, thread or forum, or a custom thank you message
  • Choose to redirect to edit post
  • See a preview before they submit

Or any combination or all of the above?

Well, this is the hack for you!

You can use this for:
  • Moderator Applications
  • Quiz Submit Form which gets PMed to a moderator
  • Contact Form that goes to PM, email or thread
  • Guests to apply to be members
  • Report a Moderator form that goes as a PM to you
  • Guests can PM you for whatever reason
  • Order form to buy things
  • Donation form
  • News or Articles submissions that can go straight to a thread

Or anything you like - this hack is totally customizable via the AdminCP.

The beauty of this hack is that once you install this hack, to make a new form all you need to do is copy the main hook, rename it to whatever you want, edit the variables in the hook, and you have a totally new form!!! You do not need to touch the templates again, but can always create new ones and use different templates for different forms.

Format of the form:
  • One main input question
  • 3 Radio buttons Choice questions
  • 3 Normal text input questions
  • 1 Drop down menu
  • 3 Check boxes
  • 1 Long answer question
  • 1 VB message editor text box question
  • Upload attachments

This is customizable via the hook.

Also:
  • You can set the usergroups you want access to this form.
  • 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.
  • Force the user to answer all questions.

INSTALLATION
Easy - takes only a few minutes:
  • Import the XML into products. (admin cp -> Plug-in System -> Manage Products -> Add/Import Product)
  • Edit the main plug-in - the instructions are all inside the hook itself, in the top half. Follow the instructions carefully!
  • To get to the form, go to: /newthread.php?do=form (change "form" to the name of your form if you have few)

Done!

Use this hack to make as many forms as you like!

Enjoy!

Updates:

Version 4.0: (09/15/2006)
  • Ported over for vb3.6
  • Send to multiple emails.
  • Send multiple PMs.
  • Parse emails for BBCode
  • And finally, ATTACHMENTS!

Version 4.1: (04/24/2008)
  • Fixed for vb 3.6.10
  • Small bug fixed.
  • List of the 2 quick edits are in the zip file so you don't have to start making a form from scratch.

MAKE SURE YOU CLICK INSTALL!
You will get an email when a new version is released.

Abe1 with rights from Dr Erwin Loh

Supporters / CoAuthors

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #432  
Old 04-28-2007, 04:23 AM
T_Richardson T_Richardson is offline
 
Join Date: Jul 2006
Location: Canada
Posts: 96
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I have a flash form and sends data via email. Would anyone know of a way to make a post in the forums by using the data sent by a flash form?

Part of my email.php

PHP Code:
<?php

$sendTo 
"webmaster@website.com";
$subject "Recruitment Form Submission";

$headers "From: " $_POST["firstName"] ." "$_POST["lastname"] . "<" $_POST["email"] .">\r\n";
$headers .= "Reply-To: " $_POST["email"] . "\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "Return-path: " $_POST["email"];

$game_name "Game_Name: " $_POST["game_name"]."<br>" ." Location: "$_POST["location"];

mail($sendTo$subject$game_name$headers);

?>
Reply With Quote
  #433  
Old 04-30-2007, 06:11 AM
MoB Zigmister MoB Zigmister is offline
 
Join Date: Dec 2006
Posts: 3
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Error: Invalid Forum specified. My url is correct for sure.

When I install the custom form it takes down the unmodified original form, displaying the same error. The theme was also edited, but since the custom plugin made both forms crash it is the root of the problem, no? I can produce the template code if needed.

Any help would be greatly appreciated, especially after 3 nights of failure.

Plugin:
Code:
<plugin active="1" executionorder="4">
			<title>form1</title>
			<hookname>newthread_start</hookname>
			<phpcode><![CDATA[$formname = "form1";

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

$vbulletin->input->clean_array_gpc('p', array(
'answer1' => TYPE_STR,
'answer2' => TYPE_STR,
'answer3' => TYPE_STR,
'answer4' => TYPE_STR,
'dropdownanswer1' => TYPE_STR,
'answer5' => TYPE_STR,
'answer6' => TYPE_STR,
'answer7' => TYPE_STR,
'answer8' => TYPE_STR,
'longanswer1' => TYPE_STR,
'longanswer2' => TYPE_STR,
'longanswer3' => TYPE_STR,
'longanswer4' => TYPE_STR,
'longanswer5' => TYPE_STR,
'longanswer6' => TYPE_STR,
'longanswer7' => TYPE_STR,
'longanswer8' => TYPE_STR,
'longanswer9' => TYPE_STR
));

$answer1 = $vbulletin->GPC['answer1'];
$answer2 = $vbulletin->GPC['answer2'];
$answer3 = $vbulletin->GPC['answer3'];
$answer4 = $vbulletin->GPC['answer4'];
$dropdownanswer1 = $vbulletin->GPC['dropdownanswer1'];
$answer5 = $vbulletin->GPC['answer5'];
$answer6 = $vbulletin->GPC['answer6'];
$answer7 = $vbulletin->GPC['answer7'];
$answer8 = $vbulletin->GPC['answer8'];
$longanswer1 = $vbulletin->GPC['longanswer1'];
$longanswer2 = $vbulletin->GPC['longanswer2'];
$longanswer3 = $vbulletin->GPC['longanswer3'];
$longanswer4 = $vbulletin->GPC['longanswer4'];
$longanswer5 = $vbulletin->GPC['longanswer5'];
$longanswer6 = $vbulletin->GPC['longanswer6'];
$longanswer7 = $vbulletin->GPC['longanswer7'];
$longanswer8 = $vbulletin->GPC['longanswer8'];
$longanswer9 = $vbulletin->GPC['longanswer9'];

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

$maintemplate = "form1";
$answertemplate = "form1answers";

$formforum = "0";

$formforumid = "89";

$formpoll = "0";
$polloption[1] = "Yes";
$polloption[2] = "No";
$polloption[3] = "Maybe";

$pollpublic = "0";

$formreply = "0";

$formreplythreadid = "12345";

$formpm = "1";

$formpmname = "MoB Zigmister";

$formemail = "0";

$formemailaddress = "youremail@yourforums.com";

$allow_attachments = "0";

$redirectoption = "0";

$errormessage = "Thank you";

$answerall = "0";

$formtitle = "form1";

$posttitle = "$formtitle - $bbuserinfo[username]";

$formpurpose = "purpose";

$question1 = "1";
$explain1 = "1e";
$question2 = "2";
$explain2 = "2e";
$question3 = "3";
$explain3 = "3e";
$question4 = "4";
$explain4 = "4e";
$dropdownquestion1 = "Gender";
$dropdownchoice1a = "No Comment";
$dropdownchoice1b = "Female";
$dropdownchoice1c = "Male";
$question5 = "5";
$explain5 = "5e";
$question6 = "6";
$explain6 = "6e";
$question7 = "7";
$question8 = "8";
$longquestion1 = "l1";
$longquestion2 = "l2";
$longquestion3 = "l3";
$longquestion4 = "l4";
$longquestion5 = "l5";
$longquestion6 = "l6";
$longquestion7 = "l7";
$longquestion8 = "l8";
$longquestion9 = "l9";

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 ($answer1 == '' OR $answer2 == '' OR $answer3 == '' OR $answer4 == '' OR $answer5 == '' $answer6 == '' OR  $answer7 == '' OR $answer8 == '' OR $longanswer1 == '' OR $longanswer2 == '' OR $longanswer3 == '' OR $longanswer4 == '' OR $longanswer5 == '' OR $longanswer6 == '' OR $longanswer7 == '' OR $longanswer8 == '' OR $longanswer9 == '')
        {
            $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") . '");');
}
}]]></phpcode>
		</plugin>
Reply With Quote
  #434  
Old 05-01-2007, 09:57 AM
XxBuLLeTz XxBuLLeTz is offline
 
Join Date: May 2006
Posts: 147
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I like this hack alot. But us there anyway to delete the text box at the bottom of the page (Im talking about the text box that you use to reply to a thread).
Reply With Quote
  #435  
Old 05-01-2007, 12:45 PM
ComputerVitals ComputerVitals is offline
 
Join Date: Oct 2005
Posts: 131
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by XxBuLLeTz View Post
I like this hack alot. But us there anyway to delete the text box at the bottom of the page (Im talking about the text box that you use to reply to a thread).

Thats in the Form template in your "Styles and Templates.
Reply With Quote
  #436  
Old 05-01-2007, 10:04 PM
ComputerVitals ComputerVitals is offline
 
Join Date: Oct 2005
Posts: 131
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I added a if statement.
It will either show the bbuser[email] or a text input for them to add a email address.

this works great, shows in the post, and in the PM. Also the email you set in the hook sends like it should.
But I also want to send an email to the user that same form.
Any idea how?
Reply With Quote
  #437  
Old 05-02-2007, 11:48 AM
Deepdog009's Avatar
Deepdog009 Deepdog009 is offline
 
Join Date: Dec 2004
Location: Almost out of PHP TZone
Posts: 485
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by MoB Zigmister View Post
Error: Invalid Forum specified. My url is correct for sure.

When I install the custom form it takes down the unmodified original form, displaying the same error. The theme was also edited, but since the custom plugin made both forms crash it is the root of the problem, no? I can produce the template code if needed.

Any help would be greatly appreciated, especially after 3 nights of failure.

Plugin:
Code:
<plugin active="1" executionorder="4">
			<title>form1</title>
			<hookname>newthread_start</hookname>
			<phpcode><![CDATA[$formname = "form1";

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

$vbulletin->input->clean_array_gpc('p', array(
'answer1' => TYPE_STR,
'answer2' => TYPE_STR,
'answer3' => TYPE_STR,
'answer4' => TYPE_STR,
'dropdownanswer1' => TYPE_STR,
'answer5' => TYPE_STR,
'answer6' => TYPE_STR,
'answer7' => TYPE_STR,
'answer8' => TYPE_STR,
'longanswer1' => TYPE_STR,
'longanswer2' => TYPE_STR,
'longanswer3' => TYPE_STR,
'longanswer4' => TYPE_STR,
'longanswer5' => TYPE_STR,
'longanswer6' => TYPE_STR,
'longanswer7' => TYPE_STR,
'longanswer8' => TYPE_STR,
'longanswer9' => TYPE_STR
));

$answer1 = $vbulletin->GPC['answer1'];
$answer2 = $vbulletin->GPC['answer2'];
$answer3 = $vbulletin->GPC['answer3'];
$answer4 = $vbulletin->GPC['answer4'];
$dropdownanswer1 = $vbulletin->GPC['dropdownanswer1'];
$answer5 = $vbulletin->GPC['answer5'];
$answer6 = $vbulletin->GPC['answer6'];
$answer7 = $vbulletin->GPC['answer7'];
$answer8 = $vbulletin->GPC['answer8'];
$longanswer1 = $vbulletin->GPC['longanswer1'];
$longanswer2 = $vbulletin->GPC['longanswer2'];
$longanswer3 = $vbulletin->GPC['longanswer3'];
$longanswer4 = $vbulletin->GPC['longanswer4'];
$longanswer5 = $vbulletin->GPC['longanswer5'];
$longanswer6 = $vbulletin->GPC['longanswer6'];
$longanswer7 = $vbulletin->GPC['longanswer7'];
$longanswer8 = $vbulletin->GPC['longanswer8'];
$longanswer9 = $vbulletin->GPC['longanswer9'];

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

$maintemplate = "form1";
$answertemplate = "form1answers";

$formforum = "0";

$formforumid = "89";

$formpoll = "0";
$polloption[1] = "Yes";
$polloption[2] = "No";
$polloption[3] = "Maybe";

$pollpublic = "0";

$formreply = "0";

$formreplythreadid = "12345";

$formpm = "1";

$formpmname = "MoB Zigmister";

$formemail = "0";

$formemailaddress = "youremail@yourforums.com";

$allow_attachments = "0";

$redirectoption = "0";

$errormessage = "Thank you";

$answerall = "0";

$formtitle = "form1";

$posttitle = "$formtitle - $bbuserinfo[username]";

$formpurpose = "purpose";

$question1 = "1";
$explain1 = "1e";
$question2 = "2";
$explain2 = "2e";
$question3 = "3";
$explain3 = "3e";
$question4 = "4";
$explain4 = "4e";
$dropdownquestion1 = "Gender";
$dropdownchoice1a = "No Comment";
$dropdownchoice1b = "Female";
$dropdownchoice1c = "Male";
$question5 = "5";
$explain5 = "5e";
$question6 = "6";
$explain6 = "6e";
$question7 = "7";
$question8 = "8";
$longquestion1 = "l1";
$longquestion2 = "l2";
$longquestion3 = "l3";
$longquestion4 = "l4";
$longquestion5 = "l5";
$longquestion6 = "l6";
$longquestion7 = "l7";
$longquestion8 = "l8";
$longquestion9 = "l9";

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 ($answer1 == '' OR $answer2 == '' OR $answer3 == '' OR $answer4 == '' OR $answer5 == '' $answer6 == '' OR  $answer7 == '' OR $answer8 == '' OR $longanswer1 == '' OR $longanswer2 == '' OR $longanswer3 == '' OR $longanswer4 == '' OR $longanswer5 == '' OR $longanswer6 == '' OR $longanswer7 == '' OR $longanswer8 == '' OR $longanswer9 == '')
        {
            $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") . '");');
}
}]]></phpcode>
		</plugin>
MoB Zigmister zip all three files ( both templates and plugin) in txt format and upload, I shall check it out 4 ya.???
Reply With Quote
  #438  
Old 05-02-2007, 11:53 AM
Deepdog009's Avatar
Deepdog009 Deepdog009 is offline
 
Join Date: Dec 2004
Location: Almost out of PHP TZone
Posts: 485
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by T_Richardson View Post
I have a flash form and sends data via email. Would anyone know of a way to make a post in the forums by using the data sent by a flash form?

Part of my email.php

PHP Code:
<?php

$sendTo 
"webmaster@website.com";
$subject "Recruitment Form Submission";

$headers "From: " $_POST["firstName"] ." "$_POST["lastname"] . "<" $_POST["email"] .">\r\n";
$headers .= "Reply-To: " $_POST["email"] . "\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "Return-path: " $_POST["email"];

$game_name "Game_Name: " $_POST["game_name"]."<br>" ." Location: "$_POST["location"];

mail($sendTo$subject$game_name$headers);

?>
Yes it should be possible, but it will take some modifications. Zip yo files and upload T_Richardson. I shall take a look into implementing this. I was just thinking about creating some flash forms last month. Very busy so give me some time if you be interested.

Good luck
Reply With Quote
  #439  
Old 05-02-2007, 02:21 PM
samual samual is offline
 
Join Date: Apr 2007
Posts: 10
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Can someone give me a hand? I am trying to add some more fields to this form. Under "normal question 1" I would like to add a few more questions. here is what I did but had no luck. What do I need to do to get these fields to show up?

// Part 1
$vbulletin->input->clean_array_gpc('p', array(
'normalanswer1' => TYPE_STR,
'normalanswer2' => TYPE_STR, (I added)

// Part 2
$normalanswer1 = $vbulletin->GPC['normalanswer1'];
$normalanswer2 = $vbulletin->GPC['normalanswer2']; (I added)

$normalquestion1 = "What is your Character's Name";

$normalquestion2 = "Character's Race"; (I added)

I have allot more questions that I would like to add. What am I missimg?
Reply With Quote
  #440  
Old 05-02-2007, 02:25 PM
ComputerVitals ComputerVitals is offline
 
Join Date: Oct 2005
Posts: 131
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by samual View Post
Can someone give me a hand? I am trying to add some more fields to this form. Under "normal question 1" I would like to add a few more questions. here is what I did but had no luck. What do I need to do to get these fields to show up?

I have allot more questions that I would like to add. What am I missimg?
Now you have to look in your templates
"form" template

Look for:
[/code]
<tr>
<td class="alt1" valign="middle">
<b>$question2</b>:<br />
$explain2</td>
<td class="alt1" valign="middle" colspan="2">
<input type="text" size="30" value="$answer2" name="answer2" /></td>
</tr>[/code]

And adjust as needed. Or copy that and change the "$normalquestion2" Same goes for the answer2 values.
Reply With Quote
  #441  
Old 05-02-2007, 02:26 PM
ComputerVitals ComputerVitals is offline
 
Join Date: Oct 2005
Posts: 131
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by ComputerVitals View Post
I added a if statement.
It will either show the bbuser[email] or a text input for them to add a email address.

this works great, shows in the post, and in the PM. Also the email you set in the hook sends like it should.
But I also want to send an email to the user that same form.
Any idea how?
I got the the hook to send the form to the registered user as well. But.

I would like to put a link to the thread in the email.
how do I do that?
Reply With Quote
Reply


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

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

Forum Jump


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


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

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

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