The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
Form Hack Details »» | |||||||||||||||||||||||||
Form Hack 4.1 Features: Ever wanted an online form that a user can fill out, which when submitted gets:
Or any combination or all of the above? Well, this is the hack for you! You can use this for:
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:
This is customizable via the hook. Also:
INSTALLATION Easy - takes only a few minutes:
Done! Use this hack to make as many forms as you like! Enjoy! Updates: Version 4.0: (09/15/2006)
Version 4.1: (04/24/2008)
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
|
Comments |
#432
|
|||
|
|||
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:
|
#433
|
|||
|
|||
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&poststarttime=$poststarttime&posthash=$posthash"; } else { $attach_editor['hash'] = $forumid; $attach_editor['url'] = "newattachment.php?$session[sessionurl]f=$forumid&poststarttime=$poststarttime&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> |
#434
|
|||
|
|||
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).
|
#435
|
|||
|
|||
Quote:
Thats in the Form template in your "Styles and Templates. |
#436
|
|||
|
|||
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? |
#437
|
||||
|
||||
Quote:
|
#438
|
||||
|
||||
Quote:
Good luck |
#439
|
|||
|
|||
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? |
#440
|
|||
|
|||
Quote:
"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. |
#441
|
|||
|
|||
Quote:
I would like to put a link to the thread in the email. how do I do that? |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|