Thread: New Posting Features - Form Hack
View Single Post
  #164  
Old 11-01-2006, 12:56 PM
gonkowonko gonkowonko is offline
 
Join Date: Jun 2005
Posts: 27
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Abe1
Look around line 863 in the plug-in.
only goes upto 401

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") . '");');
}
the form gets emailed on submission, ive removed the email address

Can u see any errors here?
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01646 seconds
  • Memory Usage 1,872KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code
  • (1)bbcode_quote
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.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_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • 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
  • showpost_complete