vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.6 Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=194)
-   -   New Posting Features - Form Hack (https://vborg.vbsupport.ru/showthread.php?t=126676)

gonkowonko 11-01-2006 09:54 AM

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
where would i look to for this error? Plugin or templates as i tried and i just cant see it :(

Abe1 11-01-2006 11:55 AM

Look around line 863 in the plug-in.

gonkowonko 11-01-2006 12:56 PM

Quote:

Originally Posted by Abe1
Look around line 863 in the plug-in.

only goes upto 401 :confused:

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?

MrD 11-02-2006 08:22 PM

Hi,
has everyone run this plugin in Combination with Mystics Präfix Hack?

mr clean 11-04-2006 10:41 PM

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";
I am only able to see the attachment option if I select preview. So basically, the attachment option is only visible after the variable has been called(selecting preview). My coding skills are horrible, does anyone have any idea what I can do to make attachments work when the form is initially pulled up?

bahattab 11-05-2006 01:08 PM

hi

could any one help me :surprised:

i am trying to use this hack but i did not know how to use it. :confused:

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 :)

dutchbb 11-11-2006 10:33 PM

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

Abe1 11-12-2006 04:26 AM

Quote:

Originally Posted by dutchbb
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

I can't make it change the way vb puts the attachments.

civil78 11-12-2006 09:00 AM

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?

civil78 11-12-2006 10:38 AM

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:

// No permissions to post attachments in this forum or no permission to view threads in this forum.
if (empty($vbulletin->userinfo['attachmentextensions']) OR !($forumperms $vbulletin->bf_ugp_forumpermissions['canpostattachment']) OR !($forumperms $vbulletin->bf_ugp_forumpermissions['canview']) OR !($forumperms $vbulletin->bf_ugp_forumpermissions['canviewthreads']))
{
     
print_no_permission();


Remove this from the if.

PHP Code:

OR !($forumperms $vbulletin->bf_ugp_forumpermissions['canview']) 

Like this.

PHP Code:

// No permissions to post attachments in this forum or no permission to view threads in this forum.
 
if (empty($vbulletin->userinfo['attachmentextensions']) OR !($forumperms $vbulletin->bf_ugp_forumpermissions['canpostattachment']) OR !($forumperms $vbulletin->bf_ugp_forumpermissions['canviewthreads']))
 {
     
print_no_permission();
 } 

After that if you change the permission setting in a forum "Can View Forum = No" and the others yes. Users can post the form and can attach files normally, but they can’t see the answer post.

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.


All times are GMT. The time now is 06:31 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.02578 seconds
  • Memory Usage 1,863KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (3)bbcode_code_printable
  • (3)bbcode_php_printable
  • (2)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (4)pagenav_pagelinkrel
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete