Jump to content

ValidForm Builder Help


SyntheticShield

Recommended Posts

I am setting up a site that is using MODx 2.2 Revolution.  I had been using ValidForm Builder as my contact form generator and have used it for a while and really like it.  One of the things I liked about MODx is that I was not tied to strictly using their plugins and so forth and that its generally pretty easy to integrate php code into the site via what they call snippets.  Anyway, Im sure many here are familiar with MODx.

 

However, the issue I am having is getting ValidForm to work in MODx.  When you make a 'snippet' in MODx, it has to have a return.  I have posted the code for a sample form below from the ValidForm Builder website.  I created a snippet and added the below code to it to test things out.

 

Knowing that the snipped had to have a return, I tried return ($strOutput);.  That generates the form on the page, but it doesnt actuall process and send the form.  The validation all works, but nothing else.  So Im not sure if Im doing things wrong or what.

 

On static pages you simply use:

 

<?php echo $strOutput; ?>

 

If I do that only, the form doesnt show up.  So ultimately I guess Im trying to figure out how one would write a 'return' into the code so that it works.  I tried putting the return after the closing bracket, but Im not sure that is the correct way to do it.  Does anyone have any ideas or input?

 

I know MODx has the FormIt extension, but I really like ValidForm and would love to get it to work since, at least on static pages, it is easy to work with and set up.  I need to redirect, back to the home page, after the form is submitted, but MODx handles that a little differently and I will have to figure that out after I get the form working.  Thanks in advance for any help.

 

<?php

//*** Include the library.
require_once("libraries/ValidForm/class.validform.php");

//*** Create an instance of the form.
$objForm = new ValidForm("contactForm", "Required fields are printed in bold.");

//*** Add the Name field.
$objForm->addField("name", "Your name", VFORM_STRING, 
    array(
        "maxLength" => 255, 
        "required" => TRUE
    ), 
    array(
        "maxLength" => "Your input is too long. A maximum of %s characters is OK.", 
        "required" => "This field is required.", 
        "type" => "Enter only letters and spaces."
    )
);

//*** Add the Email field.
$objForm->addField("email", "Email address", VFORM_EMAIL, 
    array(
        "maxLength" => 255, 
        "required" => TRUE
    ), 
    array(
        "maxLength" => "Your input is too long. A maximum of %s characters is OK.", 
        "required" => "This field is required.", 
        "type" => "Use the format name@domain.com"
    ), array(
        "tip" => "name@domain.com"
    )
);

//*** Add the Remarks field.
$objForm->addField("remarks", "Remarks", VFORM_TEXT, 
    array(
        "maxLength" => 2000
    ), 
    array(
        "maxLength" => "Your input is too long. A maximum of %s characters is OK.", 
        "type" => "Enter only characters, punctuation, numbers and spaces"
    )
);

//*** Set the general alert.
$objForm->setMainAlert("One or more errors occurred. Check the marked fields and try again.");

//*** Set the label of the submit button.
$objForm->setSubmitLabel("Send");

//*** Default output.
$strOutput = "";

//*** Check the form.
if ($objForm->isSubmitted() && $objForm->isValid()) {
    //*** HTML body of the email.
    $strMessage = "<html><head><title></title></head><body>";
    $strMessage .= $objForm->valuesAsHtml();
    $strMessage .= "</body></html>";

    //*** Mail headers.
    $strHeaders = "MIME-Version: 1.0\r\n";
    $strHeaders .= "Content-type: text/html; charset=utf-8\r\n";
    $strHeaders .= "From: Awesome website <form@awesomesite.com>\r\n";

    //*** Send the email.
    mail("owner@awesomesite.com", "Contact form submitted", $strMessage, $strHeaders);
        
    //*** Set the output to a friendly thank you note.
    $strOutput = "Thank you for your interest. We will contact you as soon as possible.";
} else {
    //*** The form has not been submitted or is not valid.
    $strOutput = $objForm->toHtml();
}

?>

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.