Servicerequest form
authorSteve Sutton <steve@gaslightmedia.com>
Fri, 2 May 2014 12:59:26 +0000 (12:59 +0000)
committerSteve Sutton <steve@gaslightmedia.com>
Fri, 2 May 2014 12:59:26 +0000 (12:59 +0000)
Toolkit/Contacts/ServiceRequest.php [new file with mode: 0755]
static/11.phtml [new file with mode: 0644]
static/8.phtml

diff --git a/Toolkit/Contacts/ServiceRequest.php b/Toolkit/Contacts/ServiceRequest.php
new file mode 100755 (executable)
index 0000000..614b6bb
--- /dev/null
@@ -0,0 +1,358 @@
+<?php
+//    vim:set expandtab tabstop=4 shiftwidth=4 softtabstop=4 foldmethod=marker syntax=php:
+
+/**
+ * File Doc Comment
+ *
+ * PHP version 5
+ *
+ * @category Toolkit
+ * @package  Contacts
+ * @author   Jamie Kahgee <jamie.kahgee@gmail.com>
+ * @license  http://www.gaslightmedia.com Gaslightmedia
+ * @version  CVS: $Id: ContactUs.php,v 1.36 2010/07/14 23:33:15 jamie Exp $
+ * @link     http://demo.gaslightmedia.com
+ */
+
+/**
+ * Error codes for Toolkit_Contacts_ContactUs
+ *
+ * Codes are mapped to textual messaged by errorMessage() method,
+ * if you add a new code be sure to add a new message for it to errorMessage()
+ *
+ * @see Toolkit_Contacts_ContactUs::errorMessage()
+ */
+
+/**
+ * GLM Contact Us form
+ *
+ * This form handles rendering and processing the contact us form.
+ * Controls the email functionality of the form, whether the client
+ * has a contact DB to store contact records and how to insert/update
+ * submitted form values.
+ *
+ * @category  Toolkit
+ * @package   Contacts
+ * @author    Jamie Kahgee <jamie.kahgee@gmail.com>
+ * @copyright 2009 Jamie Kahgee
+ * @license   http://www.gaslightmedia.com Gaslightmedia
+ * @link      http://demo.gaslightmedia.com
+ * @see       Toolkit_FormBuilder
+ */
+class Toolkit_Contacts_ServiceRequest
+    extends Toolkit_Contacts_ContactUs
+{
+    /**
+     * Contact type to be inserted into the DB as when the form is submitted
+     *
+     * This property is only valid when the [hasContactDB] property is set
+     * to true.
+     *
+     * N.B.
+     * If you subclass this class out to other forms that are
+     * inserted into the contact db, be sure to make each one of their
+     * contactType properties unique.  We don't check for duplicates.
+     *
+     * @var string
+     * @access protected
+     */
+    protected $contactType = '2';
+    /**
+     * Email subject and <h1> header in email
+     *
+     * It gets set in the constructor if you leave empty here, but you
+     * can set it to something different here to override that if you desire.
+     *
+     * @var    string
+     * @access protected
+     */
+    public $subject = "ENews Signup Form from website";
+    /**
+     * Message to display if the form is successfully submitted
+     *
+     * @var    string
+     * @access protected
+     */
+    protected $successMsg = '
+        <style type="text/css">
+        #category {display:none;}
+        .listing {display:none;}
+        </style>
+        <div id="form-success-top">
+            Thank you for requesting the ENewsetter.
+        </div>';
+    //    {{{    configureConstats()
+
+    /**
+     * Class constructor
+     *
+     * @param object $pdo         PHP Data Object
+     * @param string $formName    Form's name.
+     * @param string $method      (optional)Form's method defaults to 'POST'
+     * @param string $action      (optional)Form's action
+     * @param string $target      (optional)Form's target defaults to '_self'
+     * @param mixed  $attributes  (optional)Extra attributes for <form> tag
+     * @param bool   $trackSubmit (optional)Whether to track if the form was
+     *                              submitted by adding a special hidden field
+     *
+     * @author Jamie Kahgee <jamie.kahgee@gmail.com>
+     * @access public
+     * @link   http://pear.php.net/package/HTML_QuickForm/docs/latest/HTML_QuickForm/HTML_QuickForm.html
+     * @see    HTML_QuickForm
+     */
+    public function __construct(
+        PDO $pdo,
+        $formName,
+        $method = 'post',
+        $action = '',
+        $target = '',
+        $attributes = null,
+        $trackSubmit = false
+    ) {
+        parent::__construct(
+            $pdo,
+            $formName,
+            $method,
+            $action,
+            $target,
+            $attributes,
+            $trackSubmit
+        );
+        $this->email = ENEWS_EMAIL;
+    }
+
+    /**
+     * Constant variables for the form
+     *
+     * These values won't get overridden by POST or GET vars
+     *
+     * @return void
+     * @access public
+     */
+    public function configureConstants()
+    {
+        $constants = array(
+            'user_agent' => $_SERVER['HTTP_USER_AGENT'],
+            'remote_addr' => $_SERVER['REMOTE_ADDR'],
+            'mail_ok' => 1
+        );
+        $this->setupConstants($constants);
+    }
+
+    //    }}}
+    //    {{{    configureElements()
+
+    /**
+     * Form element definitions
+     *
+     * @return void
+     * @access public
+     */
+    public function configureElements()
+    {
+        $e = array();
+        if ($this->hasContactDB) {
+            $this->setInterestFields();
+            //    Grouped Elements are defined here.
+            $this->interestsGroups =& $this->getInterestFields();
+        }
+
+        //    All Elements are created here.  This includes group element definitions.
+        $e[] = array(
+            'type' => 'hidden',
+            'req'  => false,
+            'name' => 'user_agent'
+        );
+        $e[] = array(
+            'type' => 'hidden',
+            'req'  => false,
+            'name' => 'remote_addr'
+        );
+        $e[] = array(
+            'type'    => 'header',
+            'name'    => 'firstHdr_rmv',
+            'display' => ''
+        );
+        $e[] = array(
+            'type'    => 'text',
+            'req'     => true,
+            'name'    => 'fname',
+            'display' => 'First Name'
+        );
+        $e[] = array(
+            'type'    => 'text',
+            'req'     => true,
+            'name'    => 'lname',
+            'display' => 'Last Name'
+        );
+        $e[] = array(
+            'type'    => 'tel',
+            'req'     => true,
+            'name'    => 'phone',
+            'display' => 'Home Phone'
+        );
+        $e[] = array(
+            'type'    => 'tel',
+            'req'     => true,
+            'name'    => 'mobile_phone',
+            'display' => 'Mobile Phone'
+        );
+        $e[] = array(
+            'type'    => 'email',
+            'req'     => true,
+            'name'    => 'email',
+            'display' => 'Email'
+        );
+        $e[] = array(
+            'type'    => 'email',
+            'req'     => true,
+            'name'    => 'email_rmv',
+            'display' => 'Verify Email'
+        );
+        if ($this->tableName == 'customer') {
+            $add1 = 'add1';
+            $add2 = 'add2';
+        } else {
+            $add1 = 'address';
+            $add2 = 'address2';
+        }
+        $e[] = array(
+            'type'    => 'text',
+            'req'     => true,
+            'name'    => $add1,
+            'display' => 'Address 1'
+        );
+        $e[] = array(
+            'type'    => 'text',
+            'req'     => false,
+            'name'    => $add2,
+            'display' => 'Address 2'
+        );
+        $e[] = array(
+            'type'    => 'text',
+            'req'     => true,
+            'name'    => 'city',
+            'display' => 'City'
+        );
+        $e[] = array(
+            'type'    => 'select',
+            'req'     => true,
+            'name'    => 'state',
+            'display' => 'State/Province',
+            'opts'    => $GLOBALS['states']
+        );
+        $e[] = array(
+            'type'    => 'text',
+            'req'     => true,
+            'name'    => 'zip',
+            'display' => 'ZIP/Postal Code'
+        );
+        $e[] = array(
+            'type'    => 'text',
+            'req'     => true,
+            'name'    => 'name_of_vessel',
+            'display' => 'Name of Vessel'
+        );
+        $engTypes = array(
+            ''                 => 'Select Engine Type',
+            'group1'           => '<span>Outboard</span>',
+            'Mercury'          => 'Mercury',
+            'Evinrude_Johnson' => 'Evinrude / Johnson',
+            'group2'           => '<span>Stern Drive</span>',
+            'Mercruiser'       => 'Mercruiser',
+            'group3'           => '<span>Sail Boats</span>',
+            'N/A'              => 'Not Applicable'
+        );
+        $e[] = array(
+            'type'    => 'select3',
+            'req'     => true,
+            'name'    => 'engine_type',
+            'display' => 'Engine Type',
+            'opts'    => $engTypes
+        );
+        $serTypes = array(
+            ''       => '',
+            'group1' => '<span>Yes</span>',
+            'arDate' => 'Anticipated Arrival Date',
+            'group2' => '<span>No</span>',
+            'arDate' => 'Anticipated Arrival Date',
+        );
+        $e[] = array(
+            'type'    => 'select3',
+            'req'     => true,
+            'name'    => 'service_request',
+            'display' => 'Are you also requesting launch service?',
+            'opts'    => $serTypes
+        );
+        $e[] = array(
+            'type'    => 'select3',
+            'req'     => true,
+            'name'    => 'work_requested',
+            'display' => 'Work Requested',
+            'opts'    => $groupSelect
+        );
+        //if ($this->hasContactDB) {
+            //$e[] = array(
+                //'type'    => 'advcheckbox',
+                //'req'     => false,
+                //'name'    => 'mail_ok',
+                //'display' => '',
+                //'opts'    => 'Yes, I would like to receive Email Newsletters',
+                //'val'     => array(0, 1)
+            //);
+            //if (defined("MEMBERS_DB") && MEMBERS_DB) {
+                //$e[] = array(
+                    //'type'    => 'advcheckbox',
+                    //'req'     => false,
+                    //'name'    => 'members',
+                    //'display' => '',
+                    //'opts'    => 'Yes, I would like to receive information via e-mail from '.SITENAME.' Members',
+                    //'val'     => array(0, 1)
+                //);
+            //}
+        //}
+        //if (is_array($this->interestsGroups)) {
+            //foreach ($this->interestsGroups as $group => $gData) {
+                //$this->myGroups[] = $gData;
+                //$e[] = array(
+                    //'type'       => 'group',
+                    //'req'        => false,
+                    //'name'       => 'interest['.$group.']',
+                    //'group'         => $gData,
+                    //'label'      => $group,
+                    //'seperator'  => ' ',
+                    //'appendName' => true
+                //);
+            //}
+        //}
+        $e[] = array(
+            'type'    => 'textarea',
+            'req'     => false,
+            'name'    => 'comments',
+            'display' => 'Additional Issues, Comments or Directions'
+        );
+        $e[] = array(
+            'type'    => 'CAPTCHA_Image',
+            'req'     => false,
+            'name'    => 'captcha_question',
+            'display' => 'Verification code',
+            'opts'    => $this->captchaOptions
+        );
+        $e[] = array(
+            'type'    => 'text',
+            'req'     => true,
+            'name'    => 'captcha_rmv',
+            'display' => 'Enter verification code'
+        );
+        $e[] = array(
+            'type'    => 'submit',
+            'req'     => false,
+            'name'    => 'submit_rmv',
+            'display' => 'Submit Form'
+        );
+
+        $this->setupElements($e);
+    }
+
+    //    }}}
+}
diff --git a/static/11.phtml b/static/11.phtml
new file mode 100644 (file)
index 0000000..3e96aba
--- /dev/null
@@ -0,0 +1,12 @@
+<?php
+if ($catid = filter_input(INPUT_GET, 'catid', FILTER_VALIDATE_INT)) {
+    $cf = new Toolkit_Contacts_ServiceRequest(
+        Toolkit_Database::getInstance(),
+        'contact_form',
+        'post',
+        BASE_URL . "index.php?catid=$catid"
+    );
+    $cf->configureForm();
+    $cf->useCaptcha(true);
+    echo $cf->toHtml();
+}
index 705e836..e8ff4ad 100644 (file)
@@ -1,12 +1,12 @@
 <?php
 if ($catid = filter_input(INPUT_GET, 'catid', FILTER_VALIDATE_INT)) {
-       $cf = new Toolkit_Contacts_ContactUs(
-               Toolkit_Database::getInstance(),
-               'contact_form',
-               'post',
-               BASE_URL . "index.php?catid=$catid"
-       );
-       $cf->configureForm();
-       $cf->useCaptcha(true);
-       echo $cf->toHtml();
+    $cf = new Toolkit_Contacts_ContactUs(
+        Toolkit_Database::getInstance(),
+        'contact_form',
+        'post',
+        BASE_URL . "index.php?catid=$catid"
+    );
+    $cf->configureForm();
+    $cf->useCaptcha(true);
+    echo $cf->toHtml();
 }