Exemplo n.º 1
0
 function sendForm($form)
 {
     $objForms = new FormModel();
     $objEmailer = new Emailer();
     $objLayout = new LayoutModel();
     $objTemplate = new TemplatesModel();
     $formInfo = $objForms->loadForm($form['formSubmit']['id']);
     $formFields = $objForms->getSubmission($form['submission_id']);
     $this->view->assign('formFields', $formFields);
     $layoutInfo = $objLayout->loadLayout(28);
     $template = $objTemplate->loadTemplateFromKeyname('email-sendform');
     // modify email subject
     if (!empty($form['pageTitle'])) {
         $subject = $formInfo['emailSubject'] . ' - ' . $form['pageTitle'];
     } else {
         if (!empty($form['returnUrlRequest'])) {
             $subject = $formInfo['emailSubject'] . ' - ' . $form['returnUrlRequest'];
         } else {
             $subject = $formInfo['emailSubject'];
         }
     }
     $objEmailer->setFrom($formInfo['emailFrom'], PRODUCT_NAME);
     $objEmailer->addTo($formInfo['emailTo']);
     $objEmailer->setSubject($subject);
     // assign vars to template
     $this->view->assign('content', $this->view->fetch('fromstring:' . $template['content']));
     $this->view->assign('sidebar_left', $this->view->fetch('fromstring:' . $template['left_sidebar']));
     $this->view->assign('sidebar_right', $this->view->fetch('fromstring:' . $template['right_sidebar']));
     // render template
     $objEmailer->setBody($this->view->fetch('fromstring:' . $layoutInfo['code']), true);
     // send email
     $objEmailer->sendMail();
     return true;
 }
Exemplo n.º 2
0
/**
 * Smarty {form} function plugin
 *
 * Type:     function<br>
 * Name:     form<br>
 * Purpose:  generates form from database<br>
 * @author Nathan Gardner <*****@*****.**>
 */
function smarty_function_form($localparams, &$smarty)
{
    global $params;
    if (!empty($localparams['identifier'])) {
        $objForm = new FormModel();
        $objAuth = Authentication::getInstance();
        $objTemplate = new TemplatesModel();
        $objUser = new UserModel($objAuth->user_id);
        $userInfo = $objUser->getInfo();
        $form_id = $objForm->getFormId($localparams['identifier']);
        if ($form_id) {
            $formInfo = $objForm->loadForm($form_id);
            $templateInfo = $objTemplate->loadTemplateFromKeyname('form');
            // assign values if already submitted
            if (!empty($params['formSubmit']['fields']) && !empty($formInfo['fields'])) {
                foreach ($formInfo['fields'] as &$formField) {
                    foreach ($params['formSubmit']['fields'] as $submittedId => $submittedValue) {
                        if ($formField['id'] == $submittedId) {
                            if ($formField['type'] == 'checkbox' || $formField['type'] == 'radio') {
                                $formField['checked'] = 'checked';
                            } else {
                                $formField['value'] = $submittedValue;
                            }
                            break;
                        }
                    }
                }
            }
            // assign error flag and message if invalid
            if (!empty($params['formErrors']) && !empty($formInfo['fields'])) {
                foreach ($params['formErrors'] as $formError) {
                    foreach ($formInfo['fields'] as &$formField) {
                        if ($formError['field_id'] == $formField['id']) {
                            $formField['hasError'] = true;
                            $formField['errorMsg'] = $formError['errorMsg'];
                            break;
                        }
                    }
                }
            }
            // assign var to template
            if (!empty($params['formSubmitted'])) {
                $smarty->assign('formSubmitted', 1);
            }
            if (!empty($params['formErrors'])) {
                $smarty->assign('formErrors', $params['formErrors']);
            }
            $smarty->assign('formInfo', $formInfo);
            $output = $smarty->fetch('fromstring:' . $templateInfo['content']);
        } else {
            return 'Unknown form identifier';
        }
    } else {
        return 'Must pass an identifier';
    }
    return $output;
}
Exemplo n.º 3
0
 function actionEditForm($params = '')
 {
     $objForm = new FormModel();
     $form_id = !empty($params['form_id']) ? intval($params['form_id']) : false;
     if (!empty($params['dosave'])) {
         $form_id = $this->saveForm($params);
         $this->messages[] = array('type' => 'success', 'message' => 'Form has been saved.');
         if ($params['submit'] == 'Save and Close') {
             $this->actionForms();
             return;
         }
     }
     if (!empty($form_id)) {
         $formInfo = $objForm->loadForm($form_id);
         $this->view->assign('formInfo', $formInfo);
     }
     $this->view->assign('content', $this->view->fetch('tpl/form/form.tpl'));
     $this->view->assign('messages', $this->messages);
     $this->finish();
 }
Exemplo n.º 4
0
 function actionSubmit($params2 = '')
 {
     // loading $params from global so that the View can load the proper _urlrequest
     global $params;
     $params = array_merge($params, $params2);
     $hasError = false;
     $formErrors = array();
     if (!empty($params['formSubmit'])) {
         $objEmail = new EmailSender();
         $objForm = new FormModel();
         if (!empty($params['formSubmit']['id'])) {
             $formInfo = $objForm->loadForm($params['formSubmit']['id']);
             // validate forms fields
             if (!empty($formInfo['fields'])) {
                 foreach ($formInfo['fields'] as $formField) {
                     if ($formField['required'] == 1) {
                         if (empty($params['formSubmit']['fields'][$formField['id']])) {
                             $hasError = true;
                             $formError = array('field_id' => $formField['id'], 'errorMsg' => $formField['name'] . ' is required.');
                             $formErrors[] = $formError;
                         }
                     }
                 }
             }
             if ($hasError) {
                 // return to page with error message
                 if (!empty($params['returnUrlRequest']) && $params['returnUrlRequest'] != 'Form/submit') {
                     $objDispatcher = new Dispatcher();
                     $objFriendlyUrl = new FriendlyurlModel();
                     $objFriendlyUrl->parseRequest($params['returnUrlRequest']);
                     $controller = $objFriendlyUrl->requestController;
                     $action = $objFriendlyUrl->requestAction;
                     $params = array_merge($params, $objFriendlyUrl->requestParams);
                     $params['_urlrequest'] = $params['returnUrlRequest'];
                     $params['formErrors'] = $formErrors;
                     $objDispatcher->setDirectory('frontend');
                     $objDispatcher->setController($controller);
                     $objDispatcher->setAction($action);
                     $objDispatcher->setParams($params);
                     $objDispatcher->dispatch();
                     exit;
                 } else {
                     die('Please go back and retry submitting the form. Errors: ' . print_r($formErrors));
                 }
             }
             // save to database
             $submission_id = $this->saveToDb($params);
             if ($submission_id) {
                 $params['submission_id'] = $submission_id;
             }
             // email notification
             $objEmail->sendForm($params);
             // return to page with thanks message
             if (!empty($params['returnUrlRequest'])) {
                 header("Location: http://" . URL . '/' . $params['returnUrlRequest'] . '?formSubmitted=true');
             } else {
                 header("Location: http://" . URL . '/');
             }
         }
     }
 }