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 |
#162
|
|||
|
|||
i managed to set one form up which works wonderfully,
The problem has arrisen when i try to create another form. Ive copied the plugin and altered the form name and also created 2 new templates and linked them to the pluging but when i try and access it i get this error message Code:
Parse error: parse error, unexpected $ in /home/forum/newthread.php(71) : eval()'d code on line 863 |
#163
|
||||
|
||||
Look around line 863 in the plug-in.
|
#164
|
|||
|
|||
Quote:
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 = "christmasparty"; 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( 'checkboxanswer1_1' => TYPE_STR, 'checkboxanswer1_2' => TYPE_STR, 'dropdownchoice1' => TYPE_STR, 'dropdownchoice2' => TYPE_STR, 'answer1' => TYPE_STR, 'answer2' => TYPE_STR, 'answer3' => TYPE_STR, 'answer4' => TYPE_STR, 'longanswer1' => TYPE_STR )); // Part 2 $checkboxanswer1_1 = $vbulletin->GPC['checkboxanswer1_1']; $checkboxanswer1_2 = $vbulletin->GPC['checkboxanswer1_2']; $dropdownchoice1 = $vbulletin->GPC['dropdownchoice1']; $dropdownchoice2 = $vbulletin->GPC['dropdownchoice2']; $answer1 = $vbulletin->GPC['answer1']; $answer2 = $vbulletin->GPC['answer2']; $answer3 = $vbulletin->GPC['answer3']; $answer4 = $vbulletin->GPC['answer4']; $longanswer1 = $vbulletin->GPC['longanswer1']; //////////////////////////////////////////////////////////////////////////////////////////////////// //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(6,7,2,5,18,15,11,19,13,16,10))) 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 = "form_christmas"; // Name of the answer template $answertemplate = "formanswers_christmas"; //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// //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 = "0"; //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 = "2"; //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 $formpmname = "Abe"; //////////////////////////////////////////////////////////////////////////////////////////////////// //ENABLE FORM TO BE EMAILED - 1 = yes, 0 = no $formemail = "1"; //EMAIL ADDRESS TO EMAIL TO $formemailaddress = "myemailaddress@domain.com"; //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// //REDIRECT OPTIONS: // 0 - thank you message (thread, reply, pm, or email) // 1 - redirect to post (thread or reply) // 2 - redirect to thread (thread only) // 3 - redirect to forum (thread only) // 4 - redirect to editpost to upload attachments (thread or reply) // // Feel free to change the thank you message if you choose option 0 //////////////////////////////////////////////////////////////////////////////////////////////////// $redirectoption = "0"; $errormessage = "Thank you for submitting your SSS Christmas Party Booking Form, Please make sure you pay for it otherwise this form will be void"; //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) //////////////////////////////////////////////////////////////////////////////////////////////////// $formtitle = "SSS Christmas Party 2006 - Booking 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 = "$formtitle"; //////////////////////////////////////////////////////////////////////////////////////////////////// //PURPOSE OF FORM (do not use quotation marks or you will get a parse error) //////////////////////////////////////////////////////////////////////////////////////////////////// $formpurpose = "Please fill out this booking form as fully and as accurate as possible as errors could mean you might lose your place"; //////////////////////////////////////////////////////////////////////////////////////////////////// //RADIO BOX CHOICES : QUESTION 1 (do not use quotation marks or you will get a parse error) //////////////////////////////////////////////////////////////////////////////////////////////////// $checkboxquestion1 = "Please tick which parties you would like to attend"; $checkboxchoice1_1 = "St Austell - 2nd Decemeber"; $checkboxchoice1_2 = "Plymouth - 15th December"; $dropdownquestion1 = "How many tickets would you like?"; // The following choices must NOT have quotation marks $dropdownchoice1a = "1"; $dropdownchoice1b = "2"; $dropdownchoice1c = "3"; $dropdownchoice1d = "4"; $dropdownchoice1e = "5"; $dropdownquestion2 = "Method of Payment"; // The following choices must NOT have quotation marks $dropdownchoice2a = "Cash"; $dropdownchoice2b = "Cheque"; $dropdownchoice2c = "Paypal"; //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// //QUESTION 1 (do not use quotation marks or you will get a parse error) $question1 = "Real name"; $explain1 = "Forename and Surname"; //QUESTION 2 (do not use quotation marks or you will get a parse error) $question2 = "Email Address"; $explain2 = ""; //QUESTION 3 (do not use quotation marks or you will get a parse error) $question3 = "Home telephone number"; $explain3 = ""; //QUESTION 4 (do not use quotation marks or you will get a parse error) $question4 = "Mobile number"; $explain4 = ""; //////////////////////////////////////////////////////////////////////////////////////////////////// //LONG TEXT AREA INPUT: QUESTION 1 (do not use quotation marks or you will get a parse error) //////////////////////////////////////////////////////////////////////////////////////////////////// $longquestion1 = "Address inc Postcode"; $longexplain1 = "Please enter your address inc postcode"; //////////////////////////////////////////////////////////////////////////////////////////////// ////// 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 ($answer1 == '' OR $dropdownchoice1 == '' OR $dropdownchoice2 == '' OR $answer2 == '' OR $longanswer1 == '') { $errormessage = "$bbuserinfo[username], you must complete the required fields!"; eval('print_output("' . fetch_template('STANDARD_ERROR') . '");'); exit(); } } $vbulletin->input->clean_array_gpc('p', array( 'wysiwyg' => TYPE_BOOL, 'message' => TYPE_STR )); if ($vbulletin->GPC['wysiwyg']) { require_once(DIR . '/includes/functions_wysiwyg.php'); $vbtextanswer = convert_wysiwyg_html_to_bbcode($vbulletin->GPC['message'], $foruminfo['allowhtml']); } else { $vbtextanswer =& $vbulletin->GPC['message']; } eval('$formsend = "' . fetch_template("$answertemplate") . '";'); if ($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['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['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") { vbmail($formemailaddress, $posttitle, $formsend); } if ($redirectoption == "1") { $vbulletin->url = 'showthread.php?' . $vbulletin->session->vars['sessionurl'] . "p=$newpost[postid]"; eval(print_standard_redirect('redirect_postthanks')); exit(); } if ($redirectoption == "2") { $vbulletin->url = 'showthread.php?' . $vbulletin->session->vars['sessionurl'] . "t=$newpost[threadid]"; eval(print_standard_redirect('redirect_postthanks')); exit(); } if ($redirectoption == "3") { $vbulletin->url = 'forumdisplay.php?' . $vbulletin->session->vars['sessionurl'] . "f=$foruminfo[forumid]"; eval(print_standard_redirect('redirect_postthanks')); exit(); } if ($redirectoption == "4") { $vbulletin->url = 'editpost.php?do=editpost&' . $vbulletin->session->vars['sessionurl'] . "p=$newpost[postid]"; eval(print_standard_redirect('redirect_postthanks')); exit(); } eval('print_output("' . fetch_template('STANDARD_ERROR') . '");'); exit(); } if ($_REQUEST['action'] == 'form') { // set message box width to usercp size $stylevar['messagewidth'] = $stylevar['messagewidth_usercp']; $dontusewysiwyg = 1; $editorid = construct_edit_toolbar(); eval('print_output("' . fetch_template("$maintemplate") . '");'); } Can u see any errors here? |
#165
|
||||
|
||||
Hi,
has everyone run this plugin in Combination with Mystics Präfix Hack? |
#166
|
||||
|
||||
I've installed this form on a few sites and it has worked perfectly. But I am trying to use a variable for the $formforumid on one.....
Code:
$formforumid = "$dropdownanswer1"; |
#167
|
|||
|
|||
hi
could any one help me :surprised: i am trying to use this hack but i did not know how to use it. is there any Tutorial for changing this hack to what i want ? :surprised: how to the form name ? how to change the fields ? how to change the variables in both the form and the form answer ? thenks regards Emad Bahattab |
#168
|
|||
|
|||
Is it possible to place the attachment somewhere in the post instead of on the bottom? A variable in formanswers for attachments would be nice
Great hack |
#169
|
||||
|
||||
Quote:
|
#170
|
||||
|
||||
I am trying to make this.
I choose a forum that the registered users can't view. I have only make this selections in the forum permissions "Can View Forum = No" and the others yes. (and of course the can post and can upload attachment permissions is set to yes). The problem is I run the form like a simple registered user, the attach table and button appears, but when I click in the button in the pop up window it says with a message that you can't post attachment. If I change this permission "Can View Forum = Yes" everything works well. The problem is that I don’t want the simple registered users see the answers and of course to downloads the attachments. How can I fix that? |
#171
|
||||
|
||||
I solve it! For anyone that wants to know.
1) Ftp Server Create a copy of newattachment.php --> newattachmentmine.php 2) VBulletin Templates Create a new clone of newattachment, newpost_attachment, newpost_attachmentbit, newpost_attachment, newattachment_errormessage, newattachment_keybit, template, for example newattachmentmine, newpost_attachmentmine, newpost_attachmentbitmine, newpost_attachmentmine, newattachment_errormessagemine, newattachment_keybitmine. Into this templates replace the value newattachment.php with the new newattachmentmine.php file. 3) Form Hack PHP Replace the values newattachment.php, newpost_attachment, newpost_attachmentbit to the new one newattachmentmine.php,newpost_attachment_mine,newpost_attachmentbit_mine. 4) In this file newattachmentmine.php replace all this templates newattachment, newpost_attachment, newpost_attachmentbit, newpost_attachment, newattachment_errormessage, newattachment_keybit, with the new. Also find this code (normally in line 79) PHP Code:
PHP Code:
PHP Code:
I think maybe it’s useful for someone this trick. P.S. Be careful, because if you don’t do that correctly may you corrupt the form or the attach option of your site. |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|