The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
FORM to THREAD/ FORUM/ POLL/ PM/ EMAIL - CUSTOMIZABLE FORMS - Mod Apps, Orders, News. Details »» | |||||||||||||||||||||||||||
FORM to THREAD/ FORUM/ POLL/ PM/ EMAIL - CUSTOMIZABLE FORMS - Mod Apps, Orders, News.
Developer Last Online: May 2013
FORM to THREAD/ FORUM/ POLL/ PM/ EMAIL - Totally CUSTOMIZABLE FORMS
Version 1.6 for vBulletin 3.x.x by Dr Erwin Loh Features: Ever wanted an online form that a user can fill out, which when submitted gets: 1. Posted into a new thread in a forum of your choice 2. Create a new poll in the new thread with options of your choice 3. Posted as a reply in an existing thread of your choice 4. PMed to you or someone else 5. Emailed to an email address you specify 6. Choose to redirect to the post, thread or forum, or a custom thank you message 7. Choose to redirect to editpost to upload attachments Or any combination or all of the above? Well, this is the hack for you! You can use this for: 1) Moderator Applications 2) Quiz Submit Form which gets PMed to a moderator 3) Contact Form that goes to PM, email or thread 4) Guests to apply to be members 5) Report a Moderator form that goes as a PM to you 6) Guests can PM you for whatever reason 7) Order form to buy things 8) Donation form 9) News or Articles submissions that can go straight to a thread Or anything you like - this hack is totally customizable via the PHP file. Basically, this hack involves modifying 1 PHP file form.php (you add questions, options etc. in the PHP file itself), uploading it, and then adding 2 templates. The beauty of this hack is that once you have added the 2 templates, to make a new form, all you need to do is copy the form.php and rename it to form2.php, edit the variables in the PHP file, and you have a totally new form!!! You do not need to touch the templates again. Format of the form: 1. One main input question 2. 2 Radio buttons Choice questions 3. 3 Normal text input questions 4. 1 Long answer question This is customizable via the PHP file. 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: 1. Add the 2 templates. 2. Edit form.php - the instructions are all inside the PHP file itself, in the top half. Follow the instructions carefully! 3. Upload form.php Just link to form1.php eg. http://www.yourforum.com/forums/form.php Done! Use this hack to make as many forms as you like! Enjoy! Updates: Version 1.1 - Option to force user to answer all questions. Version 1.2 - Thread count and lastposter information now updated if form is sent to existing thread. Version 1.3 - ADDED CREATE POLL OPTION! Version 1.4 - Fixed bug with Form-to-thread code Version 1.5 - Major update: - fixed bug where thread count not updated when form to forum - fixed default posting to allow smilies and sigs when reply to thread - added templates to cache (saves 2 queries) - added option to change thank you message - added options to redirect to post, thread or forum when submit Version 1.6 - Choose to redirect to editpost to upload attachments Screenshot is an example of a form - the form title and questions are customizable: Show Your Support
|
Comments |
#382
|
||||
|
||||
Quote:
Thanks alot! |
#383
|
||||
|
||||
Can somebody / anybody who has this installed with multiple questions post their working sample? I'd really love to get this hack up and running with more than the stock questions.
Thanks! |
#384
|
||||
|
||||
Can I offer some $$$$$$ for some help here? Let's not get too crazy, what I'm asking for will take someone approximately 1 1/2 minutes to accomplish.
Thanks |
#385
|
|||
|
|||
what do you want a template of the form.php file?
|
#386
|
||||
|
||||
Quote:
Thanks for the response. |
#387
|
|||
|
|||
form:
Code:
<?php /*======================================================================*\ || #################################################################### || || # FORM TO THREAD/ FORUM/ PM/ EMAIL - Totally CUSTOMIZABLE FORMS # || || # Version 1.6 for vBulletin 3.x.x by Dr Erwin Loh # || || # ---------------------------------------------------------------- # || || # Copyright ?2000?2004 Dr Erwin Loh. All Rights Reserved. # || || # This file may not be redistributed in whole or significant part. # || || #################################################################### || \*======================================================================*/ // ####################### SET PHP ENVIRONMENT ########################### error_reporting(E_ALL & ~E_NOTICE); $globaltemplates = array( 'tc_tradepostform', 'tc_tradepostformanswers' ); // ######################### REQUIRE BACK-END ############################ require_once('./global.php'); globalize($_POST, array( 'normalanswer1' => STR, 'radioanswer1' => STR, 'radioanswer2' => STR, 'radioanswer3' => STR, 'radioanswer3other' => STR, 'answer1' => STR, 'answer2' => STR, 'answer3' => STR, 'longanswer1' => STR, 'action' => STR )); // ####################################################################### // ######################## CUSTOMIZE VARIABLES ########################## // ####################################################################### //////////////////////////////////////////////////////////////////////////////////////////////////// ////// BEGIN CUSTOMIZATION BELOW//////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// //USERGROUPS ALLOWED //You can add or remove usegroups that are ALLOWED to use this form by changing the numbers below in the array //////////////////////////////////////////////////////////////////////////////////////////////////// if (!in_array($bbuserinfo['usergroupid'], array(2,5,6,9,13,15,16,17,19))) print_no_permission(); //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// //NAME OF THIS PHP FILE AND TEMPLATES - DO THIS BIT IF YOU ARE MAKING MORE FORMS! //You can easily make more forms by just copying this file, renaming it, and modifying the variable in //this file. You can keep the same templates for different forms. For more customization, you can //use different templates, by renaming and modifying the templates. //////////////////////////////////////////////////////////////////////////////////////////////////// // Name of this file $phpfilename = "tc_tradepostform.php"; //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// //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 $formforumid = "36"; //ENABLE POLL TO BE CREATED - 1 = yes, 0 = no $formpoll = "0"; $formoption1 = "Yes"; $formoption2 = "No"; //////////////////////////////////////////////////////////////////////////////////////////////////// //ENABLE FORM TO REPLY TO EXISTING THREAD $formreply = "0"; //EXISTING THREAD ID FOR FORM TO REPLY IN $formreplythreadid = "12345"; //FORUM ID WHERE THE EXISTING THREAD IS IN $formreplyforumid = "456"; //////////////////////////////////////////////////////////////////////////////////////////////////// //ENABLE FORM TO BE PMED - 1 = yes, 0 = no $formpm = "0"; //USERID TO PM TO $formpmid = "1"; //////////////////////////////////////////////////////////////////////////////////////////////////// //ENABLE FORM TO BE EMAILED - 1 = yes, 0 = no $formemail = "0"; //EMAIL ADDRESS TO EMAIL TO $formemailaddress = "youremail@yourforums.com"; //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// //REDIRECT OPTIONS: // 0 - thank you message // 1 - redirect to post // 2 - redirect to thread // 3 - redirect to forum // 4 - redirect to editpost to upload attachments // // Feel free to change the thank you message if you choose option 0 //////////////////////////////////////////////////////////////////////////////////////////////////// $redirectoption = "4"; $errormessage = "Thank you for submitting this form!"; //This is the thank you message //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// //FORCE USER TO ANSWER ALL QUESTIONS - 1 = yes, 0 = no //////////////////////////////////////////////////////////////////////////////////////////////////// $answerall = "0"; //////////////////////////////////////////////////////////////////////////////////////////////////// //TITLE OF FORM (do not use quotation marks or you will get a parse error) //////////////////////////////////////////////////////////////////////////////////////////////////// $formtitle = "Personal Trade Center - Post A Trade/Sale"; //////////////////////////////////////////////////////////////////////////////////////////////////// //PURPOSE OF FORM (do not use quotation marks or you will get a parse error) //////////////////////////////////////////////////////////////////////////////////////////////////// $formpurpose = "Use This Form To Post A Trade or Sale Between RST Members"; //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// //RADIO BOX CHOICES : QUESTION 1 (do not use quotation marks or you will get a parse error) //////////////////////////////////////////////////////////////////////////////////////////////////// $radioquestion1 = "Is This A Trade Or Sale?"; // The following choices must NOT have quotation marks $radiochoice1a = "Trade"; $radiochoice1b = "Sale"; //////////////////////////////////////////////////////////////////////////////////////////////////// //RADIO BOX CHOICES : QUESTION 2 (do not use quotation marks or you will get a parse error) //////////////////////////////////////////////////////////////////////////////////////////////////// $radioquestion2 = "Insurance On Shipping"; // 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) //////////////////////////////////////////////////////////////////////////////////////////////////// $radioquestion3 = "Delivery Confirmation"; // 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) //////////////////////////////////////////////////////////////////////////////////////////////////// $radioquestion4 = "Who Is Sending First"; // The following choices must NOT have quotation marks $radiochoice4a = "Me"; $radiochoice4b = "Trade Partner"; $radiochoice4c = "Same Time"; //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// //NORMAL INPUT BOX : QUESTION 1 (do not use quotation marks or you will get a parse error) //////////////////////////////////////////////////////////////////////////////////////////////////// $normalquestion1 = "Trade/Sale Member Name #1"; //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// //LONG TEXT AREA INPUT: QUESTION 1 (do not use quotation marks or you will get a parse error) //////////////////////////////////////////////////////////////////////////////////////////////////// $longquestion1 = "Please Post What Member #1 Will RECEIVE"; //////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// //NORMAL INPUT BOX : QUESTION 1 (do not use quotation marks or you will get a parse error) //////////////////////////////////////////////////////////////////////////////////////////////////// $normalquestion2 = "Trade/Sale Member Name #2"; //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// //LONG TEXT AREA INPUT: QUESTION 1 (do not use quotation marks or you will get a parse error) //////////////////////////////////////////////////////////////////////////////////////////////////// $longquestion2 = "Please Post What Your Trade/Sale Partner WILL RECEIVE"; //////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// //LONG TEXT AREA INPUT: QUESTION 1 (do not use quotation marks or you will get a parse error) //////////////////////////////////////////////////////////////////////////////////////////////////// $longquestion3 = "Include Any Other Info Here"; //////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////// ////// END OF CUSTOMIZATION //////////////////////////////////////////////////////////////////// ///// DO NOT CHANGE BELOW UNLESS YOU KNOW WHAT YOU ARE DOING!!! //////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// // ####################################################################### // ######################## START MAIN SCRIPT ############################ // ####################################################################### // start navbar $navbits = array( "$phpfilename?$session[sessionurl]" => $formtitle ); $navbits = construct_navbits($navbits); eval('$navbar = "' . fetch_template('navbar') . '";'); if ($action=="submit") { if ($answerall == "1") { if ($normalanswer1 == '' OR $radioanswer1 == '' OR $radioanswer2 == '' OR $radioanswer3 == '' OR $answer1 == '' OR $answer2 == '' OR $answer3 == '' OR $longanswer1 == '') { $errormessage = "$bbuserinfo[username], you need to answer every question!"; eval('print_output("' . fetch_template('STANDARD_ERROR') . '");'); exit(); } } eval('$formsend = "' . fetch_template('tc_tradepostformanswers') . '";'); if ($formforum == "1") { $DB_site->query(" INSERT INTO " . TABLE_PREFIX . "thread(title, lastpost, forumid, open, replycount, postusername, postuserid, lastposter, dateline, iconid, visible, attach) VALUES ('".addslashes(htmlspecialchars($bbuserinfo[username]))." / $normalanswer2', " . TIMENOW . ", $formforumid, 1, 0, '" . addslashes($bbuserinfo['username']) . "', $bbuserinfo[userid], '" . addslashes($bbuserinfo['username']) . "', " . TIMENOW . ", 0, 1, 0) "); $thread['threadid'] = $DB_site->insert_id(); $DB_site->query(" INSERT INTO " . TABLE_PREFIX . "post (threadid, title, username, userid, dateline, pagetext, allowsmilie, showsignature, iconid, visible) VALUES ($thread[threadid], '".addslashes(htmlspecialchars($bbuserinfo[username]))." / $normalanswer2', '" . addslashes($bbuserinfo['username']) . "', $bbuserinfo[userid], " . TIMENOW . ", '" . addslashes($formsend) . "', 1, 1, 0, 1) "); $post['postid'] = $DB_site->insert_id(); $DB_site->query(" UPDATE " . TABLE_PREFIX . "thread SET firstpostid = $post[postid] WHERE threadid = $thread[threadid] "); $DB_site->query(" UPDATE " . TABLE_PREFIX . "forum SET replycount = replycount + 1, threadcount = threadcount + 1, lastpost = " . TIMENOW . ", lastposter = '" . addslashes($bbuserinfo['username']) . "', lastthread = '".addslashes(htmlspecialchars($bbuserinfo[username]))." /$normalanswer2', lastthreadid = $thread[threadid] WHERE forumid = $formforumid "); $forum[forumid] = $formforumid; } if ($formpoll == "1") { $DB_site->query("INSERT INTO " . TABLE_PREFIX . "poll (question,dateline,options,votes,active,numberoptions,timeout,multiple,public) VALUES ('".addslashes(htmlspecialchars($bbuserinfo[username]))." $formtitle'," . TIMENOW . ",'$formoption1|||$formoption2','" . addslashes("0|||0") . "',1,2,0,0,0)"); $pollid = $DB_site->insert_id(); $DB_site->query("UPDATE " . TABLE_PREFIX . "thread SET pollid = '".$pollid."' WHERE threadid = '".$thread[threadid]."'"); } if ($formreply == "1") { $DB_site->query("INSERT INTO post (postid,threadid,title,username,userid,dateline,pagetext,allowsmilie,showsignature,ipaddress,iconid,visible) VALUES (NULL,'$formreplythreadid','".addslashes(htmlspecialchars($bbuserinfo[username]))." $formtitle','".addslashes($bbuserinfo[username])."','$bbuserinfo[userid]','".time()."','" . addslashes($formsend) . "','1','1','0','0','1')"); $DB_site->query("UPDATE thread SET replycount = replycount + 1, lastpost = " . TIMENOW . ", lastposter = '".addslashes($bbuserinfo[username])."' WHERE threadid = $formreplythreadid"); $DB_site->query(" UPDATE " . TABLE_PREFIX . "forum SET replycount = replycount + 1, lastpost = " . TIMENOW . ", lastposter = '".addslashes(htmlspecialchars($bbuserinfo[username]))."', lastthread = '" . addslashes($bbuserinfo['username']) . " $formtitle', lastthreadid = $formreplythreadid WHERE forumid = $formreplyforumid "); $forum[forumid] = $formreplyforumid; } if ($formpm == "1") { $DB_site->query("INSERT INTO " . TABLE_PREFIX . "pmtext\n\t(fromuserid, fromusername, title, message, touserarray, iconid, dateline, showsignature)\nVALUES\n\t($bbuserinfo[userid], '" . addslashes($bbuserinfo['username']) . "', '".addslashes(htmlspecialchars($formtitle))."', '".addslashes(htmlspecialchars($formsend))."', '" . addslashes(serialize($tostring)) . "', 0, " . TIMENOW . ", 1)"); $pmtextid = $DB_site->insert_id(); $DB_site->query("INSERT INTO " . TABLE_PREFIX . "pm (pmtextid, userid, messageread) VALUES ($pmtextid, $formpmid, 0)"); $DB_site->shutdown_query("UPDATE " . TABLE_PREFIX . "user SET pmtotal=pmtotal+1, pmunread=pmunread+1 WHERE userid = $formpmid"); } if ($formemail == "1") { vbmail($formemailaddress, $formtitle, $formsend); } if ($redirectoption == "1") { $url = "showthread.php?$session[sessionurl]p=$post[postid]"; eval(print_standard_redirect('redirect_postthanks')); exit(); } if ($redirectoption == "2") { $url = "showthread.php?$session[sessionurl]t=$thread[threadid]"; eval(print_standard_redirect('redirect_postthanks')); exit(); } if ($redirectoption == "3") { $url = "forumdisplay.php?$session[sessionurl]f=$forum[forumid]"; eval(print_standard_redirect('redirect_postthanks')); exit(); } if ($redirectoption == "4") { $url = "editpost.php?do=editpost&$session[sessionurl]p=$post[postid]"; eval(print_standard_redirect('redirect_postthanks')); exit(); } eval('print_output("' . fetch_template('STANDARD_ERROR') . '");'); exit(); } eval('print_output("' . fetch_template('tc_tradepostform') . '");'); ?> Code:
<!-- main page contents --> <form enctype="multipart/form-data" method="post" action="$phpfilename"> <input type="hidden" value="$userid" name="userid"> <input type="hidden" value="submit" name="action"> <table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"> <tr> <td class="tcat" colspan="3"> $formtitle </td> </tr> <!-- Sale or Trade Start --> <tr> <td class="alt2" colspan="3"> <b><font color="#ff0000">$radioquestion1</font></b><br> <INPUT TYPE="radio" NAME="radioanswer1" value="$radiochoice1a"> <b>$radiochoice1a</b> <INPUT TYPE="radio" NAME="radioanswer1" value="$radiochoice1b"> <b>$radiochoice1b</b> </td> </tr> <!-- Sale or Trade End --> <!-- Blank Line --> <tr> <td class="alt1" valign="middle" height="25"></td> </tr> <!-- Blank Line End--> <!-- Member #1 Start --> <tr> <td class="alt2" colspan="3"> <b><font color="#ff0000">What will $bbuserinfo[username] get?</font></b><br> <textarea rows="5" cols="70" name="longanswer1"></textarea> </td> </tr> <!-- Member #1 End --> <!-- Blank Line --> <tr> <td class="alt1" valign="middle" height="25"></td> </tr> <!-- Blank Line End--> <!-- Member #2 Start --> <tr> <td class="alt2" colspan="3"> <b><font color="#ff0000">Username of your trade/sale partner? (must be exact - please be careful)</font></b><br> <input type="text" size="30" name="normalanswer2"><br><BR> <b><font color="#ff0000">$longquestion2</font></b><br> <textarea rows="5" cols="70" name="longanswer2"></textarea> </td> </tr> <!-- Member #2 End --> <!-- Blank Line --> <tr> <td class="alt1" valign="middle" height="25"></td> </tr> <!-- Blank Line End--> <!-- Insurance Start --> <tr> <td class="alt2" colspan="3"> <b><font color="#ff0000"><b>$radioquestion2</b></font></b><br> <INPUT TYPE="radio" NAME="radioanswer2" value="$radiochoice2a"> <b>$radiochoice2a</b> <INPUT TYPE="radio" NAME="radioanswer2" value="$radiochoice2b"> <b>$radiochoice2b</b> </td> </tr> <!-- Insurance End End--> <!-- Del Conf. Start --> <tr> <td class="alt2" colspan="3"> <b><font color="#ff0000">$radioquestion3</font></b><br> <INPUT TYPE="radio" NAME="radioanswer3" value="$radiochoice3a"> <b>$radiochoice3a<b> <INPUT TYPE="radio" NAME="radioanswer3" value="$radiochoice3b"> <b>$radiochoice3b</b> </td> </tr> <!-- Del. Conf. End--> <!-- Shipping Start --> <tr> <td class="alt2" colspan="3"> <b><font color="#ff0000">$radioquestion4</font></b><br> <INPUT TYPE="radio" NAME="radioanswer4" value="$radiochoice4a"> <b>$radiochoice4a</b> <INPUT TYPE="radio" NAME="radioanswer4" value="$radiochoice4b"> <b>$radiochoice4b</b> <INPUT TYPE="radio" NAME="radioanswer4" value="$radiochoice4c"> <b>$radiochoice4c</b> </td> </tr> <!-- Shipping End--> <!-- Blank Line --> <tr> <td class="alt1" valign="middle" height="25"></td> </tr> <!-- Blank Line End--> <!-- Misc Info Start --> <tr> <td class="alt2" colspan="3"> <b><font color="#ff0000">$longquestion3</font></b><br> <textarea rows="5" cols="70" name="longanswer3"></textarea> </td> </tr> <!-- Misc Info End --> <tr> <td valign="top"> <p align="center"> <input type="submit" value="Submit" name="submit" style="font-family: Verdana; font-size: 10pt" class="button"> <input type="reset" value="Reset" name="reset" style="font-family: Verdana; font-size: 10pt" class="button"> </p></td></tr> </table> </td> </tr> </table> </font> </form> <!-- / main page contents --> Code:
This $radioanswer1 Is Between: $bbuserinfo[username] & $normalanswer2 Type Of Transaction: $radioanswer1 $radioquestion2: $radioanswer2 $radioquestion3: $radioanswer3 $radioquestion4: $radioanswer4 ------------------------------------------------- $bbuserinfo[username] gets: $longanswer1 $normalanswer2 gets: $longanswer2 ------------------------------------------------- Misc Information: $longanswer3 |
#388
|
||||
|
||||
Quote:
Thank you so much for your time and effort. I really appreciate this. I'm going to give this a shot later tonight. |
#389
|
|||
|
|||
your welcome
|
#390
|
|||
|
|||
Parse error: parse error, unexpected T_STRING in /home/****/public_html/forum/form.php on line 137
i keep getting this or another line.............. AND I DID EVERYTHING CORRECT PLEASE HELp!!!1 |
#391
|
||||
|
||||
This is exactly the reason I needed to take the leap into converting an existing website (+12000 companies and +3000 active members) into vBulletin. Again thank you Erwin!
|
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|