/** * Public function that creates a single instance */ public static function getInstance() { if (!isset(self::$_instance)) { self::$_instance = new self(); } return self::$_instance; }
/** * Show submission data. * * @param array $tag_params * @param array $children */ public function tag_SubmissionFields($tag_params, $children) { global $language; $conditions = array(); $form_field_manager = ContactForm_FormFieldManager::getInstance(); $submission_manager = ContactForm_SubmissionManager::getInstance(); $submission_field_manager = ContactForm_SubmissionFieldManager::getInstance(); // get conditional parameters $submission_id = null; if (isset($tag_params['submission'])) { $submission_id = fix_id($tag_params['submission']); } // we require submission to be specified if (is_null($submission_id)) { trigger_error('Submission fields tag: No submission id specified.', E_USER_NOTICE); return; } // get submission for specified id $submission = $submission_manager->getSingleItem($submission_manager->getFieldNames(), array('id' => $submission_id)); if (!is_object($submission)) { trigger_error('Submission fields tag: Unknown submission.', E_USER_NOTICE); return; } // get form fields $raw_fields = $form_field_manager->getItems($form_field_manager->getFieldNames(), array('form' => $submission->form)); $fields = array(); foreach ($raw_fields as $field) { $fields[$field->id] = $field; } // load submission data $items = $submission_field_manager->getItems($submission_field_manager->getFieldNames(), array('submission' => $submission->id)); // load template $template = $this->loadTemplate($tag_params, 'submission_field.xml'); if (count($items) > 0) { foreach ($items as $item) { $field = $fields[$item->field]; $text = $field->name; if (!empty($field->placeholder[$language])) { $text = $field->placeholder[$language]; } if (!empty($field->label[$language])) { $text = $field->label[$language]; } $params = array('submission' => $submission->id, 'form' => $submission->form, 'field' => $item->field, 'value' => $item->value, 'label' => $field->label, 'placeholder' => $field->placeholder, 'text' => $text, 'type' => $field->type, 'name' => $field->name); $template->restoreXML(); $template->setLocalParams($params); $template->parse(); } } }